*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--kagit); color: var(--murekkep); font: 1.0625rem/1.6 var(--yazi); }
img { max-width: 100%; height: auto; }
a { color: var(--kirmizi-koyu); text-underline-offset: .18em; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--murekkep); outline-offset: 3px; box-shadow: 0 0 0 6px var(--kagit); }
h1, h2, h3 { line-height: 1.15; font-weight: 800; margin: 0 0 .6em; letter-spacing: -.01em; }
h1 { font-size: clamp(2rem, 7vw, 3.5rem); }
h2 { font-size: clamp(1.5rem, 4.5vw, 2rem); }
h3 { font-size: 1.2rem; }
p { margin: 0 0 1em; max-width: 42rem; }
.vurgu { color: var(--kirmizi); }
.kap { width: 100%; max-width: var(--kap); margin-inline: auto; padding-inline: var(--bosluk); }

.atla { position: absolute; left: -999px; top: 0; background: var(--murekkep); color: var(--kagit); padding: .6rem 1rem; z-index: 10; }
.atla:focus { left: 0; }

/* üst çubuk */
.ust { border-bottom: 2px solid var(--murekkep); background: var(--kagit); }
.ust-ic { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; padding-block: .75rem; }
.logo { display: inline-flex; min-height: 44px; align-items: center; }
.logo img { display: block; width: 140px; height: auto; }
.menu { list-style: none; display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; margin: 0; padding: 0; }
.menu a { color: var(--murekkep); text-decoration: none; font-weight: 600; display: inline-block; padding: .5rem 0; min-height: 44px; line-height: 1.7; }
.menu a:hover, .menu a[aria-current] { text-decoration: underline; text-decoration-thickness: 3px; text-decoration-color: var(--kirmizi); }
.ust-sag { margin-left: auto; display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.dil { color: var(--murekkep); font-weight: 600; padding: .5rem; min-height: 44px; display: inline-flex; align-items: center; }

/* düğme */
.dugme { display: inline-block; background: var(--murekkep); color: var(--kagit); text-decoration: none; font: inherit; font-weight: 700; padding: .8rem 1.25rem; min-height: 48px; border: 2px solid var(--murekkep); box-shadow: 4px 4px 0 var(--kirmizi); cursor: pointer; text-align: center; }
.dugme:hover { transform: translate(-1px, -1px); box-shadow: 5px 5px 0 var(--kirmizi); }
.dugme:active { transform: translate(2px, 2px); box-shadow: 2px 2px 0 var(--kirmizi); }
.dugme[disabled] { opacity: .75; cursor: progress; transform: none; }
.ust .dugme { padding: .55rem 1rem; min-height: 44px; }

/* bölümler */
.hero { padding-block: clamp(2rem, 8vw, 5rem) clamp(1.5rem, 5vw, 3rem); }
.ust-yazi { font: 500 .85rem/1.4 var(--mono); text-transform: uppercase; letter-spacing: .06em; color: var(--gri-koyu); margin-bottom: .75rem; }
.ozet { font-size: 1.2rem; }
.fiyat { font: 700 1.1rem var(--mono); }
.blok { padding-block: clamp(1.5rem, 4vw, 2.5rem); border-top: 1px solid var(--cizgi); }
.son { padding-block: 3rem; border-top: 2px solid var(--murekkep); }
.madde { padding-left: 1.2rem; max-width: 42rem; }
.madde li { margin-bottom: .5rem; }
.adimlar, .takvim { list-style: none; padding: 0; margin: 0; display: grid; gap: .75rem; counter-reset: a; }
.adimlar li, .takvim li { display: grid; gap: .15rem; background: var(--beyaz); border: 1px solid var(--cizgi); padding: 1rem 1.25rem; box-shadow: var(--golge); }
.adimlar li { counter-increment: a; }
.adimlar li strong::before { content: counter(a) ". "; font-family: var(--mono); color: var(--kirmizi-koyu); }
.ozet-liste { display: grid; gap: .5rem; margin: 0 0 1rem; }
.ozet-liste div { display: flex; flex-wrap: wrap; gap: .25rem 1rem; border-bottom: 1px solid var(--cizgi); padding-bottom: .5rem; }
.ozet-liste dt { font: 500 .9rem var(--mono); color: var(--gri-koyu); min-width: 6rem; }
.ozet-liste dd { margin: 0; font-weight: 600; }
.kartlar { list-style: none; padding: 0; margin: 1rem 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.kart { background: var(--beyaz); border: 1px solid var(--cizgi); padding: 1rem 1.25rem; box-shadow: var(--golge); }
.kart dl { margin: 0; } .kart dt { font: 500 .8rem var(--mono); color: var(--gri-koyu); text-transform: uppercase; margin-top: .6rem; }
.kart dd { margin: 0; } .kart .not { margin: .75rem 0 0; font-size: .95rem; color: var(--gri-koyu); }
.iki { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); }
.sss { background: var(--beyaz); border: 1px solid var(--cizgi); margin-bottom: .5rem; }
.sss summary { cursor: pointer; font-weight: 700; padding: .9rem 1.25rem; min-height: 48px; }
.sss p { padding: 0 1.25rem; }

/* form */
.basvuru form { background: var(--beyaz); border: 2px solid var(--murekkep); padding: clamp(1rem, 4vw, 2rem); box-shadow: var(--golge); max-width: 40rem; }
.alan { margin-bottom: 1.1rem; border: 0; padding: 0; }
.alan label, .alan legend { display: block; font-weight: 700; margin-bottom: .3rem; padding: 0; }
.alan input[type="text"], .alan input[type="email"], .alan input[type="tel"], .alan select, .alan textarea { width: 100%; font: inherit; padding: .65rem .75rem; min-height: 48px; border: 2px solid var(--murekkep); background: var(--beyaz); color: var(--murekkep); border-radius: 0; }
.alan [aria-invalid="true"] { border-color: var(--kirmizi-koyu); border-width: 3px; }
.ipucu { font-size: .9rem; color: var(--gri-koyu); margin: 0 0 .3rem; }
.hata { color: var(--kirmizi-koyu); font-weight: 700; margin: .35rem 0 0; }
.hata::before { content: "! "; }
.secenekler { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; }
.alan label.secenek { display: flex; align-items: flex-start; gap: .6rem; font-weight: 500; min-height: 44px; padding: .4rem 0; }
.secenek input { width: 1.4rem; height: 1.4rem; margin: .1rem 0 0; flex: none; accent-color: var(--murekkep); }
.bal { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ozet-hata { color: var(--kirmizi-koyu); font-weight: 700; margin: 0; }
.ozet-hata:empty, .durum:empty { display: none; }
.durum { font-weight: 600; margin: 0 0 1rem; }
.durum-alani { margin-bottom: 1rem; }
[hidden] { display: none !important; }

/* alt çubuk */
.alt { border-top: 2px solid var(--murekkep); margin-top: 3rem; padding-block: 1.5rem; background: var(--kagit); }
.alt-ic { display: grid; gap: .5rem; }
.alt-bag { list-style: none; display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; padding: 0; margin: 0; }
.alt-bag a { display: inline-block; padding: .5rem 0; min-height: 44px; }
.alt p { margin: 0; } .telif { color: var(--gri-koyu); font-size: .9rem; }

/* kök */
.kok { min-height: 80vh; display: grid; place-content: center; gap: 2rem; justify-items: start; }
.kok-dil { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 1rem; }

@media (max-width: 30em) {
  .ust-sag { margin-left: 0; width: 100%; }
  .ust-sag .dugme { flex: 1; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } .dugme:hover, .dugme:active { transform: none; } }

.hizmet-liste { display: grid; gap: .25rem 1.5rem; grid-template-columns: minmax(7rem, 11rem) 1fr; margin: 0 0 1rem; }
.hizmet-liste dt { font: 500 .85rem var(--mono); color: var(--gri-koyu); text-transform: uppercase; padding-top: .2rem; }
.hizmet-liste dd { margin: 0 0 .75rem; } .hizmet-liste dd .madde { margin: 0; }
.hizmet .not { color: var(--gri-koyu); }
@media (max-width: 40em) { .hizmet-liste { grid-template-columns: 1fr; } .hizmet-liste dd { margin-bottom: .5rem; } }

/* Q-05: dar ekranda (360x640) hero düğmesi ilk ekranda kalsın */
@media (max-width: 30em) {
  .ust-ic { gap: .25rem .9rem; padding-block: .5rem; }
  .menu { gap: 0 .9rem; }
  .menu a { padding: .35rem 0; min-height: 44px; }
  .hero { padding-block: 1.25rem 1.5rem; }
  h1 { font-size: clamp(1.75rem, 8vw, 2rem); }
  .ozet { font-size: 1.1rem; }
}
/* Q-09: atla bağlantısının hedefi programla odaklanır; çerçeve çizilmez */
main:focus { outline: none; }
.kok h1 { margin: 0; line-height: 0; font-size: 1rem; }
