/* =====================================================================
   VEGA — Açık & ferah İtalyan restoran QR menü teması
   Palet: lacivert (#254a65) & krem · Tipografi: Manrope (temiz, kıvrımsız sans)
   Kendi kendine yeten; tüm sınıflar v- ön ekli.
   ===================================================================== */

:root{
    --v-olive:      #254a65;   /* ana renk (lacivert) */
    --v-olive-deep: #1b3549;   /* koyu lacivert (başlık/fiyat) */
    --v-sage:       #5f7f96;   /* açık lacivert vurgu */
    --v-ink:        #2c2b22;   /* metin */
    --v-muted:      #857f6e;   /* ikincil metin */
    --v-cream:      #f5f1e6;   /* kağıt kremi */
    --v-cream-2:    #efe9d9;   /* koyu krem */
    --v-line:       #d9d3c1;   /* ince çizgi */
    --v-line-soft:  #e7e2d3;
    --v-white:      #ffffff;
    --v-page:       #ffffff;   /* açılış: bembeyaz */
    --v-backdrop:   #e9e6da;   /* iç sayfa zemini (kağıdın altındaki) */
    --v-radius:     14px;
    /* Temiz, kıvrımsız, okunaklı tek sans aile (eski serif kaldırıldı) */
    --serif: 'Manrope', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
    --sans:  'Manrope', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
}

*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{
    font-family:var(--sans);
    color:var(--v-ink);
    background: #f3f3f3;
    -webkit-font-smoothing:antialiased;
    line-height:1.55;
}
body.v-inner{ background:var(--v-backdrop); }
img{ max-width:100%; }
a{ color:inherit; text-decoration:none; }
.v-main{ min-height:60vh; }

/* Ortak buton */
.v-btn{
    display:inline-flex; align-items:center; gap:9px;
    background:var(--v-olive); color:#fff; border:0; cursor:pointer;
    font-family:var(--sans); font-weight:600; font-size:14px; letter-spacing:.02em;
    padding:12px 22px; border-radius:999px; transition:.2s;
}
.v-btn:hover{ background:var(--v-olive-deep); color:#fff; transform:translateY(-1px); }
.v-btn.w-100{ width:100%; }
.justify-content-center{ justify-content:center; }
.v-accent{ color:var(--v-olive); }

/* =========================================================
   HEADER (yalnız iç sayfalar) — Geri + logo + dil
   ========================================================= */
.v-top{
    position:sticky; top:0; z-index:40;
    background:rgba(255,255,255,.92); backdrop-filter:blur(8px);
    border-bottom:1px solid var(--v-line-soft);
}
.v-top-inner{
    max-width:1000px; margin:0 auto; padding:12px 18px;
    display:flex; align-items:center; justify-content:space-between; gap:14px;
}
.v-back{
    display:inline-flex; align-items:center; gap:8px;
    font-weight:600; font-size:14px; color:var(--v-olive-deep);
    padding:8px 14px; border:1px solid var(--v-line); border-radius:999px;
    background:#fff; transition:.2s;
}
.v-back:hover{ background:var(--v-olive); color:#fff; border-color:var(--v-olive); }
.v-back i{ transition:.2s; }
.v-back:hover i{ transform:translateX(-3px); }
.v-top-logo img{ max-height:42px; width:auto; display:block; }
.v-top-lang{ min-width:70px; display:flex; justify-content:flex-end; }

/* =========================================================
   AÇILIŞ (beyaz) — logo · dil · kare kutular · sabit bilgi
   ========================================================= */
.v-land{
    max-width:1000px; margin:0 auto; padding:46px 20px 60px;
    display:flex; flex-direction:column; align-items:center; text-align:center;
}
.v-land-brand{ margin-bottom:24px; }
.v-land-logo{ max-height:210px; width:auto; margin:0 auto; display:block; }
.v-land-heading{ font-family:var(--serif); font-weight:600; font-size:38px; margin:18px 0 6px; color:var(--v-olive-deep); }
.v-land-slogan{
    font-family:var(--sans); font-weight:500; font-size:16px;
    color:var(--v-muted); margin:14px 0 0; max-width:520px;
}
.v-land-lang{ margin:6px 0 34px; }

/* Kategori kutuları — dikey geniş dikdörtgenler (resimsiz, çift dilli) */
.v-cat-grid{
    width:100%; max-width:560px; margin:0 auto;
    display:flex; flex-direction:column; gap:14px;
}
.v-cat-box{
    position:relative;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:22px 18px;
    border: 1px solid #c1cad9;
    border-radius: 3px;
    background:#fff;
    transition:.2s;
}
.v-cat-box:hover{border-color:var(--v-olive);background: #ffffff;box-shadow:0 6px 18px rgba(37,74,101,.14);}
.v-cat-name{
    font-family:var(--sans); font-weight:700; font-size:17px; letter-spacing:.06em;
    text-transform:uppercase; color:var(--v-ink); line-height:1.2;
}
.v-cat-sub{
    font-family:var(--sans); font-weight:500; font-size:11.5px; letter-spacing:.16em;
    text-transform:uppercase; color:var(--v-muted); margin-top:6px;
}
.v-land-empty{ padding:60px 0; color:var(--v-muted); font-family:var(--serif); font-size:22px; }

/* Sabit bilgi bloğu (wifi/iban/kurallar) */
.v-land-info{ width:100%; margin-top:52px; }
.v-info-divider{ display:flex; align-items:center; justify-content:center; gap:14px; margin-bottom:30px; }
.v-info-divider .ln{ height:1px; width:70px; background:var(--v-line); }
.v-info-divider i{ color:var(--v-sage); font-size:15px; }
.v-info-grid{
    display:grid; gap:16px; text-align:left;
    grid-template-columns:repeat(auto-fit, minmax(220px,1fr));
}
.v-info-card{
    border:1px solid var(--v-line-soft); border-radius:var(--v-radius);
    background:var(--v-cream); padding:20px 20px 22px;
}
.v-info-ico{
    width:42px; height:42px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:#fff; color:var(--v-olive); border:1px solid var(--v-line);
    font-size:17px; margin-bottom:12px;
}
.v-info-ttl{ font-family:var(--serif); font-weight:700; font-size:19px; color:var(--v-olive-deep); margin-bottom:8px; }
.v-info-line{ font-size:14px; margin-top:5px; color:var(--v-ink); }
.v-info-line .k{ display:inline-block; min-width:52px; color:var(--v-muted); }
.v-info-line .val{ font-weight:600; }
.v-info-line .v-iban{ font-family:ui-monospace, Menlo, monospace; letter-spacing:.04em; font-weight:600; }
.v-info-rules{ font-size:14px; color:var(--v-ink); line-height:1.7; }

/* =========================================================
   PDF / BASILI MENÜ GÖRÜNÜMÜ (iç kategori)
   ========================================================= */
.v-menu-page{
    max-width:820px; margin:0 auto; padding:26px 16px 70px;
}
/* Kağıt: krem zemin + BEYAZ ÇERÇEVE ÇİZGİLERİ (kenarlarda) */
.v-paper{
    position:relative;
    background:var(--v-cream);
    border-radius:6px;
    padding:40px 34px 46px;
    box-shadow:0 10px 40px rgba(37,74,101,.12);
    /* beyaz dış hat + zeytin ince iç çizgi (kenar çerçevesi) */
    outline:8px solid #fff;
    outline-offset:-8px;
}
.v-paper::before{
    content:""; position:absolute; inset:16px;
    border:1px solid var(--v-line); border-radius:3px; pointer-events:none;
}
.v-paper > *{ position:relative; }
.v-paper-narrow{ max-width:640px; margin:0 auto; }

.v-paper-head{ text-align:center; padding:6px 0 8px; }
.v-paper-logo{ display:block; max-height:150px; width:auto; margin:0 auto 14px; }
.v-paper-eyebrow{
    font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:.32em;
    text-transform:uppercase; color:var(--v-sage);
}
.v-paper-title{
    font-family:var(--sans); font-weight:800; font-size:28px; line-height:1.15;
    letter-spacing:-.01em; color:var(--v-olive-deep); margin:8px 0 0;
}
.v-crest{ display:flex; align-items:center; justify-content:center; gap:14px; margin:18px 0 6px; }
.v-crest .ln{ height:1px; width:60px; background:var(--v-line); }
.v-crest i{ color:var(--v-sage); font-size:16px; }

/* Alt kategori bölümü */
.v-sub{ padding:12px 6px; }
.v-sub-title{
    font-family:var(--sans); font-weight:700; font-size:15px; letter-spacing:.14em;
    color:var(--v-olive); text-align:center; margin:6px 0 16px;
    text-transform:uppercase;
}

/* Alt kategoriler arası dekoratif ayraç */
.v-divider{ display:flex; align-items:center; justify-content:center; gap:16px; margin:30px 0 6px; }
.v-divider .ln{ height:1px; flex:1; max-width:230px; background:linear-gradient(90deg, transparent, var(--v-line), transparent); }
.v-divider .orn{
    width:34px; height:34px; border-radius:50%; flex:none;
    display:flex; align-items:center; justify-content:center;
    border:1px solid var(--v-line); background:#fff; color:var(--v-sage); font-size:14px;
}

/* Ürün satırı (RESİMSİZ) */
.v-items{ display:flex; flex-direction:column; }
.v-item{ padding:11px 4px; }
.v-item + .v-item{ border-top:1px dashed var(--v-line-soft); }
.v-item-head{ display:flex; align-items:baseline; gap:8px; }
.v-item-name{
    font-family:var(--sans); font-weight:600; font-size:12px; color:var(--v-ink);
    flex:none; max-width:75%; letter-spacing:.005em;
}
.v-leader{ flex:1; border-bottom:1.5px dotted var(--v-line); transform:translateY(-3px); min-width:16px; }
.v-item-price{
    flex:none; font-family:var(--sans); font-weight:700; font-size:12px;
    color:var(--v-olive-deep); white-space:nowrap;
}
.v-item-old{ margin-left:6px; font-size:11px; color:var(--v-muted); text-decoration:line-through; font-weight:500; }
.v-item-ing{ font-size:10px; color:var(--v-muted); margin-top:3px; line-height:1.5; max-width:90%; }
.v-item-meta{ display:flex; flex-wrap:wrap; gap:7px 11px; margin-top:7px; }
.v-alg{ display:inline-flex; align-items:center; gap:5px; font-size:11px; color:var(--v-muted); }
.v-alg img{ width:13px; height:13px; object-fit:contain; opacity:.85; }
.v-time{ display:inline-flex; align-items:center; gap:5px; font-size:11px; color:var(--v-sage); }
.v-cal{ display:inline-flex; align-items:center; gap:5px; font-size:11px; color:var(--v-olive-deep); }

.v-empty{ text-align:center; padding:50px 0; color:var(--v-muted); font-family:var(--serif); font-size:22px; }
.v-empty i{ display:block; font-size:34px; margin-bottom:14px; color:var(--v-sage); }
.v-paper-foot{ text-align:center; margin-top:26px; color:var(--v-line); font-size:15px; }

/* =========================================================
   ÜRÜN / SAYFA DETAY · FORM · İLETİŞİM
   ========================================================= */
.v-detail{ max-width:520px; margin:0 auto; }
.v-detail-price{ text-align:center; font-family:var(--serif); font-weight:700; font-size:30px; color:var(--v-olive-deep); margin-bottom:20px; }
.v-detail-price del{ font-size:19px; color:var(--v-muted); margin-left:8px; }
.v-detail-block{ margin-bottom:18px; }
.v-detail-block .lbl{
    display:block; font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:.2em;
    text-transform:uppercase; color:var(--v-sage); margin-bottom:6px;
}
.v-detail-block p{ margin:0; color:var(--v-ink); }
.v-like{ display:flex; gap:10px; justify-content:center; margin-top:24px; }
.v-like button{
    display:inline-flex; align-items:center; gap:7px; cursor:pointer;
    background:#fff; border:1px solid var(--v-line); border-radius:999px;
    padding:9px 18px; font-size:13px; font-weight:600; color:var(--v-olive-deep); transition:.2s;
}
.v-like button:hover{ background:var(--v-olive); color:#fff; border-color:var(--v-olive); }

.v-prose{ font-size:16px; line-height:1.85; color:var(--v-ink); }
.v-prose img{ border-radius:8px; }
.v-prose-img{ margin:0 0 24px; border-radius:8px; overflow:hidden; border:1px solid var(--v-line); }
.v-prose-img img{ width:100%; display:block; }

.v-form label{ display:block; font-size:13px; font-weight:600; color:var(--v-olive-deep); margin-bottom:6px; }
.v-form .form-control{
    width:100%; padding:11px 13px; border:1px solid var(--v-line); border-radius:9px;
    font-family:var(--sans); font-size:14px; background:#fff; color:var(--v-ink);
}
.v-form .form-control:focus{ outline:0; border-color:var(--v-sage); box-shadow:0 0 0 3px rgba(37,74,101,.18); }
.v-form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.v-form-grid .full{ grid-column:1/-1; }

.v-contact-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:8px 0 26px; }
.v-contact-card{ text-align:center; background:#fff; border:1px solid var(--v-line); border-radius:var(--v-radius); padding:22px 14px; }
.v-contact-card i{ font-size:24px; color:var(--v-olive); }
.v-contact-card h4{ font-family:var(--serif); font-size:20px; margin:10px 0 6px; color:var(--v-olive-deep); }
.v-contact-card p{ margin:0; font-size:14px; color:var(--v-muted); }
.v-contact-card a{ display:block; color:var(--v-ink); }
.v-map{ height:360px; border:1px solid var(--v-line); border-radius:var(--v-radius); overflow:hidden; }

/* =========================================================
   FOOTER
   ========================================================= */
.v-footer{ background:#fff; border-top:1px solid var(--v-line-soft); margin-top:40px; }
body.v-inner .v-footer{ background:var(--v-cream); }
.v-footer-inner{ max-width:1000px; margin:0 auto; padding:36px 20px 30px; text-align:center; }
.v-footer-logo img{ max-height:56px; width:auto; margin-bottom:16px; }
.v-footer-contact{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px 22px; font-size:14px; color:var(--v-muted); margin-bottom:16px; }
.v-footer-contact i{ color:var(--v-olive); margin-right:5px; }
.v-footer-social{ display:flex; justify-content:center; gap:12px; margin-bottom:18px; }
.v-footer-social a{ width:38px; height:38px; border-radius:50%; border:1px solid var(--v-line); display:inline-flex; align-items:center; justify-content:center; background:#fff; transition:.2s; }
.v-footer-social a:hover{ border-color:var(--v-sage); transform:translateY(-2px); }
.v-footer-social img{ width:17px; height:17px; }
.v-footer-copy{ font-size:12.5px; color:var(--v-muted); }
.v-footer-copy a{ color:var(--v-olive); font-weight:600; }

/* =========================================================
   SABİT ALT ÇUBUK (hızlı işlemler)
   ========================================================= */
.v-bottombar{
    position:fixed; left:0; right:0; bottom:0; z-index:50;
    background:rgba(255,255,255,.96); backdrop-filter:blur(10px);
    border-top:1px solid var(--v-line);
}
.v-bb-inner{ max-width:560px; margin:0 auto; display:flex; }
.v-bb-item{
    flex:1; display:flex; flex-direction:column; align-items:center; gap:3px;
    background:none; border:0; cursor:pointer; padding:9px 4px 8px;
    color:var(--v-muted); font-family:var(--sans); font-size:10.5px; font-weight:600; transition:.15s;
}
.v-bb-item i{ font-size:17px; color:var(--v-olive); }
.v-bb-item:hover{ color:var(--v-olive-deep); }
.v-bb-item:hover i{ transform:translateY(-2px); }
/* alt çubuk site içeriğini kapamasın */
.v-main{ padding-bottom:64px; }

/* Modal içi bilgi satırları (wifi/iban) */
.v-info-row{ display:flex; justify-content:space-between; align-items:center; gap:12px; padding:11px 0; border-bottom:1px solid var(--v-line-soft); }
.v-info-row:last-child{ border-bottom:0; }
.v-info-lbl{ font-size:13px; color:var(--v-muted); font-weight:600; }
.v-info-val{ display:flex; align-items:center; gap:8px; font-weight:600; }
.v-info-val.v-iban span{ font-family:ui-monospace, Menlo, monospace; letter-spacing:.04em; }
.v-copy-btn{ background:none; border:1px solid var(--v-line); border-radius:7px; width:30px; height:30px; cursor:pointer; color:var(--v-olive); }
.modal-content{ border:0; border-radius:16px; }
.modal-header{ border-bottom:1px solid var(--v-line-soft); }
.modal-title{ font-family:var(--serif); font-weight:700; color:var(--v-olive-deep); }

/* Toast */
.v-toast{
    position:fixed; left:50%; bottom:82px; transform:translateX(-50%) translateY(10px);
    background:var(--v-olive-deep); color:#fff; padding:10px 18px; border-radius:999px;
    font-size:13px; font-weight:600; z-index:9999; opacity:0; transition:.3s; pointer-events:none;
}
.v-toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }

/* =========================================================
   DİL SEÇİCİ (cmp_language_dropdown / htl-translate partial) — açık tema uyumu
   ========================================================= */
.v-land-lang .htl-lang-current,
.v-top-lang .htl-lang-current{
    border:1px solid var(--v-line); background:#fff; border-radius:999px;
    padding:7px 14px; color:var(--v-olive-deep); font-weight:600; font-size:13px; cursor:pointer;
}
.htl-lang-menu a span{ color:var(--v-ink) !important; }

/* =========================================================
   İÇ KATEGORİ — PINCH-ZOOM APP-SHELL
   Header üstte sabit, alt çubuk altta sabit; SADECE menü alanı
   (viewport) parmakla büyür/kaydırılır. Native sayfa zoom'u bu
   alanda JS ile devre dışı bırakılır.
   ========================================================= */
body.v-catpage{ overflow:hidden; }
body.v-catpage .v-top{ position:fixed; top:0; left:0; right:0; z-index:100; }
body.v-catpage .v-top-logo{ display:none; }   /* logo paper içinde başlığın üstünde */
body.v-catpage .v-footer{ display:none; }
body.v-catpage .v-main{ padding-bottom:0; }

body.v-catpage .v-zoom-vp{
    position:fixed; left:0; right:0; top:64px; bottom:58px; /* JS gerçek yükseklikle günceller */
    overflow:auto; -webkit-overflow-scrolling:touch; overscroll-behavior:contain;
    touch-action:pan-x pan-y;                    /* tek parmak native scroll; pinch JS'te */
    background:var(--v-backdrop); max-width:none; margin:0; padding:0;
}
body.v-catpage .v-zoom-sizer{ position:relative; }         /* JS: ölçeklenmiş boyut (scroll alanı) */
body.v-catpage .v-zoom{
    position:absolute; top:0; left:0;
    transform-origin:0 0; will-change:transform;
    padding:18px 16px 36px;                                 /* kağıda yanlardan boşluk */
}
body.v-catpage .v-zoom .v-paper{ max-width:760px; margin:0 auto; }

.v-zoom-hint{
    position:fixed; left:50%; transform:translateX(-50%);
    bottom:calc(58px + 14px); z-index:90;
    background:rgba(27,53,73,.94); color:#fff; font-size:12px; font-weight:600;
    padding:9px 16px; border-radius:999px; pointer-events:none; white-space:nowrap;
    box-shadow:0 6px 18px rgba(20,35,50,.25); transition:opacity .45s, transform .45s;
}
.v-zoom-hint i{ margin-right:5px; }
.v-zoom-hint.gone{ opacity:0; transform:translateX(-50%) translateY(10px); }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:640px){
    .v-land{ padding:34px 16px 50px; }
    .v-land-logo{ max-height:190px; }
    .v-paper-logo{ max-height:130px; }
    .v-cat-grid{ gap:12px; }
    .v-cat-box{padding: 4px 8px;}
    .v-cat-name{ font-size:16px; }
    .v-paper{ padding:30px 18px 34px; outline-width:6px; outline-offset:-6px; }
    .v-paper::before{ inset:11px; }
    .v-paper-title{ font-size:24px; }
    .v-sub-title{ font-size:14px; }
    .v-item-name{ font-size:12px; max-width:68%; }
    .v-item-price{ font-size:12px; }
    .v-item-ing{ font-size:10px; }
    .v-form-grid{ grid-template-columns:1fr; }
    .v-contact-grid{ grid-template-columns:1fr; }
}
