:root{--cream:#FBF6EE;--sand:#F3E9D8;--beige:#EADDC7;--terra:#C15B3A;--terra-700:#A4482C;--terra-100:#F6E0D5;--green:#6E8B4E;--green-700:#566E3C;--ink:#3A2E26;--muted:#7C6E60;--line:#E4D7C4;--white:#fff;--focus:#C15B3A;--shadow:0 6px 20px rgba(58,46,38,.08);--r-sm:12px;--r-md:16px;--r-card:22px;--r-lg:28px;--container:1200px;--gutter:20px;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s10:40px;--s12:48px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Vazirmatn,Tahoma,sans-serif;font-size:17px;line-height:1.9;overflow-x:hidden}a{color:inherit;text-decoration:none}img,svg{max-width:100%}img{display:block}.container{max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}.icon{width:21px;height:21px;flex:0 0 auto}h1,h2,h3,p{margin-block-start:0}h1{font-size:clamp(28px,5vw,44px);line-height:1.5;margin-block-end:var(--s5);font-weight:850}h2{font-size:clamp(22px,3.5vw,32px);line-height:1.5;margin-block-end:var(--s4);font-weight:800}h3{font-size:21px;line-height:1.55;margin-block-end:var(--s3)}p{color:var(--muted);margin-block-end:var(--s5)}[hidden]{display:none!important}:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:var(--r-sm)}
.site-header{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--cream) 88%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid color-mix(in srgb,var(--line) 74%,transparent)}.header-grid{min-height:72px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--s6)}.brand{display:inline-flex;align-items:center;gap:var(--s3);min-height:48px}.brand-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--terra);color:var(--white);font-size:24px;font-weight:900;box-shadow:var(--shadow)}.brand b{display:block;line-height:1.2}.brand small{display:block;color:var(--muted);font-size:12px;line-height:1.2;margin-top:var(--s1)}.desktop-nav{display:flex;justify-content:center;align-items:center;gap:clamp(12px,1.8vw,24px);font-size:15px}.desktop-nav a{padding:10px 2px;color:var(--muted)}.desktop-nav a:hover{color:var(--terra)}.header-actions{display:flex;align-items:center;gap:var(--s3)}.icon-btn{width:44px;height:44px;border:1px solid var(--line);border-radius:999px;background:var(--white);color:var(--ink);display:inline-grid;place-items:center;cursor:pointer;transition:.2s}.icon-btn:hover{border-color:var(--terra);color:var(--terra);transform:translateY(-1px)}.cart-link{position:relative}.cart-link span{position:absolute;top:-5px;left:-5px;background:var(--green);color:#fff;border-radius:999px;min-width:22px;height:22px;display:grid;place-items:center;font-size:12px}.phone-cta,.btn{min-height:44px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);padding:10px 18px;font-weight:750;border:1px solid transparent;white-space:nowrap;cursor:pointer;transition:.2s}.phone-cta,.btn.primary{background:var(--terra);color:var(--white)}.phone-cta:hover,.btn.primary:hover{background:var(--terra-700);transform:translateY(-1px)}.btn.secondary{background:transparent;color:var(--terra);border-color:var(--terra)}.btn.secondary:hover{background:var(--terra-100)}.search-bar{padding-block:var(--s3);border-top:1px solid var(--line)}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--white);padding:12px 14px;color:var(--ink);font:inherit}textarea{min-height:124px;resize:vertical}input:focus,textarea:focus{border-color:var(--terra);box-shadow:0 0 0 3px var(--terra-100);outline:0}.menu-toggle{display:none}.drawer-backdrop{position:fixed;inset:0;background:rgba(58,46,38,.45);z-index:40}.mobile-drawer{position:fixed;inset-block:0;right:0;width:min(88vw,360px);background:var(--cream);z-index:41;padding:var(--s5);display:flex;flex-direction:column;gap:var(--s5);box-shadow:-16px 0 40px rgba(58,46,38,.18)}.mobile-drawer nav{display:grid;gap:var(--s3);padding-top:var(--s6)}.mobile-drawer nav a{padding:12px 14px;border-radius:var(--r-md);background:var(--sand)}
.hero{padding-block:clamp(36px,7vw,80px) clamp(56px,9vw,100px)}.showcase-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:var(--s12);align-items:center}.eyebrow{display:inline-flex;align-items:center;gap:var(--s2);padding:7px 12px;border:1px solid var(--line);background:var(--terra-100);color:var(--terra-700);border-radius:999px;font-size:14px;font-weight:800;margin-bottom:var(--s4)}.hero-copy p{font-size:18px;max-width:58ch}.hero-actions,.trust-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s6)}.trust-row span{display:inline-flex;align-items:center;gap:var(--s2);padding:8px 12px;border-radius:999px;background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow);font-size:14px}.showcase-panel{background:linear-gradient(135deg,var(--white),var(--sand));border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s5);box-shadow:var(--shadow)}.showcase-top{display:flex;justify-content:space-between;align-items:center;gap:var(--s4);margin-bottom:var(--s4)}.slider-controls{display:flex;gap:var(--s2)}.hero-slider{position:relative;min-height:440px}.slide{display:none;grid-template-columns:1fr 1fr;gap:var(--s5);align-items:center}.slide.is-active{display:grid}.slide img{aspect-ratio:1/1;width:100%;object-fit:cover;border-radius:var(--r-card);background:var(--beige)}.tabs{display:flex;gap:var(--s2);margin-top:var(--s5);overflow:auto;padding-bottom:var(--s2)}.tab{min-height:44px;border:1px solid var(--line);background:var(--white);border-radius:999px;padding:8px 16px;color:var(--muted);font:inherit;font-weight:750;white-space:nowrap;cursor:pointer}.tab.is-active{background:var(--green);border-color:var(--green);color:#fff}.tab-pane{display:none;background:var(--cream);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s4);margin-top:var(--s3)}.tab-pane.is-active{display:block}.tab-pane p{margin-bottom:var(--s2)}.tab-pane a,.text-link{display:inline-flex;align-items:center;gap:var(--s2);color:var(--terra);font-weight:800}
.section{padding-block:clamp(72px,9vw,120px)}.section-head{margin-bottom:var(--s8)}.section-head p{max-width:62ch}.product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s6);align-items:stretch}.product-card{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow);transition:.2s}.product-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(58,46,38,.12)}.product-media img{width:100%;aspect-ratio:1/1;object-fit:cover;background:var(--beige)}.product-body{display:flex;flex-direction:column;gap:var(--s3);padding:var(--s5);height:100%}.product-body h3 a:hover{color:var(--terra)}.product-body p{font-size:15px;margin-bottom:0}.product-meta{display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}.badge{display:inline-flex;align-items:center;gap:var(--s1);border-radius:999px;background:var(--terra-100);color:var(--terra-700);padding:5px 10px;font-size:13px;font-weight:800}.rating{display:inline-flex;align-items:center;gap:var(--s1);color:var(--green-700);font-weight:800;font-size:13px}.buy-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-top:auto}.buy-row strong,.detail-price{font-size:19px;color:var(--green-700);white-space:nowrap}.band{background:var(--sand);padding-block:var(--s12);border-block:1px solid var(--line)}.feature-grid,.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s6)}.feature-grid article,.guide-grid article,.contact-card,.form-card,.admin-card{background:var(--white);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s6);box-shadow:var(--shadow)}.feature-grid span,.guide-grid span{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--terra-100);color:var(--terra);margin-bottom:var(--s4)}.split{display:grid;grid-template-columns:1fr 1fr;gap:var(--s10);align-items:center}.post-list{display:grid;gap:var(--s4)}.mini-post{display:grid;grid-template-columns:104px 1fr;gap:var(--s4);align-items:center;background:var(--white);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s3)}.mini-post img{width:104px;aspect-ratio:1/1;object-fit:cover;border-radius:var(--r-md)}.mini-post span{color:var(--terra);font-size:13px}.page-hero{padding-block:clamp(52px,8vw,88px);background:linear-gradient(180deg,var(--sand),var(--cream));border-bottom:1px solid var(--line)}.shop-layout{display:grid;grid-template-columns:260px 1fr;gap:var(--s8);max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}.filter-panel{position:sticky;top:92px;align-self:start;display:grid;gap:var(--s3);background:var(--white);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s5);box-shadow:var(--shadow)}.filter-panel a{padding:10px 12px;border-radius:var(--r-sm);background:var(--sand)}.secure-box{margin-top:var(--s3);display:flex;gap:var(--s2);color:var(--green-700);font-weight:800}.product-detail{display:grid;grid-template-columns:1fr 1fr;gap:var(--s10);padding-block:clamp(56px,8vw,96px)}.detail-media img,.rounded-img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-lg);box-shadow:var(--shadow);background:var(--beige)}.breadcrumb{display:flex;gap:var(--s2);flex-wrap:wrap;color:var(--muted);font-size:14px;margin-bottom:var(--s4)}.purchase-box{display:flex;gap:var(--s3);align-items:center;margin-block:var(--s6)}.qty{display:flex;align-items:center;border:1px solid var(--line);border-radius:999px;background:#fff;overflow:hidden}.qty input{width:58px;text-align:center;border:0;border-inline:1px solid var(--line);border-radius:0}.step{width:44px;height:44px;border:0;background:#fff;display:grid;place-items:center;cursor:pointer}.static-tabs{border-bottom:1px solid var(--line);padding-bottom:var(--s2)}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s6)}figure{margin:0;background:var(--white);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow)}figure img{width:100%;aspect-ratio:4/3;object-fit:cover}figcaption{padding:var(--s4);font-weight:800}.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s6)}.post-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow)}.post-card img{aspect-ratio:4/3;object-fit:cover}.post-card div{padding:var(--s5);display:flex;flex-direction:column;gap:var(--s3);height:100%}.article{padding-block:clamp(56px,8vw,96px);max-width:860px}.article>img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r-lg);margin-bottom:var(--s6);background:var(--beige)}.lead{font-size:20px;color:var(--ink)}.callout,.success,.error,.empty{border-radius:var(--r-card);padding:var(--s5);background:var(--sand);border:1px solid var(--line);margin-block:var(--s5)}.success{background:#edf5e6;color:var(--green-700)}.error{background:var(--terra-100);color:var(--terra-700)}.faq{display:grid;gap:var(--s3);margin-top:var(--s8)}details{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s4)}summary{cursor:pointer;font-weight:800}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s6)}.contact-card p{display:flex;gap:var(--s2);align-items:flex-start}.form-card{display:grid;gap:var(--s4)}.narrow{max-width:680px}.cart-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s6);box-shadow:var(--shadow)}.cart-table{width:100%;border-collapse:collapse}.cart-table th,.cart-table td{text-align:right;padding:14px;border-bottom:1px solid var(--line)}.cart-total{display:flex;justify-content:space-between;align-items:center;gap:var(--s4);margin-top:var(--s5)}.site-footer{background:var(--ink);color:#fff;padding-block:var(--s12) var(--s6)}.site-footer p,.site-footer a,.site-footer small{color:#e8ded2}.footer-grid{display:grid;grid-template-columns:1.3fr .8fr 1.2fr 1.1fr;gap:var(--s8)}.site-footer section{display:flex;flex-direction:column;gap:var(--s2)}.site-footer h2{font-size:18px}.footer-brand .brand-mark{background:var(--terra)}.socials{display:flex;gap:var(--s3)}.socials a{width:44px;height:44px;border:1px solid rgba(255,255,255,.2);border-radius:50%;display:grid;place-items:center}.copyright{border-top:1px solid rgba(255,255,255,.14);padding-top:var(--s5);margin-top:var(--s8);color:#e8ded2}.float-cta{position:fixed;left:20px;bottom:20px;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;z-index:18;box-shadow:var(--shadow)}
.admin-body{background:var(--sand)}.admin-login{min-height:100vh;display:grid;place-items:center;padding:var(--s5)}.admin-login form{width:min(420px,100%)}.admin-top{display:flex;justify-content:space-between;align-items:center;padding:var(--s4) var(--s6);background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2}.admin-shell{max-width:1200px;margin:auto;padding:var(--s6);display:grid;gap:var(--s6)}.admin-products{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s5)}.admin-product{display:grid;grid-template-columns:120px 1fr 1fr;gap:var(--s3);align-items:end;border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s4);background:var(--cream)}.admin-product img{grid-row:span 4;width:120px;aspect-ratio:1;object-fit:cover;border-radius:var(--r-md)}.admin-product label,.settings-grid label{display:grid;gap:var(--s1);font-size:13px;color:var(--muted)}.admin-product textarea{min-height:72px}.settings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4)}.settings-grid button{grid-column:1/-1}
.toast{position:fixed;right:20px;bottom:20px;z-index:60;background:var(--ink);color:#fff;border-radius:999px;padding:10px 18px;box-shadow:var(--shadow);opacity:0;transform:translateY(12px);pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:translateY(0)}
@media (max-width:1000px){.desktop-nav,.phone-cta{display:none}.menu-toggle{display:grid}.header-grid{grid-template-columns:auto 1fr auto}.product-grid,.blog-grid{grid-template-columns:repeat(2,1fr)}.showcase-grid,.split,.product-detail,.contact-grid,.shop-layout{grid-template-columns:1fr}.filter-panel{position:static}.footer-grid{grid-template-columns:1fr 1fr}.admin-products{grid-template-columns:1fr}}
@media (max-width:768px){:root{--gutter:20px}body{font-size:16px;line-height:1.9}.site-header{background:color-mix(in srgb,var(--cream) 94%,transparent)}.brand small{display:none}.brand-mark{width:40px;height:40px}.header-actions{gap:var(--s2)}.search-toggle{display:none}.hero{padding-block:28px 56px}.showcase-grid{gap:var(--s6)}.hero-copy p{font-size:16px}.hero-actions{align-items:stretch}.hero-actions .btn{width:100%}.trust-row{gap:var(--s2)}.trust-row span{flex:1 1 140px;justify-content:center}.showcase-panel{padding:var(--s4);border-radius:var(--r-card)}.showcase-top{align-items:flex-start}.hero-slider{min-height:0}.slide,.slide.is-active{grid-template-columns:1fr;gap:var(--s4)}.slide img{aspect-ratio:4/3}.tabs{margin-top:var(--s4)}.section{padding-block:56px}.product-grid,.feature-grid,.guide-grid,.gallery-grid,.blog-grid{grid-template-columns:1fr;gap:var(--s5)}.product-card{border-radius:var(--r-md)}.product-body{padding:var(--s4)}.product-meta{align-items:flex-start}.buy-row{flex-direction:column;align-items:stretch}.buy-row form,.buy-row .btn{width:100%}.buy-row strong{font-size:18px}.mini-post{grid-template-columns:88px 1fr}.mini-post img{width:88px}.purchase-box{flex-direction:column;align-items:stretch}.purchase-box .btn{width:100%}.qty{align-self:flex-start}.footer-grid{grid-template-columns:1fr}.cart-table thead{display:none}.cart-table,.cart-table tbody,.cart-table tr,.cart-table td{display:block;width:100%}.cart-table tr{border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s3);margin-bottom:var(--s3)}.cart-table td{display:flex;justify-content:space-between;gap:var(--s4);border:0;padding:8px}.cart-table td::before{content:attr(data-label);font-weight:800;color:var(--muted)}.cart-total{flex-direction:column;align-items:stretch}.cart-total .btn{width:100%}.admin-shell{padding:var(--s4)}.admin-product{grid-template-columns:1fr}.admin-product img{grid-row:auto;width:100%}.settings-grid{grid-template-columns:1fr}.float-cta{left:16px;bottom:16px}}
@media (max-width:768px){.tabs{scrollbar-width:thin;padding-inline:2px}.tab{flex:0 0 auto}.showcase-panel{overflow:hidden}.slide h2{font-size:clamp(21px,7vw,28px)}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* ivos_cr1548: Auf Mobil sollen Hamburger + Warenkorb ganz LINKS am Rand sitzen.
   Zwei Ursachen, beide noetig:
   1) Das Raster hat drei Spuren (auto 1fr auto). Weil `.desktop-nav` unter 1000px
      `display:none` ist, bleibt die dritte Spur mit 0px + eigenem 24px-Abstand
      ganz links uebrig -- die Aktionsspalte beginnt dadurch erst bei x=44 statt x=20.
   2) In RTL beginnt ein Flex-Container RECHTS. Die beiden Knoepfe klebten also am
      rechten Ende ihrer Spalte. `flex-end` ist in RTL physisch LINKS
      (nicht rechts -- das ist die Falle bei logischen Werten).
   Gilt ab 1000px abwaerts, also genau dort, wo dieses Knopfpaar ueberhaupt erscheint. */
@media (max-width:1000px){
  .header-grid{grid-template-columns:auto 1fr}
  .header-actions{justify-content:flex-end}
}

/* ivos_cr1554: Die Blog-Karten auf der Startseite standen zerrissen da -- Bild und
   Titel in einer schmalen 104px-Spalte, daneben eine grosse leere Flaeche.
   Ursache: `.mini-post` ist ein Raster mit ZWEI Spalten (104px 1fr), bekommt aber
   DREI Kinder (img, span, b). Die ersten beiden fuellen Reihe 1; das dritte -- der
   Titel -- faellt automatisch in Reihe 2 SPALTE 1, also in die 104px-Bildspalte.
   Der Titel brach dadurch auf drei Zeilen um, waehrend Reihe 2 / Spalte 2 leer blieb.
   Fix ohne Markup-Aenderung: Bild ueber beide Reihen, Label und Titel fest in Spalte 2. */
.mini-post{grid-template-rows:auto auto}
.mini-post img{grid-area:1/1/3/2;align-self:center}
.mini-post span{grid-area:1/2/2/3;align-self:end}
.mini-post b{grid-area:2/2/3/3;align-self:start;line-height:1.7}

/* ivos_cr1555: Entfernen-Knopf im Warenkorb. Auf Mobil wird die Tabelle zu Karten
   (`.cart-table td` wird Flex mit data-label davor) -- die Zelle des Knopfes traegt
   deshalb kein Label, sonst stuende dort zweimal "حذف". */
.cart-remove-form{margin:0}
.cart-remove{border:1px solid var(--line);background:#fff;color:var(--terra-700);border-radius:999px;padding:7px 14px;font-weight:800;font-size:14px;cursor:pointer;transition:.18s;min-height:38px}
.cart-remove:hover{background:var(--terra-100);border-color:var(--terra)}
.cart-table td:last-child{text-align:left}
.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}
@media (max-width:768px){.cart-table td[data-label="حذف"]::before{content:""}.cart-table td[data-label="حذف"]{justify-content:flex-start}}

/* ivos_cr1564: Auf der Startseite steht neben dem Blog-Bild kein Etikett mehr (der
   englische `kind` war genau das, was der Kunde weg haben wollte). Damit hat `.mini-post`
   nur noch ZWEI Kinder -- der Titel muss jetzt beide Reihen der zweiten Spalte fuellen,
   sonst klebte er nach der cr1554-Regel unten in Reihe 2. */
.mini-post b{grid-area:1/2/3/3;align-self:center}

/* ivos_cr1565: "تراز بندی ... برای دکمه افزودن درست نیست" (Desktop). Drei Ursachen:
   1) `.product-body{height:100%}` -- Prozenthoehe gegen die KARTE, obwohl der Koerper
      erst unter dem Bild beginnt: der Koerper wurde so hoch wie die ganze Karte und der
      Kaufbereich konnte unten aus der Karte herauslaufen. Richtig ist `flex:1`.
   2) Jede Rasterreihe war nur so hoch wie ihre eigene hoechste Karte -- Reihe 1 = 489px,
      Reihe 2 = 460px. Die Knoepfe lagen damit von Reihe zu Reihe auf anderer Hoehe.
      `grid-auto-rows:1fr` gibt ALLEN Karten dieselbe Hoehe.
   3) Titel/Beschreibung sind mal ein-, mal zweizeilig. Mit einer Mindesthoehe von zwei
      Zeilen beginnt der Kaufbereich in jeder Karte an derselben Stelle. */
.product-grid{grid-auto-rows:1fr}
.product-body{height:auto;flex:1 1 auto;min-height:0}
.product-body h3{min-height:calc(2 * 1.45em);margin:0}
.product-body p{min-height:calc(2 * 1.9em)}
@media (max-width:768px){
  .product-grid{grid-auto-rows:auto}
  .product-body h3,.product-body p{min-height:0}
}

/* ivos_cr1565 (Kern des Befunds, gemessen im Browser bei 1440px):
   Die Kaufzeile war `justify-content:space-between` mit einem `white-space:nowrap`-Preis.
   In der Vier-Spalten-Ansicht ist eine Karte nur 199px breit, Preis + Knopf brauchen aber
   zusammen 209px -- der Knopf ragte 43px ueber die linke Kartenkante hinaus und wurde vom
   `overflow:hidden` der Karte abgeschnitten: sichtbar blieb das Einkaufswagen-Symbol, das
   Wort "افزودن" war weg. Deshalb steht der Preis jetzt ueber einem Knopf in voller Breite
   (genau wie auf dem Handy), statt neben ihm. */
.product-card .buy-row{flex-direction:column;align-items:stretch;gap:var(--s2)}
.product-card .buy-row strong{white-space:normal}
.product-card .buy-row form{width:100%;margin:0}
.product-card .buy-row .btn{width:100%;justify-content:center}

/* Kundenwunsch: Der Shop soll auf Desktop genau DREI Produkte pro Zeile zeigen
   (bisher vier). Nur ab 1001px, damit Tablet/Handy ihre bestehenden Spalten behalten.
   Gilt nur fuer die Shop-Seite (`.shop-layout`), die Startseite bleibt unveraendert. */
@media (min-width:1001px){.shop-layout .product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}


/* ivos_cr1579: Seitenleiste im Panel. Im RTL-Raster ist die ERSTE Spalte die rechte,
   die Leiste steht also ohne Extrakniff rechts. Unter 1000px wird sie zu einer
   waagerechten, scrollbaren Knopfleiste, die oben klebt -- damit das Menue auf dem
   Handy bedienbar bleibt, ohne dass ein Abschnitt verschwindet. */
.admin-layout{max-width:1200px;margin:auto;padding:var(--s6);display:grid;grid-template-columns:240px minmax(0,1fr);gap:var(--s6);align-items:start}
.admin-layout .admin-shell{max-width:none;margin:0;padding:0}
.admin-nav{position:sticky;top:84px;display:grid;gap:var(--s2);background:var(--white);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s4);box-shadow:var(--shadow)}
.admin-nav-link{display:flex;align-items:center;min-height:44px;padding:10px 14px;border-radius:var(--r-sm);background:var(--sand);color:var(--ink);font-weight:800}
.admin-nav-link:hover{background:var(--beige)}
.admin-nav-link.is-active{background:var(--green);border-color:var(--green);color:#fff}
.admin-panel{display:none}
.admin-panel.is-active{display:block}
@media (max-width:1000px){
  .admin-layout{grid-template-columns:minmax(0,1fr);padding:var(--s4);gap:var(--s4)}
  .admin-nav{position:sticky;top:0;z-index:3;display:flex;gap:var(--s2);overflow-x:auto;padding:var(--s3);border-radius:var(--r-md)}
  .admin-nav-link{white-space:nowrap}
}

/* ivos_cr1590: Produktliste mit „ویرایش"-Knopf + Bearbeiten-Ansicht mit Vitrinen-Schalter. */
.admin-list{display:grid;gap:var(--s3)}
.admin-list-row{display:flex;align-items:center;gap:var(--s4);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s3);background:var(--cream)}
.admin-list-row img{width:64px;height:64px;aspect-ratio:1;object-fit:cover;border-radius:var(--r-md);flex:none}
.admin-list-info{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 auto}
.admin-list-info b{font-size:16px}
.admin-list-info span{font-size:13px;color:var(--muted)}
.admin-list-badge{align-self:flex-start;border-radius:999px;background:var(--terra-100);color:var(--terra-700);padding:3px 10px;font-size:12px;font-weight:800}
.admin-list-row .btn{flex:none}
.admin-back{display:inline-flex;font-weight:800;color:var(--terra);margin-bottom:var(--s4)}
/* ivos_cr1601: Knopf „افزودن محصول جدید" ueber der Produktliste. */
.admin-add{align-self:flex-start;margin-bottom:var(--s4)}
.admin-product-edit{max-width:720px}
.admin-product .admin-check{grid-template-columns:auto 1fr;align-items:center;gap:var(--s2);color:var(--ink);font-size:15px;font-weight:800}
@media (max-width:768px){
  .admin-list-row{flex-wrap:wrap}
  .admin-list-row .btn{width:100%}
}

/* ivos_cr1608 — optionale Produktangaben (نوع برنج/محل کشت/سال برداشت) */
.product-specs{margin:1rem 0 1.25rem;display:grid;gap:.4rem}
.product-spec-row{display:flex;gap:.6rem;align-items:baseline;font-size:.95rem}
.product-spec-row dt{margin:0;font-weight:700;min-width:6.5rem;color:#5a4632}
.product-spec-row dd{margin:0}

/* ivos_cr1633 — Bild-Upload im Panel: Vorschau + Dateiwaehler + Entfernen.
   Der Block spannt ueber alle Spalten des Formular-Rasters, damit Vorschau und Knoepfe
   nebeneinander Platz haben; unter 768px stapelt er. */
.admin-image-field{grid-column:1/-1;display:grid;gap:var(--s2)}
.admin-image-label{font-size:13px;color:var(--muted)}
.admin-image-box{display:flex;align-items:flex-start;gap:var(--s4);flex-wrap:wrap;border:1px dashed var(--line);border-radius:var(--r-md);padding:var(--s4);background:#fff}
.admin-image-preview{width:120px;height:120px;aspect-ratio:1;object-fit:cover;border-radius:var(--r-md);background:var(--beige);flex:none}
.admin-image-actions{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s2);min-width:0;flex:1 1 220px}
.admin-image-pick{position:relative;overflow:hidden;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
/* Der echte Dateiwaehler bleibt ein anklickbares <input type=file> INNERHALB des Labels --
   kein JS-Klick-Umweg, der auf manchen Android-WebViews ins Leere laeuft. */
.admin-image-pick .admin-image-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:0}
.admin-image-hint{color:var(--muted);font-size:12px;line-height:1.7}
@media (max-width:768px){
  .admin-image-box{flex-direction:column;align-items:stretch}
  .admin-image-preview{width:100%;height:auto;aspect-ratio:1}
  .admin-image-actions{width:100%}
  .admin-image-pick,.admin-image-clear{width:100%}
}

/* ivos_cr1655: Neue Bedienelemente im Panel -- Suche/Filter, Trefferzahl, Bestell-Detail,
   Vorschau der Seite «درباره ما» und die Loeschzeile. RTL-sicher (logische Eigenschaften),
   und die Filterzeile bricht auf schmalen Handys um statt seitlich wegzulaufen. */
.admin-filter{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 14px}
.admin-filter input[type=text],.admin-filter input:not([type]),.admin-filter input[type=date],.admin-filter select{flex:1 1 180px;min-width:0;padding:10px 12px;border:1px solid var(--line,#ddd);border-radius:10px;font:inherit;background:#fff}
.admin-filter .btn{flex:0 0 auto}
.admin-filter-date{display:flex;align-items:center;gap:6px;flex:1 1 180px;min-width:0;font-size:13px;color:#666}
.admin-filter-date input{flex:1 1 auto;min-width:0}
.admin-count{margin:0 0 10px;font-size:13px;color:#666}
.admin-empty{margin:14px 0;padding:14px;border:1px dashed var(--line,#ddd);border-radius:12px;color:#666;text-align:center}
.admin-list-badge.is-off{background:#eee;color:#777}
.admin-danger-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line,#eee)}
.admin-danger-row small{flex:1 1 220px;min-width:0;color:#666;font-size:12px}
.admin-order-detail .admin-kv{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:0 0 18px}
.admin-order-detail .admin-kv dt{font-weight:800;color:#555}
.admin-order-detail .admin-kv dd{margin:0}
.admin-order-items{margin:0 0 12px;padding-inline-start:20px}
.admin-order-status{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-top:16px;padding-top:14px;border-top:1px solid var(--line,#eee)}
.admin-order-status label{display:flex;flex-direction:column;gap:6px;flex:1 1 200px;min-width:0;font-weight:700}
.admin-order-status select{padding:10px 12px;border:1px solid var(--line,#ddd);border-radius:10px;font:inherit;background:#fff}
.admin-note{font-size:12px;color:#777;margin:8px 0}
.admin-about{display:grid;gap:14px}
.admin-about label{display:flex;flex-direction:column;gap:6px;font-weight:700}
.admin-about input,.admin-about textarea{padding:10px 12px;border:1px solid var(--line,#ddd);border-radius:10px;font:inherit;background:#fff}
.admin-about textarea{min-block-size:110px;resize:vertical}
.admin-preview{margin-top:22px}
.admin-preview-box{border:1px solid var(--line,#ddd);border-radius:14px;padding:18px;background:#fff}
.admin-preview-box h3{margin:6px 0 10px}
.admin-preview-box h4{margin:14px 0 6px}
@media (max-width:640px){
  /* ivos_cr1655: `flex:1 1 180px` meint in einer SPALTE die HOEHE, nicht die Breite -- das
     Suchfeld wurde dadurch 180px hoch (gemessen). In der Spaltenrichtung daher die Basis
     zuruecknehmen und die Breite ueber die Streckung regeln. */
  .admin-filter{flex-direction:column;align-items:stretch}
  .admin-filter input[type=text],.admin-filter input:not([type]),.admin-filter input[type=date],.admin-filter select,.admin-filter-date{flex:0 0 auto;inline-size:100%}
  .admin-filter .btn,.admin-filter a.btn{inline-size:100%;text-align:center}
  .admin-order-detail .admin-kv{grid-template-columns:1fr;gap:2px 0}
  .admin-order-detail .admin-kv dd{margin:0 0 10px}
}

/* ivos_cr1655: Mit dem fuenften Menuepunkt («درباره ما») lief die Panel-Navigation auf dem
   Handy in einen waagerechten Streifen, von dem nur ZWEI Punkte sichtbar waren (gemessen bei
   390px: scrollWidth 752 gegen clientWidth 356, drei Punkte links ausserhalb). Erreichbar per
   Wischen -- aber nicht auffindbar. Unter 760px bricht die Leiste daher um, statt zu scrollen;
   `white-space:normal` wird mitgenommen, sonst sprengt ein langer Punkt weiter die Zeile. */
@media (max-width:760px){
  .admin-nav{flex-wrap:wrap;overflow-x:visible}
  .admin-nav-link{white-space:normal;flex:1 1 auto;justify-content:center;text-align:center}
}
