/* LabDorado v5 "Indeks" : tokenlar + bilesen + bolum CSS (prototipte 390/1440 olculup dogrulandi).
   Kodcu bu dosyayi v5/assets/styles.css olarak AYNEN alir; yalniz tarayici onegi gerekirse ekleme yapar.
   Kurallar: radius 0 (hicbir yerde yuvarlak kose yok; tek istisna hizmet kartlarindaki ceyrek daire), golge YOK, gradient YOK,
   border yalniz 1px --hair, 5 font-size (xl/l/m/b/s), tek bolum boslugu --sec, tek bilesen: satir (.rows). */
/* Yedek font: Plus Jakarta Sans gelene kadar Arial, onunla ayni genislik/dikey olcuyle gosterilir (font gelince satir kaymasi/CLS olmasin).
   size-adjust, Chrome'da ayni metnin iki fontta olculen genislik oranindan (300: 1.025, 400-600: 1.042, bold: 1.005); ascent/descent override = font olcusu / size-adjust. */
@font-face{font-family:"PJS Yedek";src:local("Arial"),local("ArialMT");font-weight:300;size-adjust:102.5%;ascent-override:101.5%;descent-override:21.5%;line-gap-override:0%}
@font-face{font-family:"PJS Yedek";src:local("Arial"),local("ArialMT");font-weight:400 600;size-adjust:104.2%;ascent-override:99.8%;descent-override:21.1%;line-gap-override:0%}
@font-face{font-family:"PJS Yedek";src:local("Arial Bold"),local("Arial-BoldMT");font-weight:700 800;size-adjust:100.5%;ascent-override:103.5%;descent-override:21.9%;line-gap-override:0%}
:root{
  /* renk */
  --white:#fff; --ink:#0a0a0a; --blue:#005EFB; --green:#37D564;
  --blue-d:#0040B8;   /* beyaz/tint uzerinde kucuk metin */
  --green-d:#0B6B2E;  /* beyaz/tint uzerinde kucuk metin */
  --mut:#3d4350;      /* ikincil metin */
  --tint-n:#f4f6f9; --tint-b:#eef4ff; --tint-g:#eefaf2;
  --hair:rgba(10,10,10,.14);          /* tek ayirici: 1px */
  /* font */
  --f:'Plus Jakarta Sans','PJS Yedek',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  /* tipografi: tam 5 font-size */
  --fs-xl:clamp(3.25rem,15vw,8.5rem);   /* H1 */
  --fs-l:clamp(2.25rem,8.6vw,4.5rem);   /* hizmet no, proje adi, footer CTA, menu baglantilari */
  --fs-m:clamp(1.5rem,5.4vw,2.25rem);   /* hizmet adi, metin marka adi, teknoloji (768+) */
  --fs-b:1.125rem;                      /* govde, lede, buton, teknoloji (mobil) */
  --fs-s:.9375rem;                      /* etiket, kategori, kucuk bilgi */
  /* yerlesim */
  --pad:20px; --max:1440px; --bar:56px; --sec:72px; --gap:24px;
  --ease:cubic-bezier(.2,.8,.2,1);
}
@media (min-width:768px){:root{--pad:32px;--sec:96px}}
@media (min-width:1024px){:root{--pad:56px;--sec:128px;--bar:72px}}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--bar) + 48px)}
body{margin:0;background:var(--white);color:var(--ink);font-family:var(--f);font-size:var(--fs-b);line-height:1.6;font-weight:500;-webkit-font-smoothing:antialiased;overflow-x:clip}
img,svg{display:block;max-width:100%}
img{height:auto}
h1,h2,h3{font-family:var(--f);font-weight:800;margin:0}
p,ul,ol{margin:0;padding:0}
ul,ol{list-style:none}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer;background:none;border:0;padding:0}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.skip{position:fixed;left:12px;top:-100px;z-index:200;background:var(--ink);color:#fff;padding:14px 18px;font-weight:800;text-decoration:none}
.skip:focus{top:12px}
.wrap{padding-inline:var(--pad);max-width:var(--max);margin-inline:auto}

/* ---- tipografi rolleri ---- */
.t-xl{font-size:var(--fs-xl);line-height:.96;letter-spacing:-.035em}
.t-l{font-size:var(--fs-l);line-height:1;letter-spacing:-.03em}
.t-m{font-size:var(--fs-m);line-height:1.12;letter-spacing:-.02em}
.t-s{font-size:var(--fs-s);line-height:1.5}
.lede{color:var(--mut);max-width:24.6em}

/* ---- bolum etiketi (h2): kucuk, solda; buyuk tipografi icerikte ---- */
.lab{display:flex;align-items:center;gap:10px;font-size:var(--fs-s);font-weight:800;line-height:1.3;letter-spacing:.01em}
.lab::before{content:"";width:10px;height:10px;background:var(--blue);flex:none}

/* ---- buton (kare, mavi) ---- */
.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;min-height:64px;padding:0 24px;background:var(--blue);color:#fff;font-weight:800;font-size:var(--fs-b);line-height:1;text-decoration:none;transition:background-color .2s,transform .12s}
.btn:hover{background:var(--ink)}
.btn:active{transform:translateY(1px)}
.btn:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.btn[aria-disabled="true"],.btn[disabled]{background:var(--tint-n);color:#5b6270;pointer-events:none}
.btn svg{width:22px;height:22px;flex:none;transition:transform .2s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn.sm{min-height:48px;padding:0 20px}

/* ---- metin baglantisi ---- */
.ln{display:inline-flex;align-items:center;min-height:48px;font-weight:800;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px;text-decoration-color:var(--blue);transition:color .2s}
.ln:hover{color:var(--blue-d)}

/* ---- bolum iskeleti: etiket + govde ---- */
.s{padding-block:var(--sec);border-top:1px solid var(--hair)}
.s.n{background:var(--tint-n);border-top:0}
#hizmetler.s{border-top:0}
.s .wrap{display:grid;gap:32px}
.s .lab{min-height:40px}
@media (min-width:1024px){.s .wrap{grid-template-columns:3fr 9fr;column-gap:var(--gap);align-items:start}}

/* ---- header: ince sabit bar ---- */
.bar{position:sticky;top:0;z-index:50;background:var(--white);border-bottom:1px solid var(--hair);padding-top:20px;padding-bottom:20px}
.bar .wrap{height:var(--bar);display:flex;align-items:center;justify-content:space-between;gap:24px}
.logo{display:inline-flex;align-items:center;min-height:48px}
.logo img{width:128px;height:auto}
.nav-d{display:none}
.nav-d a:not(.btn){display:inline-flex;align-items:center;min-height:48px;padding:0 4px;margin-right:24px;font-weight:800;text-decoration:none;text-underline-offset:6px;text-decoration-thickness:2px}
.nav-d a:not(.btn):hover{text-decoration:underline;text-decoration-color:var(--blue)}
.mbtn{min-height:48px;min-width:64px;padding:0 4px 0 16px;font-weight:800;font-size:var(--fs-b);display:inline-flex;align-items:center;justify-content:flex-end;gap:8px}
.mbtn::after{content:"+";font-size:var(--fs-m);line-height:1;font-weight:500;margin-top:-2px}
.mbtn[aria-expanded="true"]::after{content:"\00d7"}
@media (min-width:1024px){
  .logo img{width:152px}
  .mbtn,.panel{display:none}
  .nav-d{display:flex;align-items:center}
  .nav-d .btn{margin-left:8px}
}

/* ---- menu paneli (mobil): bar yerinde kalir, panel altindan acilir ---- */
.panel{position:fixed;left:0;right:0;top:calc(var(--bar) + 40px);bottom:0;z-index:40;background:var(--white);padding:8px var(--pad) calc(24px + env(safe-area-inset-bottom));overflow-y:auto;display:flex;flex-direction:column;clip-path:inset(0 0 100% 0);visibility:hidden;transition:clip-path .24s var(--ease),visibility 0s .24s}
.panel.open{clip-path:inset(0);visibility:visible;transition:clip-path .24s var(--ease),visibility 0s}
.panel nav a{display:flex;align-items:center;justify-content:space-between;min-height:72px;font-size:var(--fs-l);font-weight:800;letter-spacing:-.03em;line-height:1;text-decoration:none;border-bottom:1px solid var(--hair)}
.panel nav a:hover{color:var(--blue-d)}
.panel nav svg{width:28px;height:28px;flex:none;color:var(--blue)}
.panel .btn{margin-top:24px}
.panel .soc{margin-top:auto;padding-top:24px;display:flex;gap:24px;flex-wrap:wrap}

/* ---- hero ---- */
.hero{padding-top:calc(var(--sec)/2)}
.hero h1 .lt{font-weight:300}
.hero .lede{margin-top:24px}
.hero .btn{margin-top:32px;width:100%}
.hero-body{display:block}
@media (min-width:768px){.hero .btn{width:auto;min-width:300px}}
@media (min-width:1024px){
  .hero{padding-top:64px}
  .hero-body{display:block;margin-top:40px}
  .hero-body .lede{margin-top:0;max-width:27.5em}
  .hero .btn{margin-top:32px}
}


/* ---- satir bileseni: ortak (.rows; projeler kullanir) ---- */
.rows>li{display:grid;grid-template-columns:auto 1fr;column-gap:16px;padding-block:24px;border-top:1px solid var(--hair)}
.rows>li:first-child{border-top:0;padding-top:0}

/* ---- satir bileseni: projeler (acik gri bant, kartsiz) ---- */
.pj>li{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0;min-height:80px;border-top:1px solid var(--hair)}
.pj>li:last-child{border-bottom:1px solid var(--hair)}
.pj .lg{display:flex;align-items:center;height:48px}
.pj .lg img{width:auto;height:var(--lh,30px);max-width:200px;object-fit:contain;object-position:left center}
.pj .nm{font-size:var(--fs-m);font-weight:800;line-height:1.1;letter-spacing:-.02em}
.pj .ct{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-s);font-weight:700;color:var(--mut);white-space:nowrap}
.pj .ct::before{content:"";width:8px;height:8px;background:var(--blue)}
.pj .ct.g::before{background:var(--green)}
@media (min-width:768px){
  .pj{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(3,auto);grid-auto-flow:column;column-gap:48px}
  .pj>li:nth-child(3){border-bottom:1px solid var(--hair)}
  .pj>li{min-height:96px}
  .pj>li:nth-child(1),.pj>li:nth-child(4){border-top:1px solid var(--hair)}
}

/* ---- teknolojiler: duz metin sutunlari ---- */
.tc{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--gap);row-gap:0}
.tc li{font-size:var(--fs-b);font-weight:800;letter-spacing:-.01em;padding-block:12px;line-height:1.3}
@media (min-width:768px){.tc{grid-template-columns:repeat(3,1fr)}.tc li{font-size:var(--fs-m);padding-block:14px}}
@media (min-width:1024px){.tc{grid-template-columns:repeat(4,1fr)}}

/* ---- footer ---- */
.ftr{background:var(--tint-g);padding-block:var(--sec) 32px}
.cta-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:96px;border-block:1px solid var(--hair);font-size:var(--fs-l);font-weight:800;letter-spacing:-.03em;line-height:1;text-decoration:none;transition:color .2s}
.cta-row svg{width:.8em;height:.8em;flex:none;color:var(--blue);transition:transform .2s var(--ease)}
.cta-row:hover{color:var(--blue-d)}
.cta-row:hover svg{transform:translateX(6px)}
.ftr .cols{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:40px}
.ftr h2{margin-bottom:8px}
.ftr ul a{display:inline-flex;align-items:center;min-height:48px;font-weight:300;text-decoration:none}
.ftr ul a:hover{text-decoration:underline;text-decoration-color:var(--blue);text-decoration-thickness:2px;text-underline-offset:5px}
.ftr .end{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:40px;padding-top:24px;border-top:1px solid var(--hair);color:var(--mut)}
.ftr .end .logo img{width:128px}
@media (min-width:768px){.ftr .cols{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1024px){.ftr .cols{grid-template-columns:repeat(3,3fr)}}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms!important;animation:none!important}}

/* LabDorado v5 GUNCELLEME: hizmet kartlari + detay paneli + SSS.
   Bu dosya v5/assets/styles.css'in SONUNA eklenir (mevcut tokenlari bozmaz, yeni token ve sinif ekler).
   Yeni font-size / renk YOK: mevcut --fs-* ve renkler kullanilir. Istisnalar (yalniz kartlar+panel): ciftli yuvarlak kose YOK (kose 0 kalir,
   tek yuvarlak form = ceyrek daire, hero imzasinin dili), 1 golge recetesi (yalniz acik panel), gradient YOK.
   SILINECEK eski secililer (v5/assets/styles.css icinden, dosyanin sonunda "SIL" listesi var):
   .sv .no | .sv h3 | .sv p | @media(min-width:1024px){.sv>li... .sv .no ... .sv p ... .sv>li:first-child}.
   DOKUNMA: .rows>li (+ :first-child) kurallari .pj icin GEREKLI, silinmez. */

:root{
  /* yay (spring): kisa, hafif tasma (%4,6). linear() desteklenmezse cubic-bezier yedegi */
  --spring:cubic-bezier(.34,1.3,.64,1);
  --t-open:440ms; --t-close:320ms;
}
@supports (transition-timing-function:linear(0,1)){
  :root{--spring:linear(0,.049,.166,.315,.47,.614,.739,.841,.918,.974,1.011,1.033,1.043,1.046,1.043,1.038,1.031,1.024,1.017,1.012,1.005,1)}
}
html{scrollbar-gutter:stable}
html.lock{overflow:hidden}

/* =========================================================
   1. HIZMET KARTLARI  (<ol class="svc-g"> > <li class="svc">)
   Kimlik: acik gri dolgu yuzey, kare kose, sag ust kosede YESIL CEYREK DAIRE + artisi (hero imzasinin dili),
   buyuk ince mavi numara. Hover/odak/acik: dolgu --tint-b, ceyrek daire buyur, arti doner.
   ========================================================= */
.svc-g{display:grid;grid-template-columns:1fr;gap:12px}
.svc{position:relative;display:flex;flex-direction:column;padding:20px;background:var(--tint-n);overflow:hidden;
  transition:background-color .2s,transform .35s var(--spring);-webkit-tap-highlight-color:transparent}
.svc:active{transform:scale(.98);transition-duration:.2s,.1s}
.svc .no{font-size:var(--fs-l);line-height:1;font-weight:300;color:var(--blue);font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.svc h3{padding-top:24px;font-size:var(--fs-m);line-height:1.12;letter-spacing:-.02em}
.svc>p{margin-top:auto;padding-top:12px;color:var(--mut);max-width:24.6em;font-size:12px;font-weight:300}
/* ceyrek daire + arti: yalniz JS ile (.js) gorunur */
.svc::before{content:"";position:absolute;top:0;right:0;width:64px;height:64px;background:var(--green);border-radius:0 0 0 100%;transform-origin:100% 0;transition:transform .45s var(--spring);display:none}
.js .svc::before{display:block}
.svc .pl{position:absolute;top:10px;right:10px;width:24px;height:24px;display:none;transition:rotate .45s var(--spring)}
.js .svc .pl{display:block}
.svc .pl::before,.svc .pl::after{content:"";position:absolute;left:50%;top:50%;background:var(--ink)}
.svc .pl::before{width:16px;height:2.5px;margin:-1.25px 0 0 -8px}
.svc .pl::after{width:2.5px;height:16px;margin:-8px 0 0 -1.25px}
/* tum karti kaplayan tiklama alani (button icinde h3 degil, h3 icinde button: gecerli HTML) */
.svc-b{display:block;width:100%;text-align:left;font:inherit;letter-spacing:inherit;color:inherit;font-weight:800;line-height:inherit}
.svc-b::after{content:"";position:absolute;inset:0}
.svc-b:focus-visible{outline:0}
.svc:has(.svc-b:focus-visible){outline:3px solid var(--blue);outline-offset:3px;background:var(--tint-b)}
.svc:has(.svc-b:focus-visible)::before{transform:scale(1.2)}
.svc:has(.svc-b:focus-visible) .pl{rotate:90deg}
@media (hover:hover){
  .svc:hover{background:var(--tint-b)}
  .svc:hover::before{transform:scale(1.2)}
  .svc:hover .pl{rotate:90deg}
}
/* JS yoksa: detay listesi kartin altinda acik duz icerik; JS varsa gizli (panel bu icerigi kopyalar) */
.svc-det{margin-top:20px;padding-top:16px;border-top:1px solid var(--hair)}
.svc-det h4{font-size:var(--fs-s);font-weight:800;margin:0 0 4px}
.svc-det li{padding-block:6px;color:var(--mut)}
.svc-det .tech{margin-top:10px;font-size:var(--fs-s);color:var(--mut)}
.svc-det .tech b{color:var(--ink);font-weight:800}
.js .svc-det{display:none}
@media (min-width:700px){.svc-g{grid-template-columns:1fr 1fr;gap:16px}.svc{min-height:300px;padding:24px}.svc h3{padding-top:40px}.svc::before{width:72px;height:72px}.svc .pl{top:12px;right:12px}}
@media (min-width:1024px){.svc-g{grid-template-columns:repeat(3,1fr)}}

/* =========================================================
   2. DETAY PANELI  (<dialog class="sp" id="sp">)
   Mobil: tam ekran sayfa. >=900: ortada buyuk panel (sol %5/12 acik mavi baslik alani, sag %7/12 icerik).
   ========================================================= */
.sp{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:var(--white);color:var(--ink);overflow:hidden}
.sp:not([open]){display:none}
.sp::backdrop{background:rgba(244,246,249,.82)}
.sp-in{display:grid;grid-template-columns:1fr;grid-template-areas:"top" "head" "main" "foot";grid-template-rows:auto auto 1fr auto;height:100%;overflow-y:auto;overscroll-behavior:contain}
.sp-top{grid-area:top;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 var(--pad);min-height:var(--bar);border-bottom:1px solid var(--hair);position:sticky;top:0;background:var(--white);z-index:2}
.sp-cnt{font-size:var(--fs-s);font-weight:800;font-variant-numeric:tabular-nums;color:var(--mut)}
.sp-x{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 0 0 12px;font-weight:800;font-size:var(--fs-b);margin-right:-4px}
.sp-x i{position:relative;width:28px;height:28px;rotate:45deg;display:block}
.sp-x i::before,.sp-x i::after{content:"";position:absolute;left:50%;top:50%;background:var(--ink)}
.sp-x i::before{width:20px;height:2.5px;margin:-1.25px 0 0 -10px}
.sp-x i::after{width:2.5px;height:20px;margin:-10px 0 0 -1.25px}
.sp-x:hover{color:var(--blue-d)}
.sp-head{grid-area:head;padding:32px var(--pad) 8px;position:relative}
.sp-head::after{content:"";position:absolute;top:0;right:0;width:64px;height:64px;background:var(--green);border-radius:0 0 0 100%;display:none}
.sp-no{display:block;font-size:var(--fs-xl);line-height:.96;font-weight:300;color:var(--blue);font-variant-numeric:tabular-nums;letter-spacing:-.035em;transform-origin:0 100%}
.sp-t{margin-top:12px;font-size:var(--fs-l);line-height:1;letter-spacing:-.03em;font-weight:800}
.sp-d{margin-top:16px;color:var(--mut);max-width:24.6em}
.sp-main{grid-area:main;padding:24px var(--pad) 32px}
.sp-main h3{font-size:var(--fs-s);font-weight:800;line-height:1.3;display:flex;align-items:center;gap:10px;min-height:32px}
.sp-main h3::before{content:"";width:10px;height:10px;background:var(--blue);flex:none}
.sp-l{margin-top:8px}
.sp-l li{padding-block:14px;border-top:1px solid var(--hair);font-weight:700}
.sp-l li:last-child{border-bottom:1px solid var(--hair)}
.sp-tech{margin-top:24px;color:var(--mut);font-size:var(--fs-b);line-height:1.6}
.sp-tech b{display:block;color:var(--ink);font-weight:800;font-size:var(--fs-s);margin-bottom:2px}
.sp-foot{grid-area:foot;position:sticky;bottom:0;z-index:2;display:flex;gap:8px;padding:12px var(--pad) calc(12px + env(safe-area-inset-bottom));background:var(--white);border-top:1px solid var(--hair)}
.sp-foot .btn{flex:1;min-width:0}
.sp-nv{flex:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:64px;min-height:64px;background:var(--tint-n);font-weight:800;transition:background-color .2s,transform .35s var(--spring)}
.sp-nv:hover{background:var(--tint-b)}
.sp-nv:active{transform:scale(.96);transition-duration:.2s,.1s}
.sp-nv svg{width:22px;height:22px;flex:none;color:var(--blue)}
.sp-nv span{display:none}
.sp-nv:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}

@media (min-width:900px){
  .sp{inset:0;margin:auto;width:min(1120px,calc(100vw - 64px));height:min(760px,calc(100svh - 48px));border:1px solid var(--hair);box-shadow:0 24px 64px rgba(10,10,10,.12)}
  .sp-in{grid-template-columns:5fr 7fr;grid-template-areas:"head top" "head main" "head foot";grid-template-rows:auto 1fr auto;overflow:hidden}
  .sp-top{padding:0 32px;position:static}
  .sp-head{background:var(--tint-b);padding:32px;display:flex;flex-direction:column}
  .sp-head::after{display:block}
  .sp-no{margin-top:auto}
  .sp-t{margin-top:16px}
  .sp-d{margin-bottom:0}
  .sp-main{padding:24px 32px;overflow-y:auto}
  .sp-foot{position:static;padding:16px 32px;gap:8px}
  .sp-nv{padding:0 20px}
  .sp-nv span{display:inline}
  .sp-foot .btn{flex:1}
}

/* =========================================================
   3. ACILIS / KAPANIS HAREKETI (yalniz kullanici tetiklemeli; dongu YOK)
   Birincil: View Transitions ile kart -> panel morph (440 ms yay / kapanis 320 ms yumusak).
   Yedek: View Transitions yoksa .sp.fb girisi (opacity+translate+scale). Reduced-motion: hicbiri.
   ========================================================= */
::view-transition-old(root),::view-transition-new(root){animation:none}
::view-transition-group(svc){animation-duration:var(--t-open);animation-timing-function:var(--spring)}
/* ust-sola sabit, gerilmeyen goruntu: kart/panel anlik goruntusu bozulmadan acilan pencerede acigi cikar */
::view-transition-old(svc),::view-transition-new(svc){height:100%;object-fit:none;object-position:0 0;animation-timing-function:linear;mix-blend-mode:normal}
html.vt-open::view-transition-old(svc){animation:vt-out 120ms both}
html.vt-open::view-transition-new(svc){animation:vt-in 160ms 40ms both}
html.vt-close::view-transition-group(svc){animation-duration:var(--t-close);animation-timing-function:var(--ease)}
html.vt-close::view-transition-old(svc){animation:vt-out 130ms both}
html.vt-close::view-transition-new(svc){animation:vt-in 160ms 80ms both}
@keyframes vt-out{to{opacity:0}}
@keyframes vt-in{from{opacity:0}}

/* ic ogelerin sirali beliris: 3 grup (.g1 baslik, .g2 liste, .g3 alt cubuk), 0/50/100 ms + 120 ms baslangic */
.sp.in .g{animation:g-in 280ms var(--ease) calc(120ms + var(--i,0)*50ms) backwards}
.g1{--i:0}.g2{--i:1}.g3{--i:2}
@keyframes g-in{from{opacity:0;transform:translateY(14px)}}
.sp.in .sp-no{animation:no-pop 480ms var(--spring) 110ms backwards}
@keyframes no-pop{from{transform:scale(.7)}}
.sp.in .sp-x i{animation:x-turn 460ms var(--spring) 90ms backwards}
@keyframes x-turn{from{rotate:0deg}}
/* sonraki/onceki: icerik yatay hafif kayarak degisir */
.sp.sw .g{animation:g-sw 240ms var(--ease) calc(var(--i,0)*40ms) backwards}
@keyframes g-sw{from{opacity:0;transform:translateX(calc(var(--dir,1)*18px))}}
.sp.sw .sp-no{animation:no-pop 420ms var(--spring) backwards}
/* yedek giris/cikis */
.sp.fb{animation:sp-fb 360ms var(--spring) both}
.sp.fb-out{animation:sp-fb-out 200ms var(--ease) both}
@keyframes sp-fb{from{opacity:0;transform:translateY(24px) scale(.98)}}
@keyframes sp-fb-out{to{opacity:0;transform:translateY(12px) scale(.99)}}

@media (prefers-reduced-motion:reduce){
  .sp *,.sp,.svc,.svc::before,.svc .pl{animation:none!important;transition-duration:.01ms!important}
}

/* =========================================================
   4. SSS  (<section class="s" id="sss"> > h2.lab + div.faq > details)
   ========================================================= */
.faq details{border-top:1px solid var(--hair)}
.faq details:last-child{border-bottom:1px solid var(--hair)}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:72px;padding-block:16px;cursor:pointer;list-style:none;font-size:var(--fs-m);font-weight:800;line-height:1.15;letter-spacing:-.02em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;width:48px;text-align:center;font-size:var(--fs-m);font-weight:500;line-height:1;color:var(--blue)}
.faq details[open] summary::after{content:"\2212"}
.faq summary:hover{color:var(--blue-d)}
.faq summary:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}
.faq details>p{padding:0 56px 24px 0;color:var(--mut);max-width:44.9em}
@supports (interpolate-size:allow-keywords){
  .faq{interpolate-size:allow-keywords}
  .faq details::details-content{block-size:0;overflow:clip;transition:block-size .2s var(--ease),content-visibility .2s allow-discrete}
  .faq details[open]::details-content{block-size:auto}
}
@media (prefers-reduced-motion:reduce){.faq details::details-content{transition:none!important}}

/* LabDorado v5 COK SAYFALI SITE: /hizmetler/ + /hizmetler/<slug>/ + kabuk eklemeleri.
   Bu dosya v5/assets/styles.css'in SONUNA eklenir (v5-tokens.css + v5-update-tokens.css'ten SONRA). Mevcut tokenlari/siniflari BOZMAZ.
   Yeni font-size YOK (xl/l/m/b/s kullanilir), yeni renk YOK, golge YOK, gradient YOK, border yalniz 1px --hair.
   Tek yuvarlak form: ceyrek daire (hizmet kartlari ve detay sayfasi giris bandi).
   Yeniden kullanilan mevcut siniflar: .wrap .s .s.n .lab .btn .ln .t-xl .t-m .tc .cta-row .sr .logo .bar .panel .nav-d
   Dekoratif animasyon YOK; yalniz kullanici tetiklemeli geri bildirim (hover/odak/basis). */

:root{ --sec-s:calc(var(--sec)*.75); }   /* hafif bolumler (ilgili hizmetler, onceki/sonraki): 54 / 72 / 96 px */

/* =========================================================
   0. KABUK: aktif sayfa, footer 4 sutun
   ========================================================= */
.nav-d a[aria-current]:not(.btn){text-decoration:underline;text-decoration-color:var(--blue)}
.panel nav a[aria-current]{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:8px;text-decoration-color:var(--blue)}
/* footer: Sayfalar | Hizmetler | Iletisim | Sosyal. <768: 2x2, 768-1023: 2x2, >=1024: 4 sutun */
.ftr .cols.c4{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
@media (min-width:1024px){.ftr .cols.c4{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* anasayfa: bolum basligi satiri (Hizmetler + "Tum hizmetler ->") */
.sh{display:flex;align-items:center;justify-content:space-between;gap:16px}
.sh .ln svg{width:20px;height:20px;flex:none;margin-left:8px;transition:transform .2s var(--ease)}
.sh .ln:hover svg{transform:translateX(4px)}
@media (min-width:1024px){.sh{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:0}}

/* anasayfa: panel basligindaki "Detay sayfasi ->" baglantisi + JS'siz kart ici baglanti */
.sp-more{margin-top:16px}
.sp-more svg,.svc-det .ln svg{width:20px;height:20px;flex:none;margin-left:8px;transition:transform .2s var(--ease)}
.sp-more:hover svg,.svc-det .ln:hover svg{transform:translateX(4px)}
.svc-det .ln{margin-top:8px;position:relative;z-index:1}   /* JS'siz: kart ici metin baglantisi (kart ust katmani yok, .svc-b yalniz JS ile var) */

/* =========================================================
   1. BREADCRUMB  <nav class="bc" aria-label="Sayfa yolu"><ol><li><a>..</a></li>..<li aria-current="page">..</li></ol></nav>
   ========================================================= */
.bc ol{display:flex;flex-wrap:wrap;align-items:center}
.bc li{display:inline-flex;align-items:center;min-height:48px;font-size:var(--fs-s);font-weight:700;line-height:1.3;color:var(--mut)}
.bc li+li::before{content:"/";content:"/" / "";margin-inline:10px;font-weight:500}
.bc a{display:inline-flex;align-items:center;min-height:48px;text-decoration:none;transition:color .2s}
.bc a:hover{color:var(--blue-d);text-decoration:underline;text-decoration-color:var(--blue);text-decoration-thickness:2px;text-underline-offset:5px}
.bc li[aria-current]{color:var(--ink);font-weight:800}

/* =========================================================
   2. SAYFA GIRISI  .pi
   /hizmetler/ : <section class="pi ix">  (beyaz; H1 tam genislik + lede 9 sutunda)
   detay       : <section class="pi b">   (acik mavi tam kenar bant + alt sag ceyrek daire; H1 + numara + giris)
   ========================================================= */
.pi{padding-bottom:var(--sec-s)}
.pi.ix{padding-bottom:calc(var(--sec)/2)}
.pi-g{display:grid;grid-template-columns:1fr;row-gap:12px;margin-top:8px}
.pi h1{font-weight:800;text-wrap:balance;overflow-wrap:break-word;min-width:0}
.pi.b h1{font-size:clamp(2.75rem,12.4vw,8.5rem);letter-spacing:-.015em;line-height:1.04;overflow-wrap:normal;hyphens:manual;margin-top:24px}
.nw{white-space:nowrap} /* tireli kelime (E-Ticaret, back-end) tirede bolunmesin */
/* Hizmet detay girisi (kunye): baslik alta yaslanir, yesil ceyrek daire sag uste; altta 1px cizgiyle numara | giris | buton */
.pi.b{padding-bottom:0}
.pi.b::after{top:0;bottom:auto;border-radius:0 0 0 100%;width:72px;height:72px}
.pi.b .wrap{display:flex;flex-direction:column}
.pi.b .bc{padding-right:64px;margin-bottom:8px}
.pi-f{display:grid;grid-template-columns:1fr;row-gap:16px;margin-top:32px;padding-block:24px var(--sec-s);border-top:1px solid var(--hair)}
.pi-no{font-size:var(--fs-l);line-height:1;font-weight:300;color:var(--blue);font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.pi.b .pi-l{margin-top:0;max-width:26em;grid-column:auto;grid-row:auto}
.pi-btn{width:100%;margin-top:8px}
/* mobilde breadcrumb'in son halkasi (H1 ile ayni metin) gorsel gizli, ekran okuyucuda kalir */
@media (max-width:767px){.pi.b .bc li[aria-current]{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}
@media (min-width:768px){.pi-btn{width:auto;min-width:300px;justify-self:start}}
@media (min-width:1024px){
  .pi.b::after{width:var(--sec-s);height:var(--sec-s)}
  .pi.b .wrap{min-height:min(620px,calc(100vh - 112px))}
  .pi.b h1{margin-top:auto;padding-top:64px;max-width:14em}
  .pi-f{grid-template-columns:3fr 6fr 3fr;column-gap:var(--gap);align-items:start;margin-top:48px;padding-block:32px 56px}
  .pi-btn{justify-self:end;min-width:0;width:100%;margin-top:0}
}
.pi .no{order:-1;font-size:var(--fs-l);line-height:1;font-weight:300;color:var(--blue);font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.pi-l{margin-top:12px;font-size:var(--fs-m);line-height:1.25;font-weight:500;letter-spacing:-.02em;max-width:26em;text-wrap:pretty}
.pi.ix .pi-l{margin-top:12px;font-size:var(--fs-b);line-height:1.6;letter-spacing:0;color:var(--mut);max-width:24.6em}
/* bant: kenardan kenara; ceyrek daire alt sag kosede (yukseklik = alt dolgu, metinle cakismaz) */
.pi.b{position:relative;background:var(--tint-b);overflow:hidden}
.pi.b::after{content:"";position:absolute;right:0;bottom:0;width:var(--sec-s);height:var(--sec-s);background:var(--green);border-radius:100% 0 0 0}
@media (min-width:1024px){
  .pi-g{grid-template-columns:3fr 9fr;column-gap:var(--gap);row-gap:32px;margin-top:16px;align-items:start}
  .pi h1{grid-column:1/-1;grid-row:1}
  .pi .no{order:0;grid-column:1;grid-row:2;margin-top:6px}
  .pi-l{grid-column:2;grid-row:2;margin-top:0}
  .pi.ix .pi-l{grid-column:2;grid-row:2;max-width:27.5em;margin-top:0}
}

/* =========================================================
   3. HIZMET BAGLANTI KARTI  .sl  (/hizmetler/ ; panel acmaz, gercek baglanti)
   <ol class="sl-g"><li class="sl" id? ><span class="no" aria-hidden="true">01</span>
     <h2 class="t-m"><a href="/hizmetler/slug/" aria-describedby="d-slug">Ad</a></h2>
     <p id="d-slug">kisa aciklama</p><p class="tg">Arac · Arac · Arac</p>
     <svg class="ar" ...ok></svg></li>
   Ceyrek daire + ok HER ZAMAN gorunur (JS'e bagli degil). Hover/odak: dolgu --tint-b, ceyrek daire buyur, ok -45 derece doner (->  ↗).
   ========================================================= */
.sl-g{display:grid;grid-template-columns:1fr;gap:12px}
.sl{position:relative;display:flex;flex-direction:column;padding:20px;background:var(--tint-n);overflow:hidden;
  transition:background-color .2s,transform .35s var(--spring);-webkit-tap-highlight-color:transparent}
.sl:active{transform:scale(.98);transition-duration:.2s,.1s}
.sl::before{content:"";position:absolute;top:0;right:0;width:64px;height:64px;background:var(--green);border-radius:0 0 0 100%;transform-origin:100% 0;transition:transform .45s var(--spring)}
.sl .ar{position:absolute;top:10px;right:10px;width:24px;height:24px;color:var(--ink);transition:rotate .45s var(--spring)}
.sl .no{font-size:var(--fs-l);line-height:1;font-weight:300;color:var(--blue);font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.sl h2{padding-top:24px;font-size:var(--fs-m);line-height:1.12;letter-spacing:-.02em}
.sl h2 a{color:inherit;text-decoration:none}
.sl h2 a::after{content:"";position:absolute;inset:0}   /* kartin tamami tiklanir */
.sl h2 a:focus-visible{outline:0}
.sl:has(h2 a:focus-visible){outline:3px solid var(--blue);outline-offset:3px;background:var(--tint-b)}
.sl:has(h2 a:focus-visible)::before{transform:scale(1.2)}
.sl:has(h2 a:focus-visible) .ar{rotate:-45deg}
.sl p{margin-top:12px;color:var(--mut);max-width:24.6em}
.sl .tg{margin-top:auto;padding-top:14px;border-top:1px solid var(--hair);font-size:var(--fs-s);font-weight:700;line-height:1.5;color:var(--mut);max-width:none}
.sl h2+p{margin-bottom:24px}
@media (hover:hover){
  .sl:hover{background:var(--tint-b)}
  .sl:hover::before{transform:scale(1.2)}
  .sl:hover .ar{rotate:-45deg}
}
@media (min-width:700px){
  .sl-g{grid-template-columns:1fr 1fr;gap:16px}
  .sl{min-height:340px;padding:24px}
  .sl h2{padding-top:40px}
  .sl::before{width:72px;height:72px}
  .sl .ar{top:12px;right:12px}
}
@media (min-width:1024px){.sl-g{grid-template-columns:repeat(3,1fr)}}
.cs{padding-bottom:var(--sec)}

/* =========================================================
   4. MADDE LISTESI  .ml  ("Neler yapiyoruz")
   <ul class="ml"><li><p><b>Baslik:</b> aciklama</p></li>..  (iki nokta yoksa tum cumle <b> icinde)
   Mobil 1 sutun; >=768 iki sutun (satir akisi), hairline satirlar, 8 px mavi kare isareti.
   ========================================================= */
.ml{border-top:1px solid var(--hair)}
.ml>li{display:flex;align-items:flex-start;gap:16px;padding-block:20px;border-bottom:1px solid var(--hair);color:var(--mut)}
.ml>li::before{content:"";flex:none;width:8px;height:8px;margin-top:10px;background:var(--blue)}
.ml b{color:var(--ink);font-weight:800}
@media (min-width:768px){
  .ml{display:grid;grid-template-columns:1fr 1fr;column-gap:48px;border-top:0}
  .ml>li{min-height:96px;padding-block:24px;border-top:0}
  .ml>li:nth-child(-n+2){border-top:1px solid var(--hair)}
}

/* arac ve teknolojiler: mevcut .tc kullanilir; detayda 3 sutun (9 sutunluk alan dar) */
@media (min-width:1024px){.tc.tl{grid-template-columns:repeat(3,1fr)}}

/* =========================================================
   5. AKIS ADIMLARI  .fl  (4 adim; sure YOK)
   <ol class="fl"><li><span class="no" aria-hidden="true">01</span><h3 class="t-m">Ad</h3><p>Cumle</p></li>..
   ========================================================= */
.fl>li{display:grid;grid-template-columns:56px 1fr;column-gap:16px;padding-block:24px;border-top:1px solid var(--hair)}
.fl>li:last-child{border-bottom:1px solid var(--hair)}
.fl .no{grid-row:1/span 2;font-size:var(--fs-l);line-height:1;font-weight:300;color:var(--blue);font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.fl h3{font-size:var(--fs-m);line-height:1.12;letter-spacing:-.02em}
.fl p{margin-top:8px;color:var(--mut);max-width:33.3em}
@media (min-width:1024px){
  .fl>li{grid-template-columns:120px 5fr 4fr;padding-block:32px;align-items:center}
  .fl .no{grid-row:auto}
  .fl p{margin-top:0}
}

/* =========================================================
   6. ILGILI HIZMETLER  .rl  (2-3 satir; gercek baglanti)
   <ul class="rl"><li><a href aria-labelledby aria-describedby><h3 class="t-m" id>Ad</h3><p id>kisa aciklama</p><svg ok/></a></li>..
   ========================================================= */
.rl>li{border-top:1px solid var(--hair)}
.rl>li:last-child{border-bottom:1px solid var(--hair)}
.rl a{display:grid;grid-template-columns:1fr 28px;align-items:center;column-gap:16px;min-height:96px;padding-block:20px;text-decoration:none;transition:color .2s}
.rl p{grid-column:1;margin-top:6px;color:var(--mut);max-width:33.3em}
.rl h3{grid-column:1}
.rl svg{grid-column:2;grid-row:1/span 2;width:28px;height:28px;color:var(--blue);transition:transform .2s var(--ease)}
.rl a:hover h3{color:var(--blue-d)}
.rl a:hover svg{transform:translateX(6px)}
.rl a:active svg{transform:translateX(3px)}
.rl a:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}
@media (min-width:1024px){
  .rl a{grid-template-columns:5fr 4fr 28px;column-gap:var(--gap);min-height:112px}
  .rl h3,.rl p,.rl svg{grid-row:1}
  .rl p{grid-column:2;margin-top:0}
  .rl svg{grid-column:3}
}

/* =========================================================
   7. ONCEKI / SONRAKI / TUM HIZMETLER  .pn  (dongulu; 6 hizmet)
   <nav class="pn" aria-label="Hizmetler arasi gezinme">
     <a class="pv" href><svg sol ok/><span><small>Onceki hizmet</small><strong class="t-m">Ad</strong></span></a>
     <a class="nx" href><span><small>Sonraki hizmet</small><strong class="t-m">Ad</strong></span><svg ok/></a>
     <a class="all" href="/hizmetler/">Tum hizmetler</a></nav>
   ========================================================= */
.s.pnw{padding-block:var(--sec-s)}
.s.pnw .wrap{display:block}
/* Onceki/Sonraki seridi footer'a yapisik ve tam genis: bolum bosluklari yok, kenar bosluklari baglantilarin ici */
.s.pnw{padding-block:0;border-top:0}
.s.pnw .wrap{max-width:none;padding-inline:0}
.pn .pv{padding-left:var(--pad)}
.pn .nx{padding-right:var(--pad)}
.pn{display:grid;grid-template-columns:1fr;border-top:1px solid var(--hair)}
.pn a{display:flex;align-items:center;gap:16px;min-height:96px;border-bottom:1px solid var(--hair);text-decoration:none;transition:color .2s}
.pn .nx{justify-content:space-between;text-align:right}
.pn .nx span{margin-left:auto}
.pn small{display:block;font-size:var(--fs-s);font-weight:700;line-height:1.3;color:var(--mut)}
.pn strong{display:block;margin-top:4px;font-weight:800}
.pn svg{width:28px;height:28px;flex:none;color:var(--blue);transition:transform .2s var(--ease)}
.pn .all{justify-content:center;min-height:72px;font-weight:800;text-decoration:underline;text-decoration-color:var(--blue);text-decoration-thickness:2px;text-underline-offset:5px}
.pn a:hover{color:var(--blue-d)}
.pn .pv:hover svg{transform:translateX(-6px)}
.pn .nx:hover svg{transform:translateX(6px)}
.pn a:active svg{transform:translateX(0)}
.pn a:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}
@media (min-width:768px){
  .pn{grid-template-columns:1fr 200px 1fr}
  .pn a{min-height:128px}
  .pn .pv{grid-column:1;grid-row:1;padding-right:24px}
  .pn .all{grid-column:2;grid-row:1;border-inline:1px solid var(--hair)}
  .pn .nx{grid-column:3;grid-row:1;padding-left:24px}
}

/* =========================================================
   8. YUMUSAK HAREKET (yalniz geri bildirim)
   ========================================================= */
@media (prefers-reduced-motion:reduce){
  .sl,.sl::before,.sl .ar,.rl svg,.pn svg,.sh .ln svg,.sp-more svg{transition-duration:.01ms!important}
  .sl:active{transform:none}
}

/* kodcu duzeltmesi (tasarim dosyasinda yok): ok svg, a::after katmaninin ustunde kaldigi icin tiklamayi yutuyordu */
.sl .ar{pointer-events:none}
/* kodcu duzeltmesi: dar ekranda (<768) e-posta sutuna sigmiyor (188px > 148-183px) ve yandaki sutunla cakisiyordu; satir kirilir */
@media (max-width:767px){.ftr .cols.c4>:nth-child(3){grid-column:1/-1}.ftr .cols.c4 a[href^="mailto"]{overflow-wrap:anywhere}}
/* kodcu duzeltmesi: 600-1023 px araliginda numara (fs-l 52-66px) 56px sutuna sigmayip basligin ustune biniyordu */
@media (min-width:600px) and (max-width:1023px){.fl>li{grid-template-columns:96px 1fr}}


/* ---- ILETISIM sayfasi (v3'ten alinan icerik, v5 dilinde): iki buyuk iletisim karti (zarf + telefon ikonlu) ---- */
.pi h1 .bl{color:var(--blue)}
.cn-g{display:grid;grid-template-columns:1fr;gap:12px;margin-top:40px;max-width:720px}
.cn{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:14px;min-height:72px;padding:16px 20px;background:var(--tint-b);color:var(--ink);text-decoration:none;transition:background-color .2s var(--ease),transform .2s var(--ease)}
.cn.g{background:var(--tint-g)}
.cn:hover{background:#e2ecff}
.cn.g:hover{background:#dff5e7}
.cn:active{transform:scale(.98)}
.cn-i{display:grid;place-items:center;width:36px;height:36px;background:var(--blue);color:#fff}
.cn.g .cn-i{background:var(--green);color:var(--ink)}
.cn-i svg{width:18px;height:18px}
.cn-t{font-size:clamp(1.15rem,5.6vw,1.75rem);font-weight:800;line-height:1.1;letter-spacing:-.02em;overflow-wrap:anywhere}
@media (min-width:1024px){.cn-g{margin-top:56px}.cn{min-height:88px;padding:20px 28px;column-gap:18px}.cn-i{width:40px;height:40px}.cn-i svg{width:20px;height:20px}}
@media (prefers-reduced-motion:reduce){.cn{transition:none}.cn:active{transform:none}}


/* ---- HAKKIMIZDA sayfasi ---- */
.ab-h{font-size:var(--fs-l);line-height:1;font-weight:800;letter-spacing:-.03em;text-wrap:balance;overflow-wrap:anywhere;min-width:0}
.ab-p{font-size:var(--fs-m);line-height:1.3;font-weight:500;letter-spacing:-.02em;max-width:30em;text-wrap:pretty}
@media (min-width:1024px){.ab-h{font-size:var(--fs-xl);line-height:.96;letter-spacing:-.035em}.ab-p{font-size:var(--fs-m)}}


/* ---- anasayfa teknolojiler: tek satirlik ogeler (satir kirilmasi yok), 768-1023: 3 sutun govde boyu, 1024+: 3 sutun ---- */
#teknolojiler .tc li{white-space:nowrap}
@media (min-width:768px) and (max-width:1023px){#teknolojiler .tc li{font-size:var(--fs-b)}}
@media (min-width:1024px){#teknolojiler .tc{grid-template-columns:repeat(3,1fr)}}


/* LabDorado v5 COK SAYFALI SITE: /projeler/ (liste) + /projeler/<slug>/ (detay).
   Bu dosya v5/assets/styles.css'in SONUNA eklenir (v5-tokens + v5-update-tokens + v5-hizmetler-tokens'tan SONRA). Mevcut kurallari BOZMAZ, silmez.
   Yeni font-size YOK (xl/l/m/b/s), yeni renk YOK, golge YOK, gradient YOK, border yalniz 1px --hair, kose 0 (tek yuvarlak form: hizmetlerdeki ceyrek daire; burada YOK).
   SINIF ONEKLERI (grep ile dogrulandi, mevcut CSS'te yok): .prl-* (liste sayfasi), .prd-* (detay sayfasi). Anasayfa .pj / .ct / .lg / .nm siniflarina DOKUNULMAZ ve burada TEKRAR KULLANILMAZ.
   Yeniden kullanilan mevcut siniflar: .wrap .s .s.n .lab .t-xl .t-l .t-m .pi .pi.ix .pi-g .pi-l .bc .ln .rl .tc .tl .pn .pnw .sr .sh .ftr .cta-row .btn
   Dekoratif animasyon YOK; yalniz BAGLANTILI satirda renk + ok geri bildirimi (<=200 ms). */

/* =========================================================
   1. LISTE SAYFASI  /projeler/
   <section class="pi ix"> (hizmetler indeksiyle ayni giris)  +
   <section class="s n" aria-labelledby="h-liste"><div class="wrap">
     <h2 class="lab" id="h-liste">Tum projeler<span class="prl-n">11</span></h2>
     <ul class="prl">
       <li><a|div class="prl-r"  [href]>
             <span class="prl-lg"><img style="--lh:40px"></span>  |  <span class="prl-nm">Ad</span>
             <span class="prl-ct[ g]">Kurumsal|E-Ticaret</span>
             [yalniz baglantili: <svg class="prl-ar">ok</svg>]
       </a|div></li> ...
   Baglantili = <a>; baglantisiz = <div> (AYNI sinif ve AYNI 3 sutun izgarasi: kategori hizasi bozulmaz, ok sutunu bos kalir).
   ========================================================= */
.prl{--prl-ls:1.1;border-top:1px solid var(--hair)}
.prl>li{border-bottom:1px solid var(--hair)}
.prl-r{display:grid;grid-template-columns:minmax(0,1fr) auto 28px;align-items:center;column-gap:16px;
  min-height:96px;padding-inline:16px;margin-inline:-16px;color:inherit;text-decoration:none;
  transition:background-color .2s}
.prl-lg{display:flex;align-items:center;min-height:48px;min-width:0}
.prl-lg img{width:auto;height:calc(var(--lh,30px)*var(--prl-ls));max-width:100%;object-fit:contain;object-position:left center}
.prl-nm{font-size:var(--fs-m);font-weight:800;line-height:1.1;letter-spacing:-.02em;overflow-wrap:anywhere}
.prl-ct{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-s);font-weight:700;line-height:1.3;color:var(--mut);white-space:nowrap}
.prl-ct::before{content:"";width:8px;height:8px;background:var(--blue);flex:none}
.prl-ct.g::before{background:var(--green)}
.prl-ar{grid-column:3;width:28px;height:28px;color:var(--blue);transition:transform .2s var(--ease)}
.prl-n{margin-left:2px;font-weight:700;color:var(--mut);font-variant-numeric:tabular-nums}
/* yalniz baglantili satir etkilesimli */
a.prl-r:active{background:var(--tint-b)}
a.prl-r:active .prl-ar{transform:translateX(3px)}
a.prl-r:focus-visible{outline:3px solid var(--blue);outline-offset:-3px;background:var(--tint-b)}
@media (hover:hover){
  a.prl-r:hover{background:var(--tint-b)}
  a.prl-r:hover .prl-ar{transform:translateX(6px)}
}
@media (min-width:768px){
  .prl{--prl-ls:1.3}
  .prl-r{grid-template-columns:minmax(0,1fr) 160px 28px;min-height:112px}
  .prl-lg img{max-width:260px}
}
@media (min-width:1024px){.prl-r{min-height:120px;grid-template-columns:minmax(0,1fr) 200px 28px}}

/* =========================================================
   2. DETAY SAYFASI  /projeler/<slug>/
   2.1 GIRIS  <section class="pi prd">  (acik gri tam kenar bant + alt sag MAVI KARE; hizmet detayinin yesil ceyrek dairesinin kardesi)
     .wrap > nav.bc  +  div.pi-g >
        h1.t-l                      (ad; her zaman L: "Karakaslioglu Law Firm PLLC" XL'e sigmaz)
        span.prd-lg > img alt=""    (logo; varsa; H1 adi tasir, logo susludur)
        p.pi-l                      (kisa_tanim; varsa)
        dl.prd-i                    (bilgi blogu: Kategori [+ Alan adi])
   ========================================================= */
.pi.prd{position:relative;background:var(--tint-n);overflow:hidden}
.pi.prd::after{content:"";position:absolute;right:0;bottom:0;width:var(--sec-s);height:var(--sec-s);background:var(--blue)}
.pi.prd h1{font-size:var(--fs-l);line-height:1;letter-spacing:-.03em;overflow-wrap:anywhere}
.pi.prd .pi-l{max-width:26em}
.prd-lg{order:-1;display:flex;align-items:center;min-height:56px;min-width:0}
.prd-lg img{width:auto;height:calc(var(--lh,36px)*1.2);max-width:100%;object-fit:contain;object-position:left center}
/* bilgi blogu (dl): hairline satirlar; mobil dt ustte, >=1024 3/9 etiket-icerik (sayfanin geri kalaniyla ayni izgara) */
.prd-i{margin:12px 0 0;border-top:1px solid var(--hair)}
.prd-i>div{display:grid;gap:2px;padding-block:14px;border-bottom:1px solid var(--hair)}
.prd-i dt{font-size:var(--fs-s);font-weight:700;line-height:1.3;color:var(--mut)}
.prd-i dd{margin:0;display:flex;align-items:center;min-height:36px;font-size:var(--fs-b);font-weight:800;line-height:1.3;letter-spacing:-.01em}
.prd-ct{display:inline-flex;align-items:center;gap:10px}
.prd-ct::before{content:"";width:10px;height:10px;background:var(--blue);flex:none}
.prd-ct.g::before{background:var(--green)}
.prd-ex{display:inline-flex;align-items:center;gap:8px;min-height:48px;color:inherit;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px;text-decoration-color:var(--blue);transition:color .2s}
.prd-ex svg{width:.8em;height:.8em;flex:none;color:var(--blue);rotate:-45deg;transition:translate .2s var(--ease)}
.prd-ex:hover{color:var(--blue-d)}
.prd-ex:hover svg{translate:3px 0}
.prd-ex:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
@media (min-width:768px){.prd-i dd{font-size:var(--fs-m);line-height:1.15;letter-spacing:-.02em;min-height:48px}.prd-ct::before{width:12px;height:12px}}
@media (min-width:1024px){
  .prd-lg{order:0;grid-column:1;grid-row:2;min-height:0;align-self:start;margin-top:6px}
  .prd-lg img{height:calc(var(--lh,36px)*1.5)}
  .pi.prd .pi-l{max-width:30em}
  .prd-i{grid-column:1/-1;margin-top:8px}
  .prd-i>div{grid-template-columns:3fr 9fr;column-gap:var(--gap);align-items:center;padding-block:20px}
}
/* Logosu olan projede adi logo tasir: H1 gorsel gizlenir (ekran okuyucu ve arama motoru icin DOM'da kalir), logo + giris ust satira cikar */
.pi.prd:has(.prd-lg) h1{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (min-width:768px){.pi.prd:has(.prd-lg) .prd-lg,.pi.prd:has(.prd-lg) .pi-l{grid-row:1}.pi.prd:has(.prd-lg) .prd-lg{grid-column:1}}

/* 2.0 BREADCRUMB: uzun proje adi ("Karakaslioglu Law Firm PLLC") dar ekranda satir basinda "/" birakmasin: mevcut oge tek satir, sigmazsa ... ile kisalir (tam metin DOM'da; aria-current ve JSON-LD tam ad) */
.pi.prd .bc li[aria-current]{display:block;min-width:0;line-height:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pi.prd .bc li:not([aria-current]){flex:none}
.pi.prd .bc ol{flex-wrap:nowrap}

/* 2.2 YAPILAN ISLER  <ul class="prd-w"><li>metin</li>..  (metin AYNEN; baslik/aciklama bolme YOK)
   Mobil B 800; >=1024 M 800 tek sutun (9 sutunluk alan): 2 maddede de 6 maddede de guclu durur. */
.prd-w{border-top:1px solid var(--hair)}
.prd-w>li{display:flex;align-items:baseline;gap:16px;padding-block:20px;border-bottom:1px solid var(--hair);font-weight:800;line-height:1.3;letter-spacing:-.01em}
.prd-w>li::before{content:"";flex:none;width:.45em;height:.45em;background:var(--blue);translate:0 -.05em}
@media (min-width:1024px){.prd-w>li{padding-block:28px;min-height:96px;font-size:var(--fs-m);line-height:1.15;letter-spacing:-.02em;gap:20px}}

/* 2.3 GORSELLER (ileride; veri varsa)  <div class="prd-gl"><figure class="prd-f[ w| t]"><img width height alt loading="lazy" decoding="async"><figcaption>..</figcaption></figure>..</div>
   Uretec sinifi orandan verir: w = yatay (gen/yuk >= 1.2), t = dikey (gen/yuk < .8), siniFsiz = kare-ye-yakin.
   Mobil: tek sutun. >=768: 6 sutunluk izgara: .w 6 sutun (tam satir), siniFsiz 3, .t 3 (768-1023) / 2 (>=1024; uc dikey ekran yan yana). Kare kose, 1 px hairline cerceve, --tint-n zemin. */
.prd-gl{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.prd-f{margin:0;min-width:0}
.prd-f img{width:100%;height:auto;border:1px solid var(--hair);background:var(--tint-n)}
.prd-f figcaption{margin-top:10px;font-size:var(--fs-s);font-weight:700;line-height:1.5;color:var(--mut)}
@media (min-width:768px){.prd-gl{grid-template-columns:repeat(6,minmax(0,1fr));gap:24px}.prd-f{grid-column:span 3}.prd-f.w{grid-column:1/-1}}
@media (min-width:1024px){.prd-f.t{grid-column:span 2}}

/* 2.4 DIGER BLOKLAR: Alanlar/Teknolojiler = mevcut ul.tc.tl ; Ilgili hizmetler = mevcut ul.rl ; Onceki/Tum/Sonraki = mevcut nav.pn.
   Tek istisna: yayinda yalniz 1 detay sayfasi varsa nav.pn.prd-solo (yalniz "Tum projeler"). */
.pn.prd-solo{grid-template-columns:1fr}
.pn.prd-solo .all{grid-column:1;border-inline:0}

/* =========================================================
   3. HAREKET: yalniz baglantili satir / dis baglanti geri bildirimi
   ========================================================= */
@media (prefers-reduced-motion:reduce){
  .prl-r,.prl-ar,.prd-ex,.prd-ex svg{transition-duration:.01ms!important}
}

/* =========================================================
   Urunler sayfasi (/tr/urunler, /en/products): gri bant, 3 sutunlu dizin (Urun | Tur | Ne yapar). Masaustu: liste 9fr sutununda (sol etiket sutunu bos),
   mobil: tur / ad / aciklama alt alta. Baglanti, hover, animasyon YOK (detay sayfasi yok). Oneki: ud-/u-.
   ========================================================= */
.ud-h{display:none}
.ud{border-top:1px solid var(--hair)}
.ud>li{display:grid;grid-template-columns:minmax(0,1fr);row-gap:8px;padding-block:24px;border-bottom:1px solid var(--hair)}
.ud .ty{grid-column:1;grid-row:1;justify-self:start;display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-s);font-weight:700;line-height:1.3;color:var(--mut);white-space:nowrap}
.ud .ty::before{content:"";width:8px;height:8px;background:var(--blue);flex:none}
.ud .ty.g::before{background:var(--green)}
.ud h3{grid-column:1/-1;font-size:var(--fs-m);line-height:1.12;letter-spacing:-.02em;overflow-wrap:normal;text-wrap:balance}
.ud p{grid-column:1/-1;color:var(--mut);max-width:29em}
.ud .tk{grid-column:1/-1;max-width:29em;font-size:var(--fs-s);line-height:1.5;color:var(--mut)}
.ud .tk span{font-weight:700;color:var(--ink)}
.u-end{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;padding-top:24px}
.u-end p{color:var(--mut)}
.u-end .ln svg{width:20px;height:20px;margin-left:8px}
.s.n.u1{padding-bottom:calc(var(--sec)*.75)}
@media (min-width:1024px){
  .u1 .ud-w{grid-column:2}
  .ud-h{display:grid;grid-template-columns:5fr 2fr 4fr;column-gap:var(--gap);padding-bottom:12px;font-size:var(--fs-s);font-weight:700;color:var(--mut)}
  .ud>li{grid-template-columns:5fr 2fr 4fr;column-gap:var(--gap);align-items:baseline;padding-block:32px}
  .ud .ty,.ud h3,.ud p{grid-row:1}
  .ud h3{grid-column:1}.ud .ty{grid-column:2}.ud p{grid-column:3}
  .ud .tk{grid-column:3;grid-row:2}
}

/* =========================================================
   Anasayfa Urunler (#urunler): secili urun alani (.pf-f) + 6 ad satiri (.pf-l). Mobil: alan ustte, liste altta;
   1024+: liste solda, alan sagda. Alan, 6 icerigi ust uste dizip en uzununa gore sabit yukseklik alir (secimde ziplama yok).
   JS yoksa: alan gizli, satirlarda aciklama gorunur. JS varsa (.pf-on): satir = dugme, aciklama alanda.
   ========================================================= */
.pf{display:grid;grid-template-columns:minmax(0,1fr);row-gap:24px}
.pf-t{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-s);font-weight:700;line-height:1.3;color:var(--mut)}
.pf-t::before{content:"";width:8px;height:8px;background:var(--blue);flex:none}
.pf-t.g::before{background:var(--green)}
.pf-f{display:none;padding:24px;background:var(--tint-b)}
.pf-on .pf-f{display:grid}
.pf-c{grid-area:1/1;display:flex;flex-direction:column;justify-content:space-between;gap:32px;visibility:hidden;opacity:0}
.pf-c.on{visibility:visible;opacity:1;transition:opacity .15s}
.pf-c .pf-t{align-self:flex-start}
.pf-fn{font-size:var(--fs-l);line-height:1;font-weight:800;letter-spacing:-.03em;overflow-wrap:anywhere;text-wrap:balance}
.pf-fd{margin-top:16px;max-width:21.7em}
.pf-l>li{position:relative;display:grid;gap:4px;align-content:center;min-height:80px;padding:16px 56px 16px 0;border-top:1px solid var(--hair)}
.pf-l>li:last-child{border-bottom:1px solid var(--hair)}
.pf-n{font-size:var(--fs-m);line-height:1.12;letter-spacing:-.02em}
.pf-d{margin-top:8px;color:var(--mut);max-width:24.6em}
.pf-on .pf-d{display:none}
.pf-b{display:block;width:100%;text-align:left;font:inherit;letter-spacing:inherit;color:inherit;font-weight:800;line-height:inherit}
.pf-b::after{content:"";position:absolute;inset:0}
.pf-b:focus-visible{outline:0}
.pf-b:focus-visible::after{outline:3px solid var(--blue);outline-offset:-3px}
.pf-on .pf-l>li::before{content:"";position:absolute;right:18px;top:50%;width:12px;height:12px;margin-top:-6px;background:var(--hair)}
.pf-on .pf-l>li.on::before{background:var(--blue)}
.pf-l>li.on .pf-n{color:var(--blue-d)}
@media (hover:hover){.pf-on .pf-l>li:hover .pf-n{color:var(--blue-d)}}
@media (min-width:1024px){
  .pf{grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:var(--gap);row-gap:0;align-items:stretch}
  .pf-f{order:2;padding:32px;min-height:440px}
  .pf-l{order:1}
}
@media (min-width:1024px) and (max-width:1279px){.pf{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media (prefers-reduced-motion:reduce){.pf-c.on{transition:none}}
/* Teknolojiler: Urunler ile ayni sol cizgi; 1024-1279'da 2 sutun (tasma yok) */
@media (min-width:1024px){#teknolojiler .wrap{grid-template-columns:3fr minmax(0,9fr)}}
@media (min-width:1024px) and (max-width:1279px){#teknolojiler .tc{grid-template-columns:repeat(2,1fr)}}

/* ---- Dil degistirici (TR | EN): kare, hairline, mevcut tokenlar ---- */
.lang{display:inline-flex;align-items:stretch}
.lang a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;min-width:48px;padding:0 12px;border:1px solid var(--hair);font-size:var(--fs-s);font-weight:800;text-decoration:none;color:var(--ink)}
.lang a+a{margin-left:-1px}
.lang a:hover{background:var(--tint-b)}
.lang a[aria-current]{background:var(--ink);color:var(--white);border-color:var(--ink);position:relative}
.lang-d{display:none}
.lang-p{margin-top:24px}
@media (min-width:1024px){
  .lang-d{display:inline-flex;margin-left:24px}
  .bar .nav-d{margin-left:auto}
}
/* EN: uzun tek kelimeler (Development) mobilde H1'e sigsin */
@media (max-width:767px){:lang(en) .pi h1.t-xl{font-size:min(var(--fs-xl),12.4vw)}}

/* ---- Anasayfa proje satiri baglantisi (sayfasi olan projeler): satir tasarimi ayni, hover/odak .prl-r diliyle ---- */
.pj>li>a{align-self:stretch;flex:1;display:flex;align-items:center;justify-content:space-between;gap:16px;color:inherit;text-decoration:none}
.pj>li>a:active{background:var(--tint-b)}
.pj>li>a:focus-visible{outline:3px solid var(--blue);outline-offset:-3px;background:var(--tint-b)}
@media (hover:hover){.pj>li>a:hover{background:var(--tint-b)}}

/* ---- Hakkimizda govde metin baglantilari: .ln diliyle (mavi alt cizgi), boyut/aralik degismez ---- */
.ab-p a{font-weight:inherit;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px;text-decoration-color:var(--blue);transition:color .2s}
.ab-p a:hover{color:var(--blue-d)}

/* ---- Onceki / Tum / Sonraki (.pn): 768-1023 px'te tek sutun. Uzun EN hizmet adlari (Application, Development) 1fr 200px 1fr izgarasina sigmiyor, sayfa 864 px'e tasiyordu. Sira ve cizgiler mobil ile ayni. ---- */
@media (min-width:768px) and (max-width:1023px){
  .pn{grid-template-columns:1fr}
  .pn a{min-height:96px}
  .pn .pv,.pn .all,.pn .nx{grid-column:auto;grid-row:auto}
  .pn .pv{padding-right:var(--pad)}
  .pn .nx{padding-left:var(--pad)}
  .pn .all{border-inline:0}
}
