/* =========================================================================
   Formena ürün detay sayfası
   -------------------------------------------------------------------------
   Demo styles.css'ten türetildi. Site kabuğu (header/footer/menü) canlı
   şablondan geldiği için buraya YALNIZCA sayfa içi bölümler alındı:
   hero, örnek menü, açıklama, yorumlar, iş birlikleri.
   Tüm sınıflar `fm-` önekli — mevcut tema CSS'i ile çakışmaz.
   ========================================================================= */

.fm-pd { --fm-yesil:#08763e; --fm-koyu:#143042; --fm-gri:#586a72; --fm-cizgi:#e1e9e4; }

/* ── Tipografi ──
   Sitenin kuralı: arayüz öğeleri (başlık, buton, sekme, etiket) Quicksand,
   uzun metinler Lato. Bu bölümdeki bileşenler gövdeden Lato miras alıyordu ve
   hemen yanlarındaki Quicksand başlıklarla iki farklı font gibi görünüyordu.
   Kök Quicksand'e alınır, uzun metinler aşağıda Lato'ya geri döndürülür.
   Yalnızca YÜKLÜ ağırlıklar kullanılır: Quicksand 400-500-600-700. */
.fm-pd, .fm-modal { font-family:"Quicksand","Lato",sans-serif; }

.fm-pd .fm-lead,
.fm-description-copy p, .fm-description-copy li,
.fm-review-card p,
.fm-portion-note p,
.fm-menu-note p,
.fm-advice p,
.fm-step-body p,
.fm-modal-body p,
.fm-modal .fm-modal-inner > p { font-family:"Lato",sans-serif; }
.fm-pd *, .fm-pd *::before, .fm-pd *::after { box-sizing:border-box; }
.fm-pd img { max-width:100%; }
.fm-pd button { font:inherit; cursor:pointer; }

.fm-shell { width:min(1180px, calc(100% - 40px)); margin-inline:auto; }

/* ── Hero ── */
.fm-product-hero { width:min(1180px, calc(100% - 40px)); margin-inline:auto; display:grid;
    grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr); gap:48px; align-items:start; padding:8px 0 56px; }
.fm-gallery-main { overflow:hidden; border:1px solid var(--fm-cizgi); border-radius:20px; background:#fff; }
/* height:auto ŞART. Şablon <img>'e width/height özniteliği basar
   (img_dims_attrs, CLS için); oradaki height bir sunum ipucudur ve CSS'te
   ezilmezse yükseklik sabitlenir, aspect-ratio yok sayılır — görsel dikeyde
   uzar. aspect-ratio yalnızca EKSİK olan boyutu doldurur. */
.fm-gallery-main img { display:block; width:100%; height:auto; aspect-ratio:1/1; object-fit:cover; }
.fm-gallery-meta { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-top:13px; }
.fm-thumbnails { display:flex; gap:8px; flex-wrap:wrap; }
.fm-thumbnail { width:54px; height:54px; padding:3px; overflow:hidden; border:1px solid #d8e5dd;
    border-radius:10px; background:#fff; }
.fm-thumbnail.is-active { border:2px solid var(--fm-yesil); }
.fm-thumbnail img { width:100%; height:100%; border-radius:7px; object-fit:cover; }

.fm-summary { padding-top:6px; }
.fm-summary h1 { max-width:620px; margin:0; color:var(--fm-koyu); font-size:clamp(30px,3.2vw,44px);
    font-weight:700; line-height:1.06; letter-spacing:-.04em; }
.fm-lead { max-width:610px; margin:16px 0 0; color:var(--fm-gri); font-size:16px; line-height:1.65; }

.fm-refund { display:flex; align-items:center; gap:12px; margin-top:16px; padding:13px 15px;
    border:1.5px solid #19a85b; border-radius:12px; color:var(--fm-yesil); background:#f8fdf9;
    text-decoration:none; }
.fm-refund:hover { color:#055f31; text-decoration:none; }
.fm-refund > i { font-size:22px; }
.fm-refund span { display:flex; flex:1; flex-direction:column; line-height:1.25; }
.fm-refund strong { font-size:13px; }
.fm-refund small { margin-top:2px; color:#5b6c64; font-size:11.5px; text-decoration:underline; }

.fm-benefits { display:grid; grid-template-columns:1fr 1fr; gap:8px 24px; margin:20px 0 0; padding:0;
    border:0; list-style:none; }
.fm-benefits li { display:flex; align-items:center; gap:10px; min-height:38px; color:#435a51;
    font-size:12px; font-weight:700; }
.fm-benefits i { color:var(--fm-yesil); font-size:19px; }

.fm-proof { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:13px; }
.fm-proof > div { display:flex; align-items:center; gap:10px; min-width:0; color:var(--fm-koyu); }
.fm-proof i { width:25px; flex:0 0 25px; color:var(--fm-yesil); font-size:20px; text-align:center; }
.fm-proof p { display:flex; min-width:0; flex-direction:column; margin:0; line-height:1.2; }
.fm-proof strong { color:var(--fm-yesil); font-size:14px; }
.fm-proof span { margin-top:2px; color:#546b60; font-size:11.5px; font-weight:500; }

/* ── Satın alma bloğu ── */
.fm-purchase { margin-top:18px; padding:18px 0 0; border-top:1px solid #dce8e1; }
.fm-purchase-head strong { color:var(--fm-koyu); font-size:13px; font-weight:700; }
.fm-city-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:12px; }
.fm-city-btn { min-height:54px; display:flex; align-items:center; justify-content:center;
    flex-direction:column; gap:3px; border:1px solid #ccdcd2; border-radius:9px; color:var(--fm-koyu);
    background:#fff; }
.fm-city-btn strong { font-size:12px; font-weight:700; }
.fm-city-btn span { color:#6b7a72; font-size:11px; font-weight:500; }
.fm-city-btn.is-selected { border:2px solid var(--fm-yesil); color:var(--fm-yesil); background:#f2faf5; }
.fm-city-btn.is-selected span { color:var(--fm-yesil); }
/* Bu üründe fiyatlandırması olmayan şehir seçilemez (checkout ile aynı kriter). */
.fm-city-btn.is-disabled { opacity:.42; cursor:not-allowed; }

.fm-duration-picker { margin-top:17px; }
.fm-duration-head { display:flex; align-items:baseline; gap:12px; margin-bottom:10px; }
.fm-duration-head strong { color:var(--fm-koyu); font-size:13px; font-weight:700; }
.fm-duration-head span { color:#6b7a72; font-size:11px; font-weight:500; }
.fm-day-tabs { display:grid; grid-template-columns:repeat(auto-fit,minmax(0,1fr)); gap:7px; }
.fm-day-tab { min-height:42px; min-width:0; padding:0 8px; border:1px solid #cfddd4; border-radius:9px;
    color:#344b40; background:#fff; font-size:12px; font-weight:700; }
.fm-day-tab.is-active { border-color:var(--fm-yesil); color:#fff; background:var(--fm-yesil); }
.fm-day-tab.is-disabled { opacity:.4; cursor:not-allowed; }
/* Sabit süreli pakette "Özel gün" butonu hiç basılmaz; grid boşluk bırakmasın. */
.fm-day-tab[hidden] { display:none; }
.fm-day-tab--popular { display:flex; align-items:center; justify-content:center; flex-direction:column; gap:1px; }
.fm-popular-badge { display:block; color:var(--fm-yesil); font-size:9px; font-weight:700; line-height:1.05;
    letter-spacing:.035em; text-transform:uppercase; white-space:nowrap; }
.fm-day-tab--popular.is-active .fm-popular-badge { color:#fff; opacity:.82; }

.fm-custom-days { width:min(100%,300px); display:grid; grid-template-columns:minmax(0,1fr) auto;
    gap:8px; margin-top:10px; }
.fm-custom-days[hidden] { display:none; }
.fm-custom-days label { grid-column:1/-1; color:#52675d; font-size:11px; font-weight:500; }
.fm-custom-days input { width:100%; min-height:40px; padding:0 12px; border:1px solid #cbdcd2;
    border-radius:9px; color:var(--fm-koyu); background:#fff; font-size:12px; font-weight:700; }
.fm-custom-days button { min-height:40px; padding:0 15px; border:0; border-radius:9px; color:#fff;
    background:var(--fm-yesil); font-size:11.5px; font-weight:700; }

/* Gün/şehir kriteri ihlalinde gösterilen uyarı — checkout ile aynı metin mantığı. */
.fm-day-warning { margin-top:9px; padding:10px 12px; border:1px solid #f0d4ce; border-radius:9px;
    background:#fdf3f1; color:#b3401f; font-size:12px; line-height:1.55; }
.fm-day-warning[hidden] { display:none; }

.fm-bonus { display:grid; grid-template-columns:34px minmax(0,1fr); gap:11px; align-items:start;
    margin-top:12px; padding:12px 13px; border:1px solid #ead9a7; border-radius:11px; color:#5e4a16;
    background:#fffaf0; }
.fm-bonus[hidden] { display:none; }
.fm-bonus-icon { width:34px; height:34px; display:grid; place-items:center; border-radius:9px;
    color:#a76a00; background:#fff0c2; font-size:14px; }
.fm-bonus strong { display:block; color:#654b08; font-size:13.5px; font-weight:700; line-height:1.35; }
.fm-bonus span { display:block; margin-top:5px; color:#5f4b17; font-size:12px; line-height:1.5; }
.fm-bonus[data-state="unlocked"] { border-color:#b8dfc7; color:var(--fm-yesil); background:#f2faf5; }
.fm-bonus[data-state="unlocked"] .fm-bonus-icon { color:var(--fm-yesil); background:#dff4e7; }
.fm-bonus[data-state="unlocked"] strong { color:var(--fm-yesil); }
.fm-bonus[data-state="unlocked"] span { color:#365f4b; }

.fm-price-row { display:flex; align-items:center; justify-content:space-between; gap:18px;
    margin-top:16px; padding:14px; border:1px solid #dbeae1; border-radius:12px; background:#f2f8f4; }
.fm-price-row > div:first-child { display:flex; flex-direction:column; }
.fm-price-label { margin-bottom:4px; color:#6b7a72; font-size:11px; font-weight:500; }
.fm-price-row .fm-unit-price { color:var(--fm-koyu); font-size:28px; font-weight:700; line-height:1; }
.fm-price-row .fm-total-price { margin-top:6px; color:var(--fm-yesil); font-size:11.5px; font-weight:700; }
.fm-package-note { display:grid; grid-template-columns:auto auto; gap:1px 9px; color:#64756d;
    font-size:11px; text-align:right; }
.fm-package-note strong { color:var(--fm-koyu); font-size:12px; }
.fm-package-note small { grid-column:1/-1; }
.fm-package-note small[hidden] { display:none; }

.fm-buy { position:relative; overflow:hidden; min-height:62px; width:100%; display:flex;
    align-items:center; justify-content:center; gap:5px; margin-top:15px; border:0; border-radius:10px;
    color:#fff; background:var(--fm-yesil); box-shadow:0 9px 20px rgba(8,118,62,.16);
    font-size:14px; font-weight:700; text-decoration:none; }
.fm-buy:hover { color:#fff; background:#075c33; text-decoration:none; }
.fm-buy[disabled] { opacity:.55; cursor:not-allowed; box-shadow:none; }
.fm-buy .fm-btn-price { margin-left:5px; padding:5px 9px; border-radius:999px;
    background:rgba(255,255,255,.16); font-size:12px; white-space:nowrap; }
.fm-buy.is-loading { pointer-events:none; opacity:.75; }

.fm-purchase-trust { display:flex; align-items:center; justify-content:center; gap:11px; margin-top:10px;
    color:#687a71; font-size:11px; font-weight:500; }
.fm-purchase-trust span { display:inline-flex; align-items:center; gap:5px; }
.fm-purchase-trust i { color:var(--fm-yesil); }

/* ── Bölüm başlıkları ── */
.fm-section { padding:60px 0; background:#fff; }
.fm-section + .fm-section { border-top:1px solid #e6eee9; }
.fm-section-head { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:28px; }
.fm-section-kicker { display:inline-flex; align-items:center; gap:8px; margin:0 0 8px; color:var(--fm-yesil);
    font-size:12px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.fm-section-kicker::before { width:24px; height:2px; background:#14a45d; content:""; }
.fm-section-head h2 { margin:0; color:var(--fm-koyu); font-size:clamp(24px,2.6vw,34px); font-weight:700;
    letter-spacing:-.03em; }
.fm-section-head p { max-width:620px; margin:8px 0 0; color:#61736a; font-size:13px; }

/* Ortalanmış başlık varyantı ("Nasıl Çalışır?" bölümü). */
.fm-section-head--orta { justify-content:center; text-align:center; }
.fm-section-head--orta > div { max-width:660px; }
.fm-section-head--orta p { margin-inline:auto; }

/* Çizgi yerine hap rozet — ortalanmış başlıkla birlikte kullanılır. */
.fm-section-kicker--rozet { padding:5px 13px; border-radius:999px; color:#15803d;
    background:#eaf7ef; letter-spacing:.09em; }
.fm-section-kicker--rozet::before { display:none; }

/* ── Örnek menü ── */
.fm-menu-selector { width:min(100%,390px); display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px; margin-bottom:6px; }
.fm-menu-option { min-height:45px; padding:0 18px; border:1px solid #cadbd1; border-radius:10px;
    color:#344b40; background:#fff; font-size:12px; font-weight:700; }
.fm-menu-option.is-active { border-color:var(--fm-yesil); color:#fff; background:var(--fm-yesil); }

.fm-meal-tabs { display:grid; grid-template-columns:repeat(auto-fit,minmax(0,1fr)); gap:18px;
    margin-top:17px; border-bottom:1px solid #dce8e1; }
.fm-meal-tab { display:flex; align-items:center; justify-content:center; gap:8px; min-height:47px;
    min-width:0; padding:0 4px; border:0; border-bottom:2px solid transparent; color:#52675d;
    background:transparent; font-size:12px; font-weight:700; }
.fm-meal-tab i { color:var(--fm-yesil); font-size:15px; }
.fm-meal-tab.is-active { border-bottom-color:var(--fm-yesil); color:var(--fm-yesil); }

.fm-meal-view { display:grid; grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr);
    grid-template-rows:auto 1fr; gap:18px 20px; margin-top:20px; }
.fm-meal-gallery { min-width:0; grid-column:1; grid-row:1/3; }
.fm-meal-main-wrap { position:relative; overflow:hidden; aspect-ratio:4/3; border-radius:14px;
    background:#edf5f0; cursor:grab; touch-action:pan-y; }
.fm-meal-main-wrap:active { cursor:grabbing; }
.fm-meal-main-wrap img { width:100%; height:100%; object-fit:cover; pointer-events:none;
    user-select:none; transition:transform .2s ease, opacity .2s ease; }
.fm-meal-main-wrap.is-dragging img { transition:none; }
.fm-meal-arrow { position:absolute; top:50%; z-index:2; width:40px; height:40px; display:grid;
    place-items:center; border:1px solid #c9dacf; border-radius:11px; color:var(--fm-yesil);
    background:rgba(255,255,255,.94); box-shadow:0 7px 20px rgba(20,48,66,.13); transform:translateY(-50%); }
.fm-meal-arrow:hover { border-color:var(--fm-yesil); background:#fff; }
.fm-meal-arrow[disabled] { color:#a6b3ad; background:rgba(245,247,246,.92); cursor:default; opacity:.7; }
.fm-meal-arrow--prev { left:12px; }
.fm-meal-arrow--next { right:12px; }

.fm-meal-products { min-width:0; grid-column:2; grid-row:2; padding-left:28px; }
.fm-meal-product-head { display:flex; align-items:center; justify-content:space-between; gap:12px;
    margin-bottom:8px; }
.fm-meal-product-head strong { color:var(--fm-koyu); font-size:12px; font-weight:700; }
.fm-meal-product-head span { display:block; color:#7a8982; font-size:11px; }
.fm-meal-thumbs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.fm-meal-thumb { min-width:0; min-height:138px; display:flex; flex-direction:column; align-items:stretch;
    gap:7px; overflow:hidden; padding:8px; border:1px solid #d7e4dc; border-radius:11px; color:#314d40;
    background:#fff; text-align:left; }
.fm-meal-thumb.is-active { border-color:var(--fm-yesil); box-shadow:inset 0 0 0 1px var(--fm-yesil); }
.fm-meal-thumb img { width:100%; height:88px; border-radius:7px; object-fit:cover; pointer-events:none; }
.fm-meal-thumb span { min-height:34px; display:-webkit-box; overflow:hidden; color:#213d30; font-size:11px;
    font-weight:600; line-height:1.4; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.fm-meal-thumb.is-active span { color:var(--fm-yesil); }
/* ── Görseli olmayan ürün ──
   <img> basılmaz; yerine öğün ikonlu, tasarlanmış bir alan gösterilir.
   Boyutlar görselli hâlle aynı tutulur ki ürün/öğün değişince düzen kaymasın. */
.fm-meal-thumb--gorselsiz { background:#f4f9f6; }
.fm-meal-thumb--gorselsiz span { color:#2f5745; }
/* `.fm-meal-thumb span` (0-1-1) bu span'i de yakalıyor ve -webkit-box /
   font-size:11px / line-clamp uyguluyordu; ikon minicik ve sol üstte kalıyordu.
   Özgüllük yükseltilip miras alınan metin kuralları sıfırlanır. */
.fm-meal-thumb .fm-meal-thumb-ikon {
    width:100%; height:88px; min-height:0; display:grid; place-items:center;
    overflow:visible; border-radius:7px;
    background:linear-gradient(140deg,#eaf5ef 0%,#dcefe4 100%);
    color:#3f7f5e; font-size:30px; -webkit-line-clamp:none; }
.fm-meal-thumb .fm-meal-thumb-ikon i { line-height:1; }

/* Tipografi: sayfadaki başlıklar Quicksand kullanıyor; gövdeden gelen Lato
   burada yan yana durunca iki farklı font gibi görünüyordu. */
.fm-meal-nogorsel { position:absolute; inset:0; display:flex; flex-direction:column;
    align-items:center; justify-content:center; gap:16px; padding:24px; text-align:center;
    font-family:"Quicksand","Lato",sans-serif;
    background:linear-gradient(140deg,#f1f8f4 0%,#e3f1e9 55%,#d8ebe1 100%); }
.fm-meal-nogorsel[hidden] { display:none; }
.fm-meal-nogorsel-ikon { width:78px; height:78px; display:grid; place-items:center;
    border-radius:50%; background:#fff; color:var(--fm-yesil); font-size:31px;
    box-shadow:0 6px 18px rgba(8,118,62,.10); }
.fm-meal-nogorsel strong { max-width:22ch; color:var(--fm-koyu); font-size:clamp(16px,1.7vw,21px);
    font-weight:700; line-height:1.3; letter-spacing:-.02em; }

/* Görselsiz durumda sürükleme imleci anlamsız. */
.fm-meal-main-wrap.is-gorselsiz { cursor:default; }

.fm-meal-copy { min-width:0; grid-column:2; grid-row:1; align-self:start; display:flex;
    flex-direction:column; padding:24px 0 0 28px; }
.fm-active-menu-label { margin:0; color:var(--fm-yesil); font-size:11.5px; font-weight:700;
    letter-spacing:.07em; text-transform:uppercase; }
.fm-meal-title { margin:7px 0 0; color:var(--fm-koyu); font-size:clamp(20px,2.1vw,28px); font-weight:700;
    line-height:1.1; letter-spacing:-.03em; }
.fm-heading-mobile { display:none; margin-bottom:13px; }
.fm-portion-note { display:flex; align-items:flex-start; gap:10px; margin-top:22px; padding:14px;
    border-radius:10px; color:#52675d; background:#f2f8f4; }
.fm-portion-note i { margin-top:2px; color:var(--fm-yesil); }
.fm-portion-note p { margin:0; font-size:12px; line-height:1.55; }
.fm-portion-note strong { color:#244638; }

.fm-menu-note { margin-top:10px; color:#61736a; font-size:12px; }
.fm-menu-note summary { padding:9px 0; color:#274438; font-weight:700; cursor:pointer; }
/* Metin panelde düz yazı girilir; girilen satır sonları korunur. */
.fm-menu-note p { margin:0 0 10px; white-space:pre-line; line-height:1.7; }

/* ── Uzun açıklama ── */
.fm-description-layout { display:grid; grid-template-columns:minmax(0,1.18fr) minmax(300px,.82fr);
    gap:58px; padding-top:28px; border-top:1px solid #dce8e1; }
.fm-description-copy h2 { max-width:720px; margin:0; color:var(--fm-koyu); font-size:clamp(24px,2.6vw,34px);
    font-weight:700; line-height:1.1; letter-spacing:-.03em; }
.fm-description-copy p, .fm-description-copy li { color:#52656d; font-size:14px; line-height:1.8; }
.fm-description-copy h3 { margin:28px 0 8px; color:var(--fm-koyu); font-size:18px; font-weight:700; }
.fm-description-copy a { color:var(--fm-yesil); font-weight:700; text-decoration:underline; }
.fm-description-more[hidden] { display:none; }
.fm-description-toggle { display:inline-flex; align-items:center; gap:8px; margin-top:18px; padding:0;
    border:0; color:var(--fm-yesil); background:transparent; font-size:12px; font-weight:700; }
.fm-description-toggle i { font-size:11.5px; transition:transform .2s ease; }
.fm-description-toggle[aria-expanded="true"] i { transform:rotate(180deg); }
.fm-facts { align-self:start; display:grid; gap:0; padding:4px 0; margin:0; }
.fm-facts div { display:grid; grid-template-columns:130px minmax(0,1fr); gap:18px; padding:15px 0;
    border-bottom:1px solid var(--fm-cizgi); }
.fm-facts dt { color:#6b7a72; font-size:12.5px; font-weight:500; }
.fm-facts dd { margin:0; color:var(--fm-koyu); font-size:13.5px; font-weight:600; line-height:1.55; }

/* ── Google yorumları ── */
.fm-google-head { display:flex; align-items:center; gap:13px; }
.fm-google-mark { width:42px; height:42px; display:grid; place-items:center; border:1px solid #dfe8e3;
    border-radius:12px; color:#4285f4; background:#fff; font-size:22px; font-weight:700; }
.fm-review-track { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.fm-review-card { min-height:152px; padding:19px; border:1px solid #dfe8e3; border-radius:14px; background:#fff; }
.fm-review-card h3 { margin:14px 0 5px; color:var(--fm-koyu); font-size:13px; font-weight:700; }
.fm-review-card p { margin:0; color:#6c7d74; font-size:12.5px; line-height:1.6; display:-webkit-box;
    overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:5; }
.fm-review-rating { display:flex; gap:2px; color:#e5a400; font-size:12px; }
.fm-review-meta { margin-top:13px; color:#7a8982; font-size:11px; }

/* ── İş birlikleri ── */
.fm-partner-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:13px; }
.fm-partner-item { min-height:92px; display:grid; place-items:center; padding:14px; border:1px solid #e2ebe5;
    border-radius:12px; background:#fff; }
.fm-partner-item img { width:auto; max-width:100%; height:50px; object-fit:contain; filter:grayscale(1); opacity:.76; }
.fm-partner-item:hover img { filter:none; opacity:1; }

/* ── İade koşulları modalı ── */
.fm-modal { position:fixed; inset:0; z-index:1050; background:rgba(15,41,30,.55);
    display:none; align-items:center; justify-content:center; padding:20px; }
.fm-modal.is-open { display:flex; }
.fm-modal-inner { width:min(520px,100%); max-height:86vh; overflow:auto; padding:24px;
    border-radius:20px; background:#fff; }
.fm-modal-head { display:flex; align-items:center; gap:13px; margin-bottom:16px; }
.fm-modal-head i { width:46px; height:46px; display:grid; place-items:center; border-radius:14px;
    color:#d09000; background:#fff3d2; font-size:20px; }
.fm-modal-head h3 { margin:0; color:var(--fm-koyu); font-size:16px; font-weight:700; }
.fm-modal-head span { display:block; margin-top:3px; color:#a37700; font-size:12.5px; font-weight:700; }
.fm-modal-body { padding:16px; border:1px solid #eef2f0; border-radius:14px; background:#f8faf9; }
.fm-modal-body p { margin:0 0 11px; color:#52656d; font-size:12.5px; line-height:1.7; }
.fm-modal-body p:last-child { margin-bottom:0; }
.fm-modal-body strong { color:var(--fm-koyu); }
.fm-modal-close { width:100%; margin-top:16px; padding:12px; border:0; border-radius:11px; color:#fff;
    background:var(--fm-koyu); font-size:13px; font-weight:700; }
.fm-modal-link { display:inline-block; margin-top:12px; color:var(--fm-yesil); font-size:12px; font-weight:700; }

/* ── Mobil ── */
@media (max-width:991px) {
    .fm-product-hero { grid-template-columns:1fr; gap:28px; }
    .fm-description-layout { grid-template-columns:1fr; gap:26px; }
    .fm-review-track { grid-template-columns:1fr 1fr; }
    .fm-partner-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width:768px) {
    .fm-shell, .fm-product-hero { width:min(100% - 32px, 680px); }
    .fm-section { padding:44px 0; }
    .fm-section-head { align-items:flex-start; flex-direction:column; margin-bottom:20px; }
    /* Mobilde ortalama bırakılır: dar ekranda ortalı metin okunurluğu düşürüyor. */
    .fm-section-head--orta { justify-content:flex-start; text-align:left; }
    .fm-section-head--orta p { margin-inline:0; }
    .fm-city-grid { grid-template-columns:1fr 1fr; }
    .fm-day-tabs { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .fm-benefits { gap:8px 12px; }
    .fm-proof { gap:10px; }
    .fm-meal-view { grid-template-columns:1fr; gap:12px; }
    .fm-meal-gallery { grid-column:1; grid-row:1; }
    .fm-meal-products { grid-column:1; grid-row:2; padding-left:0; }
    .fm-meal-copy { grid-column:1; grid-row:3; padding:0; }
    .fm-meal-copy .fm-portion-note { margin-top:2px; }
    .fm-heading-desktop { display:none; }
    .fm-heading-mobile { display:block; }
    .fm-meal-main-wrap { aspect-ratio:1/1; }
    .fm-meal-thumbs { grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
    .fm-meal-thumb { min-height:auto; gap:6px; padding:5px; border-radius:10px; }
    .fm-meal-thumb img { height:auto; aspect-ratio:4/3; }
    .fm-meal-thumb .fm-meal-thumb-ikon { height:auto; aspect-ratio:4/3; font-size:24px; }
    .fm-meal-tabs { gap:4px; }
    .fm-meal-tab { min-height:58px; flex-direction:column; gap:6px; padding:7px 2px; font-size:11px; }
    .fm-review-track { grid-template-columns:1fr; }
    .fm-partner-grid { grid-template-columns:1fr 1fr; }
    .fm-facts div { grid-template-columns:110px minmax(0,1fr); gap:14px; }
}

/* ── Nasıl çalışır ── */
.fm-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.fm-step { overflow:hidden; border:1px solid #dde8e1; border-radius:16px; background:#fff; }
.fm-step img { width:100%; height:auto; aspect-ratio:5/4; object-fit:cover; background:#eef6f1; display:block; }
.fm-step-body { position:relative; padding:23px; }
.fm-step img + .fm-step-body { padding-top:30px; }
.fm-step-no { position:absolute; top:-22px; left:22px; width:44px; height:44px; display:grid;
    place-items:center; border:4px solid #fff; border-radius:12px; color:#fff;
    background:var(--fm-yesil); font-size:14px; font-weight:700; }
.fm-step--gorselsiz .fm-step-no { position:static; margin-bottom:12px; border:0; }
.fm-step-body h3 { margin:10px 0 0; color:var(--fm-koyu); font-size:17px; font-weight:700; }
.fm-step--gorselsiz .fm-step-body h3 { margin-top:0; }
.fm-step-body p { margin:8px 0 0; color:#61736a; font-size:12.5px; line-height:1.65; }

/* ── Uzmana danışın ── */
.fm-advice-section { padding-top:0; border-top:0 !important; }
.fm-advice { display:flex; align-items:center; justify-content:space-between; gap:32px;
    padding:34px 38px; border-radius:22px; color:#fff;
    background:linear-gradient(120deg,#0c5c34 0%,#08763e 55%,#0a8f4c 100%); }
.fm-advice h2 { margin:10px 0 0; color:#fff; font-size:clamp(20px,2.3vw,28px); font-weight:700;
    letter-spacing:-.03em; }
.fm-advice p { max-width:62ch; margin:9px 0 0; color:#d9efe2; font-size:13px; line-height:1.7; }
.fm-advice-badge { display:inline-block; padding:5px 12px; border-radius:999px; color:#e8f7ee;
    background:rgba(255,255,255,.18); font-size:12px; font-weight:700; letter-spacing:.06em;
    text-transform:uppercase; }
.fm-advice-cta { flex:0 0 auto; display:inline-flex; align-items:center; gap:11px; padding:17px 27px;
    border-radius:14px; color:#143042; background:#f5c04a; font-size:15px; font-weight:700;
    text-decoration:none; box-shadow:0 10px 24px rgba(8,50,30,.22); }
.fm-advice-cta:hover { color:#143042; background:#f0b432; text-decoration:none; }
.fm-advice-cta i { font-size:17px; }

@media (max-width:991px) { .fm-steps { grid-template-columns:1fr 1fr; } }

@media (max-width:768px) {
    .fm-steps { grid-template-columns:1fr; gap:34px; }
    .fm-advice { align-items:flex-start; flex-direction:column; gap:22px; padding:26px 22px; }
    .fm-advice-cta { width:100%; justify-content:center; }
}
