/* Gilroy, capped at 600. b/strong are pulled to 600 too — the browser default
   is 700 and there is no 700 face. */
@font-face{font-family:Gilroy;src:url("../fonts/sGilroy-Regular.woff2") format("woff2");
  font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Gilroy;src:url("../fonts/sGilroy-Medium.woff2") format("woff2");
  font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Gilroy;src:url("../fonts/sGilroy-Semibold.woff2") format("woff2");
  font-weight:600;font-style:normal;font-display:swap}

/* Nokta Servis — stylesheet. Turkish service-sector layout:
   boxed white content on a light ground, single red accent, narrow column. */
:root{
  /* Two colours, two jobs: black is structure, red is action. */
  --brand:#e01010; --brand-d:#b30c0c; --brand-l:#fdebeb;
  --accent:#e01010; --accent-d:#b30c0c; --accent-l:#fdebeb;
  --dark:#111417; --dark-2:#1c2126;
  /* ink-3 ve ink-4, beyazın yanı sıra --band ve --bg zeminlerinde de kullanılıyor;
     değerleri en koyu zemine göre seçildi, böylece hiçbir kombinasyon WCAG AA'nın
     altına düşmüyor. Küçük punto en yüksek kontrastı gerektirdiği için ink-4,
     ink-3'ten belirgin biçimde açık tutulmadı — hiyerarşi punto ile kuruluyor. */
  --ink:#1a1d20; --ink-2:#43484d; --ink-3:#5f6469; --ink-4:#666b70;
  /* Headings sit a shade lighter than body ink: 21px+ at weight 600 reads
     heavy at full black. */
  --head:#3a3a3a;
  --line:#e2e2e2; --line-2:#d6d6d6;
  --bg:#f1f2f3; --box:#fff; --band:#eceded;
  --foot:#16191c; --foot-2:#0d0f11; --foot-tx:#a9aeb3;
  --wrap:1180px; --r:12px; --r-sm:8px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
/* Backstop only — root causes are fixed (overflow-wrap, min-width:0, no vw).
   `clip` not `hidden`, so position:sticky keeps working. */
html{overflow-x:clip}
body{overflow-x:clip}
body{margin:0;padding:0 0 70px;background:var(--bg);color:var(--ink-2);
  font:13.5px/1.75 Gilroy,"Segoe UI",Tahoma,Verdana,Arial,sans-serif;
  overflow-wrap:anywhere}
/* min-width:auto lets a long word widen the whole track. Reset it. */
.box,.split,.side,.cols li,.cards .card,.chip,.feat,.tile,.frm,.wblnc-top>div,.wblnc-corp-in>div{min-width:0}
@media(min-width:900px){body{padding-bottom:0}}
img{max-width:100%;height:auto}
/* Text links use the darker red: #e01010 passes on white but drops to 4.21 on
   --band and 4.41 on --bg, and links sit on all three. --brand stays the fill
   colour for buttons and icons, where white-on-red already clears AA. */
a{color:var(--brand-d);text-decoration:none}
a:hover{text-decoration:underline}
b,strong{font-weight:600}
h1,h2,h3{margin:0;color:var(--ink);font-weight:600;line-height:1.3}
h1{color:var(--head)}
h1{font-size:21px}
@media(min-width:700px){h1{font-size:26px}}
h2{font-size:17px;margin:26px 0 10px}
h3{font-size:14px;font-weight:600;margin:20px 0 6px}
p{margin:0 0 12px}
ul,ol{margin:0 0 12px;padding-left:18px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 14px}
@media(min-width:560px){.wrap{padding:0 16px}}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;z-index:99;background:#000;color:#fff;padding:8px 16px}
.hp{position:absolute!important;left:-9999px}
.ic{width:18px;height:18px}.ic-sm{width:15px;height:15px}.ic-xs{width:12px;height:12px}
svg{flex:none;vertical-align:-.15em}
.muted{color:var(--ink-3)}

/* ---------- header ---------- */
/* White bar, single row: logo, inline nav, red phone pill. */
.hdr{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40}
.hdr-in{display:flex;align-items:center;gap:14px;padding:0 14px;min-height:66px}
@media(min-width:560px){.hdr-in{padding:0 16px}}
/* Six entries, two of them menus. The bar itself only lays out .nav-l; the
   panels are absolutely positioned so they never change the bar's height. */
.nav{display:none;align-items:center;gap:0;margin:0 auto;min-width:0}
.nav-i{position:relative}
.nav-l{position:relative;display:inline-flex;align-items:center;gap:5px;
  padding:22px 14px;font-size:13px;font-weight:600;color:var(--ink-2);white-space:nowrap}
.nav-l svg{color:var(--ink-4);transition:transform .18s ease}
/* Underline grows from the centre. */
.nav-l::after{content:"";position:absolute;left:50%;right:50%;bottom:14px;height:2px;
  background:var(--brand);border-radius:2px;transition:left .18s ease,right .18s ease}
.nav-l:hover{color:var(--ink);text-decoration:none}
.nav-l:hover::after{left:14px;right:14px}
.nav-l[aria-current]{color:var(--brand)}
.nav-l[aria-current]::after{left:14px;right:14px}
.nav-i:hover .nav-l svg,.nav-i:focus-within .nav-l svg{transform:rotate(180deg);color:var(--brand)}

/* Hover and focus-within, no JS: focusing the parent link opens the panel,
   and Tab then walks into it. */
.nav-sub{position:absolute;top:100%;left:6px;z-index:41;display:none;min-width:216px;
  padding:7px;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);
  box-shadow:0 18px 40px -22px rgba(17,20,23,.5)}
/* Uzun listeler (21 marka) tek sütunda ekrandan taşar; iki sütuna bölünür. */
.nav-sub-wide{columns:2;column-gap:6px;min-width:440px}
.nav-sub-wide a{break-inside:avoid}
@media(min-width:1240px){.nav-sub-wide{columns:3;min-width:640px}}
.nav-i:last-of-type .nav-sub,.nav-i:nth-last-of-type(2) .nav-sub{left:auto;right:6px}
.nav-i:hover .nav-sub,.nav-i:focus-within .nav-sub{display:block}
.nav-sub a{display:block;padding:8px 11px;border-radius:6px;font-size:12.5px;font-weight:500;
  color:var(--ink-2);white-space:nowrap}
.nav-sub a:hover{background:var(--brand-l);color:var(--brand);text-decoration:none}
.nav-sub a[aria-current]{color:var(--brand);font-weight:600}

.hdr-call{display:none;align-items:center;gap:9px;flex:none;background:var(--brand);
  border-radius:999px;padding:8px 16px}
.hdr-call:hover{background:var(--brand-d);text-decoration:none}
@media(min-width:480px){.hdr-call{display:flex}}
.hdr-call-ic{display:grid;place-items:center;color:#fff}
.hdr-call-tx{display:flex;flex-direction:column;line-height:1.2}
.hdr-call-tx small{font-size:8.5px;letter-spacing:.13em;text-transform:uppercase;color:#fff}
.hdr-call-tx b{font-size:15px;font-weight:600;color:#fff;white-space:nowrap}

.burger{display:inline-flex;flex:none;background:#fff;border:1px solid var(--line-2);
  border-radius:10px;padding:8px 10px;color:var(--ink);cursor:pointer;margin-left:auto}
.nav-mobile{display:flex;flex-direction:column;background:#fff;border-top:1px solid var(--line);
  max-height:calc(100vh - 66px);overflow-y:auto;overscroll-behavior:contain}
.nav-mobile[hidden]{display:none}
.nav-m,.nav-m-grp>summary{display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:13px 16px;border-bottom:1px solid var(--line);font-size:13.5px;font-weight:600;
  color:var(--ink-2);cursor:pointer;list-style:none}
.nav-m-grp>summary::-webkit-details-marker{display:none}
.nav-m:hover,.nav-m-grp>summary:hover{background:var(--brand-l);color:var(--brand);text-decoration:none}
.nav-m-grp>summary svg{color:var(--ink-4);transition:transform .18s ease}
.nav-m-grp[open]>summary{color:var(--brand);border-bottom-color:transparent}
.nav-m-grp[open]>summary svg{transform:rotate(180deg);color:var(--brand)}
/* Children are indented and quieter than their heading, so the two levels do
   not read as one long list. */
.nav-m-grp>a{display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:10px 16px 10px 28px;font-size:12.5px;font-weight:400;color:var(--ink-3);
  background:var(--bg);border-bottom:1px solid var(--line)}
.nav-m-grp>a:last-of-type{border-bottom:1px solid var(--line)}
.nav-m-grp>a:hover{color:var(--brand);text-decoration:none}
.nav-m-grp>a svg{color:var(--ink-4)}

/* Call centre, at the end of the panel: whoever opened the menu and kept
   scrolling is the one most likely to want a person. */
.nav-call{padding:16px;background:var(--dark);color:rgba(255,255,255,.72)}
.nav-call-main{display:flex;align-items:center;gap:12px;margin-bottom:12px;padding:12px 14px;border-radius:var(--r-sm);
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:#fff}
.nav-call-main:hover{background:var(--brand);border-color:var(--brand);text-decoration:none;color:#fff}
.nav-call-ic{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:50%;
  background:var(--brand);color:#fff}
.nav-call-main:hover .nav-call-ic{background:#fff;color:var(--brand)}
.nav-call-tx{display:flex;flex-direction:column;line-height:1.25;margin-right:auto}
.nav-call-tx small{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:#fff}
.nav-call-tx b{font-size:19px;font-weight:600;color:#fff;white-space:nowrap}
.nav-call-note{margin:9px 0 0;text-align:center;font-size:11px;color:rgba(255,255,255,.82)}
/* Six grouped entries need ~984px with the logo and the phone pill; the flat
   nine needed 1120. Lowered to match, so laptops and landscape tablets get the
   bar instead of the burger. */
@media(min-width:1020px){.nav{display:flex}.burger,.nav-mobile{display:none!important}}

/* ---------- page frame ---------- */
.page{padding:20px 0 30px}
@media(min-width:700px){.page{padding:34px 0 40px}}
.ptitle{padding-bottom:11px;border-bottom:1px solid var(--line-2);margin:10px 0 16px}
@media(min-width:700px){.ptitle{padding-bottom:12px;margin:14px 0 22px}}
.box{background:var(--box);border:1px solid var(--line);border-radius:var(--r);padding:18px;margin-bottom:16px}
@media(min-width:700px){.box{padding:26px 28px;margin-bottom:20px}}
/* Not every section is a card. A section whose content is itself a grid of
   cards gets no card of its own: white on white flattens the page. */
.band{margin-bottom:16px;padding:4px 0}
@media(min-width:700px){.band{margin-bottom:22px;padding:8px 0 4px}}
/* Where a block does stay inside a card, it is recessed onto the page ground
   instead: card grids get a surface to sit on, and the long catalogue pages
   stop being one unbroken sheet of white — the lists and the FAQ read as
   modules rather than more paragraphs. */
.box .faq{margin-top:14px}
.box .faq details:last-child{border-bottom:0}
/* Justification needs a wide enough measure — on phones it opens rivers of
   white space, so it only kicks in from tablet width up. */
.box-lead{text-align:left}
.faq p{text-align:left}
.crumbs{font-size:11.5px;color:var(--ink-4);padding:8px 0 0;line-height:1.9}
.crumbs a{color:var(--ink-3)}
.crumbs span{margin:0 5px}

/* ---------- headings inside content ---------- */
.sechead{text-align:center;font-size:19px;color:var(--head);margin:0 0 6px}
@media(min-width:560px){.sechead{font-size:22px}}

/* ---------- scope notice (policy) ---------- */
/* Foot of the page, not above the fold. Pages whose FAQ already carries the
   statement omit it. Footer disclaimer stays the primary protection. */

/* ---------- servis özellikleri ---------- */
/* Kartsız: ikon + iki satır metin. Kutu içinde kutu üretmez. */
.feats{display:grid;grid-template-columns:repeat(2,1fr);gap:14px 18px;margin:18px 0 4px;
  padding-top:16px;border-top:1px solid var(--line)}
@media(min-width:640px){.feats{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1000px){.feats{grid-template-columns:repeat(6,1fr)}}
.feat{display:flex;flex-direction:column;gap:4px}
.feat-ic{display:inline-grid;place-items:center;width:26px;height:26px;color:var(--brand);margin-bottom:2px}
.feat-ic svg{width:20px;height:20px;stroke-width:1.7}
.feat b{display:block;font-size:12px;font-weight:600;color:var(--ink);line-height:1.4}
.feat small{display:block;font-size:11.5px;color:var(--ink-4);line-height:1.55}

/* ---------- phone band ---------- */
.phoneband{position:relative;overflow:hidden;background:var(--dark);border:0;
  border-left:4px solid var(--brand);border-radius:var(--r-sm);padding:16px 14px;text-align:center;
  font-size:13.5px;color:rgba(255,255,255,.72);margin:22px 0;line-height:1.9}
/* Decorative only; disabled under prefers-reduced-motion below. */
.phoneband::before{content:"";position:absolute;top:0;bottom:0;width:45%;left:-60%;
  background:linear-gradient(100deg,transparent,rgba(224,16,16,.22),transparent);
  animation:sheen 4.5s ease-in-out infinite}
@keyframes sheen{0%{left:-60%}55%{left:120%}100%{left:120%}}
.phoneband a{position:relative;display:inline-block;color:#fff;font-weight:600;font-size:18px;
  padding:2px 10px;border-radius:999px;animation:glow 2.2s ease-in-out infinite}
.phoneband a[href^="tel:"]{white-space:nowrap}
.phoneband a:hover{text-decoration:none;background:var(--brand);animation:none}
@keyframes glow{
  0%,100%{text-shadow:0 0 0 rgba(224,16,16,0);color:#fff}
  50%{text-shadow:0 0 16px rgba(224,16,16,.95),0 0 34px rgba(224,16,16,.55);color:#ff6b6b}
}
@media(min-width:560px){.phoneband{padding:18px;font-size:15px}.phoneband a{font-size:21px}}
@media(prefers-reduced-motion:reduce){
  .phoneband::before{display:none}
  .phoneband a{animation:none;color:var(--brand)}
}

/* Outbound reference link (e.g. the association's own site). */
.linkband{background:var(--band);border:1px solid var(--line);border-radius:var(--r-sm);
  padding:14px 16px;text-align:center;margin:22px 0}
.linkband a{font-weight:600;font-size:13.5px}

/* ---------- district / link lists ---------- */
/* Sentence case, not letter-spaced caps — those read as labels. */
.listhead{font-size:16.5px;font-weight:600;letter-spacing:-.01em;text-transform:none;
  color:var(--head);border-bottom:1px solid var(--line);padding-bottom:9px;margin:30px 0 14px}
@media(min-width:700px){.listhead{font-size:18.5px}}
/* Emphasised key phrases inside body copy. */
.box-lead strong,.box p strong{color:var(--ink);font-weight:600}
/* Two columns fit a phone once overflow-wrap handles long strings. */
.cols{columns:1;font-size:12.5px;list-style:none;padding:0;margin:0}
.cols.wide{columns:1}
.cols li{break-inside:avoid;margin-bottom:6px;color:var(--ink-2)}
.cols a{color:var(--ink-2)}
.cols a:hover{color:var(--brand)}
/* Grows the tap target without moving anything visually. */
@media(hover:none){
  .cols li{margin-bottom:2px}
  .cols a,.side a{display:inline-block;padding:5px 0}
  .wblnc li{line-height:1.5}
  .wblnc li a{display:inline-block;padding:5px 0}
  .crumbs a{display:inline-block;padding:3px 0}
}

/* ---------- tiles (cihaz kısayolları) ---------- */
/* Düz ızgara: kutu içinde ikinci bir kutu yok, yalnızca ikon + ad ve ince
   ayırıcı. Sayfa tek bir yüzey olarak okunur. */
/* Ayırıcılar box-shadow ile çizilir: layout'a girmez, kutunun overflow:hidden
   kenarında kırpılır ve satır tamamlanmadığında boş hücre beyaz kalır. */
/* Zemin sayfa rengi: son satır dolmadığında boş hücre beyaz kutu gibi
   görünüyordu. Kutu görünümünü veren, hücrelerin kendi beyaz zemini. */
.tiles{display:grid;grid-template-columns:repeat(2,1fr);margin:16px 0 0;background:var(--bg);
  border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden}
@media(min-width:560px){.tiles{grid-template-columns:repeat(4,1fr)}}
.tile{background:#fff;padding:15px 10px;text-align:center;color:var(--ink);display:flex;
  flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:92px;transition:.15s;
  box-shadow:1px 0 0 var(--line),0 1px 0 var(--line)}
.tile:hover{background:var(--brand-l);text-decoration:none;color:var(--brand-d)}
.tile svg{width:28px;height:28px;stroke-width:1.4;color:var(--brand)}
.tile b{font-size:11.5px;font-weight:600;line-height:1.4}

/* ---------- faq ---------- */
.faq{margin:14px 0 0}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 2px;
  cursor:pointer;font-weight:600;color:#3f3f3f;font-size:13px;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq details[open] summary svg{transform:rotate(180deg)}
.faq summary svg{transition:.2s;color:var(--ink-4)}
.faq p{padding:0 2px 14px;margin:0;color:var(--ink-2)}

/* ---------- forms ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 20px;border-radius:999px;
  font:inherit;font-size:13px;font-weight:600;border:1px solid transparent;cursor:pointer;transition:.15s;white-space:nowrap}
.btn:hover{text-decoration:none}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-d)}
.btn-ghost{background:#fff;border-color:var(--line-2);color:#444}
.btn-ghost:hover{border-color:var(--brand);color:var(--brand)}
.btn-block{width:100%}
.frm{display:grid;gap:11px}
.frm label{display:grid;gap:5px;font-size:12px;font-weight:600;color:#555}
.frm input,.frm select,.frm textarea{width:100%;font:inherit;font-size:13.5px;font-weight:400;padding:9px 11px;
  border:1px solid var(--line-2);border-radius:var(--r-sm);background:#fff;color:var(--ink);outline:none}
.frm input:focus,.frm select:focus,.frm textarea:focus{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-l)}
.frm input::placeholder,.frm textarea::placeholder{color:var(--ink-4)}
/* Native select, one skin for the whole site: the OS control looks different on
   every platform, so the arrow is ours and the box matches the text inputs.
   The chevron is an inline SVG — no extra request, and it is the same shape the
   icon set uses. */
.frm select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:34px;
  background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239a9ea2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 11px center;background-size:15px 15px}
.frm select:hover{border-color:var(--ink-4)}
.frm select:focus{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e01010' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}
/* Nothing chosen yet reads as a placeholder, like the text inputs do. */
.frm select:invalid{color:var(--ink-4)}
.frm select option{color:var(--ink)}
.frm textarea{resize:vertical}
/* iOS Safari, 16px altındaki bir alana odaklanınca sayfayı kendiliğinden
   yakınlaştırıyor ve odak kalkınca geri almıyor; form ortasında kaybolan
   kullanıcı talebi bırakıyor. Yalnız dokunmatikte 16px, masaüstü ölçek aynı. */
@media(pointer:coarse){.frm input,.frm select,.frm textarea{font-size:16px}}
.frm-row{display:grid;gap:11px}
@media(min-width:520px){.frm-row{grid-template-columns:1fr 1fr}}
/* Hero altındaki hızlı bilgi tablosu. Gerçek tablo, kart taklidi değil:
   iki sütun, mobilde sütunlar daralır, yatay kaydırma yok. Kaldırılan
   .feats bloğunun üst ayırıcısını ve dikey ritmini bu tablo devraldı;
   ayırıcı caption üzerinde çünkü caption tablo kutusunun üstünde durur. */
.service-summary{width:100%;max-width:620px;border-collapse:collapse;margin:18px 0 4px;
  font-size:12.5px;line-height:1.55;table-layout:fixed}
.service-summary caption{caption-side:top;text-align:left;font-size:10.5px;font-weight:700;
  letter-spacing:.07em;text-transform:uppercase;color:var(--ink-4);
  padding:16px 0 9px;border-top:1px solid var(--line)}
.service-summary th,.service-summary td{padding:9px 0;border-bottom:1px solid var(--line-2);
  text-align:left;vertical-align:baseline;overflow-wrap:anywhere;hyphens:auto}
.service-summary th{width:44%;padding-right:14px;font-weight:600;color:var(--ink-3)}
.service-summary td{color:var(--ink);font-weight:500}
.service-summary tr:last-child th,.service-summary tr:last-child td{border-bottom:0;padding-bottom:0}
.service-summary td a{color:var(--brand);font-weight:600;text-decoration:none}
.service-summary td a:hover{text-decoration:underline}
.service-summary td a:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:2px}
@media(min-width:560px){.service-summary{font-size:13px}.service-summary th{width:36%}}
.chk{display:flex!important;gap:8px;align-items:flex-start;font-size:11.5px;font-weight:400;line-height:1.55;color:var(--ink-3)}
/* Tek satırlık etiket 19px kalıyordu, dokunma hedefi için en az 24px gerek.
   Dolgu kutuyu büyütür, eşit negatif kenar boşluğu yerleşimi geri alır:
   hedef 25px olur, hiçbir öğe yerinden oynamaz. */
.chk{padding-block:3px;margin-block:-3px}
.chk input{width:auto;margin-top:2px;flex:none}
/* .frm input outline:none, onay kutusunun yerel odak halkasını da siliyordu;
   kutunun kenarlığı native olduğu için border-color da boyanmıyor. Zorunlu
   KVKK kutusu klavyeyle gezildiğinde görünür kalsın diye halka geri veriliyor. */
.chk input:focus-visible{outline:2px solid var(--brand);outline-offset:2px;box-shadow:none}
.frm-note{font-size:11px;color:var(--ink-4);margin:0;line-height:1.55}
.lbl{display:block}
.req{font-style:normal;color:var(--brand-d)}
.frm-ctx{display:flex;align-items:center;gap:7px;margin:0;padding:9px 12px;background:var(--brand-l);
  border-radius:var(--r-sm);font-size:11.5px;color:var(--brand-d)}
.frm-ctx svg{flex:none}
.frm-ctx b{color:var(--ink)}
/* Numbered sequence. Never .cols: newspaper columns reorder a sequence and
   the reader has to hunt for step 2. */
.steps{list-style:none;counter-reset:s;margin:14px 0 0;padding:0;display:grid;gap:10px}
@media(min-width:640px){.steps{grid-template-columns:repeat(2,1fr);gap:12px}}
@media(min-width:1000px){.steps{grid-template-columns:repeat(4,1fr)}}
.steps li{counter-increment:s;position:relative;padding:0}
.steps li::before{content:counter(s);display:grid;place-items:center;width:24px;height:24px;
  margin-bottom:9px;border-radius:50%;background:var(--brand);color:#fff;font-size:11.5px;font-weight:600}
.steps b{display:block;font-size:13px;color:var(--ink);margin-bottom:4px}
.steps span{display:block;font-size:12px;line-height:1.7;color:var(--ink-3)}

/* What happens after submit — removes the main reason people hesitate. */
.frm-next{list-style:none;counter-reset:n;margin:4px 0 0;padding:0;display:grid;gap:7px}
.frm-next li{display:flex;align-items:center;gap:9px;font-size:11.5px;color:var(--ink-3)}
.frm-next b{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;flex:none;
  background:var(--brand-l);color:var(--brand-d);font-size:10px;font-weight:600}
.frm-alt{margin:2px 0 0;font-size:11.5px;color:var(--ink-3);text-align:center;
  border-top:1px dashed var(--line);padding-top:10px}
.frm-alt a{font-weight:600}
.formbox-flush{margin-top:0}
.frm-ctx{margin:-6px 0 14px;font-size:13px;color:var(--ink-3)}
.formbox{background:var(--band);border:1px solid var(--line);border-radius:var(--r);padding:18px;margin:18px 0}
@media(min-width:700px){.formbox{padding:22px 24px;margin:24px 0}}
.formbox h2{margin-top:0}
/* ---------- two column ---------- */
.split{display:grid;gap:22px}
@media(min-width:860px){.split{grid-template-columns:minmax(0,1fr) 290px;align-items:start}}
.side{display:flex;flex-direction:column;gap:16px}
.side .box{padding:18px 20px;margin:0}
.side-h{font-size:12px;font-weight:600;color:#3f3f3f;border-bottom:1px solid var(--line);
  padding-bottom:8px;margin:0 0 10px;letter-spacing:.02em}
.side ul{list-style:none;padding:0;margin:0;font-size:12.5px}
.side li{margin-bottom:5px}
.side a{color:var(--ink-2)}
.side a:hover{color:var(--brand)}

/* ---------- contact fact list ---------- */
/* Etiketli iletişim satırları: ikon + değer. İletişim sayfasında ve mahalle
   hub'ının üst şeridinde aynı ritmi kullanır. */

/* ---------- registry card ---------- */
/* Label/value rows instead of a paragraph of line breaks: these are the numbers
   a visitor cross-checks against MERSİS, so they get to be scannable. */
.reg{margin:0;font-size:12.5px}
.reg>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  padding:7px 0;border-bottom:1px dashed var(--line)}
.reg>div:last-of-type{border-bottom:0;padding-bottom:0}
.reg dt{flex:none;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4)}
.reg dd{margin:0;text-align:right;color:var(--ink-2);font-variant-numeric:tabular-nums;
  overflow-wrap:anywhere}
.reg dd.reg-wide{font-size:12px;line-height:1.6}
.reg-note{margin:11px 0 0;font-size:11px;line-height:1.6;color:var(--ink-4)}

.result{text-align:center;padding:36px 20px}
.result-ic{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;margin:0 auto 14px;
  border:2px solid currentColor}
.result.ok .result-ic{color:#2e8b4f}
.result.err .result-ic{color:var(--brand)}
.result .actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px}

/* ---------- footer ---------- */
.wblnc{background:var(--foot);color:var(--foot-tx);font-size:12.5px;line-height:1.9}
.wblnc a{color:var(--foot-tx)}
.wblnc a:hover{color:#fff}
/* Button, not a footer link — keeps its own colours. */
.wblnc .btn-primary,.wblnc .btn-primary:hover{color:#fff}
.wblnc .btn-primary{background:var(--brand)}
.wblnc .btn-primary:hover{background:var(--brand-d)}
.wblnc-brand{display:grid;gap:14px;padding-top:30px;padding-bottom:22px;border-bottom:1px solid rgba(255,255,255,.1)}
@media(min-width:760px){.wblnc-brand{grid-template-columns:auto auto;justify-content:space-between;align-items:center;gap:26px}}
.wblnc-brand .btn{justify-self:start}
.wblnc-top{display:grid;gap:20px;padding-top:28px;padding-bottom:24px}
@media(min-width:700px){.wblnc-top{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}
.wblnc-h{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:#eee;font-weight:400;
  border-bottom:1px solid rgba(255,255,255,.18);padding-bottom:6px;margin:0 0 10px}
.wblnc ul{list-style:none;padding:0;margin:0}
.wblnc li::before{content:"»";margin-right:6px;color:rgba(255,255,255,.55)}
.wblnc-corp{border-top:1px solid rgba(255,255,255,.13);font-size:11.5px;line-height:1.8}
.wblnc-corp-in{display:grid;gap:18px;padding-top:22px;padding-bottom:22px}
@media(min-width:700px){.wblnc-corp-in{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}}
.wblnc-corp p{margin:0}
.wblnc-corp strong{color:#fff;font-weight:600}
.wblnc-legal{background:var(--foot-2);font-size:11px}
.wblnc-legal-in{display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:center;padding-top:12px;padding-bottom:12px;text-align:center}
.wblnc-legal p{margin:0}

/* ---------- mobile call bar ---------- */
.callbar{position:fixed;inset:auto 0 0 0;z-index:50;display:flex;align-items:center;justify-content:center;gap:12px;
  min-height:60px;padding:9px 16px calc(9px + env(safe-area-inset-bottom));background:var(--accent);color:#fff}
.callbar:hover{text-decoration:none;color:#fff}
.callbar-ic{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#fff;color:var(--accent)}
.callbar-txt{display:flex;flex-direction:column;line-height:1.2}
/* No opacity here: .85 turned white into ~#d9d9d9 on the red bar, 3.50:1.
   Uppercase and letter-spacing already separate it from the number. */
.callbar-txt small{font-size:10px;text-transform:uppercase;letter-spacing:.12em}
.callbar-txt b{font-size:17px}
@media(min-width:900px){.callbar{display:none}}
/* The open mobile menu carries its own call centre block — see .nav-call. */
body.menu-open .callbar{display:none}

/* ---------- home hero ---------- */
/* No panel: the transparent artwork sits directly on the page ground. */
.hero{position:relative;overflow:hidden;margin-bottom:16px;background:var(--bg)}
/* Dot grid — the brand mark is a dot, hence dots not appliance line-art. */
.hero-deco{position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(17,20,23,.16) 1.4px, transparent 1.4px);
  background-size:24px 24px;opacity:.5;
  -webkit-mask-image:linear-gradient(115deg,#000,transparent 62%);
  mask-image:linear-gradient(115deg,#000,transparent 62%)}
.hero-in{position:relative;display:grid}
.hero-copy{position:relative;z-index:1;padding:36px 0 20px;text-align:left}
.hero h1{font-size:26px;font-weight:600;line-height:1.15;color:var(--head);letter-spacing:-.6px}
.hero h1 span{color:var(--brand)}
.hero-lead{margin:14px 0 0;max-width:58ch;color:var(--ink-2);font-size:15.5px;line-height:1.55;font-weight:500}
.hero-note{margin:8px 0 0;max-width:58ch;color:var(--ink-3);font-size:13px;line-height:1.6}
.hero-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;justify-content:flex-start}
.btn-lg{padding:13px 24px;font-size:14.5px}
@media(max-width:420px){
  .hero-cta{display:grid}
  .hero-cta .btn{width:100%}
}
@media(min-width:560px){
  .hero h1{font-size:34px;letter-spacing:-.8px}
  .hero-lead{font-size:17px}
}
@media(min-width:700px){
  .hero-copy{padding:54px 0 30px}
  .hero h1{font-size:44px;letter-spacing:-.9px}
  .hero-lead{font-size:19px;margin-top:20px}
  .hero-note{font-size:14px}
}
@media(min-width:900px){
  .hero-in{grid-template-columns:minmax(0,.94fr) minmax(390px,1.06fr);min-height:470px;align-items:stretch}
  .hero-copy{padding:52px 38px 52px 0;text-align:left}
  .hero h1{font-size:48px}
  .hero-lead{margin-left:0;max-width:46ch}
  .hero-note{margin-left:0;max-width:52ch}
  .hero-cta{justify-content:flex-start}
}
@media(min-width:1100px){
  .hero-in{grid-template-columns:minmax(0,.9fr) minmax(500px,1.1fr)}
  .hero-copy{padding-left:0;padding-right:48px}
  .hero h1{font-size:53px}
}

/* ---------- legal documents ---------- */
.legal-intro{font-size:14px;color:var(--ink);border-left:3px solid var(--brand);
  padding-left:14px;margin-bottom:6px}
.legal-list{margin:0 0 14px;padding-left:20px}
.legal-list li{margin-bottom:6px}
/* Tables scroll in their own box; the page never scrolls sideways. */
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 16px;
  border:1px solid var(--line);border-radius:var(--r-sm)}
.legal-table{border-collapse:collapse;width:100%;min-width:420px;font-size:12.5px}
.legal-table th,.legal-table td{padding:10px 13px;text-align:left;vertical-align:top;
  border-bottom:1px solid var(--line)}
.legal-table th{background:var(--band);font-weight:600;color:var(--ink);white-space:nowrap}
.legal-table tbody tr:last-child td{border-bottom:0}
.legal-table td:first-child{font-weight:600;color:var(--ink)}

/* =====================================================================
   Arnavutköy Beyaz Teknik Servis — additions on top of the shared stylesheet.
   ===================================================================== */

/* ---------- text logo lockup ---------- */
/* No wordmark image for the area site: a dot mark (the network's emblem
   idea) plus two lines of type. Dark variant for the footer. */
.logo-lk{display:inline-flex;align-items:center;flex:none}
.logo-lk:hover{text-decoration:none;opacity:.85}
.logo-lk img{display:block;width:auto;height:30px}
@media(min-width:600px){.logo-lk img{height:36px}}
/* Koyu zeminde logonun siyah kelime bloğu okunmuyor; tersine çevrilir. */
.logo-dark img{filter:invert(1) hue-rotate(180deg) saturate(1.6) brightness(1.15)}

/* ---------- home hero (no artwork; copy + quick panel) ---------- */
@media(min-width:900px){
  .hero-in{grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);align-items:center;min-height:auto}
  .hero-copy{padding:44px 40px 44px 0}
  .hero h1{font-size:40px;line-height:1.12}
}
@media(min-width:1100px){.hero h1{font-size:46px}.hero-in{grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr)}}
.hero-lead b{color:var(--ink)}

/* ---------- sayfa üstü eylem satırı ---------- */
.cta-row{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 0}
@media(max-width:420px){.cta-row{display:grid}.cta-row .btn{width:100%}}

/* ---------- chips (mahalle listeleri) ---------- */
/* Chip: yuvarlak hap yerine kare köşeli, sol tarafında marka çizgisi olan
   düz etiket. Uzun marka adları tek satırda sıkışmasın diye sarabilir. */
.chips{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0 0}
.chip{display:inline-flex;align-items:center;gap:6px;padding:7px 12px 7px 11px;
  border:1px solid var(--line);border-left:3px solid var(--line-2);border-radius:var(--r-sm);
  background:var(--card,#fff);font-size:12.5px;line-height:1.35;color:var(--ink-2);
  transition:border-color .15s,color .15s,background .15s}
.chip:hover{border-color:var(--line-2);border-left-color:var(--brand);color:var(--brand-d);
  background:var(--brand-l);text-decoration:none}
.chip-hot{border-left-color:var(--brand);color:var(--ink);font-weight:600}
.chip-hot:hover{background:var(--brand);border-color:var(--brand);color:#fff}
.chip small{font-weight:400;color:var(--ink-4);font-size:10.5px}

/* ---------- bağlantı satırları ---------- */
/* Kart değil, satır: iki sütunlu ızgarada ince ayırıcılarla ayrılmış
   bağlantılar. Kutu içinde ikinci bir kutu oluşmaz. */
.cards{display:grid;gap:0;margin:14px 0 0;border-top:1px solid var(--line)}
@media(min-width:720px){.cards{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:26px}}
.card{display:grid;grid-template-columns:minmax(0,1fr) 14px;align-items:center;gap:10px;
  padding:12px 2px;border-bottom:1px solid var(--line);color:var(--ink);transition:.14s}
.card:hover{text-decoration:none;color:var(--brand)}
.card b{display:block;font-size:13.5px;font-weight:600;line-height:1.4;color:var(--ink)}
.card:hover b{color:var(--brand)}
.card small{display:block;margin-top:2px;font-size:11.5px;line-height:1.5;color:var(--ink-4)}
.card-go{color:var(--line-2)}
.card:hover .card-go{color:var(--brand)}
.card-hot b{color:var(--brand-d)}

/* ---------- zone headings inside lists ---------- */
.zone-h{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-4);margin:18px 0 8px;font-weight:600}
.zone-h:first-of-type{margin-top:0}

/* ---------- cihaz arıza bölümleri ---------- */
/* Her cihaz tam genişlikte, başlığı ve altındaki açıklamayla doğal metin
   akışında ilerler; kart ızgarası kullanılmaz. */
.devsec{display:grid;gap:0;margin:14px 0 0}
.dev{padding:15px 0 16px;border-top:1px solid var(--line)}
.dev h3{margin:0 0 8px;font-size:16px;color:var(--head)}
@media(min-width:700px){.dev h3{font-size:18px}}
.dev p{margin:0 0 9px;font-size:13.5px;line-height:1.75;color:var(--ink-2)}
.dev p:last-of-type{margin-bottom:0}

/* ---------- generic table (symptom / cause) ---------- */
.tblwrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:14px 0 0;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff}
.tbl{border-collapse:collapse;width:100%;min-width:420px;font-size:12.5px}
.tbl th,.tbl td{padding:10px 13px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.tbl th{background:var(--band);font-weight:600;color:var(--ink);white-space:nowrap}
.tbl tbody tr:last-child td{border-bottom:0}
.tbl td:first-child{font-weight:600;color:var(--ink)}

/* ---------- hood meta strip ---------- */
.meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0 0 14px;font-size:12px;color:var(--ink-3)}
.meta span{display:inline-flex;align-items:center;gap:5px}
.meta svg{color:var(--brand)}

/* ---------- home: why section reuse ---------- */
.why{display:grid;gap:10px;margin-top:14px}
@media(min-width:700px){.why{grid-template-columns:repeat(3,1fr)}}
.why div{padding:0}
.why b,.why h3{display:block;font-size:14px;color:var(--ink);margin:0 0 5px;line-height:1.4}
.why p{margin:0;font-size:12.5px;line-height:1.7;color:var(--ink-3)}

/* ---------- linkgrid: uzun ve EŞİT ağırlıklı bağlantı listesi ----------
   38 mahalle gibi hepsi aynı değerde olan listeler için. Kart/etiket ayrımı
   yapmaz: görsel ağırlık farkı, olmayan bir hizmet farkı ima ederdi. */
.linkgrid{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:0 24px;grid-template-columns:1fr;
  border-top:1px solid var(--line)}
@media(min-width:560px){.linkgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:900px){.linkgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.linkgrid li{border-bottom:1px solid var(--line)}
.linkgrid a{display:block;padding:9px 0;font-size:13px;line-height:1.45;color:var(--ink-2)}
.linkgrid a:hover{color:var(--brand);text-decoration:none}

/* ---------- hizmet bölgesi haritası ---------- */
/* Alan ÖNCEDEN ayrılır: iframe geç yüklenir ve yüklendiğinde sayfa
   kaymaz (CLS = 0). aspect-ratio yerine padding oranı kullanılıyor —
   eski tarayıcılarda da aynı davranır ve tek kural yeter.
   Mobilde 16:9 fazla basık kalıyor; oran 4:3'e açılır. */
.mapwrap{position:relative;width:100%;padding-bottom:75%;margin:14px 0 0;
  background:var(--band);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
@media(min-width:700px){.mapwrap{padding-bottom:52%}}
.mapwrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.mapnote{margin:10px 0 0;font-size:12.5px;line-height:1.7;color:var(--ink-3)}

/* ---------- sayfa üstü teknik servis illüstrasyonları ---------- */
.visual{margin:0;display:block}
.visual img{display:block;width:100%;height:auto;aspect-ratio:1200/676;object-fit:cover;
  border-radius:var(--r);background:var(--bg)}

/* Sayfa üstü: metin + görsel ikilisi */
.lead-split{display:grid;gap:18px;align-items:center}
@media(min-width:900px){.lead-split{grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:32px}}
@media(max-width:899px){.lead-split .visual{max-width:420px;margin:4px auto 0}}
/* Hero: solda metin, sağda görsel. */
.hero-art{align-self:center;padding:0 0 28px}
@media(min-width:900px){
  .hero-in{grid-template-columns:minmax(0,1.02fr) minmax(320px,.98fr)}
  .hero-art{padding:0}
}
/* Düz metin mahalle listesi: bağlantı değil, kapsam beyanı. */
.plainlist{margin-top:12px;font-size:12.5px;line-height:1.9}

/* ---------- ilgili sayfalar (tek blok, iki sütun) ---------- */
.related{display:grid;gap:22px;margin-top:14px}
@media(min-width:760px){.related{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}}
.related h3{margin:0 0 8px;font-size:13px;color:var(--ink-3);font-weight:600}
.related ul{list-style:none;margin:0;padding:0;font-size:12.5px}
.related li{margin-bottom:5px;line-height:1.6}
.related a{color:var(--ink-2)}
.related a:hover{color:var(--brand)}
.related>div>p{margin:10px 0 0;font-size:12.5px}
.related>div>p a{font-weight:600;color:var(--brand-d)}
.related-single{grid-template-columns:1fr}
.related-single ul{columns:2;column-gap:28px}
@media(max-width:559px){.related-single ul{columns:1}}

/* ---------- ziyaretçi puanı ---------- */
.rt{margin:26px 0 0;padding:15px 16px;background:var(--band);border:1px solid var(--line);
  border-radius:var(--r);display:grid;gap:13px}
@media(min-width:760px){.rt{grid-template-columns:auto 1fr;align-items:center;gap:28px;padding:16px 22px}}
.rt-score{display:flex;align-items:center;gap:9px;margin:0;font-size:13.5px;color:var(--ink-2);flex-wrap:wrap}
.rt-score b{color:var(--ink);font-size:16px}
.rt-shown{display:inline-flex;gap:2px;color:var(--line-2)}
.rt-shown .is-on{color:var(--brand)}
.rt-shown .is-on svg{fill:currentColor}
.rt-count{font-size:12.5px;color:var(--ink-3)}
.rt-count b{font-size:inherit;color:var(--ink-2)}
.rt-empty{font-size:12.5px;color:var(--ink-3)}
.rt-form{margin:0}
.rt-set{border:0;margin:0;padding:0;min-width:0}
.rt-legend{padding:0;margin:0 0 7px;font-size:12px;font-weight:600;color:var(--ink-3)}
.rt-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
@media(min-width:760px){.rt-row{justify-content:flex-end}.rt-legend{text-align:right}}
.rt-stars{display:flex;align-items:center;gap:1px}
/* Görünmez ama odaklanabilir: klavye ve ekran okuyucu tarayıcıya kalsın. */
.rt-in{position:absolute;width:1px;height:1px;margin:0;opacity:0;pointer-events:none}
.rt-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.rt-star{display:grid;place-items:center;padding:2px;cursor:pointer;color:var(--line-2);
  border-radius:5px;transition:color .12s,transform .1s}
.rt-star svg{width:27px;height:27px;stroke-width:1.4}
.rt-star:active{transform:scale(.9)}
/* 1..N doldurma. DOM sırası 1→5, klavye okları da soldan sağa. */
.rt-in:checked+.rt-star,.rt-star:has(~ .rt-in:checked){color:var(--brand)}
.rt-in:checked+.rt-star svg,.rt-star:has(~ .rt-in:checked) svg{fill:currentColor}
/* Fare üzerindeyken seçili durum susar, önizleme görünür. */
.rt-stars:has(.rt-star:hover) .rt-star{color:var(--line-2)}
.rt-stars:has(.rt-star:hover) .rt-star svg{fill:none}
.rt-stars:has(.rt-star:hover) .rt-star:hover,
.rt-stars:has(.rt-star:hover) .rt-star:has(~ .rt-star:hover){color:var(--brand)}
.rt-stars:has(.rt-star:hover) .rt-star:hover svg,
.rt-stars:has(.rt-star:hover) .rt-star:has(~ .rt-star:hover) svg{fill:currentColor}
.rt-in:focus-visible+.rt-star{outline:2px solid var(--brand-d);outline-offset:1px}
.rt-send{padding:8px 16px;font-size:12.5px}
.rt-msg{margin:8px 0 0;font-size:12.5px;color:var(--ink-3);min-height:0}
.rt-msg:empty{display:none}
.rt-msg.is-err{color:var(--brand-d)}
.rt[data-sent] .rt-set{opacity:.55}
@media(prefers-reduced-motion:reduce){.rt-star{transition:none}.rt-star:active{transform:none}}
