/* ============ Unidanışmanlık — Apple-inspired design system ============ */
:root {
  --blue: #174978;
  --blue-hover: #1e5c97;
  --blue-soft: #3e6e96;
  --blue-light: #8fc1f0;
  --brand-gray: #6b6b6b;
  --gold: #d9a35c;
  --gold-light: #f0c987;
  --gold-deep: #b3782f;
  --ink: #1d1d1f;
  --ink-2: #424245;
  /* Açık zeminlerde gövde metni için kullanılır. Eski #86868b beyaz üzerinde
     3.62:1 idi — WCAG AA (4.5:1) altında. #6e6e73: beyazda 5.07:1,
     --bg-soft (#f5f5f7) üzerinde 4.66:1. Koyu zeminler için erişilebilirlik
     katmanındaki .subhead kuralı devreye giriyor. */
  --gray: #6e6e73;
  --bg: #ffffff;
  --bg-soft: #f5f5f7;
  --bg-dark: #000000;
  --bg-dark-2: #161617;
  --radius: 18px;
  --radius-lg: 28px;
  --ease: cubic-bezier(0.28, 0.11, 0.32, 1);
  --maxw: 1024px;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: clip; }
body {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", Helvetica, Arial, sans-serif;
  color: var(--ink);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
  max-width: 100vw;
}
img { max-width: 100%; }
a { color: var(--blue); text-decoration: none; }
a:hover { text-decoration: underline; }

/* ---------- Typography ---------- */
h1, h2, h3 { font-weight: 700; letter-spacing: -0.02em; }
.display {
  font-size: clamp(2.6rem, 7vw, 5rem);
  line-height: 1.05;
  letter-spacing: -0.025em;
  font-weight: 700;
}
.headline {
  font-size: clamp(2rem, 5vw, 3.5rem);
  line-height: 1.08;
  letter-spacing: -0.022em;
}
.subhead {
  font-size: clamp(1.1rem, 2.2vw, 1.45rem);
  line-height: 1.4;
  color: var(--gray);
  font-weight: 500;
  letter-spacing: 0.002em;
}
.section-dark .eyebrow, .hero .eyebrow, .search-hero .eyebrow, .prog-hero .eyebrow { color: var(--blue-light); }
.eyebrow {
  font-size: 0.85rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--blue);
  display: block;
  margin-bottom: 0.8rem;
}

/* ---------- Nav ---------- */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  background: rgba(251, 251, 253, 0.72);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  transition: background 0.4s var(--ease);
}
.nav.dark {
  background: rgba(22, 22, 23, 0.72);
}
.nav-inner {
  max-width: var(--maxw); margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between;
  height: 48px; padding: 0 22px;
}
.nav-logo { font-size: 1.05rem; font-weight: 700; letter-spacing: -0.02em; color: var(--ink); text-decoration: none; display: flex; align-items: center; gap: 8px; }
.nav-logo:hover { text-decoration: none; }
.nav-logo .dot { color: var(--blue); }
.nav-logo .w-uni { color: #1d1d1f; font-weight: 800; }
.nav-logo .w-dan { color: var(--brand-gray); font-weight: 700; }
.nav.dark .nav-logo .w-uni { color: #ffffff; }
.nav.dark .nav-logo .w-dan { color: #9a9aa0; }
.nav.dark .nav-logo { color: #f5f5f7; }
.nav-links { display: flex; gap: 28px; align-items: center; list-style: none; }
.nav-links a {
  font-size: 0.82rem; color: var(--ink-2); font-weight: 400;
  transition: color 0.2s;
  position: relative;                 /* su damlası efekti için */
  --navblue: #a3c6ea;                 /* "Ücretsiz Görüşme" butonunun mavisi */
}
.nav.dark .nav-links a { color: rgba(255,255,255,0.8); }
.nav-links a:hover { text-decoration: none; }
/* Koyu ve açık nav'da aynı mavi: CTA butonunun rengi */
.nav.dark .nav-links a { --navblue: #a3c6ea; }

/* Su damlası: farenin konumundan dairesel genişleyen mavi metin kopyası */
.nav-links a:not(.nav-cta)::after {
  content: attr(data-text);
  position: absolute; left: 0; top: 0; width: 100%; height: 100%;
  /* Kopya metin, gerçek metnin TAM üstüne oturmalı. Mobil menüde <a>'nın
     17px dikey padding'i var; padding devralınmazsa kopya 17px yukarı
     kayıyor ve damla açılırken yazı kayıyormuş gibi görünüyordu.
     Masaüstünde <a>'nın padding'i 0 → hiçbir şey değişmez. */
  padding: inherit; box-sizing: border-box;
  color: var(--navblue); pointer-events: none; white-space: nowrap;
  clip-path: circle(0% at var(--rx, 50%) var(--ry, 50%));
  transition: clip-path 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}
/* Damla yalnızca gerçek imleçli cihazlarda açılır. Dokunmatikte :hover
   dokunduktan sonra "yapışır" ve 7 sn'lik geçiş menüde asılı kalırdı. */
@media (hover: hover) and (pointer: fine) {
  .nav-links a:not(.nav-cta):hover::after {
    clip-path: circle(150% at var(--rx, 50%) var(--ry, 50%));
  }
}
.nav-links a:not(.nav-cta).is-active::after {
  clip-path: circle(150% at var(--rx, 50%) var(--ry, 50%));
}
/* Aktif sayfa: tıklandıktan sonra mavi kalır (koyu nav kuralını ezmesi için özgüllük yüksek) */
.nav .nav-links a.is-active,
.nav.dark .nav-links a.is-active { color: var(--navblue); }
@media (prefers-reduced-motion: reduce) {
  .nav-links a:not(.nav-cta)::after { transition: none; }
}
.nav-cta {
  background: #a3c6ea; color: #0b2540 !important; padding: 6px 14px;
  border-radius: 980px; font-size: 0.8rem !important; font-weight: 600;
  transition: background 0.2s, transform 0.15s;
  white-space: nowrap;
}
.nav-cta:hover { background: #bcd6f2; text-decoration: none; }
.nav-cta:active { transform: scale(0.97); }


/* ---------- WhatsApp logosu (emoji yerine, buton rengini alır) ---------- */
.wa-ico {
  width: 1.15em; height: 1.15em; fill: currentColor;
  display: inline-block; vertical-align: -0.2em; margin-right: 0.45em;
  flex: none;
}
.wa-ico-lg { width: 1.6rem; height: 1.6rem; margin: 0; fill: #174978; }
a[href^="https://wa.me"] { white-space: nowrap; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-block; padding: 13px 28px; border-radius: 980px;
  font-size: 1.05rem; font-weight: 500; cursor: pointer; border: none;
  transition: transform 0.15s var(--ease), background 0.2s, box-shadow 0.3s;
}
.btn:active { transform: scale(0.97); }
.btn:hover { text-decoration: none; }
.btn-primary { background: var(--blue); color: #fff; }
.btn-primary:hover { background: var(--blue-hover); box-shadow: 0 8px 30px rgba(0, 113, 227, 0.35); }
.btn-ghost { background: transparent; color: var(--blue); border: 1px solid var(--blue); }
.btn-ghost:hover { background: var(--blue); color: #fff; }
.btn-white { background: #fff; color: var(--ink); }
.btn-white:hover { box-shadow: 0 8px 30px rgba(255,255,255,0.25); }

/* ---------- Sections ---------- */
section { padding: 110px 22px; position: relative; overflow-x: clip; }
.container { max-width: var(--maxw); margin: 0 auto; }
.container-wide { max-width: 1280px; margin: 0 auto; }
.center { text-align: center; }
.section-dark { background: var(--bg-dark); color: #f5f5f7; }
.section-dark .subhead { color: #a1a1a6; }
.section-soft { background: var(--bg-soft); }

/* ---------- Hero ---------- */
.hero {
  min-height: 100vh;   /* eski tarayıcı yedeği */
  min-height: 100svh;  /* mobil: adres çubuğu açıkken de tam ekran, zıplamaz */
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center;
  background: radial-gradient(ellipse 80% 60% at 50% -10%, #12233f 0%, #000 62%);
  color: #f5f5f7;
  padding: 130px 22px 90px;
  perspective: 1200px;
  overflow: hidden;
}
.hero > *:not(.float-chip) { position: relative; z-index: 2; }
.hero .display { max-width: 900px; }
.hero .subhead { max-width: 640px; margin: 1.4rem auto 2.2rem; }
.hero-badge {
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.14);
  padding: 7px 16px; border-radius: 980px;
  font-size: 0.82rem; color: #d2d2d7; margin-bottom: 1.6rem;
  backdrop-filter: blur(10px);
}
.hero-badge .eu-star { color: var(--gold-light); }
/* Rozetler AB Şeffaflık Sicili'ndeki kaydımıza açılır: tıklanabilir olduğu
   belli olsun diye hafif bir hover, ama altı çizili link görünümü olmadan. */
a.hero-badge, a.eu-badge { text-decoration: none; transition: background 0.2s var(--ease), border-color 0.2s var(--ease); }
a.hero-badge:hover { background: rgba(255,255,255,0.14); border-color: rgba(255,255,255,0.26); text-decoration: none; }
a.eu-badge:hover { background: rgba(255,255,255,0.09); border-color: rgba(255,255,255,0.3); text-decoration: none; }
.hero-ctas { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
.gradient-text {
  background: linear-gradient(100deg, #a8cdf0 0%, #5b93c9 55%, #3e6e96 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

/* ---------- Hero başlık: Apple tarzı harf saçılma (scatter) animasyonu ---------- */
.hero-line1, .hero-line2 { display: inline-block; }
.hero-answer { display: none; }
.hero .display .hero-answer { white-space: normal; } /* uzun cevap satırı tam boyutta kalır, gerekirse sarar */
/* Başlık+alt metin bloğu: min-height JS'te sabitlenir; içerik üstten hizalı olduğundan
   geçişte ilk satır asla kaymaz, CTA butonları da yerinden oynamaz */
#heroTextBlock { display: flex; flex-direction: column; justify-content: flex-start; align-items: center; }
/* Alt metin hero'da KALIR (denetim Y2): sitenin ne yaptığını anlatan tek cümle
   o. Eskiden 2,5 saniyede blur'lanıp `display:none` ile siliniyordu; sayfaya
   üç saniye sonra bakan herkes ürünü açıklayan metni hiç görmüyordu.
   Gizleme kuralı (`#heroSubhead.hide`) bu yüzden kaldırıldı. */
/* Harf parçacıkları: JS her harfi .hchar span'ına böler ve transform/blur değerlerini atar.
   .hword sarmalayıcısı kelimelerin harf ortasından bölünmesini engeller. */
.hword { display: inline-block; white-space: nowrap; }
.hchar {
  display: inline-block;
  transition: transform 0.69s cubic-bezier(0.16,1,0.3,1), opacity 0.69s cubic-bezier(0.16,1,0.3,1), filter 0.69s cubic-bezier(0.16,1,0.3,1);
  will-change: transform, opacity, filter;
}
/* background-clip:text, transform'lu alt span'larda kırılır — gradyan her harfe, satır
   genelindeki konumuna göre dilimlenerek uygulanır (background-size/position JS'te atanır) */
.gradient-text .hchar {
  background-image: linear-gradient(100deg, #a8cdf0 0%, #5b93c9 55%, #3e6e96 100%);
  background-repeat: no-repeat;
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
/* Nokta/soru işareti: genişlik baştan "?" genişliğine göre rezerve edilir — geçişte satır kaymaz */
.hero-dot {
  display: inline-block; width: 0.62em; text-align: left;
  transition: opacity 0.25s ease, transform 0.25s ease;
}
.hero-dot.flip { opacity: 0; transform: scale(0.3); }
/* EP rozet metni yalnızca mobilde iki satıra kırılır */
@media (min-width: 861px) { .bp-m { display: none; } }
/* Mobil hero CTA sırası: "409 Bölümü Gör" üstte, simülasyon altta */
@media (max-width: 860px) {
  .hero-ctas { flex-direction: column; align-items: center; }
  .hero-ctas .btn-ghost { order: 1; }
  .hero-ctas .btn-primary { order: 2; }
}

/* ---------- 3D Logo (brand emblem) ---------- */
.logo-scene {
  width: 280px; height: 260px; margin: 0 auto 1.4rem;
  perspective: 1000px; position: relative;
}
.logo3d {
  width: 100%; height: 100%; position: relative;
  transform-style: preserve-3d;
  animation: logoFloat 9s ease-in-out infinite;
  transition: transform 0.3s var(--ease);
}
@keyframes logoFloat {
  0%, 100% { transform: rotateX(14deg) rotateY(-12deg) translateZ(0); }
  33% { transform: rotateX(6deg) rotateY(10deg) translateZ(22px); }
  66% { transform: rotateX(12deg) rotateY(-2deg) translateZ(8px); }
}
/* Original logo, untouched: cap static, star ring revolves around its own circle center.
   A STATIC conic mask hides the sector behind the cap, so stars fade out there and re-emerge. */
.logo-orig { position: relative; width: 100%; height: 100%; }
.logo-orig img, .logo-orig .star-mask {
  position: absolute; inset: 0; width: 100%; height: 100%;
}
.logo-orig img { object-fit: contain; }
.star-mask {
  /* Kepin altındaki yıldızları gizler + bir sektörü %45 karartıp gölge/derinlik
     hissi verir. (Sabit görünen "ölü yıldız" bu maske değildi; emblem-cap.webp'ye
     gömülü başıboş bir yıldızdı, kaynaktan silindi.) */
  -webkit-mask-image: conic-gradient(from 180deg at 49.9% 49.9%,
    #000 0deg, #000 58deg, rgba(0,0,0,0.45) 70deg, transparent 82deg, transparent 195deg, rgba(0,0,0,0.45) 210deg, #000 224deg, #000 360deg);
  mask-image: conic-gradient(from 180deg at 49.9% 49.9%,
    #000 0deg, #000 58deg, rgba(0,0,0,0.45) 70deg, transparent 82deg, transparent 195deg, rgba(0,0,0,0.45) 210deg, #000 224deg, #000 360deg);
}
.logo-orig .lo-stars {
  transform-origin: 49.9% 49.9%;
  animation: starsRevolve 36s linear infinite;
}
@keyframes starsRevolve { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .logo-orig .lo-stars, .mini-logo .mini-mask img { animation: none; }
}
/* legacy alias kept for pages using old markup */
.cap-scene {
  width: 260px; height: 210px; margin: 0 auto 1.2rem;
  perspective: 1100px; position: relative;
}
.cap-3d {
  width: 100%; height: 100%; position: relative;
  transform-style: preserve-3d;
  animation: capFloat 9s ease-in-out infinite;
}
@keyframes capFloat {
  0%, 100% { transform: rotateX(62deg) rotateZ(-14deg) translateZ(0); }
  33% { transform: rotateX(55deg) rotateZ(2deg) translateZ(14px); }
  66% { transform: rotateX(59deg) rotateZ(10deg) translateZ(6px); }
}
/* skullcap: 8-sided tapered drum */
.cap-skull {
  position: absolute; left: 50%; top: 42%; width: 0; height: 0;
  transform-style: preserve-3d;
  transform: translateZ(-40px);
}
.cap-skull .sk {
  position: absolute; left: -22px; top: -52px;
  width: 44px; height: 52px;
  background: linear-gradient(180deg, #26262b 0%, #101013 100%);
  transform-origin: bottom center;
}
.cap-skull .sk:nth-child(1) { transform: rotateZ(0deg)   translateY(-50px) rotateX(95deg); }
.cap-skull .sk:nth-child(2) { transform: rotateZ(45deg)  translateY(-50px) rotateX(95deg); }
.cap-skull .sk:nth-child(3) { transform: rotateZ(90deg)  translateY(-50px) rotateX(95deg); }
.cap-skull .sk:nth-child(4) { transform: rotateZ(135deg) translateY(-50px) rotateX(95deg); }
.cap-skull .sk:nth-child(5) { transform: rotateZ(180deg) translateY(-50px) rotateX(95deg); }
.cap-skull .sk:nth-child(6) { transform: rotateZ(225deg) translateY(-50px) rotateX(95deg); }
.cap-skull .sk:nth-child(7) { transform: rotateZ(270deg) translateY(-50px) rotateX(95deg); }
.cap-skull .sk:nth-child(8) { transform: rotateZ(315deg) translateY(-50px) rotateX(95deg); }
/* alternate facet shading for roundness */
.cap-skull .sk:nth-child(odd)  { background: linear-gradient(180deg, #2e2e34 0%, #141417 100%); }
.cap-skull .sk:nth-child(2), .cap-skull .sk:nth-child(3) { background: linear-gradient(180deg, #3a3a41 0%, #1a1a1e 100%); }
.cap-skull .sk:nth-child(6), .cap-skull .sk:nth-child(7) { background: linear-gradient(180deg, #1a1a1d 0%, #0b0b0d 100%); }
/* headband rim */
.cap-rim {
  position: absolute; left: 50%; top: 42%;
  width: 118px; height: 118px; margin: -59px;
  border-radius: 50%;
  background: transparent;
  border: 5px solid #0c0c0e;
  box-shadow: 0 0 0 2px rgba(255,255,255,0.04), inset 0 0 12px rgba(0,0,0,0.8);
  transform: translateZ(-52px);
}
/* mortarboard */
.cap-board {
  position: absolute; left: 50%; top: 42%;
  width: 190px; height: 190px; margin: -95px;
  transform-style: preserve-3d;
  transform: rotateZ(45deg);
}
.cap-board .face {
  position: absolute; inset: 0; border-radius: 8px;
}
.cap-board .face.bottom {
  transform: translateZ(-5px);
  background: #0d0d0f;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.9);
}
.cap-board .face.top {
  transform: translateZ(5px);
  background:
    radial-gradient(ellipse 120% 90% at 30% 25%, #3d3d45 0%, #26262b 45%, #17171a 100%);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.07);
  overflow: hidden;
}
/* moving light sheen across fabric */
.cap-board .sheen {
  position: absolute; inset: -60%;
  background: linear-gradient(115deg, transparent 42%, rgba(255,255,255,0.10) 50%, transparent 58%);
  animation: sheenMove 9s ease-in-out infinite;
}
@keyframes sheenMove {
  0%, 100% { transform: translateX(-24%) translateY(-10%); }
  50% { transform: translateX(24%) translateY(10%); }
}
/* stitched cross seams */
.cap-board .stitch {
  position: absolute; inset: 14px; border-radius: 5px;
  border: 1px dashed rgba(255,255,255,0.10);
}
.cap-board .stitch::before, .cap-board .stitch::after {
  content: ""; position: absolute; background: rgba(0,0,0,0.35);
}
.cap-board .stitch::before { left: 50%; top: 0; bottom: 0; width: 1px; }
.cap-board .stitch::after { top: 50%; left: 0; right: 0; height: 1px; }
/* board edge thickness (4 sides) */
.cap-board .edge {
  position: absolute; background: linear-gradient(180deg, #2c2c32, #101013);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.09);
}
.cap-board .edge.e1 { left: 0; right: 0; top: 0; height: 10px; transform-origin: top; transform: rotateX(-90deg) translateZ(0px); }
.cap-board .edge.e2 { left: 0; right: 0; bottom: 0; height: 10px; transform-origin: bottom; transform: rotateX(90deg); background: linear-gradient(180deg, #141417, #060608); }
.cap-board .edge.e3 { top: 0; bottom: 0; left: 0; width: 10px; transform-origin: left; transform: rotateY(90deg); }
.cap-board .edge.e4 { top: 0; bottom: 0; right: 0; width: 10px; transform-origin: right; transform: rotateY(-90deg); background: linear-gradient(180deg, #18181c, #0a0a0c); }
/* covered center button */
.cap-button {
  position: absolute; left: 50%; top: 42%;
  width: 22px; height: 22px; margin: -11px;
  border-radius: 50%;
  background: radial-gradient(circle at 34% 30%, #4a4a52, #232328 60%, #121215);
  box-shadow: 0 1px 3px rgba(0,0,0,0.6);
  transform: translateZ(7px);
}
/* cord from button to board corner */
.tassel-cord {
  position: absolute; left: 50%; top: 42%;
  width: 96px; height: 2.5px; margin-top: -1px;
  transform-origin: left center;
  background: linear-gradient(90deg, #e6b400, #ffd23e);
  transform: translateZ(7px) rotateZ(38deg);
  border-radius: 2px;
}
/* hanging tassel: pivots from board corner, true vertical fall */
.cap-tassel {
  position: absolute; left: 50%; top: 42%;
  width: 3px; height: 84px;
  margin-left: -1.5px;
  transform-origin: top center;
  /* place at corner: cord end (96px at 38deg) */
  transform: translateZ(7px) translate(75px, 59px) rotateX(-62deg) rotateZ(4deg);
  background: linear-gradient(180deg, #ffd23e, #e6a800 70%, #d19a00);
  border-radius: 2px;
  animation: tasselSwing 9s ease-in-out infinite;
}
@keyframes tasselSwing {
  0%, 100% { transform: translateZ(7px) translate(75px, 59px) rotateX(-62deg) rotateZ(7deg); }
  33% { transform: translateZ(7px) translate(75px, 59px) rotateX(-66deg) rotateZ(-8deg); }
  66% { transform: translateZ(7px) translate(75px, 59px) rotateX(-60deg) rotateZ(3deg); }
}
.tassel-head {
  position: absolute; bottom: 16px; left: 50%;
  width: 9px; height: 12px; margin-left: -4.5px;
  background: linear-gradient(180deg, #ffdb5c, #e6a800);
  border-radius: 3px 3px 2px 2px;
  box-shadow: 0 1px 2px rgba(0,0,0,0.5);
}
.tassel-fringe {
  position: absolute; bottom: -6px; left: 50%; width: 16px; margin-left: -8px;
  display: flex; justify-content: space-between;
}
.tassel-fringe i {
  width: 1.6px; height: 22px;
  background: linear-gradient(180deg, #ffcc21, #cf9a00);
  border-radius: 1px;
  transform-origin: top;
}
.tassel-fringe i:nth-child(2n) { height: 20px; transform: rotateZ(3deg); }
.tassel-fringe i:nth-child(3n) { height: 23px; transform: rotateZ(-3deg); }
/* soft contact shadow below cap */
.cap-shadow {
  position: absolute; left: 50%; bottom: -6px;
  width: 190px; height: 34px; margin-left: -95px;
  background: radial-gradient(ellipse at center, rgba(0,0,0,0.55), transparent 70%);
  filter: blur(6px);
  animation: shadowPulse 9s ease-in-out infinite;
}
@keyframes shadowPulse {
  0%, 100% { transform: scale(1); opacity: 0.9; }
  33% { transform: scale(0.88); opacity: 0.6; }
  66% { transform: scale(0.95); opacity: 0.75; }
}

/* ---------- Floating 3D chips in hero ---------- */
.float-chip {
  position: absolute;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  backdrop-filter: blur(14px);
  border-radius: 16px; padding: 12px 18px;
  font-size: 0.85rem; color: #e8e8ed; font-weight: 500;
  transform-style: preserve-3d;
  animation: chipFloat 9s ease-in-out infinite;
  box-shadow: 0 20px 50px rgba(0,0,0,0.4);
  white-space: nowrap;
}
.float-chip b { display: block; font-size: 1.15rem; color: #fff; }
@keyframes chipFloat {
  0%, 100% { transform: translateY(0) rotateX(8deg) rotateY(-6deg); }
  50% { transform: translateY(-16px) rotateX(-4deg) rotateY(6deg); }
}
@media (max-width: 900px) { .float-chip { display: none; } }

/* ---------- Stats band ---------- */
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 30px; }
.stat b { font-size: clamp(2.4rem, 5vw, 3.6rem); font-weight: 700; letter-spacing: -0.03em; display: block;
  background: linear-gradient(180deg, #fff 20%, var(--gold-light)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.stat span { color: #a1a1a6; font-size: 0.95rem; }

/* ---------- Cards ---------- */
.grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 22px; }
.grid-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 22px; }
.card {
  background: var(--bg); border-radius: var(--radius-lg); padding: 40px 34px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.05);
  transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease);
  transform-style: preserve-3d;
  will-change: transform;
}
.card:hover { box-shadow: 0 24px 60px rgba(0,0,0,0.12); }
.card h3 { font-size: 1.35rem; margin-bottom: 0.6rem; letter-spacing: -0.015em; }
.card p { color: var(--gray); font-size: 0.98rem; line-height: 1.55; }
.card .icon3d {
  width: 58px; height: 58px; border-radius: 16px; margin-bottom: 1.2rem;
  display: grid; place-items: center; font-size: 1.7rem;
  background: linear-gradient(145deg, #eaf3ff, #d5e8ff);
  box-shadow: 0 8px 20px rgba(0,113,227,0.18), inset 0 1px 0 rgba(255,255,255,0.9);
  transform: translateZ(30px);
}
.card-dark {
  background: var(--bg-dark-2); color: #f5f5f7;
  box-shadow: 0 2px 12px rgba(0,0,0,0.4);
}
.card-dark p { color: #a1a1a6; }
.card-dark .icon3d { background: linear-gradient(145deg, #1f2c40, #14213a); box-shadow: 0 8px 20px rgba(0,0,0,0.5), inset 0 1px 0 rgba(255,255,255,0.08); }

/* tilt effect target */
.tilt { transition: transform 0.25s var(--ease), box-shadow 0.4s var(--ease); }

/* ---------- Belgium 3D map section ---------- */
.map-wrap {
  perspective: 1400px;
  display: flex; justify-content: center; padding: 20px 0;
}
.belgium-3d {
  transform-style: preserve-3d;
  transform: rotateX(22deg);
  transition: transform 0.5s var(--ease);
  filter: drop-shadow(0 34px 40px rgba(0, 0, 0, 0.45));
}
.belgium-3d svg { display: block; overflow: visible; }
.province {
  cursor: pointer;
  transition: filter 0.3s var(--ease), transform 0.3s var(--ease);
}
.province:hover { filter: brightness(1.25) saturate(1.15); transform: translateY(-6px); }
.city-pillar { cursor: pointer; transition: filter 0.25s; }
.city-pillar:hover { filter: brightness(1.4); }
.city-pillar .pulse { animation: pinPulse 2.6s ease-out infinite; transform-box: fill-box; transform-origin: center; }
@keyframes pinPulse {
  0% { transform: scale(0.6); opacity: 0.9; }
  70% { transform: scale(2.6); opacity: 0; }
  100% { transform: scale(2.6); opacity: 0; }
}
/* Outside city labels: fade + leader line draw-in, staggered */
.city-label { opacity: 0; }
.belgium-3d.labels-in .city-label {
  animation: labelIn 0.8s var(--ease) forwards;
  animation-delay: var(--d, 0s);
}
@keyframes labelIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.city-label .leader { stroke-dasharray: 400; stroke-dashoffset: 400; }
.belgium-3d.labels-in .city-label .leader {
  animation: leaderDraw 1.1s var(--ease) forwards;
  animation-delay: calc(var(--d, 0s) + 0.15s);
}
@keyframes leaderDraw { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) {
  .city-label { opacity: 1; }
  .city-label .leader { stroke-dasharray: none; stroke-dashoffset: 0; }
}
.map-legend { display: flex; gap: 22px; flex-wrap: wrap; justify-content: center; margin-top: 34px; color: #a1a1a6; font-size: 0.84rem; }
.map-legend span { display: inline-flex; align-items: center; gap: 8px; }
.map-legend i { width: 13px; height: 13px; border-radius: 4px; display: inline-block; }
.map-legend .pillar-demo { width: 3px; height: 16px; border-radius: 2px; background: linear-gradient(180deg, #5aa2ff, transparent); }
.map-tooltip {
  position: absolute; pointer-events: none;
  background: rgba(22,22,23,0.9); color: #fff; backdrop-filter: blur(10px);
  padding: 10px 16px; border-radius: 12px; font-size: 0.85rem;
  opacity: 0; transition: opacity 0.25s; z-index: 10;
  border: 1px solid rgba(255,255,255,0.15);
  transform: translate(-50%, -130%);
}
.map-tooltip b { display: block; font-size: 0.95rem; }
.map-tooltip span { color: #a1a1a6; font-size: 0.78rem; }

/* ---------- EU institutions 3D carousel ----------
   Dönen halka, kartları yanlara doğru 3B'de savurur; 320px'te kartın kenarı
   sayfa genişliğini ~74px aşıyordu ve bu taşmayı SAYFA seviyesindeki
   `html/body { overflow-x: clip }` gizliyordu. Kendi sahnesinde kırpılıyor:
   görsel sonuç aynı, ama taşma artık belgeye hiç ulaşmıyor.
   Dikey serbest bırakıldı ki kartların gölgeleri kesilmesin. */
.eu-scene {
  perspective: 1600px; height: 340px;
  display: flex; align-items: center; justify-content: center;
  overflow-x: clip; overflow-y: visible;
}
.eu-ring {
  position: relative; width: 260px; height: 260px;
  transform-style: preserve-3d;
  animation: euSpin 36s linear infinite;
}
.eu-ring:hover { animation-play-state: paused; }
@keyframes euSpin {
  from { transform: rotateY(0deg) rotateX(-6deg); }
  to { transform: rotateY(360deg) rotateX(-6deg); }
}
.eu-card {
  position: absolute; inset: 0;
  background: linear-gradient(155deg, rgba(255,255,255,0.97) 0%, rgba(238,243,249,0.94) 55%, rgba(223,232,242,0.92) 100%);
  border: 1px solid rgba(255,255,255,0.75);
  border-radius: 22px; padding: 26px;
  display: flex; flex-direction: column; justify-content: flex-end; gap: 6px;
  backface-visibility: hidden;
  box-shadow:
    0 34px 70px rgba(0,0,0,0.5),
    0 2px 8px rgba(11,30,61,0.10),
    inset 0 1px 0 rgba(255,255,255,0.95),
    inset 0 -1px 0 rgba(23,73,120,0.06);
  overflow: hidden;
}
.eu-card::before {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(120% 70% at 20% 0%, rgba(255,255,255,0.9) 0%, transparent 55%),
    radial-gradient(90% 60% at 85% 100%, rgba(143,193,240,0.16) 0%, transparent 60%);
  pointer-events: none;
}
.eu-card > * { position: relative; }
.eu-card .waffle3d {
  font-size: 3.6rem; align-self: center; margin: auto;
  filter: drop-shadow(0 10px 16px rgba(0,0,0,0.25));
  transform: translateZ(20px);
}
.eu-card .emoji { font-size: 2.4rem; margin-bottom: auto; }
.eu-card .logo {
  height: 88px; width: 100%; max-width: 94%; object-fit: contain;
  background: transparent; padding: 0;
  align-self: center; margin: auto auto 14px;
}
.eu-card b { color: var(--ink); font-size: 1.05rem; letter-spacing: -0.01em; }
.eu-card span { color: var(--ink-2); opacity: 0.75; font-size: 0.8rem; line-height: 1.4; }

/* ---------- Process timeline ---------- */
.timeline { counter-reset: step; display: grid; gap: 18px; }
.step {
  display: flex; gap: 24px; align-items: flex-start;
  background: #fff; border-radius: var(--radius); padding: 28px 30px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.05);
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.step:hover { transform: translateX(6px); box-shadow: 0 12px 34px rgba(0,0,0,0.1); }
.step::before {
  counter-increment: step; content: counter(step, decimal-leading-zero);
  font-size: 1.4rem; font-weight: 700; color: var(--blue);
  background: linear-gradient(145deg, #eaf3ff, #d5e8ff);
  min-width: 58px; height: 58px; border-radius: 16px;
  display: grid; place-items: center;
  box-shadow: 0 6px 16px rgba(0,113,227,0.15);
}
.step h3 { font-size: 1.15rem; margin-bottom: 4px; }
.step p { color: var(--gray); font-size: 0.95rem; line-height: 1.5; }

/* ---------- Search page ---------- */
.search-hero {
  background: radial-gradient(ellipse 70% 60% at 50% -20%, #12233f 0%, #000 65%);
  color: #f5f5f7; padding: 150px 22px 60px; text-align: center;
}
.search-box {
  max-width: 700px; margin: 2rem auto 0; position: relative;
}
.search-box input {
  width: 100%; padding: 18px 26px 18px 56px;
  border-radius: 980px; border: 1px solid rgba(255,255,255,0.18);
  background: rgba(255,255,255,0.1); backdrop-filter: blur(20px);
  color: #fff; font-size: 1.1rem; outline: none;
  transition: background 0.3s, border 0.3s, box-shadow 0.3s;
  font-family: inherit;
}
.search-box input::placeholder { color: rgba(255,255,255,0.5); }
.search-box input:focus { background: rgba(255,255,255,0.16); border-color: var(--blue); box-shadow: 0 0 0 4px rgba(0,113,227,0.25); }
.search-box .lens { position: absolute; left: 22px; top: 50%; transform: translateY(-50%); font-size: 1.2rem; opacity: 0.6; }
.filters {
  display: flex; gap: 10px; flex-wrap: wrap; justify-content: center;
  margin-top: 1.6rem;
}
.filters select, .filters .seg {
  background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.18);
  color: #fff; border-radius: 980px; padding: 9px 18px; font-size: 0.88rem;
  outline: none; cursor: pointer; font-family: inherit;
  backdrop-filter: blur(10px);
  appearance: none; -webkit-appearance: none;
}
.filters select option { color: #1d1d1f; }
.seg-group { display: inline-flex; background: rgba(255,255,255,0.1); border-radius: 980px; padding: 3px; border: 1px solid rgba(255,255,255,0.18); }
.seg-group button {
  border: none; background: transparent; color: rgba(255,255,255,0.75);
  padding: 8px 20px; border-radius: 980px; font-size: 0.88rem; cursor: pointer;
  transition: background 0.25s, color 0.25s; font-family: inherit; font-weight: 500;
}
.seg-group button.active { background: #fff; color: var(--ink); }
.clear-btn {
  background: transparent; border: 1px solid rgba(255,255,255,0.3);
  color: rgba(255,255,255,0.75); border-radius: 980px; padding: 9px 18px;
  font-size: 0.85rem; cursor: pointer; font-family: inherit;
  transition: background 0.2s, color 0.2s;
}
.clear-btn:hover { background: rgba(255,255,255,0.12); color: #fff; }
.prog-link { color: inherit; }
.prog-link:hover { color: var(--blue); text-decoration: none; }
.prog-link .ext { font-size: 0.8em; color: var(--blue); opacity: 0; transition: opacity 0.2s; }
.prog-card:hover .ext { opacity: 1; }
.result-meta { color: var(--gray); font-size: 0.92rem; margin: 26px 0 18px; }
.results { display: grid; gap: 14px; }
.prog-card {
  background: #fff; border-radius: var(--radius); padding: 24px 28px;
  display: grid; grid-template-columns: 1fr auto; gap: 6px 18px; align-items: center;
  box-shadow: 0 1px 6px rgba(0,0,0,0.05);
  transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease);
  animation: cardIn 0.5s var(--ease) backwards;
}
@keyframes cardIn { from { opacity: 0; transform: translateY(14px); } }
.prog-card:hover { transform: translateY(-3px) scale(1.008); box-shadow: 0 16px 40px rgba(0,0,0,0.1); }
.prog-card h3 { font-size: 1.12rem; letter-spacing: -0.01em; }
/* Türkçe bölüm adı — İngilizce başlığın altında, üniversite adının üstünde */
.prog-card .prog-tr { font-size: 0.84rem; color: var(--gray); margin: 3px 0 5px; letter-spacing: -0.005em; }
.prog-card .uni { color: var(--blue); font-size: 0.9rem; font-weight: 500; }
.prog-card .meta { grid-column: 1 / -1; display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.chip {
  font-size: 0.76rem; padding: 5px 12px; border-radius: 980px;
  background: var(--bg-soft); color: var(--ink-2); font-weight: 500;
}
.chip.level-bachelor { background: #e8f4e8; color: #1a7a2e; }
.chip.level-master { background: #e3edf7; color: #174978; }
.prog-card .price { font-size: 1.05rem; font-weight: 700; text-align: right; white-space: nowrap; }
.prog-card .price small { display: block; font-weight: 400; color: var(--gray); font-size: 0.72rem; }
.prog-card .price.price-eu { font-size: 0.82rem; font-weight: 600; color: var(--blue); margin-top: 4px; }
.prog-card .price.price-eu small { font-size: 0.66rem; }
.load-more { display: block; margin: 34px auto 0; }
.no-result { text-align: center; padding: 60px 0; color: var(--gray); }

/* ---------- FAQ ---------- */
details {
  background: #fff; border-radius: var(--radius); padding: 24px 30px; margin-bottom: 12px;
  transition: box-shadow 0.3s;
}
details:hover { box-shadow: 0 8px 24px rgba(0,0,0,0.07); }
details summary {
  font-weight: 600; font-size: 1.08rem; cursor: pointer; list-style: none;
  display: flex; justify-content: space-between; align-items: center;
}
details summary::-webkit-details-marker { display: none; }
details summary::after { content: "+"; font-size: 1.5rem; color: var(--blue); font-weight: 300; transition: transform 0.3s var(--ease); }
details[open] summary::after { transform: rotate(45deg); }
details p { margin-top: 14px; color: var(--gray); line-height: 1.6; }

/* ---------- Contact / footer ---------- */
.contact-band {
  background: linear-gradient(140deg, #0b1e3d 0%, #000 70%);
  color: #f5f5f7; text-align: center; border-radius: var(--radius-lg);
  padding: 80px 40px; max-width: 1100px; margin: 0 auto;
  box-shadow: 0 40px 100px rgba(0, 30, 80, 0.35);
}
footer { overflow-x: clip; background: var(--bg-soft); padding: 50px 22px 40px; font-size: 0.85rem; color: var(--gray); }
footer .cols { max-width: var(--maxw); margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 30px; }
footer h4 { color: var(--ink); font-size: 0.85rem; margin-bottom: 12px; }
footer ul { list-style: none; }
footer li { margin-bottom: 8px; }
footer a { color: var(--gray); }
footer a:hover { color: var(--blue); }
footer .fineprint { max-width: var(--maxw); margin: 34px auto 0; padding-top: 22px; border-top: 1px solid #d2d2d7; }

/* ---------- Scroll reveal ---------- */
.reveal { opacity: 0; transform: translateY(36px); transition: opacity 0.9s var(--ease), transform 0.9s var(--ease); }
.reveal.in { opacity: 1; transform: none; }
.reveal-d1 { transition-delay: 0.08s; }
.reveal-d2 { transition-delay: 0.16s; }
.reveal-d3 { transition-delay: 0.24s; }

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition-duration: 0.01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* ---------- Nav: burger + mobile menu ---------- */
.nav-burger {
  display: none; flex-direction: column; gap: 5px;
  background: none; border: 0; cursor: pointer; padding: 8px;
}
.nav-burger span { width: 20px; height: 2px; background: var(--ink); border-radius: 2px; transition: transform 0.3s var(--ease), opacity 0.2s; }
.nav.dark .nav-burger span { background: #f5f5f7; }
.nav.open .nav-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav.open .nav-burger span:nth-child(2) { opacity: 0; }
.nav.open .nav-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
@media (max-width: 860px) {
  .nav-burger { display: flex; position: relative; z-index: 2; }
  .nav-links {
    flex-direction: column; gap: 0;
    display: none;
  }
  .nav.open .nav-links { display: flex; }
  .nav-links li { width: 100%; }
}


/* Program detay sayfası — başlık altındaki Türkçe bölüm adı */
.prog-tr-name {
  font-size: clamp(0.95rem, 2vw, 1.12rem); font-weight: 500;
  color: #9ec7ff; margin-top: 10px; letter-spacing: -0.005em;
}


/* ---------- Program detay: üçlü kart (Hakkında · Koşullar · Meslek Portföyü) ---------- */
.prog-cards {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px;
  margin-bottom: 40px; align-items: stretch;
}
@media (max-width: 860px) { .prog-cards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .prog-cards { grid-template-columns: 1fr; } }
.prog-cards .card { padding: 26px 22px; display: flex; flex-direction: column; }
.prog-cards .card h3 { font-size: 1.18rem; margin-bottom: 0.55rem; }
.prog-cards .card p { font-size: 0.93rem; line-height: 1.6; color: var(--ink-2); }
/* Koşul / meslek listeleri */
.pc-list { list-style: none; margin: 0; padding: 0; }
.pc-list li {
  position: relative; padding-left: 20px; margin-bottom: 9px;
  font-size: 0.91rem; line-height: 1.55; color: var(--ink-2);
}
.pc-list li::before {
  content: ""; position: absolute; left: 0; top: 8px;
  width: 6px; height: 6px; border-radius: 50%; background: var(--blue);
}
.pc-list.careers li::before { background: #1a7a2e; }
.pc-label { display: block; font-size: 0.74rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--gray); margin: 14px 0 7px; }
.pc-label:first-of-type { margin-top: 4px; }
.pc-src { margin-top: auto; padding-top: 14px; font-size: 0.78rem; }
.pc-src a { color: var(--blue); text-decoration: none; }
.pc-src a:hover { text-decoration: underline; }
.pc-note { font-size: 0.86rem; color: var(--ink-2); line-height: 1.55; }
@media (max-width: 860px) {
  .prog-cards { gap: 16px; }
  .prog-cards .card { padding: 26px 22px; }
}


/* ---------- Mobil dokunma ve okunabilirlik (Apple HIG: min 44px hedef) ---------- */
@media (max-width: 760px) {
  /* Dokunma hedefleri en az 44px */
  .nav-burger { padding: 12px 10px; min-width: 44px; min-height: 44px; justify-content: center; }
  .filters select, .filters .seg, .filters-toggle,
  .seg-group button, .adm-field select, .adm-field input, .adm-nav button {
    min-height: 44px;
  }
  .filters select, .adm-field select { padding-top: 10px; padding-bottom: 10px; }
  .btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
  /* Program kartındaki üniversite linki daha rahat tıklanır */
  .prog-card .uni { display: inline-block; padding: 6px 0; }
  .prog-card .prog-link { display: inline-block; padding: 2px 0; }
  /* Küçük yazıları okunabilir tabana çek (min 12px) */
  .chip { font-size: 0.78rem; padding: 6px 12px; }
  .prog-card .prog-tr { font-size: 0.86rem; }
  .eu-badge { font-size: 0.78rem; }
  .pc-list li { font-size: 0.93rem; }
  /* Liste madde işaretleri hizası */
  .pc-list li::before { top: 9px; }
  /* Chat widget: 9.6px/11.2px yazılar mobilde okunmuyordu */
  .uda-disc { font-size: 0.72rem; max-width: 60%; }
  .uda-sub { font-size: 0.76rem; }
  /* Chat widget dokunma hedefleri */
  .uda-close { width: 40px; height: 40px; }
  .uda-form input { min-height: 44px; }
  .uda-form button { min-width: 44px; min-height: 44px; }
}
@media (max-width: 400px) {
  /* Çok dar ekranlarda yatay nefes payı */
  .prog-card { padding: 18px 15px; }
  .prog-cards .card { padding: 22px 18px; }
  .chip { font-size: 0.75rem; padding: 5px 10px; }
}


/* ---------- Ana sayfa: program arama (2×2 kart) ---------- */
.home-search {
  background: #000;                 /* mavi gradyan kaldırıldı — düz siyah */
  color: #f5f5f7; padding: 24px 22px 78px; text-align: center;
}
.home-search .headline { font-size: clamp(1.9rem, 4.5vw, 3rem); }
.home-search .search-box { margin-top: 1.8rem; }
.home-meta { color: #a1a1a6; font-size: 0.88rem; margin: 26px 0 16px; }
.home-results {
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
  max-width: 980px; margin: 0 auto; text-align: left;
}
/* Ana sayfa kartı: dikey akış (başlık → çipler → ücret) */
.home-results .prog-card {
  display: flex; flex-direction: column; gap: 12px;
  padding: 22px 24px; align-items: stretch;
  color: var(--ink);            /* koyu bölümden miras kalan açık rengi ez */
}
.home-results .prog-card h3, .home-results .prog-link { color: var(--ink); }
.home-card .uni-plain { color: var(--blue); font-size: 0.88rem; font-weight: 500; display: block; margin-top: 4px; }
/* Kartın her yeri tıklanabilir: başlık linki kartın tamamına yayılır */
.home-results .prog-card { position: relative; cursor: pointer; }
.home-card .prog-link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.home-results .prog-card:hover { transform: translateY(-3px); box-shadow: 0 18px 44px rgba(0,0,0,0.16); }
.home-card .meta { display: flex; flex-wrap: wrap; gap: 7px; }
.home-card .home-price {
  margin-top: auto; padding-top: 4px;
  font-size: 1.15rem; font-weight: 700; letter-spacing: -0.015em; color: var(--ink);
}
.home-card .home-price small { display: block; font-size: 0.72rem; font-weight: 400; color: var(--gray); letter-spacing: 0; }
.home-card h3 { font-size: 1.02rem; line-height: 1.35; }
@media (max-width: 720px) {
  .home-search { padding: 70px 18px 64px; }
  .home-results { grid-template-columns: 1fr; gap: 13px; }
}

/* İstatistikler — mavi ton (hero altından şehir bölümünün altına taşındı) */
.stats-blue .stat b {
  background: linear-gradient(180deg, #ffffff 15%, #a3c6ea);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}


/* Kart 2: mavi yönlendirme metinleri ve simülasyon butonu */
.pc-note-blue { color: var(--blue) !important; font-weight: 500; }
.pc-services { margin-top: 8px; font-size: 0.86rem; }
.pc-services a {
  display: inline-flex; align-items: center; gap: 6px;
  color: var(--blue); font-weight: 600; text-decoration: none;
}
.pc-services a:hover { text-decoration: none; }
.pc-arrow {
  display: inline-flex; align-items: center; justify-content: center;
  width: 24px; height: 24px; flex: none;
  border-radius: 50%; background: rgba(23,73,120,0.08); color: var(--blue);
  font-size: 0.86rem; line-height: 1;
  transition: background 0.2s, transform 0.2s;
}
.pc-services a:hover .pc-arrow { background: rgba(23,73,120,0.18); transform: translate(2px, -2px); }
/* "Ücretsiz Başvuru Simülasyonu" — mavi buton */
.pc-simbtn {
  display: inline-block; margin-top: 9px; padding: 8px 16px;
  border-radius: 980px; background: rgba(23,73,120,0.08);
  color: var(--blue); font-size: 0.8rem; font-weight: 600; text-decoration: none;
  transition: background 0.2s;
}
.pc-simbtn:hover { background: rgba(23,73,120,0.16); text-decoration: none; }


/* ---------- Kabul simülasyonu: "Nasıl hesaplıyoruz?" kartı ----------
   Üstteki simülasyon kartıyla aynı genişlik (900px) ve aynı köşe yarıçapı. */
.calc-band {
  max-width: 900px; margin: 0 auto; padding: 64px 52px;
  background: linear-gradient(150deg, #0b1e3d 0%, #000 72%);
  color: #f5f5f7; text-align: center;
  border-radius: var(--radius-lg);
  box-shadow: 0 30px 80px rgba(0, 30, 80, 0.30);
}
.calc-band h2 {
  font-size: clamp(2rem, 4.8vw, 2.9rem);
  letter-spacing: -0.024em; line-height: 1.1; margin: 12px 0 0;
}
.calc-band p {
  color: #a1a1a6;
  font-size: clamp(1.1rem, 2.2vw, 1.45rem);   /* hero alt metniyle aynı */
  line-height: 1.4; font-weight: 500;
  max-width: 780px; margin: 22px auto 0;
}
.calc-band b { color: #fff; font-weight: 600; }
.calc-band .eyebrow { font-size: 0.95rem; letter-spacing: 0.09em; }
/* Kapanış cümlesi: ince ayraçla ayrılır */
.calc-band .calc-kicker {
  margin-top: 30px; padding-top: 26px;
  border-top: 1px solid rgba(255,255,255,0.12);
  font-size: clamp(1.15rem, 2.4vw, 1.55rem);
}
@media (max-width: 760px) {
  /* Mobilde .subhead 1.02rem'e iniyor — kart gövdesi de aynı ölçekte kalsın */
  .calc-band p { font-size: 1.02rem; line-height: 1.5; }
  .calc-band .calc-kicker { font-size: 1.1rem; }
  .calc-band .eyebrow { font-size: 0.8rem; }
}
@media (max-width: 620px) {
  .calc-band { padding: 44px 24px; }
}


/* Brüksel halkası: karta gelince hafifçe büyür.
   Kartların satır içi 3D transformu olduğu için `scale` özelliği kullanılır —
   transform'u ezmez, onunla birlikte uygulanır. */
.eu-card { transition: scale 0.45s var(--ease), box-shadow 0.45s var(--ease); }
.eu-card:hover {
  scale: 1.07;
  box-shadow:
    0 46px 90px rgba(0,0,0,0.58),
    0 4px 14px rgba(11,30,61,0.16),
    inset 0 1px 0 rgba(255,255,255,0.98),
    inset 0 -1px 0 rgba(23,73,120,0.08);
}
/* Kartlar 3D dönerken tilt efekti yumuşak olsun */
.card, .cred, .plan { transform-style: preserve-3d; }
@media (prefers-reduced-motion: reduce) {
  .eu-card { transition: none; }
  .eu-card:hover { scale: 1; }
}

/* ---------- Site footer ---------- */
.site-footer {
  background: radial-gradient(ellipse 80% 60% at 50% -10%, #12233f 0%, #000 62%);
  color: #c8cdd6; padding: 44px 22px 24px;
  border-top: 1px solid rgba(255,255,255,0.08);
}
.foot-cols {
  max-width: 1180px; margin: 0 auto;
  display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr 1.3fr; gap: 28px 30px;
}
@media (max-width: 1000px) { .foot-cols { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .foot-cols { grid-template-columns: 1fr; } }
.foot-brand img { margin-bottom: 14px; }
.foot-brand p { font-size: 0.88rem; line-height: 1.6; color: #9aa3b2; }
.eu-badge {
  display: inline-flex; align-items: center; gap: 10px;
  margin-top: 14px; padding: 9px 14px;
  border: 1px solid rgba(255,255,255,0.18); border-radius: 14px;
  background: rgba(255,255,255,0.04);
  color: #d2d2d7; font-size: 0.72rem; font-weight: 600;
  line-height: 1.45; text-align: left; max-width: 100%;
}
.eu-badge span { white-space: nowrap; }
.eu-badge img { height: 26px !important; width: auto !important; flex: none; margin: 0 !important; vertical-align: middle !important; }
/* Sütun başlıkları h4 iken sayfa başlığından (h2) sonra bir seviye atlıyordu;
   h3'e çekildi. Boyut/renk burada açıkça verildiği için görünüm değişmez. */
.site-footer h3, .site-footer h4 { color: #fff; font-size: 0.9rem; margin-bottom: 11px; letter-spacing: 0.02em; font-weight: 700; }
.site-footer ul { list-style: none; }
.site-footer li { margin-bottom: 7px; }
.site-footer a { color: #9aa3b2; font-size: 0.88rem; transition: color 0.2s; }
.site-footer a:hover { color: #ffffff; text-decoration: none; }
.foot-cta .btn { display: inline-block; }
.foot-cta .hours { font-size: 0.8rem; color: #9aa3b2; margin-top: 12px; }
.foot-bottom {
  max-width: 1180px; margin: 28px auto 0; padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,0.1);
  display: flex; flex-wrap: wrap; gap: 10px 26px;
  font-size: 0.78rem; color: #7d8593;
}
/* #5d6472 siyah üzerinde 3.53:1 idi — 0.78rem gövde metni için AA altı.
   #8b93a2 → 6.79:1. */
.foot-bottom .foot-note { flex-basis: 100%; color: #8b93a2; }


/* ---------- Buttons on dark backgrounds: light-blue for contrast ---------- */
.hero .btn-primary, .section-dark .btn-primary, .search-hero .btn-primary,
.prog-hero .btn-primary, .contact-band .btn-primary, .site-footer .btn-primary {
  background: #a3c6ea; color: #0b2540; font-weight: 600;
}
.hero .btn-primary:hover, .section-dark .btn-primary:hover, .search-hero .btn-primary:hover,
.prog-hero .btn-primary:hover, .contact-band .btn-primary:hover, .site-footer .btn-primary:hover {
  background: #bcd6f2; box-shadow: 0 8px 30px rgba(163, 198, 234, 0.35);
}
.nav.dark .nav-cta { background: #a3c6ea; color: #0b2540 !important; }
.nav.dark .nav-cta:hover { background: #bcd6f2; }

/* ---------- Mini rotating logo (nav + footer) ---------- */
.mini-logo { position: relative; display: inline-block; flex: none; }
.mini-logo img, .mini-logo .mini-mask { position: absolute; inset: 0; width: 100%; height: 100%; }
.mini-logo img { object-fit: contain; }
.mini-logo .mini-mask {
  -webkit-mask-image: conic-gradient(from 180deg at 49.9% 49.9%,
    #000 0deg, #000 58deg, rgba(0,0,0,0.45) 70deg, transparent 82deg, transparent 195deg, rgba(0,0,0,0.45) 210deg, #000 224deg, #000 360deg);
  mask-image: conic-gradient(from 180deg at 49.9% 49.9%,
    #000 0deg, #000 58deg, rgba(0,0,0,0.45) 70deg, transparent 82deg, transparent 195deg, rgba(0,0,0,0.45) 210deg, #000 224deg, #000 360deg);
}
.mini-logo .mini-mask img {
  transform-origin: 49.9% 49.9%;
  animation: starsRevolve 36s linear infinite;
}
.nav-logo .wordmark { display: inline-flex; font-size: 1.18rem; font-weight: 800; letter-spacing: -0.02em; }
.foot-logo { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }

/* ---------- Uni page filters (light background) ---------- */
.uni-filters { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 22px; }
.uni-filters select {
  background: #fff; border: 1px solid #d2d2d7; color: var(--ink);
  border-radius: 980px; padding: 10px 18px; font-size: 0.88rem;
  font-family: inherit; outline: none; cursor: pointer;
  appearance: none; -webkit-appearance: none;
  transition: border 0.2s, box-shadow 0.2s;
}
.uni-filters select:focus { border-color: var(--blue); box-shadow: 0 0 0 4px rgba(23,73,120,0.12); }

/* ============ Mobile responsive pass ============ */
@media (max-width: 760px) {
  section { padding: 64px 18px; }
  .display { font-size: clamp(2.1rem, 9vw, 2.8rem); }
  .headline { font-size: clamp(1.55rem, 6.5vw, 2.1rem); }
  .subhead { font-size: 1.02rem; line-height: 1.5; }
  .eyebrow { font-size: 0.74rem; }

  .hero { padding: 108px 18px 64px; min-height: auto; }
  .logo-scene { width: 210px; height: 195px; margin-bottom: 1rem; }
  .hero .subhead { margin: 1.1rem auto 1.7rem; }
  .hero-ctas { gap: 10px; }
  .hero-ctas .btn { padding: 12px 22px; font-size: 0.95rem; }

  .stats { grid-template-columns: 1fr 1fr; gap: 22px 12px; }
  .stat b { font-size: 2.1rem; }
  .stat span { font-size: 0.82rem; }

  .card { padding: 26px 22px; }
  .card h3 { font-size: 1.15rem; }
  .card p { font-size: 0.92rem; }
  .card .icon3d { width: 48px; height: 48px; font-size: 1.4rem; border-radius: 13px; margin-bottom: 0.9rem; }

  .step { padding: 20px 18px; gap: 16px; }
  .step::before { min-width: 44px; height: 44px; font-size: 1.05rem; border-radius: 12px; }
  .step h3 { font-size: 1.02rem; }
  .step p { font-size: 0.88rem; }

  /* EU ring: smaller cards, tighter orbit */
  .eu-scene { height: 270px; }
  .eu-ring { width: 190px; height: 200px; }
  .eu-card { padding: 18px; border-radius: 18px; }
  .eu-card .logo { height: 58px; }
  .eu-card b { font-size: 0.9rem; }
  .eu-card span { font-size: 0.72rem; }
  .eu-card .waffle3d { font-size: 2.6rem; }

  /* Map */
  .map-wrap { padding: 0; }
  .map-legend { gap: 12px 16px; font-size: 0.76rem; margin-top: 22px; }

  /* Search page */
  .search-hero { padding: 110px 18px 50px; }
  .search-box input { padding: 15px 20px 15px 48px; font-size: 1rem; }
  .search-box .lens { left: 18px; font-size: 1rem; }
  .filters { gap: 8px; }
  .filters select, .clear-btn { flex: 1 1 45%; text-align: center; padding: 9px 10px; font-size: 0.82rem; }
  .seg-group { flex: 1 1 100%; justify-content: center; }
  .seg-group button { flex: 1; padding: 9px 8px; }

  /* Program cards: stack price under title */
  .prog-card { grid-template-columns: 1fr; gap: 8px; padding: 20px 18px; }
  .prog-card h3 { font-size: 1.02rem; }
  .prog-card .price { text-align: left; font-size: 1rem; }
  .prog-card .price small { display: inline; margin-left: 6px; }
  .chip { font-size: 0.78rem; padding: 6px 11px; }

  /* Pricing */
  .plan { padding: 28px 22px; }
  .plan .price { font-size: 2rem; }

  /* Uni & program pages */
  .uni-hero { min-height: 48vh; padding: 110px 18px 40px; }
  .facts .chip { font-size: 0.78rem; }
  .keyfacts { grid-template-columns: 1fr 1fr; gap: 10px; }
  .kf { padding: 14px; }
  .kf b { font-size: 1.05rem; }
  .map-embed { height: 250px; }
  .video-wrap { border-radius: 18px; }
  .uni-filters select { flex: 1 1 45%; font-size: 0.82rem; padding: 9px 12px; }

  /* Contact band & footer */
  .contact-band { padding: 48px 22px; border-radius: 20px; }
  .contact-form { padding: 26px 20px; }
  .site-footer { padding: 36px 18px 22px; }
  .foot-bottom { font-size: 0.72rem; gap: 8px 18px; }
  /* Künye satırındaki bağlantılar (Eurovia VZW, Unidanışmanlık) `.site-footer a`'nın
     genel 0.88rem tabanını miras alıp metinden %22 büyük görünüyordu. Metinle
     aynı boyuta indirip yalnızca ~%8 büyütme + kalınlıkla ayırt ediliyor. */
  .foot-bottom a { font-size: 0.78rem; font-weight: 700; }
  .office iframe { height: 210px; }

  details { padding: 18px 20px; }
  details summary { font-size: 0.95rem; }
  details p { font-size: 0.9rem; }
  .cost-table th, .cost-table td { padding: 11px 12px; font-size: 0.8rem; }
}

@media (max-width: 340px) {
  .filters select, .clear-btn, .uni-filters select { flex-basis: 100%; }
}

/* ---------- Apple-style collapsible filters ---------- */
.filters-primary { align-items: center; }
.filters-toggle {
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.18);
  color: #fff; border-radius: 980px; padding: 9px 18px; font-size: 0.88rem;
  font-family: inherit; font-weight: 500; cursor: pointer;
  backdrop-filter: blur(10px);
  transition: background 0.25s, border 0.25s;
}
.filters-toggle:hover { background: rgba(255,255,255,0.16); }
.filters-toggle.active { background: #fff; color: var(--ink); border-color: #fff; }
.fcount[hidden] { display: none; }
.fcount {
  background: var(--blue); color: #fff; font-size: 0.7rem; font-weight: 700;
  min-width: 18px; height: 18px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center; padding: 0 5px;
}
.filters-toggle.active .fcount { background: var(--blue); }
.adv-filters {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
  gap: 10px; max-width: 860px; margin: 0 auto;
  overflow: hidden; opacity: 0; transform: translateY(-8px);
  visibility: hidden; max-height: 0; margin-top: 0;
  /* Yükseklik animasyonu yok: layout tetikleyen max-height GEÇİŞİ kaldırıldı.
     Panel opacity+transform ile belirir (compositor dostu); kutu anında açılır.
     Kapanışta max-height/margin çöküşü 0.35s gecikmeli tek sıçrama (süre 0s):
     içerik yerinde solup kaybolur, kutu ancak ondan sonra kapanır.
     (height:auto↔0 interpolasyon yapamadığı için gecikmeyi yok sayar;
     bu yüzden sayısal max-height kullanılıyor — 600px her içeriği aşar.) */
  transition: opacity 0.35s var(--ease), transform 0.35s var(--ease),
    visibility 0s 0.35s, max-height 0s 0.35s, margin-top 0s 0.35s;
}
.adv-filters.open {
  opacity: 1; transform: none; visibility: visible; max-height: 600px;
  margin-top: 14px;
  transition: opacity 0.35s var(--ease), transform 0.35s var(--ease), visibility 0s;
}
.adv-filters select, .adv-filters .clear-btn {
  background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.18);
  color: #fff; border-radius: 14px; padding: 11px 14px; font-size: 0.86rem;
  font-family: inherit; outline: none; cursor: pointer;
  appearance: none; -webkit-appearance: none;
  backdrop-filter: blur(10px); text-align: left;
}
.adv-filters select option { color: #1d1d1f; }
.adv-filters .clear-btn { text-align: center; }
@media (max-width: 760px) {
  /* `1fr` = minmax(auto, 1fr) ve bir <select>'in otomatik alt sınırı EN UZUN
     seçeneğinin genişliğidir ("Vrije Universiteit Brussel (VUB)" gibi). Bu
     yüzden panel 320px'lik kapta ~560px'e şişiyor, ikinci sütun (Şehir, Tür,
     Bütçe) overflow:hidden altında tamamen görünmez ve kullanılamaz oluyordu.
     minmax(0,1fr) + min-width:0 alt sınırı kaldırır. */
  .adv-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .adv-filters select, .adv-filters .clear-btn {
    min-width: 0; text-overflow: ellipsis;
  }
  .filters-primary select#fSort { flex: 1 1 auto; }
}
/* En dar telefonlarda iki sütun okunmaz hale geliyor; tek sütuna in. */
@media (max-width: 430px) {
  .adv-filters { grid-template-columns: 1fr; }
}

/* ---------- Header: %20 larger on desktop + smooth color transitions ---------- */
.nav-logo .w-uni, .nav-logo .w-dan, .nav-links a, .nav-burger span {
  transition: color 0.4s var(--ease), background 0.4s var(--ease);
}
@media (min-width: 861px) {
  .nav-inner { height: 58px; padding: 0 26px; max-width: 1180px; }
  .nav-logo .wordmark { font-size: 1.42rem; }
  .nav-logo .mini-logo { width: 36px !important; height: 36px !important; }
  .nav-links { gap: 30px; }
  .nav-links a { font-size: 0.9rem; }
  .nav-cta { font-size: 0.92rem !important; padding: 8px 18px; }
}

/* ---------- Mobile menu: Eurovia-style full-page overlay ---------- */
@media (max-width: 860px) {
  .nav-links {
    position: fixed; inset: 0;
    height: 100vh; height: 100dvh;
    padding: 92px 28px 40px;
    background: rgba(8, 10, 14, 0.96);
    backdrop-filter: blur(30px) saturate(160%);
    -webkit-backdrop-filter: blur(30px) saturate(160%);
    overflow-y: auto;
    justify-content: flex-start;
  }
  .nav:not(.dark) .nav-links { background: rgba(248, 249, 252, 0.97); }
  /* keep logo + burger visible above the overlay */
  .nav.open .nav-inner { position: relative; z-index: 3; }
  .nav.open { background: transparent; }
  .nav-links a {
    font-size: 1.7rem !important; font-weight: 700; letter-spacing: -0.022em;
    padding: 17px 0; border-bottom: 1px solid rgba(128,128,128,0.14);
    display: block;
  }
  .nav.open .nav-links li {
    opacity: 0; transform: translateY(18px);
    animation: menuItemIn 0.5s var(--ease) forwards;
  }
  .nav.open .nav-links li:nth-child(1) { animation-delay: 0.05s; }
  .nav.open .nav-links li:nth-child(2) { animation-delay: 0.10s; }
  .nav.open .nav-links li:nth-child(3) { animation-delay: 0.15s; }
  .nav.open .nav-links li:nth-child(4) { animation-delay: 0.20s; }
  .nav.open .nav-links li:nth-child(5) { animation-delay: 0.25s; }
  .nav.open .nav-links li:nth-child(6) { animation-delay: 0.31s; }
  .nav-links .nav-cta {
    font-size: 1.05rem !important; padding: 15px 0; margin-top: 26px;
    border-radius: 980px; text-align: center; border-bottom: 0;
  }
}
@keyframes menuItemIn { to { opacity: 1; transform: none; } }
body.menu-open { overflow: hidden; }

/* Map slightly larger on mobile */
@media (max-width: 760px) {
  .map-wrap { margin-left: -10px; margin-right: -10px; }
}

/* ---------- PC hero: fit everything above the fold, gradient line on one row ---------- */
@media (min-width: 861px) {
  .hero { padding: 92px 22px 40px; }
  .logo-scene { width: 225px; height: 208px; margin-top: -18px; margin-bottom: 1.1rem; }
  .hero-badge { margin-bottom: 1.1rem; }
  .hero .display { font-size: clamp(2.4rem, 4.4vw, 4rem); }
  .hero .gradient-text { white-space: nowrap; }
  .hero .subhead { margin: 0.9rem auto 1.6rem; font-size: 1.2rem; }
}

/* ============ AI Asistan — Apple tarzı (sağ alt) ============ */
.uda-chat { position: fixed; right: 22px; bottom: 22px; z-index: 3000; font-family: inherit; }

/* Balon */
.uda-bubble {
  display: inline-flex; align-items: center; gap: 10px;
  background: rgba(29,29,31,0.86);
  backdrop-filter: blur(20px) saturate(180%); -webkit-backdrop-filter: blur(20px) saturate(180%);
  color: #f5f5f7; border: 1px solid rgba(255,255,255,0.12);
  padding: 13px 20px 13px 15px; border-radius: 980px;
  font-family: inherit; font-size: 0.92rem; font-weight: 600; letter-spacing: -0.01em;
  cursor: pointer; position: relative;
  box-shadow: 0 12px 34px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.1);
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease), opacity 0.25s;
  animation: udaIn 0.6s var(--ease) 1.2s backwards;
}
@keyframes udaIn { from { opacity: 0; transform: translateY(18px) scale(0.9); } }
.uda-bubble:hover { transform: translateY(-3px); box-shadow: 0 18px 44px rgba(0,0,0,0.45); }
.uda-bubble:active { transform: scale(0.97); }
.uda-bubble.hidden { opacity: 0; pointer-events: none; transform: scale(0.85); }
.uda-bubble-icon { font-size: 1.25rem; line-height: 1; display: inline-grid; place-items: center; }
.uda-bubble-icon img { width: 24px; height: 24px; object-fit: contain; display: block; filter: drop-shadow(0 1px 2px rgba(0,0,0,0.35)); }
.uda-dot {
  position: absolute; top: 10px; right: 12px; width: 8px; height: 8px; border-radius: 50%;
  background: #30d158; box-shadow: 0 0 0 0 rgba(48,209,88,0.6);
  animation: udaPulse 2.4s ease-out infinite;
}
@keyframes udaPulse { 70% { box-shadow: 0 0 0 9px rgba(48,209,88,0); } 100% { box-shadow: 0 0 0 0 rgba(48,209,88,0); } }

/* Panel: buzlu cam, tek parça açık yüzey */
.uda-panel {
  position: absolute; right: 0; bottom: 0;
  width: min(400px, calc(100vw - 32px));
  height: min(620px, calc(100dvh - 120px));
  display: flex; flex-direction: column; overflow: hidden;
  background: rgba(250,250,252,0.92);
  backdrop-filter: blur(40px) saturate(190%); -webkit-backdrop-filter: blur(40px) saturate(190%);
  border: 1px solid rgba(0,0,0,0.06); border-radius: 26px;
  box-shadow: 0 40px 90px rgba(0,0,0,0.28), 0 2px 12px rgba(0,0,0,0.08);
  opacity: 0; transform: translateY(24px) scale(0.94); pointer-events: none;
  transform-origin: bottom right;
  transition: opacity 0.35s var(--ease), transform 0.45s cubic-bezier(0.32, 0.72, 0, 1);
  padding: 0; margin: 0;   /* global `section` dolgusunu ez */
}
.uda-panel.open { opacity: 1; transform: none; pointer-events: auto; }

/* Alt sayfanın arkasındaki karartma — YALNIZCA mobilde (bkz. 640px bloğu).
   Masaüstünde panel köşede duran küçük bir kart; orada sayfayı karartmak
   ölçüsüz olurdu ve arkadaki içerikle çalışmayı engellerdi. */
.uda-scrim {
  display: none;
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.32);
  -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
  opacity: 0; pointer-events: none;
  transition: opacity 0.35s var(--ease);
}

/* Başlık: iMessage tarzı — ortalanmış kişi kartı */
.uda-head {
  position: relative; flex: none;
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  padding: 14px 16px 10px;
  background: rgba(255,255,255,0.65); color: var(--ink);
  border-bottom: 1px solid rgba(0,0,0,0.07);
}
/* Logo şeffaf: kutu/çip görünümü yok, amblem doğrudan yüzeyin üstünde */
.uda-avatar {
  width: 48px; height: 48px; border-radius: 0; flex: none;
  display: grid; place-items: center; font-size: 1.3rem; overflow: visible;
  background: none; box-shadow: none;
  margin-bottom: 3px;
}
.uda-avatar img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 2px 4px rgba(23,73,120,0.22)); }
.uda-head b { font-size: 0.92rem; font-weight: 600; letter-spacing: -0.01em; color: var(--ink); }
.uda-sub { display: flex; align-items: center; gap: 5px; font-size: 0.76rem; color: var(--gray); }
.uda-live { width: 6px; height: 6px; border-radius: 50%; background: #30d158; display: inline-block; }
.uda-close {
  position: absolute; top: 12px; right: 12px;
  background: rgba(0,0,0,0.05); border: 0; color: #6e6e73; cursor: pointer;
  width: 28px; height: 28px; border-radius: 50%; flex: none;
  display: grid; place-items: center;
  transition: background 0.2s, color 0.2s;
}
.uda-close:hover { background: rgba(0,0,0,0.1); color: var(--ink); }

/* Mesajlar: iMessage düzeni (kuyruklu balonlar) */
.uda-log { flex: 1; overflow-y: auto; padding: 16px 14px 8px; display: flex; flex-direction: column; gap: 6px; }
.uda-msg {
  position: relative;
  max-width: 78%; padding: 9px 14px; border-radius: 18px;
  font-size: 0.94rem; line-height: 1.4; word-wrap: break-word;
  animation: udaMsg 0.4s cubic-bezier(0.32, 0.72, 0, 1) backwards;
}
@keyframes udaMsg { from { opacity: 0; transform: translateY(10px) scale(0.97); } }
.uda-bot { align-self: flex-start; background: #e9e9eb; color: #000; }
.uda-user { align-self: flex-end; background: linear-gradient(180deg, #3b9bff, #0a7cff); color: #fff; }
/* iMessage kuyrukları */
.uda-bot::before {
  content: ""; position: absolute; left: -6px; bottom: 0; width: 13px; height: 14px;
  background: radial-gradient(13px 14px at 0 0, transparent 12px, #e9e9eb 12.5px);
}
.uda-user::before {
  content: ""; position: absolute; right: -6px; bottom: 0; width: 13px; height: 14px;
  background: radial-gradient(13px 14px at 13px 0, transparent 12px, #0a7cff 12.5px);
}
/* peş peşe aynı taraf mesajlarda kuyruk yalnızca sonuncuda */
.uda-bot:has(+ .uda-bot)::before, .uda-user:has(+ .uda-user)::before { display: none; }
.uda-bot + .uda-bot, .uda-user + .uda-user { margin-top: -2px; }
.uda-msg a { color: var(--blue); font-weight: 600; text-decoration: none; }
.uda-msg a:hover { text-decoration: underline; }
.uda-user a { color: #cfe4fb; }
.uda-msg ul { margin: 6px 0 0; padding-left: 16px; }
.uda-msg li { margin-bottom: 4px; }
.uda-msg strong { font-weight: 650; }

.uda-typing { display: inline-flex; gap: 4px; padding: 2px 0; }
.uda-typing i { width: 7px; height: 7px; border-radius: 50%; background: #a8a8ad; animation: udaBlink 1.3s ease-in-out infinite; }
.uda-typing i:nth-child(2) { animation-delay: 0.18s; }
.uda-typing i:nth-child(3) { animation-delay: 0.36s; }
@keyframes udaBlink { 0%,60%,100% { opacity: 0.3; transform: translateY(0); } 30% { opacity: 1; transform: translateY(-3px); } }

/* Seçenek çipleri: mesaj akışının içinde, bot tarafında */
.uda-options {
  align-self: flex-start; max-width: 92%;
  display: flex; flex-wrap: wrap; gap: 8px; padding: 2px 0 4px;
}
.uda-options button {
  background: rgba(255,255,255,0.9); border: 1px solid rgba(23,73,120,0.28);
  color: var(--blue); border-radius: 980px; padding: 9px 15px;
  font-family: inherit; font-size: 0.84rem; font-weight: 500; cursor: pointer; text-align: left;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
  transition: background 0.2s, border 0.2s, transform 0.15s;
  animation: udaMsg 0.4s cubic-bezier(0.32, 0.72, 0, 1) backwards;
  animation-delay: calc(var(--i, 0) * 0.05s);
}
.uda-options button:hover { background: rgba(23,73,120,0.08); border-color: var(--blue); }
.uda-options button:active { transform: scale(0.96); }

/* Giriş: alttaki yüzeyde yüzen alan */
.uda-form { display: flex; gap: 8px; padding: 10px 14px; flex: none; border-top: 1px solid rgba(0,0,0,0.06); background: rgba(255,255,255,0.55); }
.uda-form input {
  flex: 1; min-width: 0; border: 1px solid rgba(0,0,0,0.12); background: rgba(255,255,255,0.9);
  border-radius: 980px; padding: 11px 17px; font-family: inherit; font-size: 0.92rem;
  outline: none; transition: border 0.2s, box-shadow 0.2s;
}
.uda-form input:focus { border-color: var(--blue); box-shadow: 0 0 0 4px rgba(23,73,120,0.1); }
.uda-form button {
  flex: none; width: 40px; height: 40px; border-radius: 50%; border: 0; cursor: pointer;
  background: var(--blue); color: #fff; display: grid; place-items: center;
  transition: background 0.2s, transform 0.15s;
}
.uda-form button:hover { background: var(--blue-hover); }
.uda-form button:active { transform: scale(0.93); }

/* Alt bölüm: tek kompakt satır — sohbet alanına maksimum yer */
.uda-foot {
  flex: none; background: rgba(255,255,255,0.55);
  display: flex; align-items: center; justify-content: center; gap: 10px;
  padding: 0 14px 8px;
}
.uda-wa {
  flex: none; display: inline-flex; align-items: center;
  font-size: 0.72rem; font-weight: 600; color: #128c7e;
  padding: 4px 10px; border-radius: 980px; background: rgba(18,140,126,0.08);
  transition: background 0.2s;
}
.uda-wa:hover { background: rgba(18,140,126,0.16); text-decoration: none; }
.uda-disc { font-size: 0.72rem; color: var(--gray); line-height: 1.3; text-align: left; max-width: 55%; padding: 0; margin: 0; }

/* Program kartları: sohbet içinde zengin sonuçlar */
.uda-cards { align-self: stretch; display: flex; flex-direction: column; gap: 8px; padding: 2px 0; }
.uda-card {
  display: flex; flex-direction: column; gap: 3px;
  background: rgba(255,255,255,0.92);
  border: 1px solid rgba(0,0,0,0.07); border-radius: 16px;
  padding: 12px 14px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  animation: udaMsg 0.4s cubic-bezier(0.32, 0.72, 0, 1) backwards;
  animation-delay: calc(var(--i, 0) * 0.06s);
}
.uda-card b { font-size: 0.9rem; font-weight: 650; letter-spacing: -0.01em; color: var(--ink); line-height: 1.3; }
.uda-card-uni { font-size: 0.8rem; color: var(--blue); font-weight: 550; }
.uda-card-meta { font-size: 0.78rem; color: var(--gray); }
.uda-card-meta small { font-size: 0.9em; }
.uda-card-cta {
  margin-top: 6px; align-self: flex-start;
  font-size: 0.8rem; font-weight: 600; color: var(--blue);
  padding: 6px 12px; border-radius: 980px;
  background: rgba(23,73,120,0.08);
  transition: background 0.2s;
}
.uda-card-cta:hover { background: rgba(23,73,120,0.16); text-decoration: none; }
.uda-cards-more { font-size: 0.76rem; color: var(--gray); margin: 0; padding: 2px 4px 0; }

/* Araç çalışırken ince durum satırı */
.uda-status {
  align-self: flex-start; display: inline-flex; align-items: center; gap: 7px;
  font-size: 0.78rem; color: var(--gray); padding: 4px 6px;
  animation: udaMsg 0.3s ease backwards;
}
.uda-status::before {
  content: ""; width: 10px; height: 10px; border-radius: 50%; flex: none;
  border: 1.5px solid rgba(23,73,120,0.25); border-top-color: var(--blue);
  animation: udaSpin 0.8s linear infinite;
}
@keyframes udaSpin { to { transform: rotate(360deg); } }

@media (max-width: 760px) {
  .uda-chat { right: 14px; bottom: 14px; }
  .uda-bubble { padding: 12px; }
  .uda-bubble-text { display: none; }
  .uda-bubble-icon { font-size: 1.4rem; }
  .uda-panel {
    position: fixed; inset: auto 10px 10px 10px; width: auto;
    height: min(80dvh, 640px); border-radius: 24px;
  }
  .uda-options button { font-size: 0.8rem; padding: 8px 13px; }
}
/* Mobil: KISMİ yükseklikte, kenarlardan boşluklu YÜZEN kart.
   Tam ekran değil — sayfanın üst şeridi ve yanları görünür kalır, böylece panel
   "yeni bir ekran" değil, üzerine açılmış bir katman gibi okunur ve kullanıcı
   nereden geldiğini kaybetmez. Ekran kenarına yapışık DEĞİL: yanlarda boşluk
   varken alt kenarın yapışık kalması yarım görünürdü, o yüzden dört köşe de
   yuvarlak. Yükseklik `.uda-panel.open` içinde görsel viewport ile sınırlanır
   (klavye açılınca kart klavyenin üstünde kalsın diye). */
@media (max-width: 640px) {
  .uda-panel {
    /* Kenar boşluğu tek yerden: yükseklik sınırı da (aşağıdaki .open kuralı)
       bunu kullanıyor, ikisi ayrışmasın. */
    --uda-gap: 14px;
    inset: auto var(--uda-gap) calc(var(--uda-gap) + env(safe-area-inset-bottom, 0px)) var(--uda-gap);
    width: auto;
    height: min(82dvh, 620px);
    border-radius: 26px;
    border: 1px solid rgba(0,0,0,0.06);
    box-shadow: 0 18px 60px rgba(0,0,0,0.34);
    transform: translateY(calc(100% + var(--uda-gap) + env(safe-area-inset-bottom, 0px)));
    transform-origin: bottom center;
  }
  .uda-panel.open { transform: none; }
  .uda-scrim { display: block; }
  body.uda-open .uda-scrim { opacity: 1; pointer-events: auto; }
  /* Tutamaç: bunun bir sayfa değil, kapatılabilir bir katman olduğunu söyler. */
  .uda-head { padding-top: 20px; }
  .uda-head::before {
    content: ""; position: absolute; top: 8px; left: 50%;
    width: 36px; height: 5px; margin-left: -18px;
    border-radius: 3px; background: rgba(0,0,0,0.16);
  }
  /* Çentik güvenli alanı ARTIK GEREKMİYOR: sayfa alta yapışık, üstü çentiğe
     değmiyor. Bırakılsaydı başlığın üstünde sebepsiz bir boşluk kalırdı. */
  .uda-close { top: 14px; }
  /* Alt bölüm (WhatsApp + uyarı) kaldırıldı; güvenli alan boşluğunu artık
     panelin en alttaki öğesi olan form taşıyor — yoksa iPhone'da giriş alanı
     ana ekran çubuğunun altında kalıyor. */
  .uda-form { padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px)); }
}
@media (prefers-reduced-motion: reduce) { .uda-bubble, .uda-msg, .uda-dot, .uda-options button { animation: none !important; } }

/* ============================================================
   Kabul Simülasyonu — Apple tarzı çok adımlı akış + giriş + sonuç
   ============================================================ */
.adm-shell { max-width: 900px; margin: 0 auto; }

/* İlerleme çubuğu */
.adm-steplabel { display: flex; justify-content: space-between; font-size: 0.76rem; color: var(--gray); margin-bottom: 0.6rem; }
.adm-steplabel b { color: var(--blue); font-weight: 600; }
.adm-progress { display: flex; gap: 6px; margin-bottom: 2rem; }
.adm-progress .seg { flex: 1; height: 4px; border-radius: 3px; background: #e4e4e8; overflow: hidden; }
.adm-progress .seg i {
  display: block; height: 100%; width: 100%; background: var(--blue);
  transform: scaleX(0); transform-origin: left;
  transition: transform 0.4s var(--ease);
}
.adm-progress .seg.done i { transform: scaleX(1); }
.adm-progress .seg.active i { transform: scaleX(0.55); }

/* Kart */
.adm-card {
  background: #fff; border-radius: var(--radius-lg); padding: 36px;
  box-shadow: 0 2px 16px rgba(0,0,0,0.05); border: 1px solid #ececef;
  animation: cardIn 0.45s var(--ease) backwards;
}
.adm-card h2 { font-size: 1.35rem; margin-bottom: 6px; letter-spacing: -0.015em; }
.adm-card .adm-sub { color: var(--gray); font-size: 0.92rem; margin-bottom: 1.6rem; }

/* Form alanları */
.adm-field { margin-bottom: 16px; }
.adm-field label { display: block; font-size: 0.84rem; font-weight: 600; color: var(--ink-2); margin-bottom: 6px; }
.adm-field input[type="text"], .adm-field input[type="email"], .adm-field input[type="tel"],
.adm-field input[type="number"], .adm-field input[type="password"], .adm-field select, .adm-field textarea {
  width: 100%; padding: 12px 15px; border-radius: 12px; border: 1px solid #dcdce1;
  font-family: inherit; font-size: 0.94rem; color: var(--ink); outline: none;
  transition: border 0.2s, box-shadow 0.2s; background: #fff;
}
.adm-field textarea { min-height: 120px; resize: vertical; line-height: 1.5; }
.adm-field input:focus, .adm-field select:focus, .adm-field textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 4px rgba(23,73,120,0.1); }
.adm-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 560px) { .adm-row2 { grid-template-columns: 1fr; } }

/* Seçim çipleri */
.adm-choice-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.adm-choice {
  border: 1.5px solid #dcdce1; border-radius: 14px; padding: 13px 15px; cursor: pointer;
  font-size: 0.88rem; font-weight: 500; text-align: center; transition: border 0.2s, background 0.2s;
  background: #fff; user-select: none; line-height: 1.3;
  display: flex; align-items: center; justify-content: center;
}
.adm-choice:hover { border-color: var(--blue); }
/* Seçim yalnızca renk/çerçeve/gölge ile gösterilir — font kalınlığı değişmez ki
   yazı satır atlayıp butonu büyütmesin (boyut kayması olmaz). */
.adm-choice.selected {
  border-color: var(--blue); background: rgba(23,73,120,0.08); color: var(--blue);
  box-shadow: inset 0 0 0 1px var(--blue);
}

/* Dosya yükleme satırları */
.adm-doc-row {
  display: flex; align-items: center; gap: 12px; padding: 13px 16px; border-radius: 14px;
  background: var(--bg-soft); font-size: 0.88rem; margin-bottom: 10px;
}
.adm-doc-row .dot { width: 8px; height: 8px; border-radius: 50%; flex: none; background: #d2d2d7; }
.adm-doc-row.ok .dot { background: #1a7a2e; }
.adm-doc-row .name { flex: 1; font-weight: 500; }
.adm-doc-row .file { color: var(--gray); font-size: 0.78rem; max-width: 130px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.adm-doc-row button { background: none; border: 1px solid var(--blue); color: var(--blue); font-size: 0.78rem; font-weight: 600; cursor: pointer; font-family: inherit; border-radius: 980px; padding: 6px 14px; transition: background 0.2s; }
.adm-doc-row button:hover { background: rgba(23,73,120,0.07); }

.adm-privacy {
  display: flex; gap: 10px; align-items: flex-start; background: rgba(23,73,120,0.05);
  border-radius: 12px; padding: 13px 15px; font-size: 0.78rem; color: var(--ink-2); line-height: 1.5; margin-top: 14px;
}
.adm-privacy svg { flex: none; color: var(--blue); margin-top: 1px; }

/* Gezinme */
/* Simülasyon sayfasındaki ana butonlar nav'daki "Ücretsiz Görüşme" CTA'sıyla aynı dili konuşur */
.adm-shell .btn-primary {
  background: #a3c6ea; color: #0b2540;
  transition: background 0.2s, transform 0.15s;
}
.adm-shell .btn-primary:hover { background: #bcd6f2; color: #0b2540; }
.adm-shell .btn-primary:active { transform: scale(0.97); }
.adm-nav { display: flex; justify-content: space-between; gap: 12px; margin-top: 1.8rem; }
.adm-nav .btn-back { background: none; border: 1px solid #dcdce1; color: var(--ink-2); padding: 12px 22px; border-radius: 980px; font-family: inherit; font-size: 0.92rem; font-weight: 500; cursor: pointer; transition: border 0.2s; }
.adm-nav .btn-back:hover { border-color: var(--ink); }
.adm-nav .btn-back:disabled { opacity: 0.35; cursor: default; }

/* Giriş / kayıt */
.adm-auth-tabs { display: flex; background: var(--bg-soft); border-radius: 980px; padding: 4px; margin-bottom: 1.6rem; }
.adm-auth-tabs button { flex: 1; border: 0; background: transparent; padding: 10px; border-radius: 980px; font-family: inherit; font-size: 0.9rem; font-weight: 600; color: var(--gray); cursor: pointer; transition: background 0.25s, color 0.25s; }
.adm-auth-tabs button.active { background: #fff; color: var(--ink); box-shadow: 0 2px 8px rgba(0,0,0,0.08); }
.adm-user-pill {
  display: flex; align-items: center; gap: 12px; width: 100%;
  background: #fff; border: 1px solid #ececef; border-radius: 16px;
  padding: 12px 16px; margin: 28px 0 1.2rem;
  box-shadow: 0 1px 4px rgba(0,0,0,0.04);
}
.adm-user-pill .avatar {
  width: 38px; height: 38px; border-radius: 50%; flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--blue) 0%, #2d6da8 100%);
  color: #fff; font-size: 0.82rem; font-weight: 700; letter-spacing: 0.02em;
}
.adm-user-pill .who { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.adm-user-pill .who b { font-size: 0.9rem; color: var(--ink); font-weight: 600; }
.adm-user-pill .who i { font-style: normal; font-size: 0.76rem; color: var(--gray); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.adm-user-pill button {
  margin-left: auto; flex: none; background: none; cursor: pointer; font-family: inherit;
  border: 1px solid #dcdce1; border-radius: 980px; padding: 7px 16px;
  font-size: 0.78rem; font-weight: 600; color: var(--ink-2);
  transition: border 0.2s, background 0.2s;
}
.adm-user-pill button:hover { border-color: var(--blue); color: var(--blue); background: rgba(23,73,120,0.05); }

/* Sonuç: skor göstergesi */
.adm-result-hero { text-align: center; margin-bottom: 2rem; }
.adm-gauge { width: 190px; height: 190px; margin: 0 auto 1rem; position: relative; }
.adm-gauge svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.adm-gauge circle { fill: none; stroke-width: 12; }
.adm-gauge .track { stroke: #ececef; }
.adm-gauge .fill { stroke: var(--blue); stroke-linecap: round; transition: stroke-dashoffset 1.4s var(--ease); }
.adm-gauge .ghost { stroke: rgba(23,73,120,0.18); stroke-linecap: round; stroke-dasharray: 4 7; }
.adm-gauge .num { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.adm-gauge .num b { font-size: 2.8rem; font-weight: 700; letter-spacing: -0.03em; }
.adm-gauge .num span { font-size: 0.76rem; color: var(--gray); }
.adm-potential { font-size: 0.85rem; color: var(--blue); font-weight: 600; margin-top: 4px; }

/* Blur'lu eksikler */
.adm-chance { background: linear-gradient(180deg, #f3f7fb 0%, #eaf1f8 100%); border: 1px solid #dce7f2; border-radius: var(--radius); padding: 28px 26px; margin: 0 0 20px; text-align: center; }
.adm-chance-num { font-size: 3.4rem; font-weight: 700; letter-spacing: -0.03em; color: #174978; line-height: 1; }
.adm-chance-line { font-size: 1rem; color: var(--ink-2); margin-top: 12px; line-height: 1.55; }
.adm-chance-line b { color: #174978; }
.adm-chance-sub { font-size: 0.82rem; color: var(--gray); margin-top: 6px; }
.adm-gaps { background: #fff; border: 1px solid #ececef; border-radius: var(--radius); padding: 24px 26px; margin-bottom: 16px; position: relative; overflow: hidden; }
.adm-gaps h3 { font-size: 1rem; margin-bottom: 12px; }
.adm-gaps ul { list-style: none; display: grid; gap: 9px; }
.adm-gaps li { font-size: 0.9rem; color: #a63a2e; display: flex; gap: 9px; align-items: flex-start; line-height: 1.5; }
.adm-gaps li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #c0392b; flex: none; margin-top: 7px; }
.adm-gaps .blurred { filter: blur(6px); user-select: none; pointer-events: none; }
.adm-gaps .lock-overlay {
  position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
  background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.88) 45%, rgba(255,255,255,0.96) 100%);
  font-size: 0.9rem; color: var(--ink-2); font-weight: 500; text-align: center; padding: 20px;
}
.adm-gaps .lock-overlay .lock-ico { font-size: 1.5rem; }

/* Ödeme / upsell kartları */
.adm-offer-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 1.6rem 0; }
@media (max-width: 640px) { .adm-offer-grid { grid-template-columns: 1fr; } }
.adm-offer {
  background: #fff; border: 1.5px solid #ececef; border-radius: var(--radius); padding: 26px;
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease), border 0.2s;
  display: flex; flex-direction: column;
}
.adm-offer:hover { transform: translateY(-3px); box-shadow: 0 16px 44px rgba(0,0,0,0.09); }
.adm-offer.featured { border-color: var(--blue); box-shadow: 0 10px 34px rgba(23,73,120,0.12); }
.adm-offer .tag { display: inline-block; align-self: flex-start; font-size: 0.66rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--blue); background: rgba(23,73,120,0.08); padding: 4px 10px; border-radius: 980px; margin-bottom: 10px; }
.adm-offer h4 { font-size: 1.02rem; margin-bottom: 6px; letter-spacing: -0.01em; }
.adm-offer p { font-size: 0.85rem; color: var(--gray); line-height: 1.5; flex: 1; }
.adm-offer .price { font-size: 1.7rem; font-weight: 700; letter-spacing: -0.02em; margin: 12px 0; }
/* Fiyat + buton HER ZAMAN kartın altına sabitlenir. Aksi halde iki kartın
   açıklama metinleri farklı uzunlukta olduğunda butonlar farklı hizalara
   düşüyordu (250 € kartının metni uzatılınca yaşandı). Metin uzunluğu artık
   yerleşimi bozamaz. */
.adm-offer-grid { align-items: stretch; }
.adm-offer .price { margin-top: auto; }
.adm-offer .price small { font-size: 0.72rem; font-weight: 500; color: var(--gray); }
.adm-offer .btn { text-align: center; }

/* Sertifika bandı */
.adm-cert-band {
  background: linear-gradient(140deg, #0b1e3d 0%, #000 70%); color: #f5f5f7;
  border-radius: var(--radius-lg); padding: 40px 34px; margin-top: 1.6rem; text-align: center;
}
.adm-cert-band .plus20 { font-size: 2rem; font-weight: 700; color: #a3c6ea; letter-spacing: -0.02em; }
.adm-cert-band h3 { font-size: 1.3rem; margin: 6px 0 10px; letter-spacing: -0.015em; }
.adm-cert-band p { color: #a1a1a6; max-width: 520px; margin: 0 auto 1.4rem; font-size: 0.92rem; line-height: 1.6; }
.adm-cert-band .price-line { color: #fff; font-weight: 700; font-size: 1.1rem; margin-bottom: 1.2rem; }

.adm-disclaimer { font-size: 0.76rem; color: var(--gray); text-align: center; max-width: 560px; margin: 1.6rem auto 0; line-height: 1.55; }

@media (max-width: 640px) { .adm-card { padding: 24px 20px; } }

/* Okul/üniversite arama sonuç satırları */
.adm-school-row { transition: background 0.15s; }
.adm-school-row:hover { background: rgba(23,73,120,0.06); }
.adm-school-row:last-child { border-bottom: 0 !important; }

/* ---- Footer hukuki bağlantı satırı ---- */
.foot-legal {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 22px;
  padding: 22px 20px 0; margin-top: 8px;
  border-top: 1px solid rgba(255,255,255,0.1);
}
.foot-legal a {
  font-size: 0.82rem; color: rgba(255,255,255,0.62); text-decoration: none;
  transition: color 0.25s var(--ease);
}
.foot-legal a:hover { color: #fff; }
@media (max-width: 600px) {
  .foot-legal { gap: 10px 16px; padding-top: 18px; }
  .foot-legal a { font-size: 0.8rem; }
}

/* ---------- Ofis haritası (3B Mapbox turu) ---------- */
.ofis-panel {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 46px;
  align-items: center;
  padding: 44px;
  background: #fff;
  border-radius: var(--radius-lg);
  box-shadow: 0 2px 20px rgba(0, 0, 0, 0.06);
}
.ofis-map {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius);
  aspect-ratio: 4 / 3;
  background: var(--bg-soft);
}
.ofis-map-canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.ofis-map-fallback { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* mapboxgl.Marker kök elemanı — kesinlikle stilsiz kalmalı (transform ve
   animation yok). Mapbox burayı satır içi transform ile konumlandırıyor;
   bu elemana verilecek bir CSS animation cascade'i kazanır ve marker'ı
   yanlış yerde dondurur. Görsel ve animasyon iç elemanda yaşıyor. */
.ofis-marker-root { display: block; }

/* Pin'in ucu binanın tam üstüne çakılı duruyor (JS'te anchor: 'bottom');
   isim etiketi onun hemen üstünde yüzüyor. Arka planı yalnızca etiket
   taşır — pin, gölgeli düz bir emoji. */
.ofis-marker {
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  animation: ofisEtiketGir 0.45s cubic-bezier(0.34, 1.4, 0.64, 1) both;
}
.ofis-marker-name {
  padding: 6px 14px;
  white-space: nowrap;
  color: #fff;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: -0.005em;
  background: rgba(29, 29, 31, 0.88);
  border-left: 4px solid var(--tag-color, var(--blue));
  border-radius: 980px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}
.ofis-marker-name { transition: opacity 0.35s var(--ease), transform 0.35s var(--ease); }
/* Kuşbakışı karede isim etiketleri çakışıyor; pin ve süre rozeti kalsın. */
.ofis-marker--kompakt .ofis-marker-name {
  opacity: 0;
  transform: translateY(5px) scale(0.9);
  pointer-events: none;
}
.ofis-marker-pin { font-size: 34px; line-height: 1; filter: drop-shadow(0 6px 8px rgba(0, 0, 0, 0.32)); }
.ofis-marker--final .ofis-marker-name {
  padding: 7px 16px; color: var(--ink); font-size: 0.8rem;
  background: #fff; box-shadow: 0 10px 26px rgba(0, 0, 0, 0.28);
}
.ofis-marker--final .ofis-marker-pin { font-size: 38px; }

.ofis-route-duration {
  padding: 4px 10px;
  color: #fff; font-size: 0.69rem; font-weight: 700; white-space: nowrap;
  background: var(--tag-color, var(--blue));
  border: 2px solid #fff; border-radius: 980px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.28);
  animation: ofisEtiketGir 0.4s cubic-bezier(0.34, 1.4, 0.64, 1) both;
}

.ofis-map-address {
  position: absolute; top: 18px; left: 18px; z-index: 2;
  display: flex; flex-direction: column;
  padding: 10px 16px;
  color: var(--ink); font-size: 0.82rem; font-weight: 600; line-height: 1.45;
  background: rgba(255, 255, 255, 0.82);
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  border-radius: 14px;
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.16);
  animation: ofisEtiketGir 0.5s cubic-bezier(0.34, 1.4, 0.64, 1) both;
}

@keyframes ofisEtiketGir {
  from { opacity: 0; transform: translateY(-8px) scale(0.9); }
  to   { opacity: 1; transform: none; }
}

.ofis-map-badge {
  position: absolute; left: 18px; bottom: 18px; z-index: 2;
  padding: 11px 20px;
  color: var(--ink); font-size: 0.85rem; font-weight: 600;
  background: rgba(255, 255, 255, 0.82);
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  border-radius: 980px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.16);
  transition: transform 0.25s var(--ease);
}
@media (hover: hover) and (pointer: fine) {
  .ofis-map-badge:hover { transform: translateY(-2px); }
}
.ofis-map-badge:active { transform: scale(0.97); }

/* Tipografi sitenin kendi sisteminden geliyor: .eyebrow / .headline / .subhead
   ve SF Pro. Vurgu Apple'ın yaptığı gibi renk+ağırlıkla, serif italikle değil. */
.ofis-copy .headline { margin-bottom: 1.1rem; }
.ofis-vurgu { color: var(--blue); }
.ofis-copy .subhead { font-size: 1.02rem; line-height: 1.6; color: var(--ink-2); margin-bottom: 1.5rem; }

.ofis-facts { list-style: none; margin: 0 0 1.7rem; padding: 0; display: grid; gap: 11px; }
.ofis-facts li {
  display: flex; align-items: baseline; gap: 14px;
  font-size: 0.95rem; line-height: 1.5; color: var(--ink-2);
  letter-spacing: -0.003em;
}
.ofis-facts b {
  flex: none; min-width: 54px;
  color: var(--blue); font-weight: 600;
  font-variant-numeric: tabular-nums;
}

/* Dört satır aynı anda belirince liste "yapıştırılmış" gibi duruyor;
   kısa bir gecikme merdiveni okuma sırasını da veriyor. */
.ofis-panel.in .ofis-facts li { animation: ofisFactGir 0.5s var(--ease) backwards; }
.ofis-panel.in .ofis-facts li:nth-child(1) { animation-delay: 0.14s; }
.ofis-panel.in .ofis-facts li:nth-child(2) { animation-delay: 0.20s; }
.ofis-panel.in .ofis-facts li:nth-child(3) { animation-delay: 0.26s; }
.ofis-panel.in .ofis-facts li:nth-child(4) { animation-delay: 0.32s; }
@keyframes ofisFactGir {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: none; }
}

@media (max-width: 900px) {
  .ofis-panel { grid-template-columns: 1fr; gap: 30px; padding: 26px; }
  .ofis-map { aspect-ratio: 16 / 11; }
}
@media (max-width: 560px) {
  .ofis-map { aspect-ratio: 4 / 5; }
  .ofis-map-address { top: 12px; right: 12px; left: 12px; padding: 9px 12px; font-size: 0.76rem; }
  .ofis-map-badge { left: 12px; bottom: 12px; padding: 10px 16px; font-size: 0.8rem; }
}

@media (prefers-reduced-motion: reduce) {
  /* Kamera turu JS tarafında zaten kapatılıyor; burada etiketlerin
     pop hareketini de sadece sönümlemeye indiriyoruz. */
  .ofis-marker, .ofis-route-duration, .ofis-map-address {
    animation: ofisEtiketSonuk 0.25s var(--ease) both;
  }
  .ofis-panel.in .ofis-facts li { animation: ofisEtiketSonuk 0.25s var(--ease) backwards; }
  .ofis-map-badge { transition: none; }
}
@keyframes ofisEtiketSonuk { from { opacity: 0; } to { opacity: 1; } }

/* ---- Mobile hardening (2026-08) ---- */

/* Tablolar: yatay kaydırma sarmalayıcısı (vize.html vb.) */
.table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }
table { max-width: 100%; }
@media (max-width: 768px) {
  .table-wrap .cost-table { min-width: 560px; } /* sütunlar ezilmesin, kaydırılsın */
}

/* Görseller / gömülü içerik taşmasın */
iframe, video, svg, embed, object { max-width: 100%; }

@media (max-width: 768px) {
  /* Taşma sigortası: uzun kelimeler ve linkler satır kırar */
  h1, h2, h3, h4, p, li, a, .card, .prog-card, .uda-msg { overflow-wrap: break-word; }
  .prog-card h3, .card h3 { hyphens: auto; }

  /* iOS odak zoom'unu önle: form alanları en az 16px.
     NOT: .adm-field kuralı `input[type="text"]` ile yazıldığı için (0,2,1),
     düz `.adm-field input` (0,1,1) onu ezemiyordu — nitelik seçicileri şart. */
  input[type="text"], input[type="email"], input[type="tel"], input[type="number"],
  input[type="password"], input[type="search"], select, textarea,
  .uda-form input, .adm-field input, .adm-field select, .adm-field textarea,
  .adm-field input[type="text"], .adm-field input[type="email"], .adm-field input[type="tel"],
  .adm-field input[type="number"], .adm-field input[type="password"], .adm-field input[type="search"],
  .filters select, .adv-filters select, .uni-filters select,
  body .contact-form input, body .contact-form select, body .contact-form textarea,
  body .pf-field input, body .pf-field select {
    font-size: 16px;
  }
  .search-box input { font-size: 16px; }

  /* Chat widget (sabit sağ alt): çentikli cihazlarda güvenli alan */
  .uda-chat {
    right: calc(14px + env(safe-area-inset-right, 0px));
    bottom: calc(14px + env(safe-area-inset-bottom, 0px));
  }
}
/* Sohbet paneli yalnızca 641–768px'te "yüzen kart" olarak kalır.
   ≤640px'te panel tam ekran bir alt sayfadır (bkz. @media max-width:640px);
   burada inset'i ezmek `width:100%` ile birleşip 10px yatay taşma yaratıyordu. */
@media (min-width: 641px) and (max-width: 768px) {
  .uda-panel {
    inset: auto 10px calc(10px + env(safe-area-inset-bottom, 0px)) 10px;
    width: auto;
    max-height: calc(100dvh - 84px);
  }
}

/* ≤430px: üst üste dizilen CTA'lar tam genişlik */
@media (max-width: 430px) {
  .hero-ctas { width: 100%; }
  .hero-ctas .btn { width: 100%; }
  .contact-band .btn, .calc-band .btn, .adm-cert-band .btn { width: 100%; }
  .adm-nav { flex-wrap: wrap; }
  .adm-nav .btn, .adm-nav .btn-back { flex: 1 1 auto; }
  .load-more { width: calc(100% - 0px); }
  /* Footer AB rozeti: nowrap satırlar 320px'te taşabiliyor */
  .eu-badge span { white-space: normal; }
}

/* Mobil burger paneli: .nav-auth ikonu normal menü satırı olur */
@media (max-width: 860px) {
  .nav-links .nav-auth {
    display: flex !important; width: 100% !important; height: auto !important;
    border-radius: 0 !important; justify-content: flex-start !important;
    gap: 12px; align-items: center;
    font-size: 1.25rem; font-weight: 700; letter-spacing: -0.02em;
    padding: 17px 0; border-bottom: 1px solid rgba(128,128,128,0.14);
  }
  .nav-links .nav-auth:hover { background: none; }
  .nav-links .nav-auth svg { width: 26px; height: 26px; flex: none; }
  /* "Giriş Yap" / "Hesabım" etiketi — su damlası overlay kuralını (position:absolute,
     attr(data-text)) normal akışa döndürerek ezer */
  .nav-links a.nav-auth::after {
    content: attr(aria-label);
    position: static; width: auto; height: auto; padding: 0;
    clip-path: none; color: inherit; white-space: normal;
  }
  /* 6'dan fazla menü öğesi (nav-auth dahil) da animasyonla gelsin */
  .nav.open .nav-links li:nth-child(n+7) { animation-delay: 0.36s; }
}
/* Masaüstü satırında ikon dikey ortalı ve dokunulabilir kalsın */
@media (min-width: 861px) {
  .nav-links .nav-auth { flex: none; }
}

/* Yatay mod (kısa ekran): hero ve chat paneli ekrana sığsın */
@media (max-height: 500px) and (orientation: landscape) {
  .hero { min-height: auto; padding: 90px 22px 50px; }
  .logo-scene { width: 150px; height: 140px; }
  .uda-panel { height: calc(100dvh - 24px); max-height: none; }
  section { padding-top: 60px; padding-bottom: 60px; }
}

/* ---- Footer social (Apple-style icon buttons) ---- */
.foot-social { display: flex; gap: 10px; justify-content: center; margin: 18px 0 10px; }
.foot-soc {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: 50%;
  color: #a1a1a6; background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.1);
  transition: transform 0.15s cubic-bezier(0.28,0.11,0.32,1), background 0.15s ease, color 0.15s ease;
}
.foot-soc:hover { color: #fff; background: rgba(255,255,255,0.14); transform: translateY(-2px); text-decoration: none; }
.foot-soc:active { transform: scale(0.94); }
.foot-social { justify-content: flex-start; align-items: center; margin: 14px 0 0; }
.foot-soc-label { color: #86868b; font-size: 0.85rem; margin-right: 4px; }
/* Künye satırı tek bir uzun <span>: nowrap onu 320px ekranda 1024px'e
   çıkarıyor ve footer'ın overflow:clip'i geri kalanını görünmez kılıyordu
   (adres, KBO ve AB sicil numarası mobilde okunamıyordu). Sarmalansın. */
.foot-bottom span { white-space: normal; overflow-wrap: break-word; }
.eu-badge.g-pref { display: inline-flex; align-items: center; margin-left: 10px; cursor: pointer; transition: transform 0.15s cubic-bezier(0.28,0.11,0.32,1); }
.eu-badge.g-pref:hover { transform: translateY(-1px); text-decoration: none; }
/* Nav kırılma fix: öğeler tek satırda kalsın, orta genişlikte sıkışmasın */
.nav-links li a { white-space: nowrap; }
@media (min-width: 861px) and (max-width: 1180px) {
  .nav-links { gap: 14px; }
  .nav-links li a { font-size: 0.82rem; }
}

/* Footer rozet satırı: orijinal boyutlar, tek satır; Google rozeti sağa taşabilir */
.foot-badges { display: flex; gap: 10px; align-items: stretch; width: max-content; max-width: none; }
.foot-badges .eu-badge { margin-top: 14px; flex-shrink: 0; }
@media (max-width: 700px) { .foot-badges { flex-wrap: wrap; width: auto; } }
.eu-badge.g-pref { font-size: 0.72rem; color: #d2d2d7; }

/* ============================================================
   ERİŞİLEBİLİRLİK KATMANI (WCAG 2.2 AA) — 2026-08
   Sitenin görsel dilini değiştirmez; yalnızca klavye ve
   hareket duyarlılığı olan kullanıcılar için eksikleri kapatır.
   ============================================================ */

/* ---------- İçeriğe geç (skip link) ---------- */
/* Klavyeyle gezen kullanıcı 7 navigasyon bağlantısını her sayfada
   yeniden geçmek zorunda kalmasın. Yalnızca odaklanınca görünür. */
.skip-link {
  position: absolute;
  left: 12px;
  top: -100px;
  z-index: 2000;
  padding: 12px 20px;
  border-radius: 12px;
  background: #ffffff;
  color: var(--blue);
  font-family: inherit;
  font-size: 0.92rem;
  font-weight: 600;
  text-decoration: none;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.28);
  transition: top 0.18s var(--ease);
}
.skip-link:focus,
.skip-link:focus-visible {
  top: 12px;
  outline: 3px solid var(--blue);
  outline-offset: 2px;
  text-decoration: none;
}
/* Skip link hedefi programatik olarak odaklanır; kendi halkasını çizmesin. */
[id="icerik"]:focus { outline: none; }

/* ---------- Görünür odak halkası ---------- */
/* Kural: hiçbir yerde outline kaldırılmaz. Aşağıdaki taban kural
   :focus-visible kullandığı için fare tıklamalarında görünmez,
   klavye/Tab ile gezildiğinde her zaman görünür. */
:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 2px;
  border-radius: 4px;
}
/* Koyu zeminlerde lacivert halka kaybolur — açık maviye çevir. */
.nav :focus-visible,
.hero :focus-visible,
.search-hero :focus-visible,
.prog-hero :focus-visible,
.section-dark :focus-visible,
.home-search :focus-visible,
.calc-band :focus-visible,
.contact-band :focus-visible,
.adm-cert-band :focus-visible,
.card-dark :focus-visible,
.site-footer :focus-visible {
  outline-color: #8fc1f0;
}
/* outline:none taşıyan form öğeleri: kendi halkalarını geri al. */
.filters select:focus-visible,
.filters .seg:focus-visible,
.seg-group button:focus-visible,
.adv-filters select:focus-visible,
.adv-filters .clear-btn:focus-visible,
.search-box input:focus-visible,
.uni-filters select:focus-visible,
.uda-form input:focus-visible,
.adm-field input:focus-visible,
.adm-field select:focus-visible,
.adm-field textarea:focus-visible {
  outline: 3px solid #8fc1f0;
  outline-offset: 2px;
}
.uni-filters select:focus-visible,
.adm-field input:focus-visible,
.adm-field select:focus-visible,
.adm-field textarea:focus-visible {
  outline-color: var(--blue);
}
/* Klavyeyle gezilen özel seçim kutuları (div tabanlı) da işaretlensin. */
.adm-choice:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 2px;
}
/* Sayfa içi <style> bloklarında outline:none taşıyan alanlar
   (giris.html .field, iletisim.html .contact-form, hesabim.html .pf-field).
   Oradaki kurallar (0,1,1) özgüllüğünde; buradakiler (0,2,1) ile onları aşar.
   Kutu gölgesi tek başına yüksek kontrast modunda kayboluyor. */
.field input:focus-visible,
.contact-form input:focus-visible,
.contact-form select:focus-visible,
.contact-form textarea:focus-visible,
.pf-field input:focus-visible,
.pf-field select:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 2px;
}

/* ---------- Koyu zeminlerde ikincil metin ---------- */
/* --gray artık açık zemin için koyultuldu (bkz. :root). Koyu hero ve
   bantlarda okunabilir kalması için burada açık griye çevriliyor. */
.hero .subhead,
.search-hero .subhead,
.prog-hero .subhead,
.section-dark .subhead,
.home-search .subhead,
.calc-band .subhead,
.contact-band .subhead,
.adm-cert-band .subhead,
.card-dark .subhead {
  color: #a1a1a6;
}

/* ---------- Hareket duyarlılığı: kalan boşluklar ---------- */
/* L744'teki genel blok `*` seçicisiyle animasyon ve geçişleri zaten
   durduruyor. Ama `*` sözde öğeleri (::before / ::after) kapsamaz ve
   html'deki `scroll-behavior: smooth` yerinde kalıyordu — vestibüler
   rahatsızlığı olan kullanıcı için asıl sorun çıkaran ikisi bunlar. */
@media (prefers-reduced-motion: reduce) {
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  html { scroll-behavior: auto !important; }
  /* Sürekli dönen/süzülen dekoratif öğeler başlangıç karesinde kalsın. */
  .float-chip,
  .logo-orig .lo-stars,
  .mini-logo .mini-mask img {
    animation: none !important;
  }
}

/* ============================================================
   MOBİL SERTLEŞTİRME — 2. TUR (2026-08)
   Gerçek cihaz genişliklerinde (320/375/430px) ölçülen taşmaların
   kök-neden düzeltmeleri. Masaüstü görünümüne dokunmaz.
   Denetim: node scripts/mobile-audit.mjs
   ============================================================ */

/* Çentik güvenli alanı: sabit üst bar yatay modda kulakçığın altına girmesin. */
@media (max-width: 926px) and (orientation: landscape) {
  .nav .nav-inner {
    padding-left: calc(22px + env(safe-area-inset-left, 0px));
    padding-right: calc(22px + env(safe-area-inset-right, 0px));
  }
}

/* Toast'lar ve alta sabitlenen bildirimler ana ekran çubuğunun üstünde kalsın. */
@media (max-width: 768px) {
  #toast { bottom: calc(26px + env(safe-area-inset-bottom, 0px)); }
}

/* WhatsApp grup butonu: 320px'te ikon/ok ezilmesin, metin sarmalansın. */
.wa-grup-txt { min-width: 0; }
.wa-grup-chev { flex: none; }
@media (max-width: 430px) {
  .wa-grup { width: 100%; padding: 13px 16px; }
  .wa-grup-txt b { font-size: 0.9rem; }
}

/* Galeri/kart ızgaraları: sabit minmax tabanı dar ekranda kabı aşmasın. */
.kabul-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); }

/* Footer künyesi mobilde iki-üç satıra dağılır; satır aralığı okunur kalsın. */
@media (max-width: 560px) {
  .foot-bottom { line-height: 1.6; }
}

/* ============================================================
   VERİ YÜKLENEMEDİ DURUMU (2026-08)
   "Filtreye uyan program yok" ile "veri gelmedi" iki ayrı durumdur.
   Boş sonuç .no-result'tır; bu blok yalnızca veri kaynağı
   (data/programs.js) yüklenemediğinde gösterilir.
   ============================================================ */
.data-error {
  display: none;
  text-align: center;
  max-width: 460px;
  margin: 44px auto;
  padding: 30px 26px;
  border-radius: var(--radius);
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.05);
}
.data-error[data-shown] { display: block; }
.data-error .de-ico {
  width: 46px; height: 46px; margin: 0 auto 14px;
  display: grid; place-items: center; border-radius: 50%;
  background: rgba(23, 73, 120, 0.08); color: var(--blue);
}
.data-error h3 {
  font-size: 1.12rem; letter-spacing: -0.015em; margin-bottom: 7px; color: var(--ink);
}
.data-error p { font-size: 0.9rem; line-height: 1.55; color: var(--gray); margin-bottom: 18px; }
.data-error .de-actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.data-error .de-retry {
  font: inherit; font-size: 0.9rem; font-weight: 600; cursor: pointer;
  background: var(--blue); color: #fff; border: 0;
  padding: 11px 22px; border-radius: 980px; min-height: 44px;
  transition: background 0.2s var(--ease), transform 0.12s var(--ease);
}
.data-error .de-retry:hover { background: var(--blue-hover); }
.data-error .de-retry:active { transform: scale(0.97); }
/* Koyu zeminli bölümlerde (ana sayfa arama bandı) aynı kart okunur kalsın. */
.home-search .data-error, .section-dark .data-error {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.14);
  box-shadow: none;
}
.home-search .data-error h3, .section-dark .data-error h3 { color: #f5f5f7; }
.home-search .data-error p, .section-dark .data-error p { color: #a1a1a6; }
.home-search .data-error .de-ico, .section-dark .data-error .de-ico {
  background: rgba(255, 255, 255, 0.1); color: #8fc1f0;
}
@media (max-width: 430px) {
  .data-error { margin: 30px auto; padding: 24px 18px; }
  .data-error .de-actions .de-retry { width: 100%; }
}

/* === V3: rapor teslimi === */
/* Kol A / teslimat hattı. Bu blok YALNIZCA yeni sınıflar ekler; yukarıdaki
   hiçbir kural değiştirilmemiştir (sözleşme §0).
   Kapsam: rapor.html (.rp-*) + hesabim.html "Analizlerim" (.an-*).
   Görsel dil: marka mavisi #174978 + altın #d9a35c. Mor/pembe yok. */

/* ---------- Rapor sayfası kabuğu ---------- */
.rp-shell { max-width: 860px; margin: 0 auto; padding: 0 22px; }

/* Başlık bloğu. Tipografi ölçekle birlikte değişir: büyük başlıkta tracking
   negatif, gövdede nötr (optik boyutlandırma disiplini). */
.rp-head { padding: 26px 0 18px; }
.rp-eyebrow {
  font-size: 0.78rem; font-weight: 600; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--blue); display: block; margin-bottom: 10px;
}
.rp-title {
  font-size: clamp(1.7rem, 4.4vw, 2.6rem); line-height: 1.08;
  letter-spacing: -0.022em; font-weight: 700; margin-bottom: 10px;
}
.rp-target { font-size: 1rem; color: var(--ink-2); font-weight: 500; line-height: 1.5; }
.rp-meta {
  margin-top: 14px; display: flex; flex-wrap: wrap; gap: 8px 16px;
  font-size: 0.82rem; color: var(--gray);
}
.rp-meta b { color: var(--ink-2); font-weight: 600; }

/* Altın ince çizgi — bölüm ayrımı için sert kenarlık yerine ışık şeridi. */
.rp-rule {
  height: 3px; border-radius: 3px; margin: 20px 0 8px;
  background: linear-gradient(90deg, var(--gold) 0%, var(--gold-light) 45%, rgba(217,163,92,0) 100%);
}

/* ---------- Kartlar ---------- */
.rp-card {
  background: #fff; border-radius: var(--radius); padding: 26px 24px;
  border: 1px solid rgba(0,0,0,0.07); box-shadow: 0 1px 3px rgba(0,0,0,0.04);
  margin-bottom: 16px;
}
.rp-card > h2 {
  font-size: 1.12rem; letter-spacing: -0.015em; margin-bottom: 4px;
  display: flex; align-items: center; gap: 10px;
}
.rp-card > h2 .rp-num {
  flex: none; width: 26px; height: 26px; border-radius: 50%;
  background: rgba(23,73,120,0.09); color: var(--blue);
  font-size: 0.76rem; font-weight: 700; letter-spacing: 0;
  display: inline-flex; align-items: center; justify-content: center;
}
.rp-card > h3 { font-size: 0.95rem; margin: 18px 0 8px; letter-spacing: -0.01em; color: var(--ink); }
.rp-card p { font-size: 0.95rem; line-height: 1.62; color: var(--ink-2); }
.rp-card p + p { margin-top: 0.85em; }
.rp-lead { font-size: 1rem; line-height: 1.65; color: var(--ink-2); }

/* ---------- Listeler ---------- */
.rp-list { list-style: none; display: grid; gap: 10px; margin-top: 10px; }
.rp-list > li {
  font-size: 0.93rem; line-height: 1.6; color: var(--ink-2);
  padding-left: 20px; position: relative;
}
.rp-list > li::before {
  content: ""; position: absolute; left: 4px; top: 0.62em;
  width: 6px; height: 6px; border-radius: 50%; background: var(--gold);
}
.rp-ordered { list-style: none; counter-reset: rp; display: grid; gap: 12px; margin-top: 12px; }
.rp-ordered > li {
  counter-increment: rp; position: relative; padding-left: 38px;
  font-size: 0.93rem; line-height: 1.6; color: var(--ink-2);
}
.rp-ordered > li::before {
  content: counter(rp); position: absolute; left: 0; top: -1px;
  width: 26px; height: 26px; border-radius: 50%;
  background: var(--blue); color: #fff;
  font-size: 0.76rem; font-weight: 700;
  display: inline-flex; align-items: center; justify-content: center;
}
.rp-ordered > li b, .rp-list > li b { color: var(--ink); font-weight: 600; }

/* ---------- Eksik / bulgu blokları ---------- */
.rp-gap {
  border-radius: 14px; padding: 16px 18px; background: var(--bg-soft);
  border-left: 3px solid var(--gold); margin-top: 12px;
}
.rp-gap h4 { font-size: 0.95rem; margin-bottom: 6px; letter-spacing: -0.01em; }
.rp-gap p { font-size: 0.89rem; line-height: 1.58; }
.rp-gap .rp-kv { margin-top: 8px; font-size: 0.85rem; color: var(--gray); }
.rp-gap .rp-kv b { color: var(--ink-2); font-weight: 600; }

/* Alıntı — motivasyon mektubu cümle/paragraf analizinde */
.rp-quote {
  margin: 10px 0; padding: 12px 14px; border-radius: 12px;
  background: rgba(23,73,120,0.05); border-left: 3px solid var(--blue-soft);
  font-size: 0.9rem; line-height: 1.58; color: var(--ink-2); font-style: italic;
  overflow-wrap: anywhere;
}
.rp-fix {
  margin: 8px 0 0; padding: 12px 14px; border-radius: 12px;
  background: rgba(217,163,92,0.10); border-left: 3px solid var(--gold);
  font-size: 0.9rem; line-height: 1.58; color: var(--ink-2);
  overflow-wrap: anywhere;
}
.rp-fix-label, .rp-quote-label {
  display: block; font-size: 0.72rem; text-transform: uppercase;
  letter-spacing: 0.09em; font-weight: 700; color: var(--gray);
  font-style: normal; margin-bottom: 5px;
}

/* ---------- Durum rozetleri ---------- */
.rp-badge {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 0.74rem; font-weight: 600; letter-spacing: 0.01em;
  padding: 4px 10px; border-radius: 980px;
}
.rp-b-ok   { background: rgba(30,120,70,0.10); color: #1c6b45; }
.rp-b-warn { background: rgba(217,163,92,0.18); color: var(--gold-deep); }
.rp-b-bad  { background: rgba(165,40,27,0.10); color: #a5281b; }
.rp-b-unk  { background: rgba(110,110,115,0.12); color: var(--gray); }

/* ---------- Dört sütunlu koru/değiştir/çıkar/ekle ---------- */
.rp-quad { display: grid; gap: 12px; margin-top: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rp-quad > div { background: var(--bg-soft); border-radius: 14px; padding: 14px 16px; min-width: 0; }
.rp-quad h4 { font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--gray); margin-bottom: 8px; }
.rp-quad ul { list-style: none; display: grid; gap: 7px; }
.rp-quad li { font-size: 0.87rem; line-height: 1.5; color: var(--ink-2); padding-left: 14px; position: relative; overflow-wrap: anywhere; }
.rp-quad li::before { content: ""; position: absolute; left: 2px; top: 0.6em; width: 5px; height: 5px; border-radius: 50%; background: var(--blue-soft); }

/* ---------- Tablo (belge kontrol listesi, puan etkisi) ---------- */
.rp-tablewrap { overflow-x: auto; margin-top: 12px; -webkit-overflow-scrolling: touch; }
.rp-table { width: 100%; border-collapse: collapse; font-size: 0.89rem; table-layout: fixed; }
.rp-table th, .rp-table td {
  text-align: left; padding: 10px 12px; border-bottom: 1px solid rgba(0,0,0,0.06);
  vertical-align: top; overflow-wrap: anywhere;
}
.rp-table th { font-size: 0.76rem; text-transform: uppercase; letter-spacing: 0.07em; color: var(--gray); font-weight: 700; }
.rp-table td { color: var(--ink-2); line-height: 1.5; }
.rp-table tr:last-child td { border-bottom: 0; }

/* ---------- İçindekiler ---------- */
.rp-toc { background: #fff; border: 1px solid rgba(0,0,0,0.07); border-radius: var(--radius); padding: 18px 20px; margin-bottom: 16px; }
.rp-toc h2 { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--gray); margin-bottom: 10px; }
.rp-toc ol { list-style: none; counter-reset: toc; display: grid; gap: 4px; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); }
.rp-toc li { counter-increment: toc; font-size: 0.88rem; }
.rp-toc a { display: block; padding: 6px 8px; border-radius: 9px; color: var(--ink-2); transition: background 0.2s var(--ease); }
.rp-toc a::before { content: counter(toc) ". "; color: var(--gray); }
.rp-toc a:hover { background: rgba(23,73,120,0.06); text-decoration: none; }

/* ---------- Hukuki uyarı — görsel olarak İKİNCİL, ama her raporda ---------- */
.rp-disclaimer {
  margin: 18px 0 0; padding: 15px 17px; border-radius: 14px;
  background: var(--bg-soft); border: 1px solid rgba(0,0,0,0.06);
  font-size: 0.83rem; line-height: 1.6; color: var(--gray);
}
.rp-disclaimer b { color: var(--ink-2); font-weight: 600; }

/* ---------- Durum ekranları (hazırlanıyor / iade / hata) ---------- */
.rp-state {
  background: #fff; border: 1px solid rgba(0,0,0,0.07); border-radius: var(--radius-lg);
  padding: 40px 26px; text-align: center; box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
.rp-state h1 { font-size: clamp(1.35rem, 3.6vw, 1.8rem); letter-spacing: -0.02em; margin-bottom: 10px; }
.rp-state p { font-size: 0.95rem; line-height: 1.62; color: var(--gray); max-width: 460px; margin: 0 auto; }
.rp-state p + p { margin-top: 0.9em; }
.rp-state .rp-actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-top: 22px; }
.rp-state .rp-ico {
  width: 54px; height: 54px; border-radius: 50%; margin: 0 auto 18px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(23,73,120,0.08); color: var(--blue);
}

/* Hazırlanıyor göstergesi: nefes alan halka. Vestibüler değil, yavaş değil. */
.rp-spinner {
  width: 34px; height: 34px; border-radius: 50%;
  border: 3px solid rgba(23,73,120,0.16); border-top-color: var(--blue);
  animation: rpSpin 0.9s linear infinite;
}
@keyframes rpSpin { to { transform: rotate(360deg); } }

.rp-skeleton { display: grid; gap: 12px; }
.rp-skeleton i {
  display: block; height: 14px; border-radius: 8px;
  background: linear-gradient(90deg, #ececf0 25%, #f6f6f8 37%, #ececf0 63%);
  background-size: 260% 100%; animation: rpShimmer 1.5s linear infinite;
}
.rp-skeleton i:nth-child(1) { width: 55%; height: 26px; }
.rp-skeleton i:nth-child(3) { width: 82%; }
.rp-skeleton i:nth-child(4) { width: 68%; }
@keyframes rpShimmer { to { background-position: -260% 0; } }

/* Yazdırma: müşteri raporu saklamak isteyecek. Sayfa kromu düşer. */
@media print {
  .nav, .site-footer, .rp-toolbar, .rp-toc { display: none !important; }
  body { background: #fff !important; }
  .rp-card { break-inside: avoid; box-shadow: none; border-color: #ddd; }
  main { padding-top: 0 !important; }
}

/* ---------- Araç çubuğu ---------- */
.rp-toolbar { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin: 4px 0 18px; }
.rp-btn {
  font: inherit; font-size: 0.88rem; font-weight: 600; cursor: pointer;
  border: 1px solid rgba(23,73,120,0.28); background: #fff; color: var(--blue);
  padding: 9px 16px; border-radius: 980px; min-height: 44px;
  display: inline-flex; align-items: center; gap: 7px;
  transition: background 0.18s var(--ease), transform 0.1s var(--ease);
}
.rp-btn:hover { background: rgba(23,73,120,0.06); text-decoration: none; }
.rp-btn:active { transform: scale(0.97); }

/* ---------- Hesabım → Analizlerim ---------- */
.an-list { display: grid; gap: 12px; }
.an-card {
  background: #fff; border-radius: var(--radius); padding: 18px 20px;
  border: 1px solid rgba(0,0,0,0.07);
  display: flex; flex-wrap: wrap; gap: 12px 18px; align-items: center;
}
.an-card .an-main { flex: 1 1 240px; min-width: 0; }
.an-card h3 { font-size: 1rem; letter-spacing: -0.012em; margin-bottom: 4px; }
.an-card .an-sub { font-size: 0.85rem; color: var(--gray); line-height: 1.5; overflow-wrap: anywhere; }
.an-card .an-side { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

@media (max-width: 560px) {
  .rp-quad { grid-template-columns: 1fr; }
  .rp-card { padding: 20px 17px; }
  .rp-state { padding: 32px 20px; }
  .an-card { padding: 16px 17px; }
  .an-card .an-side { width: 100%; }
  .an-card .an-side .rp-btn { flex: 1 1 auto; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  .rp-spinner { animation-duration: 2s; }
  .rp-skeleton i { animation: none; background: #ececf0; }
  .rp-btn:active { transform: none; }
}
@media (prefers-contrast: more) {
  .rp-card, .rp-toc, .rp-state { border-color: rgba(0,0,0,0.32); }
  .rp-disclaimer { border-color: rgba(0,0,0,0.32); color: var(--ink-2); }
}

/* === V3: kabul motoru === */
/* Kol B. Yalnızca YENİ sınıflar; mevcut .adm-* kuralları değiştirilmedi.
   Apple estetiği: translucent katmanlar, kritik sönümlü geçişler,
   boyuta göre tracking, reduced-motion/transparency/contrast desteği. */

.adm-h2 { font-size: 1.25rem; letter-spacing: -0.015em; }
.adm-h3 {
  font-size: 0.98rem; font-weight: 650; letter-spacing: -0.01em;
  color: var(--ink); margin: 26px 0 12px;
}
.adm-sub.center { max-width: 520px; margin-left: auto; margin-right: auto; text-align: center; }
.adm-hint { font-size: 0.78rem; line-height: 1.5; color: var(--gray); margin-top: 6px; }
.adm-note {
  font-size: 0.82rem; color: var(--blue); font-weight: 600;
  background: rgba(23, 73, 120, 0.06); border-radius: 10px;
  padding: 9px 12px; margin-top: 10px;
}
.adm-err { font-size: 0.82rem; color: #c0392b; font-weight: 600; margin-top: 7px; }
.adm-counter { text-align: right; font-size: 0.76rem; color: var(--gray); margin-top: 6px; }
.adm-linkbtn {
  background: none; border: 0; padding: 0; color: var(--blue);
  font: inherit; font-size: inherit; text-decoration: underline; cursor: pointer;
}
.adm-linkbtn:hover { color: var(--blue-hover); }

/* Küçük seçim kutuları (test durumu) */
.adm-choice-grid.sm { gap: 7px; }
.adm-choice-grid.sm .adm-choice { font-size: 0.82rem; padding: 10px 12px; min-height: 44px; }

/* Onay kutuları */
.adm-check-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 8px; }
/* ÖZGÜLLÜK NOTU: `.adm-field label` (0,2,1 — bu dosyanın başında) buradaki
   `.adm-check`i (0,1,0) eziyordu. Sonuç: `display` flex yerine block hesaplanıyor,
   dolayısıyla `gap` HİÇ uygulanmıyor (kutucuk yazıya yapışık) ve gövde metni
   etiket ağırlığında (600) çiziliyordu. Seçici bilerek iki kapsayıcıya bağlandı. */
.adm-check-grid .adm-check,
.adm-consent .adm-check {
  display: flex; align-items: center; gap: 10px; cursor: pointer;
  border: 1px solid #e3e3e8; border-radius: 12px; padding: 12px 14px;
  font-size: 0.875rem; font-weight: 400; line-height: 1.45; letter-spacing: 0;
  color: var(--ink); margin-bottom: 0; min-height: 44px; background: #fff;
  transition: border-color 0.18s var(--ease), background 0.18s var(--ease), transform 0.1s var(--ease);
}
.adm-check-grid .adm-check:hover { border-color: var(--blue-light); }
/* Tepki basılınca başlar, bırakılınca değil. */
.adm-check-grid .adm-check:active { transform: scale(0.985); }
.adm-check-grid .adm-check:has(input:checked) {
  border-color: var(--blue); background: rgba(23, 73, 120, 0.04);
}

/* Yerel kutucuk yerine özel kutu: tarayıcılar arası aynı görünür. */
.adm-check input[type="checkbox"] {
  appearance: none; -webkit-appearance: none;
  width: 20px; height: 20px; flex: none; margin: 0;
  border: 1.5px solid #c7c7cf; border-radius: 6px; background: #fff;
  display: grid; place-content: center;
  transition: background 0.15s var(--ease), border-color 0.15s var(--ease);
}
.adm-check input[type="checkbox"]::after {
  content: ""; width: 11px; height: 11px; transform: scale(0);
  background: #fff; transition: transform 0.15s var(--ease);
  clip-path: polygon(14% 47%, 0 62%, 39% 100%, 100% 22%, 85% 8%, 39% 71%);
}
.adm-check input[type="checkbox"]:checked { background: var(--blue); border-color: var(--blue); }
.adm-check input[type="checkbox"]:checked::after { transform: scale(1); }
.adm-check input[type="checkbox"]:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }

.adm-check-lg { align-items: flex-start; font-size: 0.84rem; }
.adm-consent {
  margin-top: 22px; padding: 16px; border-radius: 14px;
  background: rgba(23, 73, 120, 0.05); border: 1px solid rgba(23, 73, 120, 0.12);
}
.adm-consent .adm-check { background: transparent; border: 0; padding: 0; min-height: 0; align-items: flex-start; }

/* Arama sonuç listeleri */
.adm-results {
  max-height: 220px; overflow-y: auto; margin-top: 8px;
  border: 1px solid #ececef; border-radius: 12px; background: #fff;
}
.adm-row-btn {
  display: block; width: 100%; text-align: left; background: none; border: 0;
  border-bottom: 1px solid #f2f2f5; padding: 11px 14px; cursor: pointer;
  font: inherit; font-size: 0.86rem; min-height: 44px;
}
.adm-row-btn:last-child { border-bottom: 0; }
.adm-row-btn:hover, .adm-row-btn:focus-visible { background: rgba(23, 73, 120, 0.06); }
.adm-row-btn b { display: block; font-weight: 600; }
.adm-row-btn span { display: block; color: var(--gray); font-size: 0.76rem; margin-top: 2px; }
.adm-noresult { padding: 14px; font-size: 0.84rem; color: var(--gray); }
.adm-picked { margin-top: 10px; font-size: 0.88rem; color: var(--blue); font-weight: 600; }

/* Şart kaynağı rozeti — dürüstlük bandı */
.adm-source {
  font-size: 0.8rem; line-height: 1.55; color: var(--ink-2);
  background: rgba(217, 163, 92, 0.1); border: 1px solid rgba(217, 163, 92, 0.28);
  border-radius: 12px; padding: 11px 13px; margin-bottom: 18px;
}
.adm-source a { font-weight: 600; white-space: nowrap; }
.adm-source .adm-year { color: var(--gray); }

/* Test kartları */
.adm-test {
  border: 1px solid #e6e6ea; border-radius: 15px; padding: 15px;
  margin-bottom: 12px; background: #fff;
}
.adm-test-head { font-size: 0.92rem; margin-bottom: 10px; letter-spacing: -0.005em; }
.adm-test-body { margin-top: 12px; }
.adm-test-body label { display: block; font-size: 0.82rem; font-weight: 600; margin-bottom: 6px; }
.adm-test-body input, .adm-test-body select {
  width: 100%; padding: 11px 13px; border: 1px solid #dcdce1; border-radius: 11px;
  font: inherit; font-size: 16px; min-height: 44px; background: #fff;
}

/* Belge kartları — Eklendi / Eksik */
.adm-doc-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 9px; }
.adm-doc {
  display: flex; align-items: center; gap: 10px; width: 100%;
  border: 1px solid #e3e3e8; border-radius: 13px; padding: 13px 14px;
  background: #fff; cursor: pointer; font: inherit; text-align: left;
  min-height: 52px; transition: border-color 0.18s var(--ease), background 0.18s var(--ease);
}
.adm-doc:hover { border-color: var(--blue-light); }
.adm-doc:active { transform: scale(0.985); }
.adm-doc .dot {
  width: 9px; height: 9px; border-radius: 50%; flex: none;
  background: #d3d3d8; transition: background 0.18s var(--ease);
}
.adm-doc .name { flex: 1; font-size: 0.87rem; line-height: 1.35; }
.adm-doc .st { font-size: 0.74rem; font-weight: 700; color: var(--gray); letter-spacing: 0.01em; }
.adm-doc.ok { border-color: rgba(23, 73, 120, 0.35); background: rgba(23, 73, 120, 0.045); }
.adm-doc.ok .dot { background: var(--blue); }
.adm-doc.ok .st { color: var(--blue); }

/* Analiz aşamaları */
.adm-analyzing { text-align: center; padding: 60px 20px 70px; }
.adm-analyzing h2 { font-size: 1.35rem; letter-spacing: -0.018em; margin-bottom: 22px; }
.adm-spin { width: 46px; height: 46px; margin: 0 auto 22px; position: relative; }
.adm-spin i {
  position: absolute; inset: 0; border-radius: 50%;
  border: 3px solid rgba(23, 73, 120, 0.15); border-top-color: var(--blue);
  animation: admspin 0.85s linear infinite;
}
@keyframes admspin { to { transform: rotate(360deg); } }
.adm-stages { list-style: none; max-width: 380px; margin: 0 auto; text-align: left; }
.adm-stages li {
  font-size: 0.9rem; color: var(--gray); padding: 9px 0 9px 27px;
  position: relative; opacity: 0.45;
  transition: opacity 0.3s var(--ease), color 0.3s var(--ease);
}
.adm-stages li::before {
  content: ""; position: absolute; left: 4px; top: 15px;
  width: 8px; height: 8px; border-radius: 50%; background: #d3d3d8;
  transition: background 0.3s var(--ease), transform 0.3s var(--ease);
}
.adm-stages li.on { opacity: 1; color: var(--ink); font-weight: 600; }
.adm-stages li.on::before { background: var(--blue); transform: scale(1.25); }
.adm-stages li.done { opacity: 0.8; color: var(--ink-2); }
.adm-stages li.done::before { background: var(--gold); }

/* ---- Sonuç ekranı (spec §21 hiyerarşisi) ---- */
.adm-res-target {
  text-align: center; font-size: 0.95rem; color: var(--ink-2);
  margin-bottom: 14px; line-height: 1.45;
}
.adm-res-target b { color: var(--ink); }
.adm-res-label {
  text-align: center; font-size: 0.86rem; font-weight: 600;
  color: var(--gray); letter-spacing: 0.01em; margin-top: 12px;
}
.adm-res-personal {
  text-align: center; font-size: 1.02rem; line-height: 1.5;
  color: var(--ink); max-width: 460px; margin: 10px auto 0; font-weight: 500;
}

.adm-metrics {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px; margin: 26px 0 22px;
}
.adm-metric {
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
  border: 1px solid rgba(0, 0, 0, 0.07); border-radius: 15px;
  padding: 14px 15px; min-width: 0;
}
.adm-metric .k {
  display: block; font-size: 0.73rem; font-weight: 600; color: var(--gray);
  letter-spacing: 0.015em; margin-bottom: 5px;
}
.adm-metric b {
  font-size: 1.12rem; letter-spacing: -0.015em; color: var(--ink);
  display: block; overflow-wrap: anywhere;
}
.adm-metric.hl { border-color: rgba(23, 73, 120, 0.3); background: rgba(23, 73, 120, 0.06); }
.adm-metric.hl b { color: var(--blue); }

/* Uygunluk kutusu */
.adm-elig {
  border-radius: 16px; padding: 18px; margin-bottom: 20px;
  background: rgba(192, 57, 43, 0.05); border: 1px solid rgba(192, 57, 43, 0.2);
}
.adm-elig h3 { font-size: 1rem; letter-spacing: -0.01em; margin-bottom: 12px; }
.adm-elig ul { list-style: none; display: grid; gap: 10px; }
.adm-elig li { font-size: 0.86rem; line-height: 1.5; padding-left: 22px; position: relative; }
.adm-elig li::before {
  position: absolute; left: 0; top: 1px; font-size: 0.8rem;
}
.adm-elig li.fix::before { content: "◇"; color: var(--gold-deep); }
.adm-elig li.fixed::before { content: "◆"; color: #c0392b; }
.adm-elig li b { display: block; color: var(--ink); }
.adm-elig li span { color: var(--ink-2); }
.adm-shadow {
  margin-top: 14px; padding: 12px 14px; border-radius: 12px;
  background: rgba(23, 73, 120, 0.08); font-size: 0.88rem;
  font-weight: 600; color: var(--blue); line-height: 1.5;
}

.adm-gapsum { font-size: 0.92rem; line-height: 1.55; color: var(--ink-2); margin-bottom: 14px; }
/* Vurgu, kalın renkli sol şeritle DEĞİL; kendi zemin tonu + saç teli
   çerçeve + hafif yükseklikle kuruluyor. Altın yalnızca kategori
   etiketinde kalıyor, orada zaten anlam taşıyor. */
.adm-teaser {
  border-radius: 14px; padding: 16px 17px; margin-bottom: 16px;
  background: linear-gradient(180deg, rgba(217, 163, 92, 0.07), rgba(217, 163, 92, 0.03));
  border: 1px solid rgba(217, 163, 92, 0.22);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04), 0 6px 16px -8px rgba(23, 73, 120, 0.16);
}
.adm-teaser .cat {
  display: inline-block; font-size: 0.68rem; font-weight: 700;
  letter-spacing: 0.06em; text-transform: uppercase; color: var(--gold-deep);
  margin-bottom: 6px;
}
.adm-teaser p { font-size: 0.95rem; line-height: 1.5; color: var(--ink); font-weight: 600; }

/* Kilitli kartlar — SADECE BAŞLIK. İçerik hiç gönderilmez, blur YOK. */
.adm-locked { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 9px; }

/* Eksik listesi: dar kart değil, belge satırları gibi TAM GENİŞLİK ve numaralı. */
.adm-gaplist { list-style: none; counter-reset: gap; margin: 14px 0 0; padding: 0; display: grid; gap: 10px; }
.adm-gaplist li {
  counter-increment: gap; display: flex; align-items: center; gap: 12px;
  width: 100%; padding: 16px 18px; border: 1px solid #e3e3e8; border-radius: 14px;
  background: #fff; font-size: 0.92rem; line-height: 1.45; text-align: left;
}
.adm-gaplist li::before {
  content: counter(gap); flex: none;
  width: 26px; height: 26px; border-radius: 50%;
  display: grid; place-content: center;
  background: var(--blue); color: #fff; font-size: 0.78rem; font-weight: 700;
}
.adm-gaplist.blurred li::before { background: var(--gray, #86868b); }

.adm-lockwrap { position: relative; margin-top: 10px; }
/* İçerik zaten sunucudan hiç gelmiyor; blur YALNIZCA başlıkları örter. */
.adm-gaplist.blurred { filter: blur(6px); pointer-events: none; user-select: none; }
.adm-lockveil {
  position: absolute; inset: 0; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 10px; padding: 20px;
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(10px) saturate(160%); -webkit-backdrop-filter: blur(10px) saturate(160%);
  border-radius: 14px;
}
.adm-unlock { font-size: 0.95rem; padding: 13px 26px; }
.adm-lockhint { font-size: 0.82rem; color: var(--ink-2); text-align: center; margin: 0; max-width: 34ch; }
@media (prefers-reduced-transparency: reduce) {
  .adm-lockveil { background: #fff; backdrop-filter: none; -webkit-backdrop-filter: none; }
}

/* Onay: kutucuk + "Okudum, onaylıyorum." — "Okudum" siyah altı çizili bağlantı,
   basınca tam metin açılır. */
.adm-consent-link {
  background: none; border: 0; padding: 0; cursor: pointer;
  font: inherit; color: var(--ink); text-decoration: underline;
  text-underline-offset: 2px; text-decoration-thickness: 1px;
}
.adm-consent-link:hover { text-decoration-thickness: 2px; }
.adm-consent-link:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; border-radius: 3px; }
.adm-consent-full {
  margin-top: 10px; font-size: 0.82rem; line-height: 1.5; color: var(--ink-2);
}
.adm-req { color: #c0392b; font-weight: 700; }
.adm-lock {
  display: flex; align-items: center; gap: 9px;
  border: 1px dashed #d3d3d8; border-radius: 13px; padding: 14px 15px;
  font-size: 0.86rem; font-weight: 600; color: var(--gray);
  background: rgba(245, 245, 247, 0.75); min-height: 52px;
}
.adm-lock .ico { font-size: 0.95rem; flex: none; }

.adm-offer.recommended { outline: 2px solid var(--blue); outline-offset: 3px; }
.adm-nodb {
  margin-top: 14px; padding: 16px; border-radius: 14px; text-align: center;
  background: rgba(217, 163, 92, 0.1); border: 1px solid rgba(217, 163, 92, 0.28);
  font-size: 0.88rem; line-height: 1.55; color: var(--ink-2);
}
.adm-legal {
  margin-top: 26px; padding: 14px 16px; border-radius: 12px;
  background: rgba(245, 245, 247, 0.9); border: 1px solid #e6e6ea;
  font-size: 0.82rem; line-height: 1.6; color: var(--ink-2);
}
.adm-restart {
  border: 1px solid #dcdce1; background: none; padding: 12px 24px;
  border-radius: 980px; font: inherit; font-size: 0.9rem; color: var(--ink-2);
  cursor: pointer; min-height: 44px;
  transition: background 0.18s var(--ease), transform 0.12s var(--ease);
}
.adm-restart:hover { background: rgba(0, 0, 0, 0.04); }
.adm-restart:active { transform: scale(0.97); }

/* iOS otomatik yakınlaştırmayı engelle: form yazısı 16px'in altına inmez. */
.adm-shell input, .adm-shell select, .adm-shell textarea { font-size: 16px; }

/* 320–430px: yatay taşma YOK (overflow gizleme ile değil, gerçekten). */
@media (max-width: 430px) {
  .adm-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .adm-locked, .adm-doc-grid, .adm-check-grid { grid-template-columns: 1fr; }
  .adm-metric b { font-size: 1rem; }
  .adm-res-personal { font-size: 0.95rem; }
}
@media (max-width: 360px) {
  .adm-metrics { grid-template-columns: 1fr; }
  .adm-source { font-size: 0.76rem; }
  .adm-source a { white-space: normal; }
}

/* Erişilebilirlik tercihleri — apple-design §14 */
@media (prefers-reduced-motion: reduce) {
  .adm-spin i { animation-duration: 2s; }
  .adm-stages li, .adm-doc, .adm-check { transition: none; }
  .adm-check-grid .adm-check:active { transform: none; }
  .adm-check input[type="checkbox"],
  .adm-check input[type="checkbox"]::after { transition: none; }
  #admGaugeFill { transition: none !important; }
}
@media (prefers-reduced-transparency: reduce) {
  .adm-metric { background: #fff; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .adm-lock { background: var(--bg-soft); }
}
@media (prefers-contrast: more) {
  .adm-metric, .adm-test, .adm-doc, .adm-check { border-color: var(--ink-2); }
  .adm-lock { border-style: solid; border-color: var(--ink-2); color: var(--ink); }
}

/* Teslimat vaadi — yalnızca kurabildiğimiz cümle (sözleşme §4). */
.adm-delivery {
  text-align: center; font-size: 0.82rem; line-height: 1.55; color: var(--gray);
  margin-top: 12px;
}
/* Belge satırı: yükleme durumu ve hata mesajı */
.adm-doc .name .fn {
  display: block; font-style: normal; font-size: 0.74rem;
  color: var(--gray); margin-top: 2px; overflow-wrap: anywhere;
}
.adm-doc .act {
  font-size: 0.74rem; font-weight: 700; color: var(--blue);
  border-left: 1px solid #e6e6ea; padding-left: 10px; margin-left: 2px; flex: none;
}
.adm-doc.busy { opacity: 0.7; }
.adm-doc.busy .dot { background: var(--gold); }
.adm-doc.err { border-color: rgba(192, 57, 43, 0.4); background: rgba(192, 57, 43, 0.04); }
.adm-doc.err .dot { background: #c0392b; }
.adm-doc.err .st { color: #c0392b; }
.adm-docmsg {
  grid-column: 1 / -1; font-size: 0.78rem; line-height: 1.5;
  color: var(--ink-2); margin: -2px 0 6px; padding: 0 2px;
}
.adm-docmsg.err { color: #c0392b; }


/* ============================================================
   === V4: sertleştirme ===
   Kapsam: responsive taşma/dokunma hedefleri, Apple tipografi
   optiği, hareket disiplini (transform/opacity + kesinti),
   seçici kopya koruması.
   Kural: bu blok yalnızca EKLER ve gerektiğinde sıra üstünlüğüyle
   ezer; yukarıdaki hiçbir kural silinmedi. 454 sayfa aynı dosyayı
   kullandığı için her ezme dar kapsamlı seçicilerle yapıldı.
   Denetim: node scripts/mobile-audit.mjs · seo-audit · link-crawl
   ============================================================ */

/* ---------- V4.1 Hareket sözlüğü ----------
   Tarayıcının yerleşik easing'leri zayıf; her yeni geçiş bu üç
   eğriden birini kullanır. Süre ölçeği de burada tanımlı ki
   "150ms mi 400ms mi" sorusu her seferinde yeniden tartışılmasın. */
:root {
  --ease-out-strong: cubic-bezier(0.23, 1, 0.32, 1);   /* giriş/çıkış */
  --ease-inout-strong: cubic-bezier(0.77, 0, 0.175, 1);/* ekran içi hareket */
  --ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);       /* panel/sheet */
  --dur-press: 120ms;   /* basma geri bildirimi */
  --dur-hover: 180ms;   /* hover/renk */
  --dur-pop: 220ms;     /* açılır kutu, ipucu */
  --dur-panel: 320ms;   /* panel, çekmece */
}

/* ---------- V4.2 Tipografi optiği ----------
   Apple: tracking ve leading boyuta göre değişir; ölçek zaten
   yukarıda kurulu. Burada eksik olan iki şey tamamlanıyor:
   (1) optik boyutlandırma, (2) satır kırma kalitesi. */
body { font-optical-sizing: auto; }
/* Başlıklarda son satırda tek kelime kalmasın (dul satır).
   .display hariç: harf saçılma animasyonu span'ları yeniden
   ölçtüğü için balance orada satır sayısını oynatabiliyor. */
h2, h3, h4,
.headline, .rp-title, .rp-state h1, .adm-card h2, .calc-band h2,
.card h3, .step h3, .prog-card h3, .an-card h3 {
  text-wrap: balance;
}
p, .subhead, .rp-lead, .adm-sub, .pc-note, .adm-res-personal { text-wrap: pretty; }

/* Uzun Türkçe/Felemenkçe kelimeler ("değerlendirme", "Wetenschappen",
   "Bedrijfskunde") dar sütunlarda taşıyor. ≤768px kuralı vardı;
   taşma dar sütunlarda masaüstünde de oluyor — her yerde geçerli.
   `anywhere` yerine `break-word`: normal kelime aralıkları bozulmaz. */
h1, h2, h3, h4, p, li, dd, dt, figcaption,
.card, .prog-card, .uda-msg, .kf, .chip, .rp-card, .adm-card, .an-card {
  overflow-wrap: break-word;
}
/* URL ve e-posta gibi boşluksuz uzun diziler her genişlikte kırılsın. */
a[href^="mailto:"], code, kbd, samp { overflow-wrap: anywhere; }
a[href^="http"] { overflow-wrap: break-word; }

/* ---------- V4.3 Dokunma hedefleri (Apple HIG: 44×44) ----------
   Ölçüm: 320px'te tarayıcıda getBoundingClientRect ile bulunanlar.
   Yalnızca gerçekten küçük çıkanlar büyütüldü. */
@media (max-width: 860px) {
  /* Logo bağlantısı 186×30 idi. */
  .nav-logo { min-height: 44px; }
}
@media (max-width: 760px) {
  /* Program kartı başlık linki 24px, üniversite linki 29px idi. */
  /* inline-block + dolgu bilerek seçildi: bu bağlantı bir <h3> içinde
     metin + "→" span'ı taşıyor; flex'e çevirmek çok satırlı başlıklarda
     ok işaretini metinden koparıyor. Dolgu satır kırmayı bozmaz. */
  .prog-card .prog-link,
  .home-card .prog-link { display: inline-block; padding: 12px 0; }
  .prog-card .uni,
  .home-card .uni-plain {
    display: inline-flex; align-items: center; min-height: 44px; padding: 0;
  }
  /* Footer bağlantı satırları 15px yükseklikteydi ve aralarında 7px
     boşluk vardı (bitişik hedefler). Satır aralığı hedefin içine
     alındı: liste toplam yüksekliği artıyor ama hedefler ayrışıyor. */
  .site-footer li { margin-bottom: 0; }
  .site-footer li > a {
    display: flex; align-items: center; min-height: 44px;
  }
  /* Kullanıcı isteği: satır/sütun aralığı ve satır yüksekliği `.foot-bottom`
     (en alttaki künye satırı) ile BİREBİR eşleşsin.
     NOT: bu, üstteki 44px hedef ayrımını burada geri alıyor — 8 kısa bağlantı
     yan yana sıkışınca bitişik hedefler yeniden yaklaşıyor. `.foot-bottom` zaten
     kendi linklerinde (Eurovia VZW, Unidanışmanlık) bu ayrımı hiç kullanmıyordu,
     o yüzden burada da aynı standarda çekmek tutarlı; yanlış dokunma şikayeti
     gelirse row-gap birkaç piksel artırılabilir. */
  .foot-legal { row-gap: 8px; column-gap: 18px; line-height: 1.6; }
  .foot-soc-label { min-height: 44px; display: inline-flex; align-items: center; }
  /* Sohbet paneli: kapatma düğmesi 28px'te kalmıştı — mobil kural
     dosyada daha ÖNCE geldiği için 28px'lik taban kuralı onu eziyordu.
     Burada sıra bizde. */
  .uda-close { width: 44px; height: 44px; }
  .uda-wa { min-height: 44px; padding: 4px 12px; }
  /* Harita rozeti 113×35 idi. */
  .ofis-map-badge { min-height: 44px; display: inline-flex; align-items: center; }
  /* Filtre ve segment düğmeleri: hedefi bozmadan alt sınır.
     .adv-filters select 43px'te kalmıştı (min-height tanımlı değildi). */
  .filters-toggle, .clear-btn, .adm-linkbtn,
  .adv-filters select, .adv-filters .clear-btn { min-height: 44px; }
  /* Sosyal ikon düğmeleri 40×40 idi. */
  .foot-soc { width: 44px; height: 44px; }
  /* SSS başlığı: tıklanabilir olan <summary>, <details>'in dolgusu değil.
     Kutu 28–35px'ti; başlık kendi hedefini taşır. */
  details summary { min-height: 44px; }
  /* Üniversite sayfası filtreleri 39px, program kartı buton/kaynak
     bağlantıları 24–36px idi. */
  .uni-filters select { min-height: 44px; }
  .pc-simbtn, .pc-src a, .pc-services a {
    display: inline-flex; align-items: center; min-height: 44px;
  }
}
/* "İçeriğe geç" bağlantısı yalnızca klavye odağında görünür ama
   göründüğünde tıklanabilir olmalı (41px idi). */
.skip-link { min-height: 44px; display: inline-flex; align-items: center; }

/* iOS odak yakınlaştırması: tür belirtilmemiş alanlar (input[type=date],
   niteliksiz <input>) önceki listede yoktu. */
@media (max-width: 768px) {
  input, select, textarea { font-size: max(16px, 1em); }
}

/* ---------- V4.4 Dokunmatikte "yapışkan hover" ----------
   Parmakla dokunulan kart, dokunuş bitince havada asılı kalıyordu
   (tarayıcı hover'ı sonraki dokunuşa kadar tutuyor). İşaretçi kaba
   olduğunda hover'a bağlı YER DEĞİŞTİRMELER geri alınır; gölge ve
   renk kalır — geri bildirim kaybolmuyor, hayalet hareket kayboluyor. */
@media (hover: none), (pointer: coarse) {
  .card:hover, .tilt:hover, .cred:hover, .plan:hover,
  .step:hover, .prog-card:hover, .home-results .prog-card:hover,
  .adm-offer:hover, .foot-soc:hover, .eu-badge.g-pref:hover,
  .province:hover, .pc-services a:hover .pc-arrow, .ofis-map-badge:hover {
    transform: none;
  }
  .eu-card:hover { scale: 1; }
  /* Dokunmatikte hover yok → "→" işareti hiç görünmüyordu.
     Kalıcı ama sessiz göster. */
  .prog-card .ext { opacity: 0.45; }
}

/* ---------- V4.5 Basma geri bildirimi ----------
   Basılabilir her öğe parmağın altında hafifçe küçülür. 120ms,
   ease-out: kullanıcı hareketi başlattığı an cevabı görür. */
.filters-toggle, .clear-btn, .seg-group button,
.adm-doc-row button, .adm-user-pill button, .adm-nav .btn-back,
.uni-filters select, .adm-auth-tabs button, .foot-soc, .uda-card-cta,
.pc-simbtn, .adm-linkbtn, .adm-row-btn {
  transition: background var(--dur-hover) var(--ease-out-strong),
              border-color var(--dur-hover) var(--ease-out-strong),
              color var(--dur-hover) var(--ease-out-strong),
              transform var(--dur-press) var(--ease-out-strong);
}
.filters-toggle:active, .clear-btn:active, .seg-group button:active,
.adm-doc-row button:active, .adm-user-pill button:active,
.adm-nav .btn-back:active:not(:disabled), .adm-auth-tabs button:active,
.uda-card-cta:active, .pc-simbtn:active, .adm-row-btn:active {
  transform: scale(0.97);
}

/* ---------- V4.6 Şablon işareti: kalın renkli yan şerit ----------
   Kartın bir kenarındaki 3–4px'lik renkli şerit "hazır şablon"
   sinyali veriyor. Vurgu artık zemin tonu + saç teli çerçeve +
   sığ yükseklik ile kuruluyor; renk anlamı ETİKETTE yaşıyor. */
.rp-gap {
  border-left: 0;
  border: 1px solid rgba(217, 163, 92, 0.26);
  background: linear-gradient(180deg, rgba(217,163,92,0.07), rgba(217,163,92,0.03));
  box-shadow: 0 1px 2px rgba(0,0,0,0.035), 0 6px 16px -10px rgba(23,73,120,0.18);
}
.rp-gap h4 { color: var(--gold-deep); }
.rp-quote {
  border-left: 0;
  border: 1px solid rgba(23, 73, 120, 0.16);
  background: rgba(23, 73, 120, 0.045);
}
.rp-fix {
  border-left: 0;
  border: 1px solid rgba(217, 163, 92, 0.24);
  background: rgba(217, 163, 92, 0.08);
}
/* Harita etiketi: rota rengi anlam taşıyor (hangi güzergâh), o yüzden
   silinmedi — şerit yerine çepeçevre ince çizgiye taşındı. */
.ofis-marker-name {
  border-left: 0;
  border: 1px solid var(--tag-color, var(--blue));
  box-shadow: 0 8px 20px rgba(0,0,0,0.3), inset 0 0 0 1px rgba(255,255,255,0.06);
}

/* ---------- V4.7 will-change hijyeni ----------
   `.card` her sayfada onlarca kez var ve hepsi kalıcı bir GPU katmanı
   ayırıyordu (programlar sayfasında yüzlerce). Katman yalnızca hareket
   gerçekten yaklaşınca ayrılır. */
.card { will-change: auto; }
@media (hover: hover) and (pointer: fine) {
  .card:hover, .tilt:hover, .cred:hover, .plan:hover { will-change: transform; }
}

/* ---------- V4.8 Yatay kaydırılan kaplar ----------
   Tablo kendi kabında kayıyor ama kaydığına dair hiçbir işaret yoktu.
   JS (main.js) kaba data-sx="start|mid|end|none" yazıyor; kenar
   solması yalnızca gerçekten kaydırılabilirken ve doğru tarafta çıkar.
   Maske compositor'da çalışır, düzen tetiklemez. */
.table-wrap, .rp-tablewrap, .adm-results {
  overscroll-behavior-x: contain;
  scrollbar-width: thin;
}
[data-sx="start"] {
  -webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 40px), transparent 100%);
  mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 40px), transparent 100%);
}
[data-sx="mid"] {
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 40px, #000 calc(100% - 40px), transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 40px, #000 calc(100% - 40px), transparent 100%);
}
[data-sx="end"] {
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 40px, #000 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 40px, #000 100%);
}

/* ---------- V4.9 Sohbet paneli alt satırı (641–768px) ----------
   Ölçüm: 768px'te .uda-disc kabın 11px dışına taşıyordu (panel
   sabit konumlu olduğu için sayfa kaymıyordu ama metin kırpılıyordu). */
@media (min-width: 641px) and (max-width: 768px) {
  .uda-foot { flex-wrap: wrap; row-gap: 6px; }
  .uda-disc { max-width: 100%; }
}

/* ---------- V4.10 Program kartı giriş animasyonu ----------
   Arama kutusuna her harf yazıldığında liste yeniden kuruluyor ve
   500ms'lik `cardIn` keyframe'i baştan başlıyordu — yazarken göz
   kırpma etkisi. Süre yazma temposunun altına çekildi ve eğri
   güçlendirildi. (Keyframe kesilebilir değil; JS listeyi kendi
   sayfasında kurduğu için geçişe çeviremiyorum — bkz. rapor.) */
.prog-card { animation-duration: 260ms; animation-timing-function: var(--ease-out-strong); }

/* ---------- V4.11 Erişilebilirlik tercihleri ---------- */
/* Hareket azaltma "hiç geri bildirim yok" demek değil. Yukarıdaki
   genel blok `* { transition-duration: 0.01ms }` ile opaklık ve renk
   geçişlerini de öldürüyordu; anlamayı kolaylaştıran o iki geçiş
   etkileşimli öğelerde geri veriliyor. Yer değiştirme geri gelmiyor. */
@media (prefers-reduced-motion: reduce) {
  a, button, summary, label,
  .btn, .card, .prog-card, .chip, .rp-btn, .adm-doc, .adm-check,
  .filters-toggle, .clear-btn, .seg-group button, .foot-soc {
    transition-property: opacity, color, background-color, border-color, box-shadow !important;
    transition-duration: 160ms !important;
  }
  /* Sürekli dönen dekoratif öğeler ilk karede dursun. */
  .eu-ring, .logo3d, .cap-3d, .cap-tassel, .cap-shadow, .cap-board .sheen,
  .uda-dot, .city-pillar .pulse { animation: none !important; }
  [data-sx] { -webkit-mask-image: none; mask-image: none; }
}
/* Saydamlık azaltma: buzlu cam yüzeyler katılaşır, blur düşer. */
@media (prefers-reduced-transparency: reduce) {
  .nav { background: rgba(251,251,253,0.98); backdrop-filter: none; -webkit-backdrop-filter: none; }
  .nav.dark { background: rgba(22,22,23,0.98); }
  .uda-panel, .uda-head, .uda-form, .uda-foot {
    backdrop-filter: none; -webkit-backdrop-filter: none;
  }
  .uda-panel { background: #fafafc; }
  .uda-bubble { background: #1d1d1f; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .hero-badge, .float-chip { background: rgba(255,255,255,0.14); backdrop-filter: none; }
  .search-box input, .filters select, .filters .seg, .filters-toggle,
  .adv-filters select, .adv-filters .clear-btn {
    background: rgba(255,255,255,0.2); backdrop-filter: none; -webkit-backdrop-filter: none;
  }
  .ofis-map-address, .ofis-map-badge {
    background: #fff; backdrop-filter: none; -webkit-backdrop-filter: none;
  }
  .map-tooltip { background: #161617; backdrop-filter: none; }
  .adm-metric { background: #fff; }
}
/* Yüksek kontrast: saç teli çizgiler kaybolur, tanımlı kenar gerekir. */
@media (prefers-contrast: more) {
  .card, .prog-card, .an-card, .adm-card, .adm-offer, .rp-gap, .rp-quote, .rp-fix,
  .uda-card, .adm-results, .adm-source, .adm-teaser {
    border: 1px solid var(--ink-2);
  }
  .chip { outline: 1px solid rgba(0,0,0,0.35); outline-offset: -1px; }
  .site-footer a, .foot-legal a { color: #e7ebf1; }
}

/* ---------- V4.12 Seçici kopya koruması ----------
   Yalnızca [data-protected] taşıyan kaplarda geçerlidir. Sağ tık
   menüsü KAPATILMAZ (erişilebilirliği bozar, Ctrl+U ile zaten aşılır).
   Kapsam dışı bırakılanlar açıkça geri açılır: form alanları, iletişim
   bilgileri, hata mesajları, [data-selectable] taşıyan her şey. */
[data-protected] {
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}
/* Bağlantılarda uzun basma menüsü çalışmaya devam etsin
   ("bağlantıyı yeni sekmede aç" mobilde tek yol). */
[data-protected] a { -webkit-touch-callout: default; }
/* Korumanın DIŞINDA kalanlar — koruma kabının içinde bile olsalar. */
[data-protected] input,
[data-protected] textarea,
[data-protected] select,
[data-protected] [contenteditable="true"],
[data-protected] a[href^="mailto:"],
[data-protected] a[href^="tel:"],
[data-protected] [data-selectable],
[data-selectable] {
  -webkit-user-select: text;
  -moz-user-select: text;
  user-select: text;
  -webkit-touch-callout: default;
}
/* Yazdırmada koruma görsel bir engel çıkarmaz; içerik olduğu gibi basılır. */
@media print { [data-protected] { -webkit-user-select: text; user-select: text; } }

/* ============================================================
   === V4: gövde ===
   Bu blok yalnızca EKLENİR. Üstteki hiçbir kural değiştirilmedi.
   İçerik: yapışkan mobil CTA · çerez bildirimi · sohbet paneli
   erişilebilirlik düzeltmesi · boş durum kartları · form durumları.
   ============================================================ */

/* ---------- Sohbet paneli: kapalıyken gerçekten kapalı (Y8) ----------
   Panel eskiden yalnızca opacity + pointer-events ile gizleniyordu; Tab
   ile içine girilebiliyor, ekran okuyucu her sayfada bir dialog duyuruyordu. */
.uda-panel { visibility: hidden; }
.uda-panel.open { visibility: visible; }

/* ---------- Yapışkan mobil CTA (O6) ---------- */
.mcta {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 2900;
  display: none;
  gap: 10px;
  align-items: center;
  padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
  background: rgba(250, 250, 252, 0.82);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  backdrop-filter: blur(24px) saturate(180%);
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 -8px 30px rgba(0, 0, 0, 0.10);
  /* JS yoksa çubuk görünür kalır (progressive enhancement).
     JS yalnızca hero CTA ekrandayken çubuğu aşağı çeker. */
  transform: none;
  transition: transform 0.4s cubic-bezier(0.32, 0.72, 0, 1);
}
.mcta.tuck { transform: translateY(105%); }
.mcta-label {
  flex: 1 1 auto; min-width: 0;
  font-size: 0.78rem; line-height: 1.25; letter-spacing: 0;
  color: var(--ink-2);
}
.mcta-label b { display: block; font-size: 0.92rem; color: var(--ink); letter-spacing: -0.01em; }
.mcta .btn {
  flex: 0 0 auto;
  min-height: 46px;
  padding: 12px 20px;
  font-size: 0.92rem;
  white-space: nowrap;
}
@media (max-width: 768px) {
  .mcta { display: flex; }
  /* Son bölüm CTA çubuğunun altında kalmasın. */
  body.has-mcta .site-footer { padding-bottom: calc(84px + env(safe-area-inset-bottom, 0px)); }
  /* Sohbet balonu çubuğun üstüne çıksın, üst üste binmesin. */
  body.has-mcta .uda-chat { bottom: calc(80px + env(safe-area-inset-bottom, 0px)); }
}
/* Klavye açıkken ya da çerez bildirimi dururken çubuk yolda durmaz. */
body.kb-open .mcta,
body.consent-open .mcta { transform: translateY(105%); }
/* Klavye açıkken sohbet BALONU yolda durmasın — ama sohbet PENCERESİ açıkken
   asla: kullanıcı sohbetin giriş kutusuna dokununca klavye açılıyor, bu kural
   sohbetin kendisini yok ediyordu → odak düşüyor, klavye kapanıyor ve mobilde
   "mesaj yazamıyorum" hatası doğuyordu. Panel açıkken gövdede `uda-open` var. */
body.kb-open:not(.uda-open) .uda-chat { display: none; }
@media (prefers-reduced-motion: reduce) {
  .mcta { transition: none; }
}
@media (prefers-reduced-transparency: reduce) {
  .mcta { background: #ffffff; -webkit-backdrop-filter: none; backdrop-filter: none; }
}

/* ---------- Çerez bildirimi ---------- */
.ck-note {
  position: fixed;
  left: 12px; right: 12px;
  bottom: calc(12px + env(safe-area-inset-bottom, 0px));
  z-index: 3200;
  max-width: 460px;
  margin-inline: auto;
  padding: 18px 20px 16px;
  border-radius: 22px;
  background: rgba(250, 250, 252, 0.94);
  -webkit-backdrop-filter: blur(34px) saturate(190%);
  backdrop-filter: blur(34px) saturate(190%);
  border: 1px solid rgba(0, 0, 0, 0.07);
  box-shadow: 0 30px 70px rgba(0, 0, 0, 0.26), 0 2px 10px rgba(0, 0, 0, 0.07);
  color: var(--ink);
  opacity: 0;
  transform: translateY(16px) scale(0.97);
  transition: opacity 0.3s var(--ease), transform 0.45s cubic-bezier(0.32, 0.72, 0, 1);
}
.ck-note.show { opacity: 1; transform: none; }
.ck-note h2 {
  font-size: 1rem; font-weight: 650; letter-spacing: -0.01em;
  line-height: 1.3; margin-bottom: 7px;
}
.ck-note p { font-size: 0.83rem; line-height: 1.55; color: var(--ink-2); }
.ck-note p + p { margin-top: 7px; }
.ck-note a { text-decoration: underline; text-underline-offset: 2px; }
.ck-actions { display: flex; gap: 9px; margin-top: 14px; }
.ck-actions button {
  flex: 1 1 0;
  min-height: 44px;
  padding: 11px 12px;
  border-radius: 12px;
  font-family: inherit;
  font-size: 0.86rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  cursor: pointer;
  transition: transform 0.12s ease-out, background 0.2s;
}
.ck-actions button:active { transform: scale(0.97); }
/* İki seçenek eşit ağırlıkta: aynı boyut, aynı kontrast, aynı yazı tipi.
   Hiçbiri diğerinden daha çekici çizilmedi. */
.ck-btn-a, .ck-btn-b {
  background: #ffffff;
  color: var(--ink);
  border: 1px solid rgba(0, 0, 0, 0.22);
}
.ck-btn-a:hover, .ck-btn-b:hover { background: #f0f0f2; }
.ck-more {
  display: inline-block; margin-top: 11px;
  font-size: 0.76rem; color: var(--gray);
}
@media (prefers-reduced-motion: reduce) {
  .ck-note { transition: opacity 0.2s ease; transform: none; }
}
@media (prefers-reduced-transparency: reduce) {
  .ck-note { background: #ffffff; -webkit-backdrop-filter: none; backdrop-filter: none; }
}

/* ---------- Dürüst boş durum (K5) ---------- */
.v4-empty {
  border: 1px dashed rgba(0, 0, 0, 0.16);
  border-radius: var(--radius-lg);
  background: #fff;
  padding: 44px 28px;
  text-align: center;
}
.v4-empty h2 { font-size: 1.35rem; letter-spacing: -0.02em; line-height: 1.25; }
.v4-empty p {
  /* Blok ortalı, metin sola dayalı: 6 satırlık ortalı paragraf okumayı yavaşlatır. */
  max-width: 46ch; margin: 12px auto 0; text-align: left;
  color: var(--gray); font-size: 0.94rem; line-height: 1.65;
}
.v4-empty .btn { margin-top: 22px; }

/* ---------- Form durumları ---------- */
.v4-alert {
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: 12px;
  font-size: 0.87rem;
  line-height: 1.55;
}
.v4-alert[hidden] { display: none; }
.v4-alert-err {
  background: #fdf2f2;
  border: 1px solid #e9c4c4;
  color: #8a2020;
}
.v4-alert-ok {
  background: #f0f7f1;
  border: 1px solid #bfdcc4;
  color: #1e5a2b;
}
.v4-alert a { color: inherit; text-decoration: underline; }
.v4-alert b { display: block; margin-bottom: 3px; }
[aria-invalid="true"] { border-color: #c0392b !important; }

/* Düğme içi yükleme durumu — genişlik zıplamasın diye metin yerinde kalır. */
.is-busy { position: relative; pointer-events: none; opacity: 0.75; }
.is-busy::after {
  content: "";
  position: absolute; top: 50%; right: 14px;
  width: 14px; height: 14px; margin-top: -7px;
  border: 2px solid currentColor; border-right-color: transparent;
  border-radius: 50%;
  animation: v4spin 0.7s linear infinite;
}
@keyframes v4spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .is-busy::after { animation-duration: 2.4s; }
}

/* === V5: sohbet CTA ===
   Sohbetteki tek sonraki adım. Hem hazır cevaplar hem model cevapları aynı
   butonu çizer, bir mesajda en fazla bir tane olur.

   Kararlar:
   - Kartın kenarında kalın renkli şerit YOK; vurgu dolgu, ışık ve tipografiden
     geliyor. Şerit şablon işareti, marka işareti değil.
   - Yüzey tek düz renk değil: üstten alta çok hafif bir ton düşüşü + iç üst
     kenarda saç teli parlaklık. Işığın yüzeye çarptığı izlenimi Apple'ın
     düğmelerini "basılabilir" gösteren şey.
   - Altın yalnızca vurgu: chevron ve odak halkası. Zemin lacivert kalır.
   - Yükseklik 44px tabanlı: parmak hedefi, dar ekranda da küçülmez.
   Yerleşim `.uda-msg a` kurallarını yenmek için `.uda-cta >` ile özgülleştirildi. */
.uda-cta {
  display: flex;           /* buton içeriği kadar geniş kalır, balonu germez */
  margin: 12px 0 1px;
}
.uda-cta > .uda-cta-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  max-width: 100%;         /* 320px'de balonun dışına taşmaz */
  min-height: 44px;        /* dokunma hedefi */
  padding: 11px 15px;
  border: 0;
  border-radius: 14px;
  background: linear-gradient(180deg, #1e5c93 0%, #174978 62%, #14416b 100%);
  color: #fff;
  font-size: 0.86rem;
  font-weight: 600;
  line-height: 1.32;
  letter-spacing: -0.005em;
  text-align: left;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
  /* saç teli kenar + yumuşak yükseklik (iki katmanlı gölge) */
  box-shadow:
    inset 0 0 0 0.5px rgba(255, 255, 255, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    0 1px 2px rgba(15, 28, 43, 0.20),
    0 8px 18px -10px rgba(20, 65, 107, 0.75);
  transition:
    transform 160ms cubic-bezier(0.23, 1, 0.32, 1),
    box-shadow 200ms cubic-bezier(0.23, 1, 0.32, 1),
    filter 200ms ease;
  animation: udaCtaIn 340ms cubic-bezier(0.32, 0.72, 0, 1) 60ms backwards;
}
/* Uzun metin satır kırar; tek uzun kelime bile kutuyu patlatmaz. */
.uda-cta-label { min-width: 0; overflow-wrap: anywhere; }
/* Chevron: ok karakteri değil, çizilmiş kenar — yazı tipinden bağımsız. */
.uda-cta-arrow {
  flex: none;
  width: 7px; height: 7px;
  border-top: 1.7px solid var(--gold-light, #f0c987);
  border-right: 1.7px solid var(--gold-light, #f0c987);
  transform: rotate(45deg);
  transition: transform 220ms cubic-bezier(0.23, 1, 0.32, 1);
}
/* Hiçbir şey yoktan var olmaz: 0.97'den, aşağıdan yükselerek gelir. */
@keyframes udaCtaIn {
  from { opacity: 0; transform: translateY(6px) scale(0.97); }
}
/* Hover yalnızca gerçek imleçte: dokunmatikte hover "yapışık" kalıyor. */
@media (hover: hover) and (pointer: fine) {
  .uda-cta > .uda-cta-btn:hover {
    transform: translateY(-1px);
    text-decoration: none;
    filter: saturate(1.06) brightness(1.06);
    box-shadow:
      inset 0 0 0 0.5px rgba(255, 255, 255, 0.24),
      inset 0 1px 0 rgba(255, 255, 255, 0.28),
      0 2px 4px rgba(15, 28, 43, 0.18),
      0 14px 26px -12px rgba(20, 65, 107, 0.85);
  }
  .uda-cta > .uda-cta-btn:hover .uda-cta-arrow { transform: translateX(2px) rotate(45deg); }
}
/* Dokunmatikte `.uda-msg a:hover` alt çizgisi tetiklenebiliyor — kapat. */
.uda-cta > .uda-cta-btn:hover,
.uda-cta > .uda-cta-btn:focus { text-decoration: none; }
/* Basma anında geri bildirim — parmağın altında oturur, tıklamayı beklemez. */
.uda-cta > .uda-cta-btn:active {
  transform: scale(0.97);
  filter: none;
  box-shadow:
    inset 0 0 0 0.5px rgba(255, 255, 255, 0.14),
    inset 0 1px 0 rgba(255, 255, 255, 0.16),
    0 1px 2px rgba(15, 28, 43, 0.22);
  transition-duration: 110ms;
}
/* Klavye odağı görünür — iki tonlu halka.
   Altın tek başına açık balon zemininde 1.85:1 kalıyor; WCAG 1.4.11 için
   3:1 gerekiyor. Dışına lacivert bir bant ekleniyor: bant zemine karşı
   7.7:1, altına karşı 4.1:1. Sonuç hem erişilebilir hem marka rengi. */
.uda-cta > .uda-cta-btn:focus-visible {
  outline: 2px solid var(--gold, #d9a35c);
  outline-offset: 3px;
  box-shadow:
    inset 0 0 0 0.5px rgba(255, 255, 255, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    0 0 0 7px var(--blue, #174978);
}
.uda-cta > .uda-cta-btn:focus:not(:focus-visible) { outline: none; }
/* Yüksek kontrast: dolgu düzleşir, kenar tanımlı hale gelir. */
@media (prefers-contrast: more) {
  .uda-cta > .uda-cta-btn {
    background: #123c63;
    box-shadow: inset 0 0 0 1.5px #ffffff;
  }
}
/* Azaltılmış hareket: geri bildirim kalır, yer değiştirme gider. */
@media (prefers-reduced-motion: reduce) {
  .uda-cta > .uda-cta-btn {
    animation: none;
    transition: box-shadow 160ms ease, filter 160ms ease;
  }
  .uda-cta > .uda-cta-btn:hover,
  .uda-cta > .uda-cta-btn:active { transform: none; }
  .uda-cta-arrow { transition: none; }
  .uda-cta > .uda-cta-btn:hover .uda-cta-arrow { transform: rotate(45deg); }
}

/* ============================================================================
   V6 — sohbet balonu etiketi, açık mavi gradyan butonlar, mobil girdi düzeltmesi
   ============================================================================ */

/* --- Sohbet balonundaki "AI" etiketi (amblemin SOLUNDA) ---
   YALNIZCA MOBİLDE görünür. Masaüstünde balonun tam etiketi zaten
   "Yapay zekâ asistanına sorun" diyor; rozet aynı şeyi ikinci kez söylüyordu.
   Mobilde (<=760px) `.uda-bubble-text` gizlendiği için AI Act m.50 bildirimini
   ayakta tutan tek görünür işaret bu rozet — orada açılır (bkz. @media 760px).

   Apple tipografi disiplini: küçük metin pozitif tracking ister, büyük metin
   negatif. Bu 11px'lik etiket okunabilirlik için hafifçe açılıyor. */
.uda-bubble-ai {
  display: none;
  font: 700 0.72rem/1 -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
  letter-spacing: 0.08em;
  color: #fff;
  opacity: 0.92;
  margin-right: 2px;
}
/* Bu override temel kuralın HEMEN ARDINDA durmalı: aynı özgüllükte, dosyanın
   yukarısındaki @media bloğuna konursa buradaki `none` onu ezer. */
@media (max-width: 760px) {
  .uda-bubble-ai { display: inline-block; }
}

/* --- Açık mavi gradyan buton ---
   Referans hero başlığındaki gradyan: linear-gradient(100deg,#a8cdf0,#5b93c9,#3e6e96).
   Metin gradyanı olarak kullanılan bu geçiş, dolgu olarak kullanılınca
   koyu uçtan başlaması gerekiyor — aksi halde beyaz yazı okunmaz. */
.btn-primary,
.mcta .btn,
.mcta a.btn-primary,
.uda-cta-btn,
.adm-cta,
.book-cta {
  background-image: linear-gradient(100deg, #5b93c9 0%, #4a80b4 45%, #3e6e96 100%);
  background-color: #4a80b4;      /* gradyan desteklenmezse düz renk */
  color: #fff;
  border: 0;
}
.btn-primary:hover,
.mcta .btn:hover,
.uda-cta-btn:hover {
  background-image: linear-gradient(100deg, #6ba2d6 0%, #578cc0 45%, #4a7ba3 100%);
}

/* Yapışkan mobil çubuk: zemin cam kalsın, buton gradyanlı açık mavi olsun. */
.mcta .btn {
  box-shadow: 0 2px 10px -2px rgba(62, 110, 150, 0.45);
}

/* --- MOBİL SOHBET GİRDİSİ DÜZELTMESİ ---
   Sorun: `.mcta` ekranın altına `position: fixed` ile sabitlenmiş ve sohbet
   girdisi de tam orada. Girdiye dokununca klavye açılıyor, `js/v4-ui.js`
   gövdeye `kb-open` ekleyip çubuğu gizliyor, klavye kapanınca geri getiriyor —
   kullanıcıya panel kapanıp açılıyormuş gibi görünüyor.
   Çözüm: sohbet paneli AÇIKKEN yapışkan çubuk tamamen devre dışı. İki fixed
   katman aynı şeridi paylaşmaz. */
body.uda-open .mcta {
  display: none !important;
}

/* Girdi alanı klavyeyle birlikte hareket etsin, panel zıplamasın.
   `100dvh` klavye açılınca yeniden hesaplanıyor ve sıçrama yaratıyordu;
   görsel viewport yüksekliği JS tarafından `--uda-vh` olarak veriliyor. */
@media (max-width: 640px) {
  /* `--uda-vh` (görsel viewport) artık yükseklik DEĞİL, ÜST SINIR: normalde
     82dvh'lik sayfa görünür; klavye açılınca görsel viewport küçülür ve sayfa
     tam onun kadar kalır — yani klavyenin üstüne oturur, altına kaymaz. */
  .uda-panel.open {
    height: min(82dvh, 620px,
      calc(var(--uda-vh, 100dvh) - var(--uda-gap, 14px) * 2 - env(safe-area-inset-bottom, 0px)));
  }
  /* iOS, 16px altındaki girdilere odaklanınca sayfayı yakınlaştırır —
     bu da "panel kaydı/kapandı" hissi veriyordu. */
  .uda-form input { font-size: 16px; }
}

/* --- Sohbet altlığı: iki satır, daha az yükseklik ---
   Önceki hâlde WhatsApp bağlantısı ile sorumluluk metni yan yanaydı; dar
   ekranda ikisi de sıkışıyor, metin üç satıra kırılıyor ve altlık paneli
   gereksiz yere yükseltiyordu. Alt alta dizilince her ikisi de rahat okunuyor
   ve toplam yükseklik düşüyor. */
.uda-foot {
  flex-direction: column;
  align-items: stretch;
  gap: 6px;
  padding: 0 14px 6px;
}
.uda-foot .uda-wa {
  justify-content: center;
  padding: 7px 12px;
  font-size: 0.84rem;
  line-height: 1.2;
}
.uda-foot .uda-disc {
  text-align: center;
  font-size: 0.7rem;
  line-height: 1.35;
  margin: 0;
  /* Küçük metin, Apple tipografi disiplini: pozitif tracking okunurluğu artırır */
  letter-spacing: 0.005em;
}

/* Panel yüksekliği: masaüstünde de biraz kısalsın, sohbet daha derli toplu görünsün. */
.uda-panel { height: min(560px, calc(100dvh - 140px)); }

/* Sadeleştirilmiş footer (hesabim, giris, odeme…): orada .foot-social ve
   .foot-bottom doğrudan footer'ın çocuğudur. Yukarıdaki
   `.foot-social { justify-content: flex-start }` kuralı ana sayfanın
   .foot-cols sütunu için yazılmıştı; sütunsuz footer'da satırı sayfanın en
   soluna yapıştırıp, ortalanmış .foot-legal ile kopuk gösteriyordu.
   Sütun yoksa ortala. */
.site-footer > .foot-social { justify-content: center; margin: 18px 0 4px; }
.site-footer > .foot-bottom { justify-content: center; text-align: center; }
.site-footer > .foot-bottom span { flex-basis: 100%; }

/* ===========================================================================
   Kabul simülasyonu — MOBİLE ÖZEL düzeltmeler (28 Ağu 2026)
   Masaüstü görünümü bilerek dışarıda: her kural bir mobil medya sorgusunda.
   =========================================================================== */
@media (max-width: 560px) {
  /* Ad + Soyad yan yana kalır; e-posta/telefon tek sütuna düşmeye devam eder
     (uzun değerler 2 sütunda okunmuyor). */
  .adm-row2.isim { grid-template-columns: 1fr 1fr; gap: 10px; }

  /* Satır araları daralt — mobilde form gereksiz uzuyordu. */
  .adm-card .adm-field { margin-bottom: 11px; }
  .adm-card .adm-field label { margin-bottom: 4px; }
  .adm-row2 { gap: 11px; }
  .adm-consent { margin-top: 14px; padding: 13px; }
  .adm-consent .adm-hint { margin-top: 8px; }
}

/* Cevap satırının satır sonu: mobilde "ChatGPT"den sonra, masaüstünde "de"den
   sonra bölünür. İki <br> de HTML'de duruyor, görünürlüğü medya sorgusu seçer. */
.br-mobil { display: none; }
@media (max-width: 767px) {
  .br-mobil { display: inline; }
  .br-masaustu { display: none; }
  /* "Doğru adrestesin, ChatGPT" ilk satırı 339 px'lik kaba tek satırda sığmalı.
     Eski boyut (2.109rem ≈ 409 px genişlik) fiziksel olarak sığmıyor; sabit
     küçük punto yerine vw ile ölçeklenir: her ekranda SIĞAN EN BÜYÜK boyut.
     375 px'te ≈ 28 px (1.75rem), 430 px'te ≈ 32 px — tavan eski boyutun kendisi. */
  .hero-answer { font-size: min(2.109rem, 7.4vw); letter-spacing: -0.02em; }
}

/* Hero alt metni: MOBİLDE cevap satırı gelince geri çekilir, butonlar yukarı gelir.
   `display:none` DEĞİL — element DOM'da kalır, böylece Y2'de düzeltilen
   "fold üstünde ürünü anlatan metin yok" SEO sorunu geri gelmez.

   Yumuşama eğrisi bilerek `cubic-bezier(.22,1,.36,1)`: önce hızlı, sonra
   yavaşlayarak durur ve HİÇ aşmaz (Apple'ın kritik sönümlü yayı, damping 1.0). */
@media (max-width: 767px) {
  #heroSubhead {
    transition: opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1),
                max-height 1.15s cubic-bezier(0.22, 1, 0.36, 1),
                margin-top 1.15s cubic-bezier(0.22, 1, 0.36, 1);
  }
  /* Butonların yükselişi bu bloğun `min-height` daralmasıyla olur (JS ölçüp yazar).
     Eğri kritik sönümlü (aşma yok): ilk ~üçte birde yolun çoğu alınır, kalanı
     yavaşlayarak oturur. Süre bilerek uzun — yükseliş aceleci durmasın. */
  #heroTextBlock { transition: min-height 1.15s cubic-bezier(0.22, 1, 0.36, 1); }
  #heroSubhead.hero-sub-cekil {
    opacity: 0; max-height: 0; margin-top: 0;
    overflow: hidden; pointer-events: none;
    /* margin-bottom BİLEREK sıfırlanmıyor: x ile iki buton arasındaki
       başlangıç boşluğu (27 px) sonda da aynı kalsın. */
  }
}
@media (prefers-reduced-motion: reduce) {
  #heroSubhead, #heroTextBlock { transition: none; }
}

/* Simülasyon hero'su mobilde çok aşağıdaydı: ~1,5 cm (≈57 px) yukarı çekilir.
   Satır içi `padding` yazıldığı için `!important` şart. Yalnızca bu sayfanın
   hero'su (`.sim-hero`) etkilenir — diğer sayfalardaki `.search-hero` aynı kalır.
   Alt boşluk da oranlı azaltılır ki başlık bloğu ortalanmış görünsün. */
@media (max-width: 767px) {
  .sim-hero { padding-top: 74px !important; padding-bottom: 38px !important; }
}
