/* =========================================================
   Ortak site stilleri. Renk/yazı tipi/köşe değerleri admin
   panelindeki "Görünüm" ayarlarından CSS değişkeni olarak gelir.
   Temalar (wwwroot/themes/*) bunların üzerine yazar.
   ========================================================= */

body {
  font-family: var(--site-body-font);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6, .cms-brand, .display-1, .display-4 {
  font-family: var(--site-heading-font);
}

img { max-width: 100%; }

/* ---------- Marka ---------- */
.cms-brand { font-weight: 700; font-size: 1.4rem; display: inline-flex; align-items: center; text-decoration: none; }
.cms-brand img { max-height: 48px; width: auto; }

/* ---------- Bölümler ---------- */
.cms-block { padding-block: clamp(3rem, 7vw, 6rem); position: relative; }
.cms-block-hero, .cms-block.cms-pad-0 { padding-block: 0; }
.cms-pad-sm { padding-block: clamp(1.5rem, 3vw, 2.5rem); }
.cms-pad-lg { padding-block: clamp(4rem, 10vw, 9rem); }

.cms-bg-light { background: var(--bs-tertiary-bg); }
.cms-bg-dark { background: #111827; color: var(--bs-body-color); }
.cms-bg-primary { background: var(--site-primary); color: var(--bs-body-color); }
.cms-bg-secondary { background: var(--site-secondary); color: var(--bs-body-color); }
.cms-bg-primary .text-body-secondary, .cms-bg-secondary .text-body-secondary { color: inherit !important; opacity: .8; }

.cms-heading { max-width: 720px; margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.cms-heading h2 { font-weight: 700; font-size: clamp(1.75rem, 3.5vw, 2.6rem); margin-bottom: .75rem; }

.cms-media { border-radius: var(--site-radius); }
.cms-content { font-size: 1.05rem; line-height: 1.75; }
.cms-content img { border-radius: var(--site-radius); height: auto; }
.cms-content > :last-child { margin-bottom: 0; }
.cms-content blockquote { border-left: 4px solid var(--site-primary); padding-left: 1rem; font-style: italic; }

/* ---------- Hero ---------- */
.cms-hero {
  position: relative;
  color: #fff;
  background-size: cover;
  background-position: center;
  padding-block: 6rem;
}
.cms-hero.no-image { background: linear-gradient(135deg, var(--site-primary), var(--site-secondary)); }
.cms-hero.has-image::before {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.65));
}
.cms-hero-sm { min-height: 40vh; }
.cms-hero-md { min-height: 60vh; }
.cms-hero-lg { min-height: 80vh; }
.cms-hero-full { min-height: 100vh; min-height: 100svh; }
.cms-hero-title { font-weight: 800; font-size: clamp(2.2rem, 6vw, 4.2rem); line-height: 1.1; color: #fff; }
.cms-hero-text { color: rgba(255,255,255,.85); font-size: clamp(1.05rem, 2vw, 1.3rem); }

/* ---------- Sayfa başlık bandı ---------- */
.cms-page-header {
  padding-block: clamp(2.5rem, 6vw, 4.5rem);
  background: var(--bs-tertiary-bg);
}
.cms-page-header h1 { font-weight: 700; font-size: clamp(1.8rem, 4vw, 2.8rem); }
.cms-page-header .breadcrumb { font-size: .875rem; }
.cms-page-header .breadcrumb a { text-decoration: none; }

/* ---------- Özellikler ---------- */
.cms-icon {
  width: 56px; height: 56px;
  display: inline-grid; place-items: center;
  font-size: 1.6rem;
  color: var(--site-primary);
  background: rgba(var(--site-primary-rgb), .1);
  border-radius: var(--site-radius);
}
.cms-feature h3 { font-weight: 600; }

/* ---------- Kartlar ---------- */
.cms-card { border: 1px solid var(--bs-border-color-translucent); border-radius: var(--site-radius); overflow: hidden; transition: transform .25s, box-shadow .25s; }
.cms-card:hover { transform: translateY(-4px); box-shadow: 0 1rem 2rem rgba(0,0,0,.08); }
.cms-card-img img { transition: transform .5s; }
.cms-card:hover .cms-card-img img { transform: scale(1.05); }
.cms-card-img { overflow: hidden; }
.cms-badge { white-space: nowrap; font-size: .85rem; }

/* ---------- Sayılar ---------- */
.cms-stat-value { font-family: var(--site-heading-font); font-weight: 800; font-size: clamp(2rem, 5vw, 3.2rem); line-height: 1.1; }
.cms-stat-label { opacity: .8; margin-top: .25rem; }

/* ---------- Galeri ---------- */
.cms-gallery-item { overflow: hidden; border-radius: var(--site-radius); cursor: zoom-in; }
.cms-gallery-item img { transition: transform .5s, filter .3s; }
.cms-gallery-item:hover img { transform: scale(1.06); filter: brightness(.85); }

/* ---------- Yorumlar ---------- */
.cms-testimonial { border: 0; border-radius: var(--site-radius); box-shadow: 0 .5rem 1.5rem rgba(0,0,0,.06); }
.cms-quote { font-size: 2.5rem; line-height: 1; color: var(--site-primary); opacity: .5; }
.cms-testimonial blockquote { font-size: 1.02rem; }

/* ---------- Ekip ---------- */
.cms-member-photo { --bs-aspect-ratio: 120%; overflow: hidden; border-radius: var(--site-radius); }

/* ---------- Fiyat ---------- */
.cms-price { border-radius: var(--site-radius); position: relative; }
.cms-price.is-featured { border-width: 2px; box-shadow: 0 1rem 2.5rem rgba(var(--site-primary-rgb), .18); }
@media (min-width: 992px) { .cms-price.is-featured { transform: scale(1.04); } }
.cms-price-badge { position: absolute; top: 1rem; right: 1rem; }
.cms-price-value { font-family: var(--site-heading-font); font-size: 2.4rem; font-weight: 800; }

/* ---------- SSS ---------- */
.cms-faq .accordion-item { border-radius: var(--site-radius) !important; margin-bottom: .75rem; border: 1px solid var(--bs-border-color-translucent); overflow: hidden; }
.cms-faq .accordion-button { font-weight: 600; }
.cms-faq .accordion-button:not(.collapsed) { background: rgba(var(--site-primary-rgb), .08); color: inherit; box-shadow: none; }

/* ---------- Logolar ---------- */
.cms-logos-title { letter-spacing: .1em; }
.cms-logo img { max-height: 48px; max-width: 150px; filter: grayscale(1); opacity: .65; transition: .3s; }
.cms-logo:hover img { filter: none; opacity: 1; }

/* ---------- CTA ---------- */
.cms-cta-box {
  background: linear-gradient(135deg, var(--site-primary), var(--site-secondary));
  color: #fff;
  border-radius: calc(var(--site-radius) * 1.5);
  padding: clamp(2.5rem, 6vw, 4.5rem) clamp(1.5rem, 4vw, 3rem);
}
.cms-cta-box h2 { font-weight: 800; font-size: clamp(1.7rem, 4vw, 2.6rem); color: #fff; }

/* ---------- İletişim ---------- */
.cms-contact-info { background: var(--bs-tertiary-bg); border-radius: var(--site-radius); padding: 2rem; }
.cms-contact-list li { display: flex; gap: .75rem; margin-bottom: 1rem; align-items: flex-start; }
.cms-contact-list i { color: var(--site-primary); font-size: 1.15rem; line-height: 1.4; }
.cms-contact-list a { color: inherit; text-decoration: none; }
.cms-contact-list a:hover { color: var(--site-primary); }
.cms-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.cms-map iframe { border: 0; }
@media (max-width: 767.98px) { .cms-map { --bs-aspect-ratio: 75%; } }

/* ---------- Sosyal ---------- */
.cms-social {
  width: 38px; height: 38px;
  display: inline-grid; place-items: center;
  border-radius: 50%;
  color: inherit;
  background: rgba(127,127,127,.15);
  text-decoration: none;
  transition: .2s;
}
.cms-social:hover { background: var(--site-primary); color: #fff; }

/* ---------- Yüzen butonlar ---------- */
.cms-whatsapp {
  position: fixed; left: 1.25rem; bottom: 1.25rem; z-index: 1030;
  width: 56px; height: 56px; border-radius: 50%;
  display: grid; place-items: center;
  background: #25d366; color: #fff; font-size: 1.7rem;
  box-shadow: 0 .5rem 1.25rem rgba(0,0,0,.25);
  transition: transform .2s;
}
.cms-whatsapp:hover { transform: scale(1.08); color: #fff; }
.cms-to-top {
  position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 1030;
  width: 46px; height: 46px; border-radius: 50%; padding: 0;
  opacity: 0; visibility: hidden; transition: .3s;
}
.cms-to-top.show { opacity: 1; visibility: visible; }

/* ---------- Blog içerik ---------- */
.cms-post-content h2, .cms-post-content h3 { margin-top: 2rem; }
.cms-post-article { max-width: 820px; }
.cms-category-list .list-group-item.active .badge { background: rgba(255,255,255,.85) !important; }

/* ---------- İçerik türleri ---------- */
.cms-field-list { margin: 0; }
.cms-field-list dt { font-weight: 600; }
.cms-field-list dd { margin-bottom: .5rem; }
.cms-card .cms-field-list > div { display: flex; gap: .5rem; }
.cms-card .cms-field-list dd { margin: 0; }
.cms-swatch { display: inline-block; width: 1.1em; height: 1.1em; border-radius: 50%; vertical-align: -.15em; border: 1px solid var(--bs-border-color); }
.cms-multiline { white-space: pre-line; }
.cms-contact-form { background: var(--bs-body-bg); border: 1px solid var(--bs-border-color-translucent); border-radius: var(--site-radius); padding: 2rem; }

/* ---------- Görünür olunca beliren animasyon ---------- */
@media (prefers-reduced-motion: no-preference) {
  .cms-reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
  .cms-reveal.is-visible { opacity: 1; transform: none; }
}

/* ---------- Mobil menü (offcanvas) ---------- */
@media (max-width: 991.98px) {
  .site-header .offcanvas .nav-link { padding-block: .75rem; font-size: 1.1rem; border-bottom: 1px solid var(--bs-border-color-translucent); }
}
