/* Dry Vadi Kuru Temizleme — "Açık Zemin"
   Konsept: ürünü temizlik olan bir işletmenin sitesi de temiz olmalı.
   Ferah, ince çizgi, koyu ana renk, bol nefes alanı. Gradient/glow yok.

   Token yapısı: primitive / semantic / scale. Vanilla CSS. */

:root {
  /* --- primitive — AÇIK MAVİ TEMA --- */
  --c-navy:      #0f2942;   /* ana koyu renk */
  --c-navy-2:    #1c3d5c;   /* footer ayırıcı — zeminden açık */
  --c-blue-mid:  #2f5f8a;   /* ikincil mavi (odak halkası) */
  --c-paper:     #eef4f9;   /* ANA ZEMİN: açık mavi */
  --c-tint:      #dfeaf4;   /* bölüm bandı: biraz daha koyu mavi */
  --c-white:     #ffffff;   /* kart yüzeyi */
  --c-slate:     #4a6076;   /* gövde metni: 5.87 zemin / 5.34 tint / 6.51 kart */
  --c-slate-2:   #40566b;   /* tint üzerinde ikincil metin */
  --c-line:      #c5d5e4;   /* dekoratif ayırıcı — WCAG 1.4.11 kapsamı dışı */
  --c-line-ctl:  #6f7a89;   /* form kenarı: 3.93 zemin / 3.57 tint / 4.36 kart */
  --c-accent:    #a64a08;   /* aksan: 5.26 zemin / 4.78 tint / 5.83 kart */
  --c-green:     #1f5130;
  --c-wa:        #1c7a4a;

  /* --- semantic --- */
  --surface:            var(--c-paper);
  --surface-tint:       var(--c-tint);
  --surface-card:       var(--c-white);
  --surface-invert:     var(--c-navy);

  --text:               var(--c-navy);
  --text-body:          var(--c-slate);
  --text-subtle:        var(--c-slate);
  --text-subtle-tint:   var(--c-slate);
  --text-invert:        var(--c-paper);
  --text-invert-subtle: #b6c2cf;

  --border:        var(--c-line-ctl);   /* form alanları, seçim kutuları, butonlar */
  --border-soft:   var(--c-line);       /* bölüm ayırıcıları, dekoratif çizgiler */
  --border-strong: var(--c-navy);
  --accent:        var(--c-accent);
  --focus:         var(--c-blue-mid);
  --success:       var(--c-green);
  --danger:        #9b2c1f;
  --wa:            var(--c-wa);

  /* --- space: 4px base --- */
  --s1:0.25rem; --s2:0.5rem; --s3:0.75rem; --s4:1rem; --s5:1.5rem;
  --s6:2rem;    --s7:3rem;   --s8:4rem;    --s9:5rem; --s10:7rem;

  /* --- type --- */
  --t-cap:0.75rem; --t-sm:0.875rem; --t-body:1rem; --t-lead:1.0625rem;
  --t-h3:1.125rem; --t-h2:1.75rem;  --t-h1:3.75rem;

  --lh-tight:1.06; --lh-snug:1.2; --lh-body:1.65;
  --track:0.12em;

  --measure:64ch; --gutter:clamp(1.25rem,4.5vw,4.5rem); --max:76rem;
  --font: ui-sans-serif, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --font-d: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;

  --dur:220ms; --ease:cubic-bezier(.2,.7,.2,1);
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  margin: 0; background: var(--surface); color: var(--text-body);
  font-family: var(--font); font-size: var(--t-body); line-height: var(--lh-body);
  padding-bottom: 0;
  overflow-x:hidden;
}

.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }

.skip { position:absolute; left:-9999px; top:0; background:var(--surface-invert);
  color:var(--text-invert); padding:var(--s3) var(--s5); z-index:100; font-weight:600; }
.skip:focus { left:0; }

.wrap { max-width: var(--max); margin-inline: auto; padding-inline: var(--gutter); }

a { color: var(--text); }
:focus-visible { outline:3px solid var(--focus); outline-offset:2px; }

h1,h2,h3 { color: var(--text); }

/* ============================================================
   BUTTONS
   ============================================================ */
.btn {
  display:inline-block; font:inherit; font-size:var(--t-sm); font-weight:600;
  letter-spacing:.02em; padding:var(--s4) var(--s6); text-decoration:none;
  cursor:pointer; border:2px solid transparent; transition:background var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.btn--primary { background:var(--surface-invert); color:var(--text-invert); border-color:var(--surface-invert); }
.btn--primary:hover { background:var(--accent); border-color:var(--accent); color:#fff; }
.btn--ghost { background:transparent; color:var(--text); border-color:var(--border-strong); }
.btn--ghost:hover { background:var(--surface-invert); color:var(--text-invert); }
.btn--wa { background:var(--wa); color:#fff; border-color:var(--wa); }
.btn--wa:hover { background:#155f39; border-color:#155f39; }
.btn--wide { width:100%; text-align:center; }
.btn[disabled] { opacity:.55; cursor:not-allowed; }

/* ============================================================
   HEADER
   ============================================================ */
.head { background:var(--surface-card); border-bottom:1px solid var(--border-soft);
  position:sticky; top:0; z-index:50; }
.head__row { display:flex; align-items:center; justify-content:space-between;
  gap:var(--s6); padding-block:var(--s4); flex-wrap:wrap; }

.brand { display:flex; align-items:center; gap:var(--s3); text-decoration:none; }
.brand__mark { color:var(--accent); display:flex; }
.brand__text { display:flex; flex-direction:column; line-height:1.15; }
.brand__text strong { color:var(--text); font-size:1.0625rem; letter-spacing:.06em; }
.brand__text small { color:var(--text-subtle); font-size:var(--t-cap);
  letter-spacing:.06em; text-transform:uppercase; }

.nav { display:flex; gap:var(--s6); flex-wrap:wrap; }
.nav a { color:var(--text-body); text-decoration:none; font-size:var(--t-sm); font-weight:500;
  padding-block:var(--s2); border-bottom:2px solid transparent; }
.nav a:hover { color:var(--text); border-bottom-color:var(--accent); }

.head__phone { display:inline-flex; align-items:center; gap:var(--s2);
  background:var(--surface-invert); color:var(--text-invert); text-decoration:none;
  font-weight:700; font-size:var(--t-sm); padding:var(--s3) var(--s5);
  border:2px solid var(--surface-invert); transition:background var(--dur) var(--ease); }
.head__phone:hover { background:var(--accent); border-color:var(--accent); color:#fff; }
.head__phoneIcon { font-size:1rem; }

/* ============================================================
   HERO
   ============================================================ */
.hero { padding-block: var(--s9) var(--s8); }
.hero__grid { display:grid; grid-template-columns: minmax(0,1.05fr) minmax(0,0.95fr);
  gap:var(--s9); align-items:center; }

.eyebrow { margin:0 0 var(--s4); font-size:var(--t-cap); letter-spacing:var(--track);
  text-transform:uppercase; color:var(--text-subtle); font-weight:600; }

.hero h1 { font-family:var(--font-d); font-weight:600;
  font-size:clamp(2rem, 3.4vw + 1rem, var(--t-h1)); line-height:var(--lh-tight);
  letter-spacing:-.01em; margin:0 0 var(--s5); }
.hero__name { display:block; color:var(--accent); }

.hero__sub { font-family:var(--font-d); font-size:clamp(1.05rem,1vw + .8rem,1.375rem);
  line-height:1.35; color:var(--text); margin:0 0 var(--s5); max-width:34ch; }
.hero__desc { margin:0 0 var(--s7); max-width:var(--measure); font-size:var(--t-lead); }

.hero__cta { display:flex; gap:var(--s4); flex-wrap:wrap; margin-bottom:var(--s5); }
.hero__phone { margin:0; font-size:var(--t-sm); color:var(--text-subtle); }
.hero__phone a { color:var(--text); font-weight:700; text-decoration:none; }
.hero__phone a:hover { color:var(--accent); }

/* --- Hero media --- */
.hero__media { margin:0; position:relative; }
.hero__media img { display:block; width:100%; height:auto; aspect-ratio:4/3;
  object-fit:cover; background:var(--surface-tint); border:1px solid var(--border-soft); }
.hero__media.is-empty img { display:none; }
.hero__media.is-empty::before {
  content:""; display:block; aspect-ratio:4/3; background:
    repeating-linear-gradient(45deg, var(--c-tint) 0 12px, var(--surface-card) 12px 24px);
  border:1px solid var(--border-soft);
}
.media-note { position:absolute; left:0; bottom:0; right:0;
  background:var(--surface-card); border-top:1px solid var(--border-soft);
  padding:var(--s3) var(--s4); font-size:var(--t-cap); color:var(--text-subtle); display:flex; align-items:center; gap:var(--s3); }
.media-note__badge { background:var(--surface-tint); border:1px solid var(--border-soft);
  padding:.15rem .5rem; letter-spacing:.06em; text-transform:uppercase; font-weight:600; color:var(--text); }

/* ============================================================
   ÜÇLÜ HİZMET
   ============================================================ */
.tri { border-top:1px solid var(--border-soft); border-bottom:1px solid var(--border-soft);
  background:var(--surface-card); }
.tri__list { list-style:none; margin:0; padding:0;
  /* AF-C03: üç eşit kart yerine ana kol + iki destek. Kuru temizleme işin
     çoğunluğu olduğu için daha geniş; ütü ve terzi onu tamamlıyor. */
  display:grid; grid-template-columns:1.5fr 1fr 1fr; }
.tri__item { padding:var(--s7) var(--s6); position:relative; }
.tri__item + .tri__item { border-left:1px solid var(--border-soft); }
/* Ana kol: daha büyük başlık, daha yüksek kontrast */
.tri__item:first-child h3 { font-size:1.5rem; }
.tri__item:first-child p { font-size:var(--t-body); }
.tri__item:first-child .tri__n { color:var(--text); }
.tri__n { display:block; font-size:var(--t-cap); font-weight:700; letter-spacing:.16em;
  color:var(--accent); margin-bottom:var(--s4); }
.tri__item h3 { font-family:var(--font-d); font-size:1.25rem; font-weight:600;
  letter-spacing:.04em; margin:0 0 var(--s4); }
.tri__item p { margin:0; font-size:var(--t-sm); }

/* ============================================================
   SECTIONS
   ============================================================ */
.sec { padding-block: var(--s10); }
.sec--tint { background:var(--surface-tint); }
.sec h2 { font-family:var(--font-d); font-weight:600;
  font-size:clamp(1.5rem,1.6vw + 1rem,var(--t-h2)); line-height:var(--lh-snug);
  margin:0 0 var(--s5); letter-spacing:-.005em; }
.sec__lede { margin:0 0 var(--s7); max-width:var(--measure); font-size:var(--t-lead); }

/* ============================================================
   EKİPMAN
   ============================================================ */
.equip { list-style:none; margin:0; padding:0;
  /* 5 kart: esit uclu degil, dortlu hat + tek genis kapanis */
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--s6); }
.equip__card:last-child { grid-column:span 4; display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.4fr); align-items:center; }
.equip__card:last-child .equip__media { margin:0; }
.equip__card { background:var(--surface-card);
  padding:0 0 var(--s6); overflow:hidden; }
.equip__media { background:var(--surface-tint); margin-bottom:var(--s5); }
.equip__media img { display:block; width:100%; height:auto; aspect-ratio:4/3;
  object-fit:cover; }
.equip__media.is-empty { aspect-ratio:4/3;
  background:repeating-linear-gradient(45deg,#e3e7ea 0 10px,#eef0f3 10px 20px); }
.equip__media.is-empty img { display:none; }
.equip__card h3 { font-family:var(--font-d); font-size:1.0625rem; font-weight:600;
  margin:0 var(--s5) var(--s3); }
.equip__card p { margin:0 var(--s5); font-size:var(--t-sm); }

/* ============================================================
   HİZMETLER
   ============================================================ */
.svc { list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--s5); }
.svc__card { background:var(--surface-card);
  padding:var(--s6); position:relative; }
/* İmza etkileşimi: ince çizgi soldan sağa açılır */
.svc__card::before { content:""; position:absolute; top:0; left:0; height:3px; width:0;
  background:var(--accent); transition:width var(--dur) var(--ease); }
.svc__card:hover::before { width:100%; }
.svc__card h3 { font-family:var(--font-d); font-size:1.0625rem; font-weight:600;
  margin:0 0 var(--s3); }
.svc__card p { margin:0; font-size:var(--t-sm); }

/* --- Terzi alt listesi --- */
.tailor { margin-top:var(--s8); border-top:2px solid var(--border-strong); padding-top:var(--s6); }
.tailor__h { font-family:var(--font-d); font-size:1.375rem; font-weight:600; margin:0 0 var(--s3); }
.tailor__note { margin:0 0 var(--s5); font-size:var(--t-sm); max-width:var(--measure); }
.tailor__list { list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:var(--s3); }
.tailor__list li { background:var(--surface-card);
  padding:var(--s3) var(--s4); font-size:var(--t-sm); }

/* ============================================================
   NASIL ÇALIŞIR
   ============================================================ */
.flow { list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--s6); counter-reset:flow; }
.flow__step { background:var(--surface-card);
  padding:var(--s6); border-top:3px solid var(--accent); }
.flow__n { display:block; font-family:var(--font-d); font-size:1.75rem; font-weight:600;
  color:var(--accent); margin-bottom:var(--s4); font-variant-numeric:tabular-nums; }
.flow__step h3 { font-family:var(--font-d); font-size:1.0625rem; font-weight:600; margin:0 0 var(--s3); }
.flow__step p { margin:0; font-size:var(--t-sm); }

/* ============================================================
   NEDEN
   ============================================================ */
.why { list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--s6); }
.why li { border-top:2px solid var(--border-soft); padding-top:var(--s5); }
.why h3 { font-family:var(--font-d); font-size:1rem; font-weight:600; margin:0 0 var(--s3); }
.why p { margin:0; font-size:var(--t-sm); }

/* ============================================================
   GALERİ
   ============================================================ */
.gal { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--s4); }
.gal__item:first-child { grid-column:span 2; grid-row:span 2; }
.gal__item:first-child img, .gal__item:first-child.is-empty { aspect-ratio:1/1; }
.gal__item { margin:0; position:relative; }
.gal__item img { display:block; width:100%; height:auto; aspect-ratio:4/3;
  object-fit:cover; background:var(--surface-card); border:1px solid var(--border-soft); }
.gal__item.is-empty { aspect-ratio:4/3; border:1px solid var(--border-soft);
  background:repeating-linear-gradient(45deg,#e3e7ea 0 10px,#eef0f3 10px 20px); }
.gal__item.is-empty img { display:none; }
.gal__item figcaption { position:absolute; left:0; bottom:0; background:var(--surface-card);
  border-top:1px solid var(--border); border-right:1px solid var(--border);
  padding:var(--s2) var(--s4); font-size:var(--t-cap); font-weight:600;
  letter-spacing:.06em; text-transform:uppercase; color:var(--text); }

/* ============================================================
   YORUMLAR (boş alan — sahte yorum yok)
   ============================================================ */
.rev-empty { background:var(--surface-card);
  border-left:4px solid var(--accent); padding:var(--s7); max-width:52rem; }
.rev-empty__t { font-family:var(--font-d); font-size:1.25rem; font-weight:600;
  color:var(--text); margin:0 0 var(--s4); }
.rev-empty p { margin:0 0 var(--s5); max-width:56ch; }

/* ============================================================
   İLETİŞİM
   ============================================================ */
.il { display:grid; grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr); gap:var(--s9); }
.il h2 { margin-bottom:var(--s6); }
.il__label { font-size:var(--t-cap); letter-spacing:var(--track); text-transform:uppercase;
  color:var(--text-subtle); font-weight:600; margin:0 0 var(--s2); display:block; }
.il__phone { margin:0 0 var(--s6); }
.il__phone a { font-family:var(--font-d); font-size:1.75rem; font-weight:600;
  color:var(--text); text-decoration:none; }
.il__phone a:hover { color:var(--accent); }
.il__btns { display:flex; gap:var(--s4); flex-wrap:wrap; margin-bottom:var(--s8); }
.il__addr { border-top:1px solid var(--border-soft); padding-top:var(--s5); }
.il__unknown { margin:0 0 var(--s3); font-size:var(--t-sm); max-width:46ch; }
.il__unknown-note { margin:0; font-size:var(--t-sm); font-weight:600; color:var(--text); }

/* --- Form --- */
.form { background:var(--surface-card); padding:var(--s7); }
.form__h { font-family:var(--font-d); font-size:1.375rem; font-weight:600; margin:0 0 var(--s6); }
.fld { margin-bottom:var(--s5); }
label { display:block; font-size:var(--t-cap); letter-spacing:.08em; text-transform:uppercase;
  color:var(--text-subtle); font-weight:600; margin-bottom:var(--s2); }
.req { color:var(--accent); }
input, textarea, select {
  font:inherit; font-size:var(--t-body); width:100%; padding:var(--s3) var(--s4);
  background:var(--surface-card); color:var(--text);
  border:1px solid var(--border); border-radius:0; }
select { appearance:none; background-image:linear-gradient(45deg,transparent 50%,var(--text) 50%),linear-gradient(135deg,var(--text) 50%,transparent 50%);
  background-position:calc(100% - 1.2rem) 1.25rem, calc(100% - .85rem) 1.25rem;
  background-size:6px 6px, 6px 6px; background-repeat:no-repeat; padding-right:2.5rem; }
textarea { resize:vertical; }
input:hover, textarea:hover, select:hover { border-color:var(--text-subtle); }
.fld[data-invalid="true"] input,
.fld[data-invalid="true"] textarea,
.fld[data-invalid="true"] select { border:2px solid var(--danger); }
.err { margin:var(--s2) 0 0; font-size:var(--t-sm); color:var(--danger); }
.status { margin:var(--s5) 0 0; font-size:var(--t-body); }
.status[data-kind="ok"] { color:var(--success); }
.status[data-kind="err"] { color:var(--danger); }

/* ============================================================
   FOOTER
   ============================================================ */
.foot { background:var(--surface-invert); color:var(--text-invert); padding-block:var(--s8) var(--s5); }
.foot__grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr);
  gap:var(--s7); padding-bottom:var(--s6); }
.foot__brand { font-family:var(--font-d); font-size:1.25rem; font-weight:600;
  color:var(--text-invert); margin:0 0 var(--s3); letter-spacing:.03em; }
.foot__tag { margin:0; font-size:var(--t-sm); color:var(--text-invert-subtle); max-width:36ch; }
.foot__nav { display:flex; flex-direction:column; gap:var(--s3); }
.foot__nav a { color:var(--text-invert-subtle); text-decoration:none; font-size:var(--t-sm); }
.foot__nav a:hover { color:var(--accent); }
.foot__label { font-size:var(--t-cap); letter-spacing:var(--track); text-transform:uppercase;
  color:var(--text-invert-subtle); font-weight:600; margin:0 0 var(--s3); }
.foot__contact a { color:var(--text-invert); font-weight:700; text-decoration:none;
  font-size:1.0625rem; }
.foot__contact a:hover { color:var(--accent); }
.foot__unknown { margin:var(--s4) 0 0; font-size:var(--t-cap); color:var(--text-invert-subtle);
  max-width:34ch; }
.foot__bottom { border-top:1px solid var(--c-navy-2); padding-top:var(--s5); margin-top:var(--s6); }
/* Ayirici --c-navy-2 kullanir: footer zemininden daha acik bir ton, yani
   gercek yuzey kontrasti. Onceki ton 'hairline' olarak isaretlenmisti. */
.foot__bottom p { margin:0; font-size:var(--t-cap); color:var(--text-invert-subtle); }

/* ============================================================
   MOBİL SABİT İLETİŞİM ÇUBUĞU
   ============================================================ */
.mobilebar { display:none; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1080px) {
  .svc       { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tailor__list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .equip     { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .equip__card:last-child { grid-column:span 2; grid-template-columns:minmax(0,1fr); }
  .gal       { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gal__item:first-child { grid-column:span 2; grid-row:auto; }
  .gal__item:first-child img, .gal__item:first-child.is-empty { aspect-ratio:4/3; }
  .flow      { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .why       { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .il        { grid-template-columns:minmax(0,1fr); gap:var(--s7); }
  .foot__grid{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
}

@media (max-width:860px) {
  .hero__grid { grid-template-columns:minmax(0,1fr); gap:var(--s7); }
  .hero__media { order:-1; }
  .tri__list { grid-template-columns:minmax(0,1fr); }
  .tri__item + .tri__item { border-left:0; border-top:1px solid var(--border-soft); }
  .nav { order:3; width:100%; justify-content:flex-start; gap:var(--s5);
         border-top:1px solid var(--border); padding-top:var(--s3); }
  .gal { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:640px) {
  :root { --s10:4.5rem; }
  .head__row { gap:var(--s4); }
  .head__phone { width:100%; justify-content:center; }
  .hero { padding-block:var(--s7) var(--s7); }
  .hero__cta { flex-direction:column; }
  .hero__cta .btn { width:100%; text-align:center; }
  .svc, .equip, .flow, .why, .gal, .tailor__list { grid-template-columns:minmax(0,1fr); }
  .equip__card:last-child { grid-column:auto; grid-template-columns:minmax(0,1fr); }
  .gal__item:first-child { grid-column:auto; }
  .foot__grid { grid-template-columns:minmax(0,1fr); gap:var(--s6); }
  .form { padding:var(--s5); }
  .il__btns { flex-direction:column; }
  .il__btns .btn { width:100%; text-align:center; }
  /* Mobil sabit iletişim çubuğu — brief §16 */
  .mobilebar { display:grid; grid-template-columns:1.4fr 1fr; gap:1px;
    width:100%; max-width:100vw; overflow:hidden;
    position:fixed; left:0; right:0; bottom:0; z-index:60;
    background:var(--border-soft); border-top:1px solid var(--border-soft); }
  .mobilebar a { display:flex; align-items:center; justify-content:center; gap:var(--s2);
    padding:var(--s4) var(--s3); font-size:var(--t-sm); font-weight:700;
    text-decoration:none; }
  .mobilebar__call { background:var(--surface-invert); color:var(--text-invert); }
  .mobilebar__wa { background:var(--wa); color:#fff; }
  body { padding-bottom:3.75rem; }
}

/* ============================================================
   REDUCED MOTION
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .svc__card:hover::before { width:100%; transition:none; }
  *, *::before, *::after {
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
}


/* ============================================================
   YENİ BİLEŞENLER (adres + iki telefon + saatler + puan)
   ============================================================ */

/* --- header: iki telefon --- */
.head__phones { display:flex; align-items:center; gap:var(--s3); flex-wrap:wrap; }
.head__phone--wa { background:var(--wa); border-color:var(--wa); color:#fff; gap:var(--s3); }
.head__phone--wa:hover { background:#155f39; border-color:#155f39; }

/* --- hero: iki iletişim satırı + adres --- */
.hero__contact { display:flex; flex-direction:column; gap:var(--s2); margin-bottom:var(--s5); }
.hero__tag {
  display:inline-block; margin-left:var(--s3); padding:.1rem var(--s3);
  font-size:var(--t-cap); letter-spacing:.06em; text-transform:uppercase;
  background:var(--surface-tint); color:var(--text-body);
}
.hero__addr {
  margin:0; font-size:var(--t-sm); color:var(--text-body);
  max-width:44ch; line-height:1.5;
}
.hero__addr span { color:var(--accent); }

/* --- iletişim: olgu listesi --- */
.il__facts { list-style:none; margin:0 0 var(--s7); padding:0;
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--s6); }
.il__facts > li { border-top:2px solid var(--border); padding-top:var(--s4); }
.il__big { font-family:var(--font-d); font-size:1.375rem; font-weight:600;
  color:var(--text); text-decoration:none; display:inline-block; }
.il__big:hover { color:var(--accent); }
.il__addr-text { font-style:normal; font-size:var(--t-body); line-height:1.55; color:var(--text-body); }

/* --- çalışma saatleri tablosu --- */
.hours { border-collapse:collapse; width:100%; max-width:22rem; }
.hours th, .hours td { text-align:left; padding:var(--s2) 0; font-size:var(--t-sm);
  border-bottom:1px solid var(--border-soft); }
.hours th { font-weight:600; color:var(--text); }
.hours td { text-align:right; color:var(--text-body); font-variant-numeric:tabular-nums; }
.hours tr:last-child th, .hours tr:last-child td { border-bottom:0; }

/* --- Google puan bloğu --- */
.rating { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);
  gap:var(--s8); align-items:start; }
.rating__score { background:var(--surface-card); padding:var(--s7); text-align:center;
  border-top:3px solid var(--accent); }
.rating__num { margin:0 0 var(--s2); font-family:var(--font-d);
  font-size:3.5rem; line-height:1; color:var(--text); font-weight:600; }
.rating__num strong { font-weight:600; }
.rating__num span { font-size:1.25rem; color:var(--text-body); font-weight:400; }
.rating__stars { margin:0 0 var(--s3); font-size:1.5rem; letter-spacing:.1em; color:var(--accent); }
.rating__count { margin:0; font-size:var(--t-sm); color:var(--text-body); }
.rating__src { margin:0 0 var(--s4); font-size:var(--t-body); color:var(--text); }
.rating__note { margin:0 0 var(--s6); font-size:var(--t-sm); color:var(--text-body); max-width:58ch; }
.rating__cta { margin:0; }

/* ---- Dil değiştirici ------------------------------------------------
   Navigasyonun sonunda. Menü tıklamayla açılır, Esc/kaydırma ile kapanır.
   RTL (Arapça) seçildiğinde ölçüler aynı kalır, yalnızca metin yönü değişir. */
.lang { position:relative; margin-inline-start:var(--s3); }
.lang__btn { display:inline-flex; align-items:center; gap:6px;
  background:none; border:1px solid var(--border-soft); color:var(--text);
  font:inherit; font-size:var(--t-sm); font-weight:600; line-height:1;
  padding:7px 10px; cursor:pointer; }
.lang__btn:hover { border-color:var(--c-line-ctl); background:var(--surface-tint); }
.lang__btn:focus-visible { outline:2px solid var(--c-blue-mid); outline-offset:2px; }
.lang__globe { display:inline-flex; color:var(--text-body); }
.lang__code { letter-spacing:.04em; }
.lang__chev { font-size:.7em; color:var(--text-body); }

.lang__menu { position:absolute; inset-inline-end:0; top:calc(100% + 6px); z-index:60;
  min-width:170px; margin:0; padding:6px; list-style:none;
  background:var(--surface-card); border:1px solid var(--border-soft);
  box-shadow:0 10px 28px rgba(15,41,66,.14); }
.lang__menu[hidden] { display:none; }
.lang__menu li { margin:0; }
.lang__menu button { display:flex; align-items:center; gap:10px; width:100%;
  background:none; border:0; color:var(--text); font:inherit; font-size:var(--t-sm);
  text-align:start; padding:8px 10px; cursor:pointer; }
.lang__menu button:hover { background:var(--surface-tint); }
.lang__menu button[aria-selected="true"] { font-weight:700; }
.lang__menu button[aria-selected="true"]::after { content:"\2713"; margin-inline-start:auto; color:var(--accent); }
.lang__flag { display:inline-flex; align-items:center; justify-content:center;
  width:26px; height:19px; flex:0 0 26px; background:var(--surface-tint);
  color:var(--text-body); font-size:.66rem; font-weight:700; letter-spacing:.03em; }

/* Mobil: nav satırında tam genişlik */
@media (max-width:820px) {
  .lang { margin-inline-start:0; }
  .lang__btn { width:100%; justify-content:center; }
  .lang__menu { inset-inline:0; min-width:0; width:100%; padding:4px; }
  .lang__menu button { padding:11px 12px; font-size:.95rem;
    white-space:nowrap; gap:8px; }
  .lang__flag { width:30px; height:22px; flex:0 0 30px; font-size:.7rem; }
}

@media (max-width:480px) {
  .lang { width:100%; }
  .lang__menu { position:static; margin-top:6px; box-shadow:none;
    border:1px solid var(--border-soft); }
  .lang__menu[hidden] { display:none; }
}

/* RTL: Arapça */
html[dir="rtl"] .lang__menu button { text-align:right; }
html[dir="rtl"] address, html[dir="rtl"] .hours { text-align:right; }


/* ---- Kayan müşteri yorumları (gerçek Google yorumları) ----------------
   Sağa doğru sonsuz akış. Şerit iki kopya içerir; animasyon tam bir kopya
   genişliği kadar kayar ve başa döner, böylece boşluk görünmez.
   Hareket yalnızca transform ile yapılır (layout tetiklenmez).
   reduced-motion açıksa animasyon durur, şerit elle kaydırılabilir kalır. */
.rvflow { margin-top:var(--s8); overflow:hidden; width:100%; max-width:100%;
  position:relative; contain:inline-size;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%); }

/* RTL: yorum seridi Arapca'da sola kaymasin.
   Serit flex oldugu icin dir=rtl akisi ters cevirir; track'i LTR'e sabitleyip
   konteyneri tam genislikte tutmak tasmayi onler. */
html[dir="rtl"] .rvflow { direction:ltr; width:100%; max-width:100%; overflow:hidden; }
html[dir="rtl"] .rv { direction:rtl; text-align:right; }
html[dir="rtl"] .rvflow__track { animation-name:rvscroll-rtl; }

@keyframes rvscroll-rtl {
  from { transform:translateX(0); }
  to   { transform:translateX(-50%); }
}

.rvflow__track { display:flex; gap:var(--s4); width:max-content;
  animation:rvscroll 64s linear infinite; will-change:transform; }
.rvflow:hover .rvflow__track,
.rvflow:focus-within .rvflow__track { animation-play-state:paused; }

/* Sağa doğru akış: başlangıç -50% (ikinci kopya görünür), sonu 0 */
@keyframes rvscroll {
  from { transform:translateX(-50%); }
  to   { transform:translateX(0); }
}

.rv { flex:0 0 auto; width:clamp(260px,26vw,340px);
  background:var(--surface-card); border:1px solid var(--border-soft);
  border-left:3px solid var(--accent);
  padding:var(--s5) var(--s5) var(--s4); display:flex; flex-direction:column; gap:var(--s3); }
.rv__stars { margin:0; color:var(--accent); font-size:1rem; letter-spacing:.12em; line-height:1; }
.rv__text { margin:0; font-size:var(--t-sm); line-height:1.6; color:var(--text-body);
  display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical; overflow:hidden; }
.rv__by { margin-top:auto; display:flex; align-items:baseline; justify-content:space-between;
  gap:var(--s3); font-size:var(--t-xs); }
.rv__by cite { font-style:normal; font-weight:600; color:var(--text); }
.rv__date { color:var(--text-body); white-space:nowrap; }

@media (prefers-reduced-motion: reduce) {
  .rvflow__track { animation:none; }
  .rvflow { overflow-x:auto; }
}


/* --- footer ekleri --- */
.foot__tag { font-size:var(--t-cap); letter-spacing:.06em; text-transform:uppercase;
  color:var(--text-invert-subtle); margin-left:var(--s2); }
.foot__addr { margin:var(--s4) 0 var(--s2); font-size:var(--t-sm);
  color:var(--text-invert-subtle); line-height:1.55; }
.foot__hours { margin:0; font-size:var(--t-sm); color:var(--text-invert-subtle); }

@media (max-width:1080px) {
  .rating { grid-template-columns:minmax(0,1fr); gap:var(--s6); }
  .il__facts { grid-template-columns:minmax(0,1fr); gap:var(--s5); }
}
@media (max-width:640px) {
  .head__phones { width:100%; }
  .head__phone { width:100%; justify-content:center; }
  .rating__score { padding:var(--s6); }
  .hours { max-width:100%; }
}


/* ---- RTL (Arapça) düzeltmeleri ---------------------------------------
   Arapça seçildiğinde sayfa sağa kayıyordu: html scrollWidth 10.389px'e
   çıkıp viewport 390px'te kalıyordu. Sebep, RTL yönünde sabit (fixed)
   ve genişliği sınırsız iki şeritti — mobil iletişim çubuğu ve yorum
   akışı. İkisi de viewport genişliğine sabitlenir. */
html[dir="rtl"] body { overflow-x:hidden; }
html[dir="rtl"] .mobilebar {
  position:fixed; inset-inline:0; left:0; right:0;
  width:100vw; max-width:100vw; overflow:hidden;
  direction:rtl;
}
html[dir="rtl"] .mobilebar a { min-width:0; }
html[dir="rtl"] .mobilebar { grid-template-columns:1fr 1fr; }

/* Sayfanın tamamı: RTL'de yatay kayma olmasın */
html[dir="rtl"] { overflow-x:hidden; max-width:100%; }
html[dir="rtl"] main, html[dir="rtl"] header, html[dir="rtl"] footer,
html[dir="rtl"] section, html[dir="rtl"] .wrap { max-width:100%; }


/* RTL: sayfa yatay kaymasin — html seviyesinde kesin koruma.
   Arapça yönünde yorum şeridi (4400px) ve sabit mobil çubuk sayfayı
   sağa itiyordu; html scrollWidth 10.389px'e çıkıyordu. */
html[dir="rtl"] { overflow-x:clip; }
@supports not (overflow:clip) {
  html[dir="rtl"] { overflow-x:hidden; }
}
html[dir="rtl"] body { overflow-x:clip; max-width:100vw; }
html[dir="rtl"] .rvflow { overflow:clip; max-width:100vw; }
html[dir="rtl"] .rvflow__track { will-change:transform; }


/* ---- Mobil taşma koruması (kesin) ------------------------------------
   Küçük ekranlarda hiçbir blok viewport'tan geniş olamaz. Navigasyon
   (5 bağlantı + dil seçici) ve footer gibi çok öğeli satırlar sarmalı;
   uzun kelimeler kırılır. */
@media (max-width:900px) {
  html, body { max-width:100%; overflow-x:hidden; }

  .wrap { width:100%; max-width:100%; }

  /* Başlık satırı ve navigasyon */
  .head__row { flex-wrap:wrap; row-gap:var(--s3); }
  .nav { flex-wrap:wrap; row-gap:var(--s2);
         max-width:100%; width:100%; }
  .nav > a { flex:0 0 auto; }
  .lang { flex:0 0 auto; max-width:100%; }

  /* Uzun kelimeler ve adresler taşmasın */
  .wrap, section, main, footer, header { min-width:0; }
  h1, h2, h3, p, a, li, span, address, td, th {
    overflow-wrap:anywhere; word-break:break-word;
  }
  /* Ama marka adı ve buton yazıları kırılmasın */
  .brand__text strong, .btn, .head__phone, .lang__btn, .nav > a {
    overflow-wrap:normal; word-break:normal;
  }

  /* Alt sabit çubuk ve footer */
  .mobilebar { width:100%; max-width:100vw; }
  .foot__grid, .il, .il__info, .il__form { min-width:0; max-width:100%; }

  /* Izgaralar tek kolona inerken taşma olmasın */
  .svc, .equip, .flow, .why, .gal, .tri__list, .tailor__list, .hours {
    max-width:100%; min-width:0;
  }
  .gal__item, .equip__card, .svc__card { min-width:0; }
}

/* Çok dar ekran: dil seçici ve telefonlar tam genişlik */
@media (max-width:430px) {
  .head__phones { width:100%; flex-direction:column; }
  .head__phone { width:100%; }
  .lang { width:100%; }
  .lang__btn { width:100%; }
}


/* ---- Mobil navigasyon yerleşimi --------------------------------------
   Dar ekranlarda nav bağlantıları sarmaladığında son bağlantı
   ("İletişim") tek başına bir satıra düşüyordu. Mobilde bağlantılar
   eşit genişlikte dağıtılır: iki satır, dengeli. */
@media (max-width:700px) {
  .nav {
    display:grid;
    grid-template-columns:repeat(3, minmax(0,1fr));
    gap:2px 4px;
    width:100%;
    max-width:100%;
    padding-top:var(--s3);
  }
  .nav > a {
    min-width:0;
    text-align:center;
    padding:10px 4px;
    min-height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    white-space:nowrap;
    font-size:14px;
    overflow-wrap:normal;
  }
}

@media (max-width:380px) {
  .nav > a { font-size:13px; padding:9px 2px; }
}


/* ---- Bot tuzağı (Netlify Forms honeypot) -----------------------------
   Görsel olarak gizlenir ama display:none kullanılmaz; bazı botlar
   display:none alanları atlar. Ekran okuyuculardan da aria-hidden ile
   saklanır. Konumlandırma ile görünüm dışına taşınır. */
.form .bot-trap {
  position:absolute;
  width:1px; height:1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
  border:0; padding:0; margin:-1px;
}
