/* Ana sayfa (pages/home.blade.php) stilleri.
   Sunucuda build adımı çalıştırılamadığı için yeni Tailwind class'ı yerine
   düz CSS — dosya deploy edilir edilmez, derleme beklemeden çalışır.
   Sayfada satır içi <style> yerine bu dosyaya bağlantı verilir: HTML hafif
   kalır, CSS tarayıcı önbelleğinden gelir (?v=filemtime ile yenilenir). */

/* Fotoğraf alanı tamamen doldurur; sabit koyu zemin, görsel yüklenirken
   veya yüklenemediğinde de açık renk metinlerin okunmasını sağlar. */
.dm-hero-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; background: #30262b; }
.dm-hero-photo { display: block; width: 100%; height: 100%; object-fit: cover; }
/* Videolar posterin üstünde, görünmez başlar; oynamaya başlayan video
   yumuşakça belirir, bir önceki altında kalıp söner (çapraz geçiş). */
.dm-hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .9s ease; }
.dm-hero-video.is-active { opacity: 1; }
/* theknot.com gibi videonun büyük kısmı açık kalır. Kararma yalnızca
   metin bloğunun arkasında, kenarlara doğru sıfıra inen yumuşak bir
   elips; altına çok hafif, yukarıdan aşağı tek yönde koyulaşan bir
   zemin. Gradyan hiçbir yerde açılıp yeniden koyulaşmaz — aksi halde
   arada açık renkli bir "ışıma" bandı oluşuyor. Mobilde metin hero'nun
   neredeyse tamamını kapladığı için düz ve biraz daha koyu bir gradyan. */
.dm-hero-bg::after { content: ''; position: absolute; inset: 0; z-index: 3; background: radial-gradient(ellipse 52% 58% at 50% 54%, rgba(20, 14, 18, .32) 0%, rgba(20, 14, 18, .2) 40%, rgba(20, 14, 18, .06) 75%, rgba(20, 14, 18, 0) 100%), linear-gradient(180deg, rgba(20, 14, 18, .08) 0%, rgba(20, 14, 18, .12) 60%, rgba(20, 14, 18, .26) 100%); }
@media (max-width: 767px) { .dm-hero-bg::after { background: linear-gradient(180deg, rgba(20, 14, 18, .26) 0%, rgba(20, 14, 18, .4) 40%, rgba(20, 14, 18, .48) 70%, rgba(20, 14, 18, .58) 100%); } }

/* Hero ekranın büyük kısmını kaplar, içerik dikeyde ortalıdır. Üst
   ve alt boşluk eşit. Dikey ölçüler düz CSS ile (bu projede derlenmemiş responsive
   Tailwind class'larına bağlı kalmamak için — build-free yaklaşım). */
.dm-hero { display: flex; flex-direction: column; justify-content: center; min-height: clamp(540px, 82vh, 760px); min-height: clamp(540px, 82svh, 760px); }
@media (min-width: 1024px) { .dm-hero { min-height: clamp(600px, 80vh, 780px); min-height: clamp(600px, 80svh, 780px); } }
.dm-hero-inner { width: 100%; padding-top: 4.5rem; padding-bottom: 4.5rem; }
@media (min-width: 1024px) { .dm-hero-inner { padding-top: 5.5rem; padding-bottom: 5.5rem; } }

/* Kart şeritlerinde ortak ritim: iki bölüm arasında mobilde 48px,
   geniş ekranda 64px. Başlık ve bağlantı dar ekranda alt alta gelir. */
.dm-home-section { padding-top: 1.5rem; padding-bottom: 1.5rem; }
.dm-home-heading { align-items: baseline; gap: 1rem; margin-bottom: 1.25rem; }
/* Bölüm başlıkları: mobil 24px, tablet 28px, geniş ekran 30px. */
.dm-home-heading h2 { min-width: 0; font-size: 1.75rem; line-height: 1.25; letter-spacing: -.01em; }
.dm-home-heading a { flex-shrink: 0; white-space: nowrap; }
@media (min-width: 640px) {
    .dm-home-section { padding-top: 2rem; padding-bottom: 2rem; }
}
@media (min-width: 1024px) {
    .dm-home-heading h2 { font-size: 1.875rem; }
}
@media (max-width: 639px) {
    .dm-home-heading { flex-direction: column; align-items: flex-start; gap: .5rem; margin-bottom: 1rem; }
    .dm-home-heading h2 { font-size: 1.5rem; line-height: 1.3; }
}

/* Tek kolon, ortalı kompozisyon: başlık → kısa açıklama → arama,
   theknot.com'daki gibi blok arası geniş boşlukla. */
.dm-hero-content { display: flex; flex-direction: column; align-items: center; text-align: center; max-width: 54rem; margin: 0 auto; }

/* Editorial başlık (daktilo): üç satır, ortadaki kategori satırı
   gül renginde ve yanıp sönen imleçli. Kategori satırı tek satırda
   kalır (nowrap) ve min-height'li — kelime silinip yazılırken başlık
   yüksekliği oynamaz. Dar ekranda en uzun kelime ("gelin saçı ve
   makyajı") sığsın diye satır 7.4vw ile sınırlanır. */
.dm-hero-title { font-size: clamp(2.25rem, 1.6rem + 2.8vw, 3.875rem); line-height: 1.04; letter-spacing: -0.02em; color: #fff; text-shadow: 0 1px 3px rgba(20, 14, 18, .4), 0 4px 30px rgba(20, 14, 18, .45); }
.dm-hero-title-line { display: block; }
.dm-hero-typed-line { min-height: 1.08em; white-space: nowrap; color: #ffd6e0; font-size: min(1em, 7.4vw); line-height: 1.12; }
.dm-hero-caret { display: inline-block; width: max(3px, .055em); height: .8em; margin-left: .06em; vertical-align: -.04em; border-radius: 1px; background: currentColor; animation: dmCaret 1s steps(1) infinite; }
@keyframes dmCaret { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .dm-hero-caret { display: none; } }
.dm-hero-lede { max-width: 40rem; margin: 1rem auto 0; color: #fff; text-shadow: 0 1px 2px rgba(20, 14, 18, .45), 0 1px 12px rgba(20, 14, 18, .5); }

/* Search: hero'nun TEK ana interaksiyonu ve görsel odak noktası —
   geniş, ortalı, büyük dokunma alanlı cam yüzey; etiketi başlık
   tipografisinde. Sürekli dönen "shine sweep" efekti BİLEREK yok
   (durağan/premium hissi). */
.dm-hero-search { width: 100%; max-width: 52rem; margin-top: 1.75rem; }
@media (min-width: 640px) { .dm-hero-search { margin-top: 2.5rem; } }
.dm-hero-search-bar { display: flex; align-items: stretch; gap: 0; padding: .625rem; border-radius: 1.5rem; background: rgba(255, 255, 255, .97); border: 1px solid rgba(255, 255, 255, .65); box-shadow: var(--shadow-glass), 0 24px 48px -28px rgba(29, 21, 26, .5); text-align: left; transition: box-shadow .3s ease, border-color .3s ease; }
.dm-hero-search-bar:focus-within { box-shadow: var(--shadow-glass-hover), 0 0 0 3px rgba(52, 40, 50, .14); border-color: transparent; }
.dm-hero-search-divider { width: 1px; align-self: stretch; margin: .75rem 0; background: var(--color-border); flex-shrink: 0; }
.dm-hero-search-bar .dsel:first-child { flex: 1.5 1 0; }
.dm-hero-search-bar .dsel-trigger { padding: 1.125rem 1.25rem; }
.dm-hero-search-bar .dsel-trigger-text { font-size: 1rem; }
.dm-hero-search-bar .dsel-trigger-icon { width: 1.25rem; height: 1.25rem; color: var(--color-primary); }
.dm-hero-search-submit { flex-shrink: 0; display: flex; align-items: center; justify-content: center; gap: .5rem; padding: 0 2rem; border-radius: 9999px; background: var(--color-primary); color: #fff; font-weight: 600; font-size: 1rem; white-space: nowrap; box-shadow: 0 10px 22px -8px rgba(52, 40, 50, .40); transition: background-color .2s ease, transform .2s ease, box-shadow .2s ease; }
.dm-hero-search-submit:hover { background: var(--color-primary-hover); transform: translateY(-1px); box-shadow: 0 12px 26px -8px rgba(52, 40, 50, .45); }

/* Hero artık tam genişlik tek kolon — kategori+şehir+buton tablet
   genişliğinden itibaren tek satıra sığıyor; sadece mobilde
   (< 768px) alt alta diziliyor. */
@media (max-width: 767px) {
    .dm-hero-search-bar { flex-direction: column; border-radius: 1.25rem; }
    .dm-hero-search-divider { display: none; }
    .dsel:first-child .dsel-trigger { border-bottom: 1px solid var(--color-border); }
    .dm-hero-search-submit { margin-top: .5rem; padding: .875rem 1.5rem; }
}

/* Keşif seçici (discovery-select): kategori/şehir tetikleyicisi + floating panel */
.dsel { position: relative; flex: 1 1 0; min-width: 0; }
.dsel-trigger { display: flex; align-items: center; gap: .625rem; width: 100%; padding: .875rem 1rem; background: transparent; border: 0; text-align: left; cursor: pointer; }
.dsel-trigger-icon { width: 1.125rem; height: 1.125rem; color: var(--color-text-light); flex-shrink: 0; }
.dsel-trigger-text { flex: 1 1 auto; min-width: 0; font-size: .9375rem; color: var(--color-text-light); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dsel-trigger-text--filled { color: var(--color-text-heading); font-weight: 600; }
.dsel-clear { display: flex; align-items: center; justify-content: center; width: 1.375rem; height: 1.375rem; border-radius: 9999px; color: var(--color-text-light); flex-shrink: 0; }
.dsel-clear:hover { background: var(--color-surface-warm); color: var(--color-text-heading); }
.dsel-chevron { width: 1rem; height: 1rem; color: var(--color-text-light); flex-shrink: 0; transition: transform .2s ease; }
.dsel-chevron--open { transform: rotate(180deg); }

.dsel-panel { position: fixed; background: #fff; border: 1px solid var(--color-border-light); border-radius: 1.125rem; box-shadow: var(--shadow-card-hover); z-index: 100; max-height: min(26rem, 70vh); display: flex; flex-direction: column; overflow: hidden; }
.dsel-search { display: flex; align-items: center; gap: .5rem; padding: .75rem; border-bottom: 1px solid var(--color-border-light); flex-shrink: 0; }
.dsel-search-icon { width: 1rem; height: 1rem; color: var(--color-text-light); flex-shrink: 0; }
.dsel-search-input { flex: 1 1 auto; min-width: 0; border: 0; outline: none; font-size: .875rem; background: transparent; color: var(--color-text-heading); }
.dsel-list { overflow-y: auto; padding: .5rem; }
.dsel-empty { padding: 1rem .75rem; font-size: .875rem; color: var(--color-text-muted); text-align: center; }
.dsel-row { display: flex; align-items: center; gap: .625rem; width: 100%; padding: .625rem .75rem; border-radius: .75rem; text-align: left; transition: background-color .15s ease; }
.dsel-row:hover, .dsel-row--active { background: var(--color-surface-warm); }
.dsel-row--parent { font-weight: 700; color: var(--color-text-heading); margin-top: .25rem; }
.dsel-row--parent:first-child { margin-top: 0; }
.dsel-row:not(.dsel-row--parent) { padding-left: 1.75rem; color: var(--color-text-body); font-size: .875rem; font-weight: 400; }
.dsel-row-icon { font-size: 1rem; width: 1.25rem; text-align: center; flex-shrink: 0; }
.dsel-row-label { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dsel-row-check { width: 1rem; height: 1rem; color: var(--color-primary); flex-shrink: 0; }
.dsel-row--selected { color: var(--color-primary); }
.dsel-row--selected.dsel-row--parent { color: var(--color-primary); }

.dsel-backdrop { position: fixed; inset: 0; background: rgba(52, 40, 50, .45); z-index: 99; }
.dsel-panel--sheet { top: auto; left: 0; right: 0; bottom: 0; width: 100%; max-height: 75vh; border-radius: 1.25rem 1.25rem 0 0; }
.dsel-panel--sheet::before { content: ''; display: block; width: 2.5rem; height: .25rem; border-radius: 9999px; background: var(--color-border); margin: .625rem auto .25rem; flex-shrink: 0; }

/* Davetiye tanıtımında butonun altındaki "Diğer ücretsiz araçlar"
   satırı: küçük, soluk metin; bağlantılar yalnız hover'da çizilir. */
.dm-promo-tools { margin-top: 1.25rem; font-size: .8125rem; line-height: 1.7; color: var(--color-text-muted); }
.dm-promo-tools > span:first-child { display: block; }
.dm-promo-tools a { white-space: nowrap; color: var(--color-text-body); font-weight: 500; text-underline-offset: 3px; transition: color .2s ease; }
.dm-promo-tools a:hover { color: var(--color-primary); text-decoration: underline; }

/* ── theknot.com düzenindeki bölümler (dm-kt-*): ortalı büyük başlık,
   geniş dikey boşluk, siyah yerine sitenin koyu mürdüm tonu. */
.dm-kt-section { padding-top: 3rem; padding-bottom: 3rem; }
@media (min-width: 1024px) { .dm-kt-section { padding-top: 4.5rem; padding-bottom: 4.5rem; } }
.dm-kt-title { margin: 0 auto; max-width: 44rem; text-align: center; font-family: var(--font-heading); font-size: clamp(1.75rem, 1.35rem + 1.6vw, 2.625rem); line-height: 1.12; font-weight: 800; letter-spacing: -.02em; color: var(--color-text-heading); }
.dm-kt-lede { max-width: 40rem; margin: .875rem auto 0; text-align: center; font-size: 1rem; line-height: 1.6; color: var(--color-text-muted); }
.dm-kt-actions { margin-top: 2rem; text-align: center; }
.dm-kt-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 2.875rem; padding: .625rem 1.625rem; border-radius: 9999px; background: var(--color-text-heading); color: #fff; font-size: .9375rem; font-weight: 700; white-space: nowrap; transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease; }
.dm-kt-btn:hover { background: var(--color-primary-strong); transform: translateY(-1px); }
.dm-kt-btn--outline { background: transparent; color: var(--color-text-heading); border: 1.5px solid var(--color-text-heading); }
.dm-kt-btn--outline:hover { background: var(--color-text-heading); color: #fff; }
.dm-kt-btn--light { background: #fff; color: var(--color-primary-strong); }
.dm-kt-btn--light:hover { background: #FCE4E8; color: var(--color-berry-700, #6F2D45); }
.dm-kt-btn:focus-visible, .dm-kt-tool:focus-visible, .dm-kt-cat:focus-visible, .dm-kt-tile a:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; }

/* Araç kartları: fotoğraf zeminli görsel alan + üstünde beyaz mini
   arayüz; mobilde ve tablette 2×2 ızgara (theknot.com mobil düzeni),
   geniş ekranda dört kolon. */
.dm-kt-tools { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.75rem .875rem; margin: 1.75rem 0 0; padding: 0; list-style: none; }
.dm-kt-tools > li { min-width: 0; }
@media (min-width: 768px) { .dm-kt-tools { gap: 1.5rem; margin-top: 2.5rem; } }
@media (min-width: 1024px) { .dm-kt-tools { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.dm-kt-tool { display: block; border-radius: 1rem; }
.dm-kt-tool-visual { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 5 / 4; padding: 1.25rem; overflow: hidden; border-radius: 1rem; background: var(--color-surface-soft) center / cover no-repeat; }
.dm-kt-tool-visual::before { content: ''; position: absolute; inset: 0; background: linear-gradient(160deg, rgba(255, 248, 244, .15), rgba(52, 40, 50, .28)); }
.dm-kt-tool-title { margin-top: 1rem; font-size: 1.0625rem; font-weight: 700; color: var(--color-text-heading); }
.dm-kt-tool-title span { display: inline-block; transition: transform .25s ease; }
.dm-kt-tool:hover .dm-kt-tool-title span { transform: translateX(4px); }
.dm-kt-tool-desc { margin-top: .25rem; font-size: .875rem; line-height: 1.55; color: var(--color-text-muted); }

.dm-kt-mock { position: relative; width: 100%; max-width: 13.5rem; padding: .875rem; border-radius: .875rem; background: #fff; box-shadow: 0 18px 40px -18px rgba(29, 21, 26, .55); font-size: .6875rem; line-height: 1.35; color: var(--color-text-body); transition: transform .4s cubic-bezier(.22, 1, .36, 1); }
.dm-kt-tool:hover .dm-kt-mock { transform: translateY(-4px) rotate(-1deg); }
.dm-kt-mock-head { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; margin-bottom: .5rem; }
.dm-kt-mock-head b { font-size: .75rem; color: var(--color-text-heading); }
.dm-kt-mock-head span, .dm-kt-mock-kicker { color: var(--color-text-light); font-size: .625rem; }
.dm-kt-mock-kicker { display: block; text-transform: uppercase; letter-spacing: .08em; font-weight: 600; }
.dm-kt-mock-row { display: flex; align-items: center; gap: .5rem; padding: .3125rem 0; border-top: 1px solid var(--color-border-light); }
.dm-kt-mock-avatar { display: grid; place-items: center; width: 1.375rem; height: 1.375rem; border-radius: 9999px; background: var(--color-primary-light); color: var(--color-primary-strong); font-weight: 700; font-size: .625rem; flex-shrink: 0; }
.dm-kt-mock-label { flex: 1 1 auto; min-width: 0; font-weight: 600; color: var(--color-text-heading); }
.dm-kt-mock-pill { padding: .125rem .4375rem; border-radius: 9999px; font-size: .5625rem; font-weight: 700; }
.dm-kt-mock-pill.is-yes { background: #E7F6EC; color: #1F7A3E; }
.dm-kt-mock-pill.is-wait { background: #FFF3D6; color: #8A5A00; }
.dm-kt-mock-big { display: block; margin: .125rem 0 .5rem; font-size: 1.125rem; color: var(--color-text-heading); }
.dm-kt-mock-bar { display: block; height: .375rem; border-radius: 9999px; background: var(--color-border-light); overflow: hidden; }
.dm-kt-mock-bar i { display: block; height: 100%; border-radius: inherit; background: var(--color-primary); }
.dm-kt-mock-bar--thin { grid-column: 1 / -1; height: .25rem; }
.dm-kt-mock-bar--thin i { background: var(--color-accent-hover); }
.dm-kt-mock-line { display: grid; grid-template-columns: 1fr auto; gap: .1875rem .5rem; margin-top: .5rem; }
.dm-kt-mock-line span:nth-child(2) { color: var(--color-text-muted); }
.dm-kt-mock--invite { display: flex; flex-direction: column; align-items: center; gap: .25rem; padding: 1.125rem .875rem; text-align: center; border: 1px solid var(--color-border); outline: 4px solid #fff; outline-offset: -8px; }
.dm-kt-mock-names { font-family: var(--font-display); font-size: 1.25rem; font-style: italic; color: var(--color-text-heading); }
.dm-kt-mock-meta { color: var(--color-text-muted); }
.dm-kt-mock-btn { margin-top: .375rem; padding: .3125rem .875rem; border-radius: 9999px; background: var(--color-primary); color: #fff; font-weight: 700; font-size: .625rem; }
.dm-kt-mock-plan { display: block; width: 100%; height: auto; }
.dm-kt-mock-plan circle { fill: var(--color-surface-warm); stroke: var(--color-border); stroke-width: 1.2; }
.dm-kt-mock-plan circle.is-active { fill: var(--color-primary-light); stroke: var(--color-primary); }
.dm-kt-mock-plan .dm-kt-seat { fill: #fff; }
.dm-kt-mock-plan .dm-kt-seat.is-taken { fill: var(--color-primary); stroke: var(--color-primary); }
/* Mobil: dar (~165px) kartta dikey görsel, mini arayüz kartı
   neredeyse tam genişlik ve küçültülmüş; misafir listesi üç satır. */
@media (max-width: 767px) {
    .dm-kt-tool-visual { aspect-ratio: 4 / 5; padding: .5rem; border-radius: .875rem; }
    .dm-kt-tool-title { margin-top: .75rem; font-size: .9375rem; line-height: 1.3; }
    .dm-kt-tool-desc { font-size: .8125rem; line-height: 1.5; }
    .dm-kt-mock { padding: .625rem; border-radius: .625rem; font-size: .625rem; }
    .dm-kt-mock-head { margin-bottom: .375rem; gap: .25rem; white-space: nowrap; }
    .dm-kt-mock-head b { font-size: .6875rem; }
    .dm-kt-mock-head span, .dm-kt-mock-kicker { font-size: .5625rem; }
    .dm-kt-mock-row { gap: .375rem; padding: .25rem 0; }
    .dm-kt-mock-row:last-child { display: none; }
    .dm-kt-mock-avatar { width: 1.125rem; height: 1.125rem; font-size: .5625rem; }
    .dm-kt-mock-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .dm-kt-mock-pill { padding: .0625rem .3125rem; font-size: .5rem; }
    .dm-kt-mock-big { font-size: .9375rem; margin-bottom: .375rem; }
    .dm-kt-mock-line { margin-top: .375rem; }
    .dm-kt-mock--invite { padding: .875rem .5rem; }
    .dm-kt-mock-names { font-size: 1rem; }
}

/* "Düğün ekibinizi kurun": 3×2 fotoğraflı kategori kartları; bölüm
   zemini sayfanın kırık beyazından ayrışan açık gül tonu. */
.dm-kt-team { background: var(--color-berry-50, #FBF0F3); }
.dm-kt-cats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .875rem; margin: 2rem 0 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .dm-kt-cats { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; margin-top: 2.5rem; } }
.dm-kt-cat { display: block; height: 100%; overflow: hidden; border-radius: 1rem; background: #fff; box-shadow: var(--shadow-card); transition: box-shadow .3s ease, transform .3s ease; }
.dm-kt-cat:hover { box-shadow: var(--shadow-card-hover); transform: translateY(-2px); }
.dm-kt-cat-img { aspect-ratio: 4 / 3; overflow: hidden; background: linear-gradient(135deg, var(--color-rose-200), var(--color-berry-300, #DDB8C1)); }
.dm-kt-cat-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.dm-kt-cat:hover .dm-kt-cat-img img { transform: scale(1.05); }
.dm-kt-cat-body { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; padding: .875rem 1rem; }
.dm-kt-cat-body h3 { min-width: 0; font-size: .9375rem; font-weight: 700; color: var(--color-text-heading); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dm-kt-cat-body span { flex-shrink: 0; font-size: .8125rem; color: var(--color-text-muted); }
@media (max-width: 639px) { .dm-kt-cat-body { flex-direction: column; gap: .125rem; padding: .75rem; } .dm-kt-cat-body h3 { max-width: 100%; white-space: normal; } }
.dm-kt-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin: 1.75rem 0 0; padding: 0; list-style: none; }

/* "İşletme sahibi misiniz?" şeridi: iki yanı ince çizgili serif başlık,
   altında tek cümle ve gül buton. Kendi dikey boşluğu yok; komşu
   bölümlerin boşluğu arasında durur. */
.dm-biz-cta-inner { display: flex; align-items: center; gap: 1.5rem; }
.dm-biz-cta-line { flex: 1 1 0; min-width: 1rem; height: 1px; background: var(--color-border); }
.dm-biz-cta-body { flex: 0 1 auto; display: flex; flex-direction: column; align-items: center; text-align: center; }
.dm-biz-cta-title { font-family: var(--font-display); font-style: italic; font-weight: 600; font-size: clamp(1.5rem, 1.25rem + 1vw, 1.875rem); line-height: 1.2; color: var(--color-primary-strong); }
.dm-biz-cta-desc { margin-top: .375rem; font-size: .9375rem; line-height: 1.5; color: var(--color-text-muted); }
.dm-biz-cta-btn { display: inline-flex; align-items: center; gap: .5rem; min-height: 2.875rem; margin-top: 1rem; padding: .625rem 1.5rem; border-radius: 9999px; background: var(--color-primary); color: #fff; font-size: .9375rem; font-weight: 700; white-space: nowrap; box-shadow: 0 10px 22px -10px rgba(194, 71, 102, .55); transition: background-color .2s ease, transform .2s ease; }
.dm-biz-cta-btn:hover { background: var(--color-primary-hover); transform: translateY(-1px); }
.dm-biz-cta-btn svg { transition: transform .2s ease; }
.dm-biz-cta-btn:hover svg { transform: translateX(3px); }
.dm-biz-cta-btn:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; }
/* Dar ekranda yan çizgiler kısa çentiklere dönüşüyor; yerine başlığın
   üstünde ortalı kısa bir çizgi. */
@media (max-width: 639px) {
    .dm-biz-cta-line { display: none; }
    .dm-biz-cta-body { flex-basis: 100%; }
    .dm-biz-cta-body::before { content: ''; width: 3rem; height: 1px; margin-bottom: 1.25rem; background: var(--color-accent-hover, #DC9AA5); }
}
@media (prefers-reduced-motion: reduce) { .dm-biz-cta-btn, .dm-biz-cta-btn svg { transition: none; } }

/* "Düğün mekanınızı bulun" mozaiği: yedi karede ortadaki büyük kare
   iki satır boyunca uzanır (theknot.com düzeni). Mobilde ve az türde
   iki kolon, büyük kare tam genişlik. */
.dm-kt-mosaic { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 9.5rem; gap: .5rem; margin: 2rem 0 0; padding: 0; list-style: none; }
.dm-kt-tile--0 { grid-column: 1 / -1; grid-row: span 2; }
@media (min-width: 1024px) {
    .dm-kt-mosaic.is-full { grid-template-columns: 1fr 1fr 2.2fr 1fr 1fr; grid-template-rows: 16.5rem 16.5rem; grid-auto-rows: unset; grid-template-areas: "a b c d d" "e e c f g"; margin-top: 2.5rem; }
    .dm-kt-mosaic.is-full .dm-kt-tile--0 { grid-area: c; }
    .dm-kt-mosaic.is-full .dm-kt-tile--1 { grid-area: d; }
    .dm-kt-mosaic.is-full .dm-kt-tile--2 { grid-area: e; }
    .dm-kt-mosaic.is-full .dm-kt-tile--3 { grid-area: a; }
    .dm-kt-mosaic.is-full .dm-kt-tile--4 { grid-area: b; }
    .dm-kt-mosaic.is-full .dm-kt-tile--5 { grid-area: f; }
    .dm-kt-mosaic.is-full .dm-kt-tile--6 { grid-area: g; }
    .dm-kt-mosaic.is-full > li:first-child a { border-radius: 0; }
    .dm-kt-mosaic.is-full .dm-kt-tile--3 a { border-top-left-radius: 1.25rem; }
    .dm-kt-mosaic.is-full .dm-kt-tile--2 a { border-bottom-left-radius: 1.25rem; }
    .dm-kt-mosaic.is-full .dm-kt-tile--1 a { border-top-right-radius: 1.25rem; }
    .dm-kt-mosaic.is-full .dm-kt-tile--6 a { border-bottom-right-radius: 1.25rem; }
}
@media (min-width: 640px) and (max-width: 1023px) { .dm-kt-mosaic { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 11rem; } .dm-kt-tile--0 { grid-column: span 2; } }
.dm-kt-tile { min-width: 0; }
.dm-kt-tile a { position: relative; display: block; height: 100%; overflow: hidden; border-radius: .625rem; background: linear-gradient(135deg, var(--color-rose-200), var(--color-berry-300, #DDB8C1)); }
.dm-kt-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.dm-kt-tile a::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20, 14, 18, 0) 45%, rgba(20, 14, 18, .62) 100%); }
.dm-kt-tile a:hover img { transform: scale(1.06); }
.dm-kt-tile-label { position: absolute; left: .875rem; right: .875rem; bottom: .75rem; z-index: 1; display: flex; flex-direction: column; color: #fff; text-shadow: 0 1px 6px rgba(20, 14, 18, .45); }
.dm-kt-tile-label b { font-size: .9375rem; line-height: 1.25; }
.dm-kt-tile-label small { font-size: .75rem; opacity: .9; }
.dm-kt-tile--0 .dm-kt-tile-label b { font-size: 1.25rem; }

/* Renkli kapanış bandı. */
.dm-kt-band { background: linear-gradient(120deg, #7C3049 0%, #963D5A 45%, #B0445F 100%); color: #fff; }
.dm-kt-band-inner { display: flex; flex-direction: column; gap: 1.5rem; padding-top: 3rem; padding-bottom: 3rem; }
@media (min-width: 1024px) { .dm-kt-band-inner { flex-direction: row; align-items: center; justify-content: space-between; gap: 3rem; padding-top: 4rem; padding-bottom: 4rem; } }
.dm-kt-band-title { max-width: 40rem; font-family: var(--font-heading); font-size: clamp(1.625rem, 1.2rem + 1.7vw, 2.5rem); line-height: 1.15; font-weight: 800; letter-spacing: -.02em; }
.dm-kt-band-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.75rem; flex-shrink: 0; }
.dm-kt-band-link { color: #fff; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.dm-kt-band-link:hover { text-decoration-thickness: 2px; }
.dm-kt-band .dm-kt-btn:focus-visible, .dm-kt-band-link:focus-visible { outline-color: #fff; }

/* ── SEO "Düğün Rehberi": üstte açıklayıcı metin, altında theknot.com
   sayfa sonundaki gibi katlanır link grupları (üç kolon, büyük harfli
   başlık, ok). Metin içi bağlantılar koyu + ince gül alt çizgi. */
.dm-seo { border-top: 1px solid var(--color-border-light); }
.dm-seo-inner { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.25rem; padding-top: 2.75rem; padding-bottom: 3rem; }
@media (min-width: 1024px) { .dm-seo-inner { padding-top: 3.5rem; padding-bottom: 3.5rem; } }
.dm-seo-text { max-width: 48rem; }
.dm-seo-eyebrow { font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--color-primary); }
.dm-seo-title { margin: .5rem 0 .875rem; font-family: var(--font-heading); font-size: clamp(1.375rem, 1.1rem + 1vw, 1.875rem); line-height: 1.2; font-weight: 700; color: var(--color-text-heading); }
.dm-seo-text p { font-size: .9375rem; line-height: 1.75; color: var(--color-text-muted); }
.dm-seo-text a { color: var(--color-text-heading); font-weight: 600; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px;
    text-decoration-color: rgba(194, 71, 102, .35); transition: color .2s ease, text-decoration-color .2s ease; }
.dm-seo-text a:hover { color: var(--color-primary); text-decoration-color: currentColor; }
.dm-seo-more { margin-top: .625rem; }
.dm-seo-more summary { display: inline-flex; align-items: center; gap: .375rem; list-style: none; cursor: pointer; font-size: .875rem; font-weight: 600; color: var(--color-primary); }
.dm-seo-more summary::-webkit-details-marker { display: none; }
.dm-seo-more summary svg { transition: transform .2s ease; }
.dm-seo-more[open] summary svg { transform: rotate(180deg); }
.dm-seo-more-close, .dm-seo-more[open] .dm-seo-more-open { display: none; }
.dm-seo-more[open] .dm-seo-more-close { display: inline; }
.dm-seo-more-body { display: grid; gap: .875rem; margin-top: .875rem; }
.dm-seo-text p.dm-seo-closing { color: var(--color-text-heading); font-weight: 600; }
.dm-seo-chip { display: inline-flex; align-items: center; white-space: nowrap; padding: .4375rem .875rem; border-radius: 9999px; background: #FFFFFF; border: 1px solid var(--color-border);
    font-size: .8125rem; font-weight: 500; color: var(--color-text-heading); transition: color .2s ease, border-color .2s ease, background-color .2s ease; }
.dm-seo-chip:hover { color: var(--color-primary); border-color: rgba(194, 71, 102, .45); background: #FFF5F7; }

/* ── Sık Sorulan Sorular: SEO metniyle aynı başlık dili; sorular açık
   (katlanmaz), masaüstünde iki kolon. Cevaplardaki bağlantılar SEO
   metnindeki gibi koyu + ince gül alt çizgi. */
.dm-faq { border-top: 1px solid var(--color-border-light); }
.dm-faq-inner { padding-top: 2.75rem; padding-bottom: 3rem; }
@media (min-width: 1024px) { .dm-faq-inner { padding-top: 3.5rem; padding-bottom: 3.5rem; } }
.dm-faq-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.75rem 3rem; margin-top: 1.5rem; }
@media (min-width: 768px) { .dm-faq-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.dm-faq-item h3 { font-family: var(--font-heading); font-size: 1.0625rem; line-height: 1.4; font-weight: 700; color: var(--color-text-heading); }
.dm-faq-item p { margin-top: .5rem; font-size: .9375rem; line-height: 1.75; color: var(--color-text-muted); }
.dm-faq-item a { color: var(--color-text-heading); font-weight: 600; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px;
    text-decoration-color: rgba(194, 71, 102, .35); transition: color .2s ease, text-decoration-color .2s ease; }
.dm-faq-item a:hover { color: var(--color-primary); text-decoration-color: currentColor; }

.dm-kt-links { display: grid; grid-template-columns: minmax(0, 1fr); column-gap: 2.5rem; align-items: start; }
@media (min-width: 768px) { .dm-kt-links { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .dm-kt-links { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.dm-kt-links-group { min-width: 0; border-bottom: 1px solid var(--color-border); }
.dm-kt-links-group summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 3.5rem; padding: .75rem 0; list-style: none; cursor: pointer; color: var(--color-text-heading); }
.dm-kt-links-group summary::-webkit-details-marker { display: none; }
.dm-kt-links-group summary h3 { font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; line-height: 1.4; }
.dm-kt-links-group summary svg { flex-shrink: 0; transition: transform .2s ease; }
.dm-kt-links-group[open] summary svg { transform: rotate(180deg); }
.dm-kt-links-group summary:hover h3 { color: var(--color-primary); }
.dm-kt-links-group ul { display: grid; gap: .5rem; margin: 0; padding: 0 0 1.25rem; list-style: none; }
.dm-kt-links-group a { font-size: .875rem; color: var(--color-text-muted); transition: color .2s ease; }
.dm-kt-links-group a:hover { color: var(--color-primary); text-decoration: underline; text-underline-offset: 3px; }

@media (prefers-reduced-motion: reduce) {
    .dm-kt-btn, .dm-kt-cat, .dm-kt-cat-img img, .dm-kt-tile img, .dm-kt-mock, .dm-kt-tool-title span { transition: none; }
}
