/* File: public/assets/css/public.css
   Public arayüz. Admin paneli kendi tokens.css/admin.css'ini kullanır — buradaki
   değerler yalnızca ziyaretçi tarafını etkiler.

   Yön: gece çayı yeşili (güven) + serin gündüz yüzeyi + tek vurgu olarak lamba amberi.
   İmza: sayılar tipografi, kapasite yatak şemasıyla gösterilir.
*/

@import url("../fonts/fonts.css");

:root {
    /* --- Renk --- */
    --ink:      #08343A;   /* gece çayı — koyu bölümlerin zemini, başlık rengi */
    --ink-2:    #0B4A52;
    --ink-3:    #135F68;
    --paper:    #F2F4F3;   /* serin gündüz yüzeyi */
    --surface:  #FFFFFF;
    --line:     #DCE3E2;
    --line-2:   #C6D2D1;
    --text:     #10262A;
    --muted:    #5C7377;
    --amber:    #F0A93B;   /* TEK vurgu: talep bırak / 360 gez */
    --amber-d:  #CE8B1E;
    --amber-soft: #FDF3E1;
    --tour:     #0E9A8C;   /* 360 rozeti */
    --tour-soft: #E2F4F2;
    --danger:   #B4402B;
    --danger-soft: #FBEDEA;
    --star:     #E8A33D;

    /* --- Tipografi ---
       Bricolage Grotesque: başlıklar. Hafif sıkışık, kasıtlı olarak biraz
       huysuz bir grotesk — kurumsal-nötr olmaktan kaçınır, "yuva" tonunu taşır.
       Manrope: gövde ve sayılar. Hümanist, tabular figürlü.
       İkisi de kendi sunucumuzda, latin-ext alt kümesiyle (ğ ş ı İ ö ü ç). */
    --sans: "Manrope", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
    --display: "Bricolage Grotesque", "Manrope", "Segoe UI", -apple-system, Arial, sans-serif;
    --mono: "Cascadia Mono", "SF Mono", "Roboto Mono", ui-monospace, monospace;

    --fs-2xs: 0.6875rem;  /* 11px — etiketler */
    --fs-xs:  0.8125rem;
    --fs-sm:  0.9375rem;
    --fs-md:  1.0625rem;
    --fs-lg:  1.25rem;
    --fs-xl:  1.625rem;
    --fs-2xl: 2.25rem;
    --fs-3xl: 3rem;
    --fs-4xl: 4rem;

    /* --- Aralık --- */
    --s1: 0.25rem; --s2: 0.5rem;  --s3: 0.75rem; --s4: 1rem;
    --s5: 1.5rem;  --s6: 2rem;    --s7: 3rem;    --s8: 4.5rem; --s9: 6.5rem;

    --r-sm: 6px; --r-md: 10px; --r-lg: 18px; --r-full: 999px;
    --shadow: 0 1px 2px rgba(8, 52, 58, .05), 0 8px 24px -12px rgba(8, 52, 58, .18);
    --shadow-lg: 0 24px 60px -28px rgba(8, 52, 58, .38);

    --wrap: 1160px;
    --nav-h: 68px;
}

*, *::before, *::after { box-sizing: border-box; }

/* [hidden] niteliği her zaman kazanmalı.
   Tarayıcının varsayılan `[hidden]{display:none}` kuralı, bileşene verdiğimiz
   `display:grid/flex` tarafından eziliyor ve gizlenmesi gereken katmanlar
   ekranda kalıyordu. */
[hidden] { display: none !important; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

body {
    margin: 0;
    font-family: var(--sans);
    font-size: var(--fs-md);
    line-height: 1.6;
    color: var(--text);
    background: var(--paper);
    -webkit-font-smoothing: antialiased;
    /* Güvenlik ağı, çözüm değil: tek bir geniş öğe belgeyi genişletip her sayfayı
       yatay kaydırılabilir hale getirmesin. Taşmanın kendisi ayrıca düzeltilir. */
    overflow-x: clip;
}

img { max-width: 100%; height: auto; display: block; }
a { color: var(--ink-2); text-decoration: none; }
a:hover { text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 2px; }

:focus-visible { outline: 3px solid var(--amber); outline-offset: 2px; border-radius: 2px; }

h1, h2, h3, h4 {
    font-family: var(--display);
    color: var(--ink);
    line-height: 1.06;
    letter-spacing: -0.03em;
    margin: 0 0 var(--s4);
    font-weight: 700;
    /* Bricolage değişken bir eksene sahip: büyük başlıklar optik olarak daha geniş kurulur */
    font-variation-settings: "opsz" 40;
    text-wrap: balance;
}
h1 { font-variation-settings: "opsz" 72; font-weight: 750; }
h1 { font-size: clamp(2rem, 5vw, var(--fs-3xl)); }
h2 { font-size: clamp(1.5rem, 3.4vw, var(--fs-2xl)); }
h3 { font-size: var(--fs-lg); letter-spacing: -0.015em; }
p  { margin: 0 0 var(--s4); }
p:last-child { margin-bottom: 0; }

.wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--s5); }
.wrap--narrow { max-width: 760px; }

/* =========================================================
   İMZA 1 — Sayı muamelesi
   Yurt seçmek sayı karşılaştırmaktır: kapasite, mesafe, fiyat.
   ========================================================= */
.num {
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.045em;
    font-weight: 800;
    line-height: 1;
    color: var(--ink);
    white-space: nowrap;   /* "16.000 ₺" asla iki satıra bölünmez */
}
.num--xl { font-size: var(--fs-2xl); }
.num--lg { font-size: var(--fs-xl); }
.num--md { font-size: var(--fs-lg); }
.num-unit {
    font-size: var(--fs-2xs); font-weight: 600; letter-spacing: .06em;
    text-transform: uppercase; color: var(--muted); display: block; margin-top: 3px;
    white-space: nowrap;
}

/* Kahramanın sayısal güven şeridi — sağdaki boşluğu anlamla doldurur */
.hero__stats {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(132px, max-content));
    gap: var(--s5) var(--s7);
    margin-top: var(--s6); padding-top: var(--s5);
    border-top: 1px solid rgba(255, 255, 255, .14);
}
.hero__stat b {
    display: block; font-family: var(--display);
    font-size: var(--fs-2xl); font-weight: 750; letter-spacing: -0.04em;
    font-variant-numeric: tabular-nums; color: #FFF; line-height: 1;
}
.hero__stat span {
    display: block; margin-top: var(--s2);
    font-size: var(--fs-2xs); font-weight: 600; letter-spacing: .12em;
    text-transform: uppercase; color: #7FA6A3;
}

/* =========================================================
   İMZA 2 — Oda şeması
   "4 kişilik" yazmak yerine dört yatak çiziyoruz. Tek karar veren
   bilgi bu olduğu için kendi görsel diline sahip.
   ========================================================= */
.beds { display: inline-flex; align-items: flex-end; gap: 4px; }
.beds i {
    display: block; width: 15px; height: 11px;
    border-radius: 3px 3px 2px 2px;
    background: var(--ink-3);
    position: relative;
    box-shadow: inset 0 -2px 0 rgba(0, 0, 0, .12);
}
.beds i::after { /* yastık — yatağı yatak yapan ayrıntı */
    content: ""; position: absolute; top: -4px; left: 2px;
    width: 11px; height: 5px; border-radius: 3px 3px 0 0;
    background: var(--amber);
}
.beds--muted i { background: var(--line-2); }
.beds--muted i::after { background: var(--line); }
/* Aralığın üst sınırı: "1–4 kişilik" için 1 dolu + 3 soluk yatak */
.beds i.dim { background: var(--line-2); box-shadow: none; }
.beds i.dim::after { background: var(--line); }
.beds--sm i { width: 11px; height: 8px; }
.beds--sm i::after { top: -3px; left: 1px; width: 9px; height: 4px; }

/* Kapasite göstergesi: şema + etiket tek blok, asla kopmaz */
.cap {
    display: inline-flex; align-items: center; gap: var(--s3);
    white-space: nowrap;
}
.cap__text { display: flex; flex-direction: column; gap: 1px; }
.cap__text b {
    font-variant-numeric: tabular-nums; font-weight: 800;
    letter-spacing: -0.03em; color: var(--ink); font-size: var(--fs-md); line-height: 1;
}
.cap__text span {
    font-size: var(--fs-2xs); font-weight: 600; letter-spacing: .06em;
    text-transform: uppercase; color: var(--muted);
}

/* =========================================================
   Başlık
   ========================================================= */
.nav {
    position: sticky; top: 0; z-index: 40;
    height: var(--nav-h);
    background: rgba(242, 244, 243, .92);
    backdrop-filter: saturate(180%) blur(12px);
    border-bottom: 1px solid var(--line);
}
.nav__in { height: 100%; display: flex; align-items: center; gap: var(--s5); min-width: 0; }
.brand {
    display: inline-flex; align-items: baseline; gap: 1px;
    font-family: var(--display); font-size: 1.3rem; font-weight: 800;
    letter-spacing: -0.04em; color: var(--ink); white-space: nowrap;
    flex: 0 1 auto; min-width: 0;
}
.brand:hover { text-decoration: none; }
.brand b { color: var(--amber-d); font-weight: 800; }
.nav__links { display: flex; gap: var(--s5); margin-left: var(--s5); }
.nav__links a {
    font-size: var(--fs-sm); font-weight: 550; color: var(--text);
    padding-block: var(--s2); border-bottom: 2px solid transparent;
}
.nav__links a:hover { text-decoration: none; border-bottom-color: var(--line-2); }
.nav__links a.on { border-bottom-color: var(--amber); color: var(--ink); }
.nav__end { margin-left: auto; display: flex; align-items: center; gap: var(--s3); flex: 0 0 auto; }
.nav__toggle {
    display: none; background: none; border: 1px solid var(--line-2);
    border-radius: var(--r-sm); padding: var(--s2) var(--s3); font: inherit;
    font-size: var(--fs-xs); cursor: pointer; color: var(--ink); white-space: nowrap;
}
/* Masaüstünde menü panelinin içindeki CTA gizli — üstte düğme olarak duruyor */
.nav__links .nav__cta { display: none; }

/* =========================================================
   Düğmeler
   Amber SADECE dönüşüm eylemlerinde. Her yerde kullanılırsa vurgu ölür.
   ========================================================= */
.btn {
    display: inline-flex; align-items: center; justify-content: center; gap: var(--s2);
    padding: var(--s3) var(--s5); border: 1.5px solid transparent;
    border-radius: var(--r-full); font: inherit; font-size: var(--fs-sm); font-weight: 650;
    cursor: pointer; white-space: nowrap;
    transition: background-color .16s ease, border-color .16s ease, transform .16s ease;
}
.btn:hover { text-decoration: none; }
.btn:active { transform: translateY(1px); }
.btn--amber { background: var(--amber); color: #23180A; }
.btn--amber:hover { background: var(--amber-d); }
.btn--ink { background: var(--ink); color: #EAF2F1; }
.btn--ink:hover { background: var(--ink-2); }
.btn--line { background: transparent; border-color: var(--line-2); color: var(--ink); }
.btn--line:hover { border-color: var(--ink); }
.btn--ghost { background: transparent; color: var(--ink); padding-inline: var(--s3); }
.btn--sm { padding: var(--s2) var(--s4); font-size: var(--fs-xs); }
.btn--lg { padding: var(--s4) var(--s6); font-size: var(--fs-md); }
.btn--block { width: 100%; }

/* =========================================================
   HERO — cümle formunda arama
   Ziyaretçi bir arama çubuğu doldurmaz, bir cümle tamamlar.
   ========================================================= */
.hero { background: var(--ink); color: #DCEAE8; padding-block: var(--s8) var(--s9); position: relative; overflow: hidden; }
.hero::after { /* gece penceresi: tek amber ışık lekesi */
    content: ""; position: absolute; inset: auto -10% -40% auto;
    width: 480px; height: 480px; border-radius: 50%;
    background: radial-gradient(circle, rgba(240,169,59,.16), transparent 65%);
    pointer-events: none;
}
.hero__eyebrow {
    font-size: var(--fs-2xs); font-weight: 700; letter-spacing: .16em;
    text-transform: uppercase; color: var(--amber); margin-bottom: var(--s4);
}
.hero h1 { color: #FFF; max-width: 20ch; margin-bottom: var(--s5); }
.hero__lede { font-size: var(--fs-lg); color: #A9C6C4; max-width: 46ch; margin-bottom: var(--s7); }

.mad {
    background: var(--surface); border-radius: var(--r-lg);
    padding: var(--s6); box-shadow: var(--shadow-lg); position: relative; z-index: 1;
}
.mad__sentence {
    font-family: var(--display); font-size: clamp(1.1rem, 2.4vw, 1.5rem);
    line-height: 2.1; color: var(--ink); letter-spacing: -0.02em;
    display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--s2) var(--s3);
    margin-bottom: var(--s5);
}
.mad__sentence .fill {
    position: relative; display: inline-flex; align-items: center;
}
.mad__sentence select {
    appearance: none; -webkit-appearance: none;
    font: inherit; font-size: inherit; font-weight: 700;
    color: var(--ink-2); background: var(--amber-soft);
    border: 0; border-bottom: 2.5px solid var(--amber);
    border-radius: var(--r-sm) var(--r-sm) 0 0;
    padding: 2px var(--s6) 2px var(--s3); cursor: pointer;
    max-width: min(62vw, 320px); text-overflow: ellipsis;
}
.mad__sentence select:hover { background: #FBE9C9; }
.mad__sentence .fill::after {
    content: ""; position: absolute; right: var(--s3); pointer-events: none;
    width: 7px; height: 7px; border-right: 2px solid var(--amber-d);
    border-bottom: 2px solid var(--amber-d); transform: rotate(45deg) translateY(-2px);
}
.mad__go { display: flex; flex-wrap: wrap; gap: var(--s3); align-items: center; }
.mad__hint { font-size: var(--fs-xs); color: var(--muted); }

/* =========================================================
   Bölüm başlıkları
   ========================================================= */
.section { padding-block: var(--s8); }
.section--tight { padding-block: var(--s7); }
.section--dark { background: var(--ink); color: #C9DDDB; }
.section--dark h2, .section--dark h3 { color: #FFF; }
.section__head { display: flex; align-items: flex-end; gap: var(--s5); margin-bottom: var(--s6); flex-wrap: wrap; }
.section__head h2 { margin: 0; }
.section__head p { color: var(--muted); margin: var(--s2) 0 0; font-size: var(--fs-sm); max-width: 54ch; }
.section__head .more { margin-left: auto; font-size: var(--fs-sm); font-weight: 650; white-space: nowrap; }
.eyebrow {
    font-size: var(--fs-2xs); font-weight: 700; letter-spacing: .14em;
    text-transform: uppercase; color: var(--muted); margin-bottom: var(--s2);
}
.section--dark .eyebrow { color: var(--amber); }

/* =========================================================
   Yurt kartı
   ========================================================= */
.grid-cards { display: grid; gap: var(--s5); grid-template-columns: repeat(auto-fill, minmax(276px, 1fr)); }

.card {
    background: var(--surface); border: 1px solid var(--line);
    border-radius: var(--r-md); overflow: hidden;
    display: flex; flex-direction: column;
    transition: border-color .16s ease, transform .16s ease, box-shadow .16s ease;
}
.card:hover { border-color: var(--line-2); transform: translateY(-2px); box-shadow: var(--shadow); }
.card__media { position: relative; aspect-ratio: 3 / 2; background: #E4EAE9; }
.card__media img { width: 100%; height: 100%; object-fit: cover; }
.card__media .noimg {
    width: 100%; height: 100%; display: grid; place-items: center;
    color: var(--muted); font-size: var(--fs-xs);
}
.card__tags { position: absolute; top: var(--s3); left: var(--s3); display: flex; gap: var(--s2); flex-wrap: wrap; }
.card__body { padding: var(--s4); display: flex; flex-direction: column; gap: var(--s3); flex: 1 1 auto; }
.card__place { font-size: var(--fs-2xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.card__name { font-family: var(--display); font-size: var(--fs-md); font-weight: 700; letter-spacing: -0.02em; color: var(--ink); margin: 0; line-height: 1.25; }
.card__name a { color: inherit; }
.card__facts {
    display: flex; align-items: center; gap: var(--s4);
    padding-top: var(--s3); border-top: 1px solid var(--line); margin-top: auto;
}
.card__fact { display: flex; flex-direction: column; gap: 2px; white-space: nowrap; }
.card__price { margin-left: auto; text-align: right; white-space: nowrap; }
.card__price .from { font-size: var(--fs-2xs); color: var(--muted); display: block; margin-bottom: 1px; }
.card__cta { padding: 0 var(--s4) var(--s4); }

/* Rozetler */
.pill {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 3px var(--s3); border-radius: var(--r-full);
    font-size: var(--fs-2xs); font-weight: 700; letter-spacing: .04em;
    background: var(--surface); color: var(--ink); border: 1px solid var(--line);
}
.pill--tour { background: var(--tour); color: #FFF; border-color: transparent; }
.pill--girls { background: #F6ECF3; color: #8A3A6B; border-color: transparent; }
.pill--boys  { background: #E9F0F7; color: #2C5580; border-color: transparent; }
.pill--mixed { background: #EEF1F0; color: var(--ink-2); border-color: transparent; }
.pill--pack  { background: var(--amber-soft); color: #7A5310; border-color: transparent; }
.pill--rating { background: var(--ink); color: #FFF; border-color: transparent; }

/* =========================================================
   Şehir / üniversite ızgarası
   ========================================================= */
.grid-tiles { display: grid; gap: var(--s3); grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); }
.tile {
    display: flex; align-items: center; justify-content: space-between; gap: var(--s3);
    padding: var(--s4); background: var(--surface);
    border: 1px solid var(--line); border-radius: var(--r-md);
    transition: border-color .16s ease, background-color .16s ease;
}
.tile:hover { text-decoration: none; border-color: var(--ink-3); background: #FBFCFC; }
.tile__name { font-weight: 650; color: var(--ink); font-size: var(--fs-sm); }
.tile__count { font-variant-numeric: tabular-nums; font-weight: 800; color: var(--muted); font-size: var(--fs-sm); }
.section--dark .tile { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.12); }
.section--dark .tile:hover { background: rgba(255,255,255,.09); border-color: var(--amber); }
.section--dark .tile__name { color: #FFF; }
.section--dark .tile__count { color: var(--amber); }

/* =========================================================
   Arama sayfası
   ========================================================= */
.search-layout { display: grid; grid-template-columns: 272px 1fr; gap: var(--s6); align-items: start; }
.filters {
    background: var(--surface); border: 1px solid var(--line);
    border-radius: var(--r-md); position: sticky; top: calc(var(--nav-h) + var(--s4));
    max-height: calc(100vh - var(--nav-h) - var(--s6)); overflow-y: auto;
}
.filters__head {
    display: flex; align-items: center; justify-content: space-between;
    padding: var(--s4); border-bottom: 1px solid var(--line);
}
.filters__head strong { font-size: var(--fs-sm); }
.fgroup { padding: var(--s4); border-bottom: 1px solid var(--line); }
.fgroup:last-child { border-bottom: 0; }
.fgroup > h3 {
    font-size: var(--fs-2xs); font-weight: 700; letter-spacing: .1em;
    text-transform: uppercase; color: var(--muted); margin: 0 0 var(--s3);
}
.fgroup label { display: flex; align-items: center; gap: var(--s2); font-size: var(--fs-sm); padding-block: 3px; cursor: pointer; }
.fgroup label span.c { margin-left: auto; color: var(--muted); font-size: var(--fs-xs); font-variant-numeric: tabular-nums; }
.fgroup select, .fgroup input[type="text"], .fgroup input[type="number"], .fgroup input[type="search"] {
    width: 100%; padding: var(--s2) var(--s3); font: inherit; font-size: var(--fs-sm);
    border: 1px solid var(--line-2); border-radius: var(--r-sm); background: var(--surface); color: var(--text);
}
.fgroup .row2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s2); }
.fgroup .scroll { max-height: 200px; overflow-y: auto; }

.cap-choice { display: flex; gap: var(--s2); flex-wrap: wrap; }
.cap-choice label {
    border: 1px solid var(--line-2); border-radius: var(--r-sm);
    padding: var(--s2) var(--s3); gap: var(--s2); background: var(--surface);
}
.cap-choice input { position: absolute; opacity: 0; pointer-events: none; }
.cap-choice label:has(input:checked) { border-color: var(--ink); background: #EFF4F3; }
.cap-choice label:has(input:checked) .beds i { background: var(--amber-d); }

.results__bar {
    display: flex; align-items: center; gap: var(--s4);
    margin-bottom: var(--s5); flex-wrap: wrap;
}
.results__count { font-size: var(--fs-sm); color: var(--muted); }
.results__count b { color: var(--ink); font-variant-numeric: tabular-nums; }
.results__sort { margin-left: auto; display: flex; align-items: center; gap: var(--s2); font-size: var(--fs-sm); }
.results__sort select {
    padding: var(--s2) var(--s3); font: inherit; font-size: var(--fs-sm);
    border: 1px solid var(--line-2); border-radius: var(--r-sm); background: var(--surface);
}
.chips { display: flex; gap: var(--s2); flex-wrap: wrap; margin-bottom: var(--s5); }
.chip {
    display: inline-flex; align-items: center; gap: var(--s2);
    padding: var(--s1) var(--s3); border-radius: var(--r-full);
    background: var(--surface); border: 1px solid var(--line-2);
    font-size: var(--fs-xs); font-weight: 600; color: var(--ink);
}
.chip a { color: var(--muted); font-weight: 700; line-height: 1; }
.chip a:hover { color: var(--danger); text-decoration: none; }
.filter-open { display: none; }

/* =========================================================
   Yurt detayı
   ========================================================= */
.crumbs { font-size: var(--fs-xs); color: var(--muted); padding-block: var(--s4); }
.crumbs a { color: var(--muted); }
.crumbs span { margin-inline: var(--s2); opacity: .5; }

.detail { display: grid; grid-template-columns: 1fr 372px; gap: var(--s6); align-items: start; padding-bottom: var(--s8); }

.gallery { border-radius: var(--r-md); overflow: hidden; background: #E4EAE9; }
.gallery__main { position: relative; aspect-ratio: 16 / 10; }
.gallery__main img { width: 100%; height: 100%; object-fit: cover; }
.gallery__main .noimg { width: 100%; height: 100%; display: grid; place-items: center; color: var(--muted); }
.gallery__badges { position: absolute; top: var(--s4); left: var(--s4); display: flex; gap: var(--s2); }
.gallery__tour {
    position: absolute; bottom: var(--s4); left: var(--s4);
    display: inline-flex; align-items: center; gap: var(--s2);
    padding: var(--s3) var(--s5); border-radius: var(--r-full);
    background: var(--amber); color: #23180A; font-weight: 700; font-size: var(--fs-sm);
    box-shadow: var(--shadow);
}
.gallery__tour:hover { background: var(--amber-d); text-decoration: none; }
/* Küçük resimler genişliği paylaşır — az fotoğrafta sağda boş beyaz blok kalmaz */
.gallery__strip {
    display: grid; grid-auto-flow: column;
    grid-auto-columns: minmax(84px, 1fr);
    gap: 2px; background: var(--surface); overflow-x: auto;
}
.gallery__strip button {
    aspect-ratio: 4 / 3; padding: 0; border: 0; cursor: pointer; min-width: 84px;
    background: #E4EAE9; opacity: .62; transition: opacity .16s ease;
}
.gallery__strip button img { width: 100%; height: 100%; object-fit: cover; }
.gallery__strip button[aria-current="true"], .gallery__strip button:hover { opacity: 1; }

.dhead { padding-block: var(--s5) var(--s4); }
.dhead h1 { margin-bottom: var(--s3); }
.dhead__meta { display: flex; gap: var(--s3); flex-wrap: wrap; align-items: center; color: var(--muted); font-size: var(--fs-sm); }

.keyfacts {
    display: flex; flex-wrap: wrap; gap: var(--s5) var(--s7);
    padding: var(--s5); background: var(--surface);
    border: 1px solid var(--line); border-radius: var(--r-md); margin-bottom: var(--s6);
}
.keyfact { display: flex; flex-direction: column; gap: var(--s2); }

.block { margin-bottom: var(--s7); }
.block > h2 { font-size: var(--fs-xl); margin-bottom: var(--s5); }
.prose { color: var(--text); }
.prose p { margin-bottom: var(--s4); }

.amen-group + .amen-group { margin-top: var(--s5); }
.amen-group h3 { font-size: var(--fs-2xs); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-bottom: var(--s3); }
.amen-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: var(--s2) var(--s4); list-style: none; padding: 0; margin: 0; }
.amen-list li { display: flex; align-items: center; gap: var(--s2); font-size: var(--fs-sm); }
.amen-list li::before {
    content: ""; flex: 0 0 auto; width: 6px; height: 6px; border-radius: 50%;
    background: var(--tour);
}

table.prices { width: 100%; border-collapse: collapse; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md); overflow: hidden; }
table.prices th, table.prices td { padding: var(--s3) var(--s4); text-align: left; font-size: var(--fs-sm); }
table.prices thead th {
    background: #EFF3F2; font-size: var(--fs-2xs); letter-spacing: .08em;
    text-transform: uppercase; color: var(--muted); font-weight: 700;
}
table.prices tbody tr + tr { border-top: 1px solid var(--line); }
table.prices td.p { text-align: right; font-variant-numeric: tabular-nums; font-weight: 800; color: var(--ink); }

.uni-list { list-style: none; padding: 0; margin: 0; }
.uni-list li {
    display: flex; align-items: center; gap: var(--s4);
    padding: var(--s3) 0; border-bottom: 1px solid var(--line); font-size: var(--fs-sm);
}
.uni-list li:last-child { border-bottom: 0; }
.uni-list .d { margin-left: auto; font-variant-numeric: tabular-nums; font-weight: 800; color: var(--ink); white-space: nowrap; }
.uni-list .note { color: var(--muted); font-size: var(--fs-xs); }

#map { height: 340px; border-radius: var(--r-md); border: 1px solid var(--line); background: #E4EAE9; }
.map-note { font-size: var(--fs-xs); color: var(--muted); margin-top: var(--s2); }

/* Yapışkan talep kartı */
.ask {
    background: var(--surface); border: 1px solid var(--line);
    border-radius: var(--r-md); box-shadow: var(--shadow);
    position: sticky; top: calc(var(--nav-h) + var(--s4));
}
.ask__top { padding: var(--s5); border-bottom: 1px solid var(--line); }
.ask__top .from { font-size: var(--fs-2xs); text-transform: uppercase; letter-spacing: .1em; color: var(--muted); }
.ask__body { padding: var(--s5); }
.ask__body h3 { font-size: var(--fs-md); margin-bottom: var(--s2); }
.ask__body p.small { font-size: var(--fs-xs); color: var(--muted); margin-bottom: var(--s4); }
.ask__actions { display: grid; gap: var(--s3); }
.ask__phone {
    display: flex; align-items: center; justify-content: center; gap: var(--s2);
    font-variant-numeric: tabular-nums; font-weight: 800; letter-spacing: -0.01em;
}

/* Mobil alt eylem çubuğu */
.mobile-bar {
    display: none; position: fixed; inset: auto 0 0 0; z-index: 45;
    padding: var(--s3) var(--s4) calc(var(--s3) + env(safe-area-inset-bottom));
    background: rgba(255,255,255,.96); backdrop-filter: blur(10px);
    border-top: 1px solid var(--line); gap: var(--s3);
}
.mobile-bar .btn { flex: 1 1 0; }

/* =========================================================
   Yorumlar
   ========================================================= */
.stars { display: inline-flex; gap: 2px; color: var(--star); font-size: var(--fs-sm); letter-spacing: 1px; }
.stars .off { color: var(--line-2); }
.review { padding: var(--s4) 0; border-bottom: 1px solid var(--line); }
.review:last-child { border-bottom: 0; }
.review__head { display: flex; align-items: center; gap: var(--s3); margin-bottom: var(--s2); }
.review__who { font-weight: 650; font-size: var(--fs-sm); }
.review__when { color: var(--muted); font-size: var(--fs-xs); margin-left: auto; }
.review__reply {
    margin-top: var(--s3); padding: var(--s3) var(--s4);
    background: #EFF3F2; border-left: 3px solid var(--tour); border-radius: 0 var(--r-sm) var(--r-sm) 0;
    font-size: var(--fs-sm);
}

/* =========================================================
   Formlar
   ========================================================= */
.f { margin-bottom: var(--s4); }
.f > label { display: block; font-size: var(--fs-xs); font-weight: 700; color: var(--ink); margin-bottom: var(--s2); }
.f input, .f select, .f textarea {
    width: 100%; padding: var(--s3); font: inherit; font-size: var(--fs-sm);
    border: 1px solid var(--line-2); border-radius: var(--r-sm);
    background: var(--surface); color: var(--text);
}
.f textarea { min-height: 110px; resize: vertical; }
.f .err { display: block; margin-top: var(--s1); font-size: var(--fs-xs); color: var(--danger); }
.f .help { display: block; margin-top: var(--s1); font-size: var(--fs-xs); color: var(--muted); }
.f--check { display: flex; align-items: flex-start; gap: var(--s2); }
.f--check input { width: auto; margin-top: 3px; }
.f--check label { font-size: var(--fs-xs); font-weight: 400; color: var(--muted); margin: 0; }
.f-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s4); }
input:invalid:not(:placeholder-shown) { border-color: var(--danger); }

.alert { padding: var(--s3) var(--s4); border-radius: var(--r-sm); margin-bottom: var(--s4); font-size: var(--fs-sm); }
.alert--ok  { background: var(--tour-soft); color: #0A6D63; }
.alert--err { background: var(--danger-soft); color: var(--danger); }

/* =========================================================
   Talep formu (form builder çıktısı)
   ========================================================= */
.lead-form {
    background: var(--surface); border: 1px solid var(--line);
    border-radius: var(--r-md); padding: var(--s6); box-shadow: var(--shadow);
}
.f-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: var(--s4) var(--s4); }
.fw-full  { grid-column: span 6; }
.fw-half  { grid-column: span 3; }
.fw-third { grid-column: span 2; }
.f-grid > .f { margin-bottom: 0; }

.f-heading { grid-column: span 6; margin-top: var(--s3); }
.f-heading h3 { margin: 0 0 var(--s1); font-size: var(--fs-md); }
.f-heading p { margin: 0; font-size: var(--fs-xs); color: var(--muted); }
.f-heading + .f { margin-top: 0; }

/* Hizmet seçici — formun en belirleyici alanı, kart gibi davranır */
.f-services { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: var(--s2); }
.f-services label {
    display: flex; align-items: center; gap: var(--s3);
    padding: var(--s3) var(--s4); border: 1.5px solid var(--line-2);
    border-radius: var(--r-sm); cursor: pointer; font-size: var(--fs-sm); font-weight: 600;
    transition: border-color .15s ease, background-color .15s ease;
}
.f-services label:hover { border-color: var(--line-2); background: #FAFBFB; }
.f-services label:has(input:checked) { border-color: var(--amber); background: var(--amber-soft); }
.f-services input { width: auto; accent-color: var(--amber-d); }

.f-radios, .f-choices { display: flex; flex-wrap: wrap; gap: var(--s2) var(--s4); }
.f-radios label, .f-choices label {
    display: inline-flex; align-items: center; gap: var(--s2);
    font-size: var(--fs-sm); cursor: pointer;
}
.f-radios input, .f-choices input { width: auto; accent-color: var(--ink-3); }

.f-range { display: flex; align-items: center; gap: var(--s2); }
.f-range input { flex: 1 1 0; min-width: 0; }
.f-range span { color: var(--muted); }

/* Bal küpü: gerçek kullanıcıya görünmez ama ekran okuyucuya da sunulmaz */
.honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.lead-form__submit { margin-top: var(--s6); padding-top: var(--s5); border-top: 1px solid var(--line); }
.lead-form__note { margin: var(--s3) 0 0; font-size: var(--fs-xs); color: var(--muted); max-width: 52ch; }

.lead-dorm {
    display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2) var(--s4);
    padding: var(--s4); margin-bottom: var(--s5);
    background: var(--tour-soft); border-radius: var(--r-sm);
    font-size: var(--fs-sm);
}
.lead-dorm strong { color: var(--ink); font-size: var(--fs-md); }
.lead-dorm .eyebrow { color: #0A6D63; }

/* Teşekkür sayfası */
.thanks { text-align: center; }
.thanks__mark {
    display: grid; place-items: center; width: 64px; height: 64px; margin: 0 auto var(--s5);
    border-radius: 50%; background: var(--tour); color: #fff; font-size: 30px; font-weight: 700;
}
.thanks__phone {
    display: inline-block; padding: var(--s3) var(--s5); margin-bottom: var(--s6);
    background: var(--amber-soft); border-radius: var(--r-full); font-size: var(--fs-sm);
}
.thanks__phone strong { font-variant-numeric: tabular-nums; letter-spacing: -0.01em; }
.thanks__next {
    text-align: left; max-width: 520px; margin: 0 auto;
    padding: var(--s5); background: var(--surface);
    border: 1px solid var(--line); border-radius: var(--r-md);
}
.thanks__next h2 { font-size: var(--fs-md); margin-bottom: var(--s3); }
.thanks__next ol { margin: 0; padding-left: var(--s5); color: var(--muted); font-size: var(--fs-sm); }
.thanks__next li { margin-bottom: var(--s2); }

@media (max-width: 720px) {
    .lead-form { padding: var(--s5) var(--s4); }
    .f-grid { grid-template-columns: 1fr; }
    .fw-full, .fw-half, .fw-third, .f-heading { grid-column: span 1; }
}

/* =========================================================
   Sayfalama, boş durum, alt bilgi
   ========================================================= */
.pager { display: flex; gap: var(--s2); justify-content: center; margin-top: var(--s7); flex-wrap: wrap; }
.pager a, .pager span {
    min-width: 42px; padding: var(--s2) var(--s3); text-align: center;
    border: 1px solid var(--line); border-radius: var(--r-sm);
    background: var(--surface); font-size: var(--fs-sm); font-variant-numeric: tabular-nums; color: var(--text);
}
.pager a:hover { border-color: var(--ink); text-decoration: none; }
.pager .now { background: var(--ink); border-color: var(--ink); color: #FFF; font-weight: 700; }
.pager .gap { border: 0; background: none; color: var(--muted); }

.empty { text-align: center; padding: var(--s8) var(--s5); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md); }
.empty h3 { margin-bottom: var(--s3); }
.empty p { color: var(--muted); max-width: 46ch; margin-inline: auto; }

.foot { background: var(--ink); color: #9FBDBB; padding-block: var(--s7) var(--s5); font-size: var(--fs-sm); }
.foot a { color: #DCEAE8; }
.foot__grid { display: grid; grid-template-columns: 1.6fr repeat(3, 1fr); gap: var(--s6); margin-bottom: var(--s6); }
.foot h4 { color: #FFF; font-size: var(--fs-2xs); letter-spacing: .12em; text-transform: uppercase; margin-bottom: var(--s3); }
.foot ul { list-style: none; padding: 0; margin: 0; }
.foot li { margin-bottom: var(--s2); }
.foot__bottom { border-top: 1px solid rgba(255,255,255,.12); padding-top: var(--s4); display: flex; gap: var(--s4); flex-wrap: wrap; align-items: center; }
.foot__bottom .spacer { flex: 1 1 auto; }

/* =========================================================
   Duyarlı davranış — mobil öncelikli düzeltmeler
   ========================================================= */
@media (max-width: 1040px) {
    .detail { grid-template-columns: 1fr; }
    .ask { position: static; }
    .foot__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 900px) {
    .search-layout { grid-template-columns: 1fr; }
    .filters {
        position: fixed; inset: 0; z-index: 60; border-radius: 0;
        max-height: none; display: none; overflow-y: auto;
    }
    .filters.open { display: block; }
    .filter-open { display: inline-flex; }

    /* Tablet: menü panele iner ama "Yurdumu Ekle" düğmesi üstte kalır — yer var. */
    .nav__in { gap: var(--s3); }
    .nav__links { display: none; }
    .nav__toggle { display: inline-flex; }
    .nav.open .nav__links {
        display: flex; flex-direction: column; gap: 0;
        position: absolute; top: var(--nav-h); left: 0; right: 0;
        background: var(--surface); border-bottom: 1px solid var(--line);
        box-shadow: var(--shadow); padding: var(--s3) var(--s5); margin: 0;
    }
    .nav.open .nav__links a { padding-block: var(--s3); border-bottom: 1px solid var(--line); }
    .nav.open .nav__links a:last-child { border-bottom: 0; }
    .nav__links .nav__cta { display: block; color: var(--amber-d); font-weight: 700; }
}

@media (max-width: 720px) {
    :root { --s8: 3rem; --s9: 4rem; }
    .hero { padding-block: var(--s7) var(--s8); }
    .mad { padding: var(--s5) var(--s4); }
    .mad__sentence { font-size: 1.05rem; line-height: 1.9; }
    /* Somut sınır şart: max-width:100% burada .fill'in kendi içeriğine göre
       çözülür (döngüsel) ve select en uzun seçeneği kadar genişler. */
    .mad__sentence select { max-width: calc(100vw - 5.5rem); }
    .f-row { grid-template-columns: 1fr; }
    .foot__grid { grid-template-columns: 1fr; gap: var(--s5); }
    .detail { padding-bottom: 92px; }
    .mobile-bar { display: flex; }
    .keyfacts { padding: var(--s4); gap: var(--s4) var(--s5); }
}

/* Küçük telefonlarda marka + CTA + menü üçlüsü sıkışır; CTA menü paneline iner */
@media (max-width: 480px) {
    .nav__end > .btn { display: none; }
    .nav__links .nav__cta { display: block; }
}

/* =========================================================
   360° SANAL TUR (tam ekran)
   Ekranın tamamı içeriğe ait: üstte kimlik + eylem, altta sahneler.
   ========================================================= */
body.is-bare { overflow: hidden; }

.tour { display: flex; flex-direction: column; height: 100dvh; background: var(--ink); color: #DCEAE8; }

.tour__bar {
    display: flex; align-items: center; gap: var(--s4);
    padding: var(--s3) var(--s5);
    background: rgba(8, 52, 58, .96);
    border-bottom: 1px solid rgba(255, 255, 255, .1);
    flex: 0 0 auto;
}
.tour__back {
    display: inline-flex; align-items: center; gap: var(--s2);
    color: #DCEAE8; font-size: var(--fs-sm); font-weight: 600; white-space: nowrap;
}
.tour__back:hover { color: var(--amber); text-decoration: none; }

.tour__id { min-width: 0; flex: 1 1 auto; }
.tour__id strong {
    display: block; color: #fff; font-family: var(--display);
    font-size: var(--fs-md); letter-spacing: -0.02em;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.tour__id span { font-size: var(--fs-xs); color: #8FB3B0; }

.tour__actions { display: flex; align-items: center; gap: var(--s4); flex: 0 0 auto; }
.tour__price { text-align: right; line-height: 1.1; }
.tour__price span { display: block; font-size: var(--fs-2xs); color: #8FB3B0; text-transform: uppercase; letter-spacing: .08em; }
.tour__price strong { font-variant-numeric: tabular-nums; font-weight: 800; color: #fff; letter-spacing: -0.02em; }

.tour__stage { position: relative; flex: 1 1 auto; min-height: 0; background: #06272C; }
.tour__viewer { position: absolute; inset: 0; }

.tour__loading, .tour__error {
    position: absolute; inset: 0; z-index: 5;
    display: grid; place-content: center; justify-items: center; gap: var(--s2);
    text-align: center; padding: var(--s5); background: #06272C;
}
.tour__loading p { margin: 0; color: #8FB3B0; font-size: var(--fs-sm); }
.tour__hint { font-size: var(--fs-xs) !important; opacity: .8; }
.tour__error h2 { color: #fff; }
.tour__error p { color: #A9C6C4; max-width: 42ch; }
.tour__spinner {
    width: 34px; height: 34px; border-radius: 50%;
    border: 3px solid rgba(255,255,255,.18); border-top-color: var(--amber);
    animation: tour-spin .9s linear infinite; margin-bottom: var(--s3);
}
@keyframes tour-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .tour__spinner { animation: none; } }

.tour__scenes {
    display: flex; gap: var(--s2); padding: var(--s3) var(--s4);
    overflow-x: auto; background: rgba(8, 52, 58, .96);
    border-top: 1px solid rgba(255, 255, 255, .1); flex: 0 0 auto;
}
.tour-scene {
    display: flex; align-items: center; gap: var(--s2);
    flex: 0 0 auto; padding: 4px var(--s3) 4px 4px;
    background: rgba(255,255,255,.06); border: 1.5px solid transparent;
    border-radius: var(--r-sm); cursor: pointer;
    color: #DCEAE8; font: inherit; font-size: var(--fs-xs); font-weight: 600;
    transition: border-color .15s ease, background-color .15s ease;
}
.tour-scene:hover { background: rgba(255,255,255,.12); }
.tour-scene[aria-current="true"] { border-color: var(--amber); background: rgba(240,169,59,.16); color: #fff; }
.tour-scene img { width: 56px; height: 32px; object-fit: cover; border-radius: 4px; }

/* Bilgi noktası işareti (marker) */
.psv-info-dot {
    display: grid; place-items: center; width: 32px; height: 32px;
    border-radius: 50%; background: var(--amber); color: #23180A;
    font-weight: 800; font-family: var(--display); font-size: 17px;
    box-shadow: 0 2px 10px rgba(0,0,0,.35); border: 2px solid #fff;
}

@media (max-width: 720px) {
    .tour__bar { flex-wrap: wrap; gap: var(--s2) var(--s3); padding: var(--s2) var(--s4); }
    .tour__id strong { font-size: var(--fs-sm); }
    .tour__price { display: none; }
    .tour__actions { margin-left: auto; }
    .tour-scene span { display: none; }
    .tour-scene { padding: 4px; }
    .tour-scene img { width: 64px; height: 40px; }
}

/* =========================================================
   YURT SAHİBİ PANELİ
   Site markasını kullanır ama kendi bileşenleri var: sahip personel
   değil müşteri, panel ona "hesabım" gibi gelmeli.
   ========================================================= */
.owner-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: var(--s3); }
.owner-stat {
    display: block; padding: var(--s5); text-decoration: none;
    background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md);
    transition: border-color .15s ease;
}
a.owner-stat:hover { border-color: var(--ink-3); text-decoration: none; }
.owner-stat.is-hot { border-color: var(--amber); background: var(--amber-soft); }

.owner-dorms { display: grid; gap: var(--s4); grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); margin-top: var(--s4); }
.owner-dorm {
    background: var(--surface); border: 1px solid var(--line);
    border-radius: var(--r-md); padding: var(--s5); box-shadow: var(--shadow);
}
.owner-dorm__head { display: flex; align-items: flex-start; gap: var(--s3); margin-bottom: var(--s4); }
.owner-dorm__head h3 { margin: 0 0 2px; font-size: var(--fs-md); }
.owner-dorm__head p { margin: 0; font-size: var(--fs-xs); color: var(--muted); }
.owner-dorm__head .pill { margin-left: auto; flex-shrink: 0; }
.owner-dorm__facts {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(90px, 1fr)); gap: var(--s3);
    padding-block: var(--s4); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
}
.owner-dorm__gaps {
    margin-top: var(--s4); padding: var(--s3) var(--s4);
    background: var(--amber-soft); border-radius: var(--r-sm);
    font-size: var(--fs-xs); color: #7A5310;
}
.owner-dorm__actions { display: flex; gap: var(--s2); flex-wrap: wrap; margin-top: var(--s4); }

.owner-help {
    margin-top: var(--s7); padding: var(--s5);
    background: var(--ink); color: #A9C6C4; border-radius: var(--r-md);
}
.owner-help h2 { color: #fff; font-size: var(--fs-lg); margin-bottom: var(--s2); }
.owner-help p { margin: 0; font-size: var(--fs-sm); max-width: 64ch; }
.owner-help a { color: var(--amber); }

/* --- Düzenleme kartları: onay gerektiren / anında yayınlanan --- */
.owner-card {
    background: var(--surface); border: 1px solid var(--line);
    border-radius: var(--r-md); margin-bottom: var(--s5);
}
.owner-card > h2 {
    display: flex; align-items: center; gap: var(--s3); flex-wrap: wrap;
    margin: 0; padding: var(--s4) var(--s5); font-size: var(--fs-md);
    border-bottom: 1px solid var(--line);
}
.owner-card__body { padding: var(--s5); }
.owner-card--gated { border-color: var(--line-2); background: #FBFCFC; }
.owner-card__tag {
    padding: 2px var(--s3); border-radius: var(--r-full);
    font-size: var(--fs-2xs); font-weight: 700; letter-spacing: .04em;
    text-transform: uppercase; background: var(--amber-soft); color: #7A5310;
}
.owner-card__tag--live { background: var(--tour-soft); color: #0A6D63; }

.owner-save {
    display: flex; align-items: center; gap: var(--s4); flex-wrap: wrap;
    padding: var(--s5); background: var(--surface);
    border: 1px solid var(--line); border-radius: var(--r-md);
    position: sticky; bottom: var(--s4); box-shadow: var(--shadow-lg);
}

.price-rows { display: grid; gap: var(--s2); }
.price-row {
    display: grid; grid-template-columns: 1.6fr 0.6fr 1fr 1fr 1.6fr auto;
    gap: var(--s2); align-items: center;
}
.price-row input, .price-row select {
    width: 100%; padding: var(--s2) var(--s3); font: inherit; font-size: var(--fs-sm);
    border: 1px solid var(--line-2); border-radius: var(--r-sm); background: var(--surface);
}
.price-row__vis { display: flex; align-items: center; gap: var(--s2); font-size: var(--fs-xs); white-space: nowrap; }
.price-row__vis input { width: auto; }

.uni-rows { display: grid; gap: var(--s2); max-height: 340px; overflow-y: auto; }
.uni-row { display: grid; grid-template-columns: 2fr 0.7fr 1.6fr; gap: var(--s2); align-items: center; }
.uni-row__check { display: flex; align-items: center; gap: var(--s2); font-size: var(--fs-sm); cursor: pointer; }
.uni-row__check input { width: auto; }
.uni-row input[type="number"], .uni-row input[type="text"] {
    width: 100%; padding: var(--s2) var(--s3); font: inherit; font-size: var(--fs-sm);
    border: 1px solid var(--line-2); border-radius: var(--r-sm);
}

/* --- Fotoğraf yönetimi --- */
.owner-upload {
    padding: var(--s6); text-align: center; background: var(--surface);
    border: 2px dashed var(--line-2); border-radius: var(--r-md);
}
.owner-upload.is-over { border-color: var(--amber); background: var(--amber-soft); }
.owner-upload p { margin: 0 0 var(--s3); color: var(--muted); font-size: var(--fs-sm); }

.owner-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--s4); margin-top: var(--s5); }
.owner-photo {
    background: var(--surface); border: 1px solid var(--line);
    border-radius: var(--r-md); overflow: hidden;
}
.owner-photo.is-cover { border-color: var(--amber); box-shadow: 0 0 0 2px rgba(240,169,59,.2); }
.owner-photo__img { position: relative; aspect-ratio: 4 / 3; background: #E4EAE9; cursor: grab; }
.owner-photo__img img { width: 100%; height: 100%; object-fit: cover; }
.owner-photo__tag {
    position: absolute; top: var(--s2); left: var(--s2);
    padding: 2px var(--s3); border-radius: var(--r-full);
    background: var(--amber); color: #23180A; font-size: var(--fs-2xs); font-weight: 700;
}
.owner-photo__body { padding: var(--s3); display: grid; gap: var(--s2); }
.owner-photo__body input {
    width: 100%; padding: var(--s2); font: inherit; font-size: var(--fs-sm);
    border: 1px solid var(--line-2); border-radius: var(--r-sm);
}
.owner-photo__actions { display: flex; gap: var(--s2); }

/* --- Talepler --- */
.owner-filter { display: flex; gap: var(--s2); flex-wrap: wrap; align-items: center; margin-top: var(--s5); }
.owner-filter select {
    padding: var(--s2) var(--s3); font: inherit; font-size: var(--fs-sm);
    border: 1px solid var(--line-2); border-radius: var(--r-sm); background: var(--surface);
}

.owner-leads { display: grid; gap: var(--s4); margin-top: var(--s5); }
.owner-lead {
    background: var(--surface); border: 1px solid var(--line);
    border-radius: var(--r-md); overflow: hidden;
}
.owner-lead--sent { border-left: 4px solid var(--amber); }
.owner-lead--accepted { border-left: 4px solid var(--tour); }
.owner-lead--declined { opacity: .72; }
.owner-lead__head {
    display: flex; align-items: flex-start; gap: var(--s3);
    padding: var(--s4) var(--s5); border-bottom: 1px solid var(--line);
}
.owner-lead__head h3 { margin: 0 0 2px; font-size: var(--fs-md); }
.owner-lead__head p { margin: 0; font-size: var(--fs-xs); color: var(--muted); }
.owner-lead__head .pill { margin-left: auto; flex-shrink: 0; }
.owner-lead__body { padding: var(--s4) var(--s5); display: flex; gap: var(--s5); flex-wrap: wrap; align-items: flex-start; }
.owner-lead__phone { font-variant-numeric: tabular-nums; font-weight: 800; letter-spacing: -0.01em; }
.owner-lead__facts {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--s2) var(--s5); margin: 0; flex: 1 1 320px;
}
.owner-lead__facts dt { font-size: var(--fs-2xs); text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.owner-lead__facts dd { margin: 0 0 var(--s2); font-size: var(--fs-sm); }
.owner-lead__respond {
    display: grid; grid-template-columns: minmax(140px, 0.6fr) 1fr auto; gap: var(--s2);
    padding: var(--s3) var(--s5) var(--s4); background: #FBFCFC; border-top: 1px solid var(--line);
    align-items: center;
}
.owner-lead__respond select, .owner-lead__respond input {
    width: 100%; padding: var(--s2) var(--s3); font: inherit; font-size: var(--fs-sm);
    border: 1px solid var(--line-2); border-radius: var(--r-sm); background: var(--surface);
}

@media (max-width: 760px) {
    .price-row { grid-template-columns: 1fr 1fr; }
    .uni-row { grid-template-columns: 1fr; }
    .owner-lead__respond { grid-template-columns: 1fr; }
    .owner-save { position: static; }
}

/* =========================================================
   YORUMLAR
   Puan özeti sayfanın sayı dilini sürdürür: büyük ortalama,
   yanında dağılım çubukları. Form varsayılan olarak katlı —
   yorum okumaya gelen kişinin önünü kapatmasın.
   ========================================================= */
.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;
}

.review-flash {
    margin: 0 0 var(--s5); padding: var(--s4) var(--s5);
    border-radius: var(--r-md); font-size: var(--fs-sm); font-weight: 600;
}
.review-flash--ok  { background: var(--tour-soft); color: #0A6D63; }
.review-flash--err { background: var(--danger-soft); color: var(--danger); }

.rsum {
    display: grid; grid-template-columns: auto 1fr; gap: var(--s6);
    align-items: center; padding: var(--s5);
    background: var(--surface); border: 1px solid var(--line);
    border-radius: var(--r-md); margin-bottom: var(--s5);
}
.rsum__score { text-align: center; }
.rsum__big { display: flex; align-items: baseline; justify-content: center; gap: var(--s1); }
.rsum__out { font-size: var(--fs-sm); color: var(--muted); }
.rsum__count { display: block; margin-top: var(--s1); font-size: var(--fs-xs); color: var(--muted); }

.rsum__spread { list-style: none; margin: 0; padding: 0; display: grid; gap: 5px; min-width: 0; }
.rsum__spread li { display: grid; grid-template-columns: 2.4em 1fr 2em; align-items: center; gap: var(--s3); }
.rsum__star { font-size: var(--fs-xs); color: var(--muted); font-variant-numeric: tabular-nums; }
.rsum__bar { height: 7px; border-radius: var(--r-full); background: #E7EDEC; overflow: hidden; }
.rsum__bar i { display: block; height: 100%; background: var(--amber); border-radius: inherit; }
.rsum__n {
    font-size: var(--fs-xs); color: var(--ink); text-align: right;
    font-variant-numeric: tabular-nums; font-weight: 600;
}

.rlist { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s5); }
.rev { padding-bottom: var(--s5); border-bottom: 1px solid var(--line); }
.rev:last-child { border-bottom: 0; padding-bottom: 0; }
.rev__head { display: flex; align-items: center; gap: var(--s3); margin-bottom: var(--s3); }
.rev__avatar {
    flex-shrink: 0; width: 38px; height: 38px; border-radius: var(--r-full);
    display: grid; place-items: center; background: var(--ink); color: #fff;
    font-weight: 700; font-size: var(--fs-md);
}
.rev__who { min-width: 0; display: grid; }
.rev__who strong { font-size: var(--fs-sm); color: var(--ink); }
.rev__when { font-size: var(--fs-xs); color: var(--muted); }
.rev__rating { margin-left: auto; flex-shrink: 0; }
.rev__title { margin: 0 0 var(--s2); font-size: var(--fs-md); }
.rev__body p { margin: 0 0 var(--s2); font-size: var(--fs-sm); line-height: 1.7; }
.rev__body p:last-child { margin-bottom: 0; }

.rev__reply {
    margin-top: var(--s3); padding: var(--s4);
    background: var(--paper); border-left: 3px solid var(--ink-3); border-radius: var(--r-sm);
}
.rev__reply-who {
    display: block; margin-bottom: var(--s1);
    font-size: var(--fs-2xs); font-weight: 700; letter-spacing: .06em;
    text-transform: uppercase; color: var(--ink-3);
}
.rev__reply p { margin: 0; font-size: var(--fs-sm); line-height: 1.65; color: var(--text); }

/* --- Yorum yazma formu --- */
.rform {
    margin-top: var(--s6); background: var(--surface);
    border: 1px solid var(--line); border-radius: var(--r-md);
}
.rform > summary {
    padding: var(--s4) var(--s5); cursor: pointer; list-style: none;
    font-size: var(--fs-sm); font-weight: 700; color: var(--ink);
    display: flex; align-items: center; gap: var(--s3);
}
.rform > summary::-webkit-details-marker { display: none; }
.rform > summary::before {
    content: "+"; flex-shrink: 0;
    width: 24px; height: 24px; border-radius: var(--r-full);
    display: grid; place-items: center;
    background: var(--amber-soft); color: #7A5310; font-size: var(--fs-md); line-height: 1;
}
.rform[open] > summary::before { content: "–"; }
.rform > summary:hover { background: var(--paper); }
.rform__body { padding: 0 var(--s5) var(--s5); border-top: 1px solid var(--line); padding-top: var(--s5); }

.rate { border: 0; margin: 0 0 var(--s5); padding: 0; }
.rate legend {
    padding: 0; margin-bottom: var(--s3);
    font-size: var(--fs-xs); font-weight: 700; color: var(--ink);
}
.rate__opts { display: grid; gap: var(--s2); }
.rate__opt {
    display: flex; align-items: center; gap: var(--s3);
    padding: var(--s2) var(--s3); border: 1px solid var(--line);
    border-radius: var(--r-sm); cursor: pointer; font-size: var(--fs-sm);
}
.rate__opt:hover { border-color: var(--line-2); background: var(--paper); }
.rate__opt input { width: auto; margin: 0; }
.rate__opt:has(input:checked) { border-color: var(--amber); background: var(--amber-soft); }
.rate__opt:has(input:focus-visible) { outline: 2px solid var(--ink-3); outline-offset: 2px; }
.rate__stars { color: var(--amber); letter-spacing: 1px; white-space: nowrap; }
.rate__stars i { color: var(--line-2); font-style: normal; }
.rate__label { color: var(--muted); font-size: var(--fs-xs); }

.rform__foot { display: flex; align-items: center; gap: var(--s4); flex-wrap: wrap; margin-top: var(--s5); }
.rform__foot .help { margin: 0; }

@media (max-width: 640px) {
    .rsum { grid-template-columns: 1fr; gap: var(--s4); }
    .rsum__score { text-align: left; }
    .rsum__big { justify-content: flex-start; }
    .rate__opt { flex-wrap: wrap; }
}

/* Alt bilgi sosyal bağlantıları — panelden doldurulan hesaplar */
.foot__social { display: flex; gap: var(--s4); flex-wrap: wrap; margin-top: var(--s3); }
.foot__social a { font-size: var(--fs-xs); }
