/* moduls/website/public/assets/site.css — temel şablon.
   Renkler ve yazı tipi seçimi projeye özel theme.css'te (--ana, --vurgu,
   --yazi, --baslik). Dış yazı tipi servisi yok (CSP yalnızca kendi
   kaynakları; ziyaretçi bilgisi üçüncü tarafa gitmesin): seçilebilen yazı
   tipleri fonts/ altında (SIL OFL, fonts/OFL.txt). Tarayıcı yalnız
   kullanılan aileyi indirir. */
@font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-display: swap; font-weight: 100 900; src: url("fonts/plus-jakarta-sans-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-display: swap; font-weight: 100 900; src: url("fonts/plus-jakarta-sans-latin.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Outfit"; font-style: normal; font-display: swap; font-weight: 100 900; src: url("fonts/outfit-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Outfit"; font-style: normal; font-display: swap; font-weight: 100 900; src: url("fonts/outfit-latin.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Playfair Display"; font-style: normal; font-display: swap; font-weight: 400 900; src: url("fonts/playfair-display-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Playfair Display"; font-style: normal; font-display: swap; font-weight: 400 900; src: url("fonts/playfair-display-latin.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Playfair Display"; font-style: italic; font-display: swap; font-weight: 400 900; src: url("fonts/playfair-display-italic-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Playfair Display"; font-style: italic; font-display: swap; font-weight: 400 900; src: url("fonts/playfair-display-italic-latin.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }


*, *::before, *::after { box-sizing: border-box; }
:root {
    --ana: #2c5f7c;
    --vurgu: #e0a03a;
    --metin: #1f2933;
    --soluk: #5f6b76;
    --zemin: #ffffff;
    --zemin2: #f5f6f8;
    --cizgi: #e3e6ea;
    --yaricap: 10px;
    --gen: 1120px;
}
html { -webkit-text-size-adjust: 100%; }
body {
    margin: 0;
    font-family: var(--yazi, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);
    font-size: 17px;
    line-height: 1.6;
    color: var(--metin);
    background: var(--zemin);
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--ana); }
a:hover { color: var(--vurgu); }
h1, h2, h3 { line-height: 1.25; margin: 0 0 .6em; }
h1, h2, h3, h4, .marka { font-family: var(--baslik, inherit); }
h1 { font-size: clamp(1.9rem, 4vw, 3rem); }
h2 { font-size: clamp(1.5rem, 3vw, 2.1rem); }
h3 { font-size: 1.15rem; }
p { margin: 0 0 1em; }

.kap { width: 100%; max-width: var(--gen); margin: 0 auto; padding: 0 16px; }

/* Üst bölüm ve menü */
.ust { background: var(--zemin); border-bottom: 1px solid var(--cizgi); position: sticky; top: 0; z-index: 10; }
.ust__ic { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 68px; flex-wrap: wrap; }
.marka { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--metin); font-weight: 700; font-size: 1.15rem; }
.marka__logo { width: auto; max-height: 48px; }
.gizli-metin { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.menu ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 4px; flex-wrap: wrap; }
.menu a { display: block; padding: 8px 12px; border-radius: 6px; text-decoration: none; color: var(--metin); }
.menu a:hover, .menu a[aria-current="page"] { background: var(--zemin2); color: var(--ana); }
.menu-dugme { display: none; background: none; border: 1px solid var(--cizgi); border-radius: 6px; padding: 8px 12px; font: inherit; cursor: pointer; }

/* Açılır menü (Web Sitesi → Menü) */
.menu__liste { align-items: center; }
.menu__grup { position: relative; display: flex; align-items: center; }
.menu__ac { display: flex; align-items: center; gap: 6px; padding: 8px 12px; border: 0; border-radius: 6px; background: none;
    font: inherit; color: var(--metin); cursor: pointer; }
.menu__ac--yalniz { padding: 8px 6px; margin-inline-start: -8px; }
.menu__ac:hover, .menu__grup--aktif > .menu__ac, .menu__grup--aktif > a { color: var(--ana); }
.menu__ok { width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .2s; }
.menu__grup.acik .menu__ok { transform: translateY(1px) rotate(-135deg); }
.menu .menu__alt { display: none; position: absolute; top: 100%; inset-inline-start: 0; z-index: 20; flex-direction: column; gap: 0;
    min-width: 230px; padding: 6px; background: var(--zemin); border: 1px solid var(--cizgi); border-radius: 10px; box-shadow: 0 12px 30px rgba(0,0,0,.08); }
.menu .menu__alt a { padding: 9px 12px; white-space: nowrap; }
.menu__grup.acik > .menu__alt { display: flex; }
@media (hover: hover) and (min-width: 761px) {
    .menu__grup:hover > .menu__alt, .menu__grup:focus-within > .menu__alt { display: flex; }
    .menu__grup::after { content: ''; position: absolute; top: 100%; left: 0; right: 0; height: 8px; }   /* fareyle inerken kapanmasın */
}
.menu .menu__dugme, .menu .menu__dugme[aria-current="page"] { background: var(--vurgu); color: #fff; font-weight: 600; padding: 9px 18px; border-radius: 999px; margin-inline-start: 8px; }
.menu .menu__dugme:hover, .menu .menu__dugme[aria-current="page"]:hover { background: var(--ana); color: #fff; }

@media (max-width: 760px) {
    .js .menu-dugme { display: block; }
    .js .menu { display: none; width: 100%; padding-bottom: 12px; }
    .js .menu.acik { display: block; }
    .menu ul { flex-direction: column; }
    .menu__liste { align-items: stretch; }
    .menu__grup { flex-wrap: wrap; }
    .menu__grup > a { flex: 1; }
    .menu__ac:not(.menu__ac--yalniz) { width: 100%; justify-content: space-between; }
    .menu .menu__alt { position: static; width: 100%; min-width: 0; padding: 0 0 0 14px; border: 0; box-shadow: none; background: none; }
    html:not(.js) .menu .menu__alt { display: flex; }   /* betik yoksa alt öğeler açık */
    .menu__cta { margin-top: 8px; }
    .menu .menu__dugme { display: inline-block; margin: 0; }
}

/* Bloklar */
.blok { padding: 56px 0; }
.blok:nth-of-type(even) { background: var(--zemin2); }
.blok--orta { text-align: center; }
.giris { color: var(--soluk); max-width: 720px; }

.dugme {
    display: inline-block; background: var(--ib-btn-bg, var(--vurgu)); color: var(--ib-btn-color, #fff); text-decoration: none;
    padding: var(--ib-btn-py, 12px) var(--ib-btn-px, 22px); border-radius: var(--ib-btn-radius, 999px); font-weight: 600; border: 0; font: inherit; cursor: pointer;
}
/* --ib-btn-*: Görünüm → Site Stilleri → Düğme (theme.css); tanımsızsa yukarıdaki varsayılanlar. */
.dugme:hover { filter: brightness(.95); background: var(--ib-btn-hover, var(--ib-btn-bg, var(--vurgu))); color: var(--ib-btn-color, #fff); }

/* Giriş afişi */
.afis { position: relative; background: var(--ana); color: #fff; padding: 88px 0; overflow: hidden; }
.afis--gorselli { min-height: 420px; display: flex; align-items: center; }
.afis__gorsel { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .35; }
.afis__ic { position: relative; }
.afis__yazi { font-size: 1.15rem; max-width: 680px; opacity: .95; }
.afis a:not(.dugme) { color: #fff; }

/* Metin */
.metin__ic { display: grid; gap: 32px; }
.metin--gorselli .metin__ic { grid-template-columns: 1fr 1fr; align-items: center; }
.metin--sol .metin__ic > div:last-child { order: -1; }
.metin__gorsel { border-radius: var(--yaricap); }
@media (max-width: 760px) {
    .metin--gorselli .metin__ic { grid-template-columns: 1fr; }
    .metin--sol .metin__ic > div:last-child { order: 0; }
}

/* Kartlar */
.kartlar { display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); margin-top: 24px; }
.kart { background: var(--zemin); border: 1px solid var(--cizgi); border-radius: var(--yaricap); overflow: hidden; display: flex; flex-direction: column; }
.kart__gorsel { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.kart__ic { padding: 18px; }
.kart h3 a { text-decoration: none; }

/* Galeri */
.galeri { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.galeri figure { margin: 0; }
.galeri__gorsel { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: var(--yaricap); }

/* İletişim */
.iletisim { display: grid; gap: 32px; grid-template-columns: 1fr 1.3fr; margin-top: 16px; }
@media (max-width: 760px) { .iletisim { grid-template-columns: 1fr; } }
.etiket { display: block; font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; color: var(--soluk); }
.harita { margin-top: 32px; border-radius: var(--yaricap); overflow: hidden; }
.harita iframe { display: block; width: 100%; height: 360px; border: 0; }

.form { display: grid; gap: 14px; }
.form label { display: grid; gap: 4px; font-weight: 600; font-size: .95rem; }
.form input[type="text"], .form input[type="tel"], .form input[type="email"], .form textarea {
    width: 100%; font: inherit; font-weight: 400; padding: 10px 12px; border: 1px solid var(--cizgi); border-radius: 8px; background: #fff;
}
.form input:focus, .form textarea:focus { outline: 2px solid var(--ana); outline-offset: 1px; }
.form .onay { display: flex; gap: 8px; align-items: flex-start; font-weight: 400; }
.form .onay input { margin-top: 5px; }
.form__durum:empty { display: none; }
.form__durum { padding: 12px 14px; border-radius: 8px; background: #e8f5e9; color: #1b5e20; }
.form__durum.hata { background: #fdecea; color: #8a1c13; }
.form__uyari { color: #8a1c13; }
.tuzak { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* Alt bilgi */
.alt { background: #111827; color: #cbd5e1; font-size: .95rem; border-top: 4px solid var(--ana); margin-top: 0; }
.alt__ic { display: grid; gap: 40px 32px; grid-template-columns: minmax(240px, 1.5fr) repeat(auto-fit, minmax(150px, 1fr)); padding-top: 64px; padding-bottom: 48px; }
.alt a { color: #e2e8f0; text-decoration: none; transition: color .2s; }
.alt a:hover { color: #fff; }
.alt p { margin: 0 0 .8em; }
.alt__logo-a { display: inline-block; margin-bottom: 16px; }
.alt__logo { max-height: 52px; width: auto; }
.alt__ad { display: block; color: #fff; font-family: var(--baslik, inherit); font-size: 1.3rem; margin-bottom: 12px; }
.alt__slogan { color: #fff; font-weight: 600; }
.alt__marka p:not(.alt__slogan) { color: #94a3b8; line-height: 1.7; max-width: 34ch; }
.alt__baslik { color: #fff; font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 18px; }
.alt__baslik::after { content: ""; display: block; width: 28px; height: 2px; background: var(--vurgu); margin-top: 10px; border-radius: 2px; }
.alt__liste, .alt__iletisim { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.alt__liste a { color: #94a3b8; }
.alt__liste a:hover { color: #fff; padding-inline-start: 4px; }
.alt__liste a { transition: color .2s, padding .2s; }
.alt__iletisim { grid-template-columns: minmax(0, 1fr); }   /* uzun e-posta sütunu genişletip sayfayı taşırmasın */
.alt__iletisim li { display: flex; gap: 12px; align-items: flex-start; color: #94a3b8; line-height: 1.5; min-width: 0; overflow-wrap: anywhere; }
.alt__ico { width: 18px; height: 18px; flex: none; margin-top: 2px; fill: none; stroke: var(--vurgu); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.alt__alt { border-top: 1px solid #1f2937; background: #0b1120; }
.alt__alt-ic { display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: center; padding-top: 18px; padding-bottom: 18px; color: #64748b; font-size: .85rem; }
.alt__alt-ic a { color: #94a3b8; }
.alt__yukari { margin-inline-start: auto; }
@media (max-width: 640px) {
    .alt__ic { grid-template-columns: 1fr 1fr; padding-top: 48px; }
    .alt__marka, .alt__sutun:last-child { grid-column: 1 / -1; }
    .alt__yukari { margin-inline-start: 0; }
}

/* Panel önizlemesi (moduls/website/admin/preview.php); yayındaki sitede yok. */
.onizleme-serit { background: #fff4d6; color: #5c4400; border-bottom: 1px solid #e8c766; padding: 8px 16px; font-size: 0.9rem; text-align: center; }

/* Üst bölümde iletişim ikonları (Site Ayarları → Üst bölümde iletişim ikonları) */
.menu { margin-inline-start: auto; }
.ust__iletisim { display: flex; gap: 8px; align-items: center; }
.ust__ikon { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; color: #fff; text-decoration: none; transition: transform .2s, box-shadow .2s, filter .2s; }
.ust__ikon:hover, .ust__ikon:focus-visible { color: #fff; transform: translateY(-1px); box-shadow: 0 6px 16px -6px rgba(15, 23, 42, .5); filter: brightness(1.05); }
.ust__ikon:focus-visible { outline: 3px solid var(--vurgu); outline-offset: 2px; }
.ust__ikon--wa { background: #1fa855; }
.ust__ikon--tel { background: var(--ana); }
.ust__ikon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ust__ikon svg .dolu { fill: currentColor; stroke: none; }
@media (max-width: 760px) {
    .marka { order: 1; }
    .ust__iletisim { order: 2; margin-inline-start: auto; }
    .menu-dugme { order: 3; }
    .menu { order: 4; margin-inline-start: 0; }
    .ust__ic { gap: 10px; }
    .marka__logo { max-height: 40px; }
    .ust__iletisim { gap: 6px; }
    .ust__ikon { width: 38px; height: 38px; }
}
@media (prefers-reduced-motion: reduce) { .ust__ikon { transition: none; } .ust__ikon:hover { transform: none; } }

/* Metin editörü (ib-rte.js) çıktısı: blok editöründe .zm sarmalayıcısı; hizalama
   ve tema rengi sınıfları builder metin widget'larında da geçerli. */
.zm > :first-child { margin-top: 0; }
.zm > :last-child { margin-bottom: 0; }
.zm h2 { font-size: clamp(1.3rem, 2.4vw, 1.6rem); margin: 1.2em 0 .5em; }
.zm h3 { font-size: 1.2rem; margin: 1.1em 0 .45em; }
.zm h4 { font-size: 1.05rem; margin: 1em 0 .4em; }
.zm ul, .zm ol { margin: 0 0 1em; padding-left: 1.4em; }
.zm li { margin: .25em 0; }
.zm blockquote, :where(.ib-w-text) blockquote { margin: 0 0 1em; padding: .25em 0 .25em 1em; border-left: 4px solid var(--vurgu); color: var(--soluk); font-style: italic; }
.zm a { color: var(--ana); text-decoration: underline; }
.ib-al-center { text-align: center; }
.ib-al-right { text-align: right; }
.ib-al-justify { text-align: justify; }
.ib-c-ana { color: var(--ana); }
.ib-c-vurgu { color: var(--vurgu); }

/* Yüzen İletişim düğmesi (Ayarlar → Yüzen İletişim Düğmesi; şablon website_tpl_float_contact).
   <details>: betiksiz de açılır; site.js Esc / dışarı tıklama ile kapatır. */
.yi { position: fixed; z-index: 900; right: 20px; bottom: max(20px, env(safe-area-inset-bottom)); }
.yi--sol { right: auto; left: 20px; }
.yi__dugme { display: inline-flex; align-items: center; gap: 10px; padding: 12px 22px 12px 16px; border-radius: 999px; list-style: none; cursor: pointer;
    background: var(--ana); color: #fff; font-weight: 600; box-shadow: 0 8px 24px rgba(15, 23, 42, .28); user-select: none; transition: transform .15s ease; }
.yi__dugme::-webkit-details-marker { display: none; }
.yi__dugme:hover { transform: translateY(-2px); }
.yi__dugme:focus-visible { outline: 3px solid var(--vurgu); outline-offset: 3px; }
.yi__dugme svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.yi__dugme svg .dolu { fill: currentColor; stroke: none; }
.yi__dugme svg + svg, .yi[open] .yi__dugme svg:first-of-type { display: none; }
.yi[open] .yi__dugme svg + svg { display: block; }
.yi__panel { position: absolute; right: 0; bottom: calc(100% + 12px); width: min(340px, calc(100vw - 40px)); overflow: hidden;
    border-radius: 16px; background: var(--zemin); color: var(--metin); box-shadow: 0 18px 48px rgba(15, 23, 42, .28); }
.yi--sol .yi__panel { right: auto; left: 0; }
.yi[open] .yi__panel { animation: yi-ac .18s ease-out; }
@keyframes yi-ac { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.yi__bas { padding: 18px 20px; background: var(--ana); color: #fff; }
.yi__baslik { display: block; font-size: 1.05rem; }
.yi__selam { margin: 6px 0 0; font-size: .92rem; line-height: 1.45; opacity: .92; }
.yi__liste { display: grid; gap: 8px; padding: 12px; }
.yi__sec { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border: 1px solid var(--cizgi); border-radius: 12px; color: inherit; text-decoration: none; }
.yi__sec:hover, .yi__sec:focus-visible { background: var(--zemin2); border-color: #cbd5e1; }
.yi__ikon { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 50%; color: #fff; }
.yi__ikon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.yi__ikon svg .dolu { fill: currentColor; stroke: none; }
.yi__sec--wa .yi__ikon { background: #25d366; }
.yi__sec--tel .yi__ikon { background: var(--vurgu); }
.yi__metin strong { display: block; }
.yi__metin small { color: var(--soluk); }
@media (max-width: 480px) {
    .yi { right: 16px; }
    .yi--sol { left: 16px; }
    .yi__dugme { padding: 15px; }
    .yi__yazi { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
@media (prefers-reduced-motion: reduce) { .yi[open] .yi__panel { animation: none; } .yi__dugme { transition: none; } }
@media print { .yi { display: none; } }
