@charset "UTF-8";
/** Theme Name: Velano **/
/** Author: @smh47 **/
/** Description: ولانو گالری — خانه دیجیتال هنرمندان ایران **/
/** Author URI: https://nemayman.com **/
/** Text Domain: velano **/
/** Version: 1.1.0 **/

/** fonts **/
@font-face { font-family:"vazirmatn"; font-style:normal; font-weight:300; font-display:swap; src:url("assets/fonts/Vazirmatn-Light.woff2") format("woff2"); }
@font-face { font-family:"vazirmatn"; font-style:normal; font-weight:400; font-display:swap; src:url("assets/fonts/Vazirmatn-Regular.woff2") format("woff2"); }
@font-face { font-family:"vazirmatn"; font-style:normal; font-weight:500; font-display:swap; src:url("assets/fonts/Vazirmatn-Medium.woff2") format("woff2"); }
@font-face { font-family:"vazirmatn"; font-style:normal; font-weight:600; font-display:swap; src:url("assets/fonts/Vazirmatn-SemiBold.woff2") format("woff2"); }
@font-face { font-family:"vazirmatn"; font-style:normal; font-weight:700; font-display:swap; src:url("assets/fonts/Vazirmatn-Bold.woff2") format("woff2"); }
@font-face { font-family:"inter"; font-style:normal; font-weight:400; font-display:swap; src:url("assets/fonts/Inter-Regular.woff2") format("woff2"); }
@font-face { font-family:"inter"; font-style:normal; font-weight:500; font-display:swap; src:url("assets/fonts/Inter-Medium.woff2") format("woff2"); }
@font-face { font-family:"inter"; font-style:normal; font-weight:600; font-display:swap; src:url("assets/fonts/Inter-SemiBold.woff2") format("woff2"); }
@font-face { font-family:"inter"; font-style:normal; font-weight:700; font-display:swap; src:url("assets/fonts/Inter-Bold.woff2") format("woff2"); }
/** end fonts **/

/** variables **/
:root {
  --forest: #1F3D33;
  --forestDeep: #142720;
  --forestSoft: #E8EEEA;
  --ivory: #F7F4ED;
  --ivoryCard: #FFFDF8;
  --ivoryDeep: #F1EDE3;
  --charcoal: #1E1E1C;
  --charcoalText: #3D3D38;
  --charcoalMuted: #6F6F66;
  --gold: #B08A46;
  --goldSoft: #F6EFDF;
  --line: #E3DED2;
  --lineSoft: #EFEBE2;
  --error: #8E3B32;
  --success: #2F6B4F;

  --fontFa: "vazirmatn", Tahoma, system-ui, sans-serif;
  --fontEn: "inter", system-ui, sans-serif;
  --fontBase: 17px;

  --radius: 6px;
  --radiusLg: 12px;
  --radiusXl: 18px;

  --shell: 1560px;
  --gutter: clamp(16px, 4vw, 48px);
  --sectionGap: clamp(52px, 8vw, 108px);

  --shadow: 0 14px 34px -24px rgba(20, 39, 32, 0.45);
  --shadowLift: 0 22px 44px -26px rgba(20, 39, 32, 0.5);

  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --speed: 0.26s;
}
/** end variables **/

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

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--ivory);
  color: var(--charcoalText);
  font-family: var(--fontFa);
  font-size: var(--fontBase);
  line-height: 1.9;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 { margin: 0; font-weight: 600; line-height: 1.5; color: var(--charcoal); }
p { margin: 0 0 1.1em; }
p:last-child { margin-bottom: 0; }
a { color: inherit; text-decoration: none; transition: color var(--speed) var(--ease); }
img { max-width: 100%; height: auto; display: block; }
ul, ol { margin: 0; padding: 0; }
li { list-style: none; }
button, input, select, textarea { font: inherit; color: inherit; }
figure { margin: 0; }
:focus-visible { outline: 2px solid var(--forest); outline-offset: 3px; }
::selection { background: var(--forest); color: var(--ivory); }
/** end reset **/

/** utility **/
.all { width: 100%; max-width: var(--shell); margin-inline: auto; padding-inline: var(--gutter); }
.all.narrow { max-width: 820px; }
.all.mid { max-width: 1180px; }

.flex { display: flex; }
.grid { display: grid; }
.wrap { flex-wrap: wrap; }
.column { flex-direction: column; }
.justify-between { justify-content: space-between; }
.justify-center { justify-content: center; }
.align-center { align-items: center; }
.align-end { align-items: flex-end; }

.gap8 { gap: 8px; } .gap12 { gap: 12px; } .gap16 { gap: 16px; }
.gap24 { gap: 24px; } .gap32 { gap: 32px; }

.mt8 { margin-top: 8px !important; } .mt16 { margin-top: 16px !important; }
.mt24 { margin-top: 24px !important; } .mt32 { margin-top: 32px !important; }
.mt48 { margin-top: 48px !important; } .mt64 { margin-top: 64px !important; }
.mb16 { margin-bottom: 16px !important; } .mb24 { margin-bottom: 24px !important; }
.mb32 { margin-bottom: 32px !important; }

.p16 { padding: 16px !important; } .p24 { padding: 24px !important; }
.radius4 { border-radius: var(--radius); }
.radius8 { border-radius: 8px; }
.radius16 { border-radius: var(--radiusXl); }

.whiteBg { background: var(--ivoryCard); }
.forestBg { background: var(--forest); color: var(--ivory); }
.textCenter { text-align: center; }
.muted { color: var(--charcoalMuted); }
.latin { font-family: var(--fontEn); direction: ltr; unicode-bidi: isolate; }
.hide { display: none !important; }

.srOnly {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/** نمایش وابسته به عرض صفحه — تماماً با مدیاکوئری **/
.justMobile { display: none; }
.justDesktop { display: revert; }

@media (max-width: 960px) {
  .justMobile { display: revert; }
  .justDesktop { display: none !important; }
}
/** end utility **/

/** section **/
.sectionGlobal { margin-top: var(--sectionGap); }

.sectionHeadGlobal {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  padding-bottom: 18px;
  margin-bottom: clamp(22px, 3vw, 34px);
  border-bottom: 1px solid var(--line);
}

.sectionHeadGlobal .lead {
  max-width: 54ch;
  margin-top: 5px;
  color: var(--charcoalMuted);
  font-size: 0.88em;
  line-height: 1.8;
}
/** end section **/

/** title **/
.boxTitleGlobal {
  font-size: clamp(1.12em, 2.2vw, 1.42em);
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--charcoal);
}

.boxTitleGlobal.small { font-size: 1em; }
.boxTitleGlobal.large { font-size: clamp(1.55em, 4.2vw, 2.5em); line-height: 1.35; }
.boxTitleGlobal.center { text-align: center; display: block; width: 100%; }

.eyebrowGlobal {
  font-family: var(--fontEn);
  font-size: 0.66em;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--gold);
  display: block;
  margin-bottom: 12px;
}
/** end title **/

/** button **/
.btnGlobal {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 13px 30px;
  border: 1px solid var(--forest);
  border-radius: var(--radius);
  background: var(--forest);
  color: var(--ivory);
  font-size: 0.86em;
  font-weight: 500;
  line-height: 1.5;
  cursor: pointer;
  text-align: center;
  transition: background var(--speed) var(--ease), color var(--speed) var(--ease),
              border-color var(--speed) var(--ease), opacity var(--speed) var(--ease);
}

.btnGlobal:hover { background: var(--forestDeep); border-color: var(--forestDeep); color: var(--ivory); }
.btnGlobal.ghost { background: transparent; color: var(--forest); }
.btnGlobal.ghost:hover { background: var(--forest); color: var(--ivory); }
.btnGlobal.quiet { background: var(--ivoryCard); border-color: var(--line); color: var(--charcoalText); }
.btnGlobal.quiet:hover { background: var(--ivoryCard); border-color: var(--charcoal); color: var(--charcoal); }
.btnGlobal.gold { background: var(--gold); border-color: var(--gold); color: #fff; }
.btnGlobal.gold:hover { background: #9C7838; border-color: #9C7838; }
.btnGlobal.light { background: var(--ivory); border-color: var(--ivory); color: var(--forest); }
.btnGlobal.light:hover { background: #fff; border-color: #fff; color: var(--forestDeep); }
.btnGlobal.outlineLight { background: transparent; border-color: rgba(247,244,237,.45); color: var(--ivory); }
.btnGlobal.outlineLight:hover { background: rgba(247,244,237,.12); border-color: var(--ivory); }
.btnGlobal.small { padding: 9px 18px; font-size: 0.78em; }
.btnGlobal.large { padding: 16px 40px; }
.btnGlobal.full { width: 100%; }

.btnGlobal.link {
  padding: 0; border: 0; background: transparent; color: var(--forest);
  font-size: 0.82em;
}
.btnGlobal.link:hover { background: transparent; color: var(--gold); }
.btnGlobal.link svg { width: 15px; height: 15px; }

.btnGlobal[disabled], .btnGlobal.disabled { opacity: 0.45; pointer-events: none; }

.btnGlobal.loading { color: transparent !important; position: relative; }
.btnGlobal.loading::after {
  content: ""; position: absolute; inset: 0; margin: auto;
  width: 16px; height: 16px; border: 2px solid rgba(255,255,255,.35);
  border-top-color: #fff; border-radius: 50%; animation: velSpin .7s linear infinite;
}
@keyframes velSpin { to { transform: rotate(360deg); } }
/** end button **/

/** badge **/
.badgeGlobal {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 2px 10px;
  border-radius: 100px;
  border: 1px solid var(--line);
  background: rgba(255, 253, 248, 0.94);
  backdrop-filter: blur(6px);
  color: var(--charcoalMuted);
  font-size: 0.68em;
  font-weight: 500;
  line-height: 1.95;
  white-space: nowrap;
}

.badgeGlobal svg { width: 12px; height: 12px; }
.badgeGlobal.verified { border-color: rgba(31,61,51,.2); background: var(--forestSoft); color: var(--forest); }
.badgeGlobal.featured { border-color: rgba(176,138,70,.3); background: var(--goldSoft); color: var(--gold); }
.badgeGlobal.sold { border-color: var(--line); background: rgba(255,253,248,.94); color: var(--charcoalMuted); }
/** end badge **/

/** breadcrumb **/
.breadcrumbsGlobal {
  display: flex; align-items: center; flex-wrap: wrap; gap: 8px;
  padding: 20px 0; font-size: 0.76em; color: var(--charcoalMuted);
}
.breadcrumbsGlobal a:hover { color: var(--forest); }
.breadcrumbsGlobal .sep { opacity: 0.35; }
.breadcrumbsGlobal .current { color: var(--charcoal); }
/** end breadcrumb **/

/** header **/
.headerGlobal {
  position: sticky; top: 0; z-index: 60;
  background: rgba(247, 244, 237, 0.9);
  backdrop-filter: saturate(150%) blur(14px);
  border-bottom: 1px solid var(--lineSoft);
}

.headerGlobal .bar {
  display: flex; align-items: center; justify-content: space-between;
  gap: clamp(16px, 2.4vw, 34px); min-height: 74px;
}

.headerGlobal .logo {
  font-family: var(--fontEn); font-size: 1.02em; font-weight: 600;
  letter-spacing: 0.22em; text-transform: uppercase; color: var(--forest); flex: none;
}
.headerGlobal .logo img { max-height: 32px; width: auto; }

.headerGlobal .mainMenu { display: flex; align-items: center; gap: clamp(16px, 2vw, 30px); font-size: 0.84em; }
.headerGlobal .mainMenu a { color: var(--charcoalText); padding-block: 6px; position: relative; }
.headerGlobal .mainMenu a::after {
  content: ""; position: absolute; inset-inline: 0; bottom: 0; height: 1px;
  background: var(--forest); transform: scaleX(0);
  transition: transform var(--speed) var(--ease);
}
.headerGlobal .mainMenu a:hover { color: var(--forest); }
.headerGlobal .mainMenu a:hover::after,
.headerGlobal .mainMenu .current-menu-item > a::after { transform: scaleX(1); }

.headerGlobal .tools { display: flex; align-items: center; gap: 14px; flex: none; }

.headerGlobal .tools .iconBtn {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 0.8em; color: var(--charcoalText); position: relative;
}
.headerGlobal .tools .iconBtn:hover { color: var(--forest); }

.headerGlobal .cartCount {
  display: inline-grid; place-items: center; min-width: 19px; height: 19px;
  padding-inline: 5px; border-radius: 100px; background: var(--forest);
  color: var(--ivory); font-family: var(--fontEn); font-size: 10px; line-height: 1;
}

.headerMobile .bar { min-height: 60px; }

.burgerGlobal {
  width: 40px; height: 40px; display: grid; place-items: center;
  border: 1px solid var(--line); border-radius: var(--radius);
  background: var(--ivoryCard); cursor: pointer;
}
.burgerGlobal span { display: block; width: 17px; height: 1px; background: var(--charcoal); position: relative; }
.burgerGlobal span::before, .burgerGlobal span::after {
  content: ""; position: absolute; inset-inline: 0; height: 1px; background: var(--charcoal);
}
.burgerGlobal span::before { top: -6px; }
.burgerGlobal span::after { top: 6px; }

.drawerGlobal {
  position: fixed; inset: 0; z-index: 90; visibility: hidden; opacity: 0;
  transition: opacity var(--speed) var(--ease), visibility var(--speed) var(--ease);
}
.drawerGlobal.open { visibility: visible; opacity: 1; }
.drawerGlobal .veil { position: absolute; inset: 0; background: rgba(20, 39, 32, 0.45); }
/* کشو همیشه از سمت راست باز می‌شود — همان سمتی که دکمه همبرگر است.
   عمداً از right فیزیکی استفاده می‌شود نه inset-inline، چون translateX
   فیزیکی است و ترکیبشان در RTL جهت را برعکس می‌کرد. */
.drawerGlobal .panel {
  position: absolute; inset-block: 0; right: 0; left: auto;
  width: min(86vw, 380px); background: var(--ivory);
  padding: 24px var(--gutter); overflow-y: auto;
  transform: translateX(100%); transition: transform var(--speed) var(--ease);
}
.drawerGlobal.open .panel { transform: translateX(0); }
.drawerGlobal .panel nav a {
  display: block; padding: 13px 0; border-bottom: 1px solid var(--lineSoft); font-size: 0.94em;
}
.drawerClose {
  width: 34px; height: 34px; display: grid; place-items: center;
  border: 1px solid var(--line); border-radius: 50%;
  background: var(--ivoryCard); color: var(--charcoalMuted); cursor: pointer; padding: 0;
}
.drawerClose:hover { border-color: var(--charcoal); color: var(--charcoal); }
.drawerClose svg { width: 16px; height: 16px; }
/** end header **/

/** search **/
.searchGlobal { flex: 1; max-width: 420px; position: relative; }

.searchGlobal input[type="search"], .searchGlobal input[type="text"] {
  width: 100%; padding: 11px 42px 11px 16px;
  border: 1px solid var(--line); border-radius: 100px;
  background: var(--ivoryCard); font-size: 0.82em;
  transition: border-color var(--speed) var(--ease);
}
.searchGlobal input::placeholder { color: var(--charcoalMuted); }
.searchGlobal input:focus { outline: none; border-color: var(--forest); }
.searchGlobal button {
  position: absolute; inset-inline-start: 6px; inset-block: 0;
  border: 0; background: transparent; cursor: pointer;
  color: var(--charcoalMuted); padding: 0 10px;
}
.searchGlobal svg { width: 18px; height: 18px; }

.searchResultsGlobal {
  position: absolute; inset-block-start: calc(100% + 8px); inset-inline: 0; z-index: 70;
  max-height: 68vh; overflow-y: auto; background: var(--ivoryCard);
  border: 1px solid var(--line); border-radius: var(--radiusLg);
  box-shadow: var(--shadowLift); padding: 8px;
}
.searchResultsGlobal .groupTitle {
  padding: 10px 12px 6px; font-size: 0.7em; letter-spacing: 0.06em; color: var(--charcoalMuted);
}
.searchResultsGlobal .row {
  display: flex; align-items: center; gap: 12px; padding: 8px 12px; border-radius: var(--radius);
}
.searchResultsGlobal .row:hover { background: var(--ivory); }
.searchResultsGlobal .row img {
  width: 42px; height: 42px; object-fit: cover; border-radius: var(--radius);
  flex: none; background: var(--ivory);
}
.searchResultsGlobal .row .name { display: block; font-size: 0.85em; color: var(--charcoal); line-height: 1.6; }
.searchResultsGlobal .row .sub { display: block; font-size: 0.73em; color: var(--charcoalMuted); line-height: 1.6; }
.searchResultsGlobal .empty { padding: 18px 12px; font-size: 0.8em; color: var(--charcoalMuted); text-align: center; }
/** end search **/

/** hero slider **/
.heroSlider {
  position: relative;
  height: clamp(440px, 62vh, 640px);
  background: var(--forestDeep);
  overflow: hidden;
  isolation: isolate;
}

.heroSlider .slide {
  position: absolute; inset: 0;
  opacity: 0; visibility: hidden;
  transition: opacity 0.9s var(--ease), visibility 0.9s var(--ease);
}
.heroSlider .slide.active { opacity: 1; visibility: visible; }

.heroSlider .slide .shot { position: absolute; inset: 0; }
.heroSlider .slide .shot img {
  width: 100%; height: 100%; object-fit: cover;
  transform: scale(1.08); transition: transform 9s linear;
}
.heroSlider .slide.active .shot img { transform: scale(1); }

.heroSlider .veil {
  position: absolute; inset: 0;
  background:
    linear-gradient(to top, rgba(14, 28, 23, 0.92) 0%, rgba(14, 28, 23, 0.55) 42%, rgba(14, 28, 23, 0.18) 78%),
    linear-gradient(to left, rgba(14, 28, 23, 0.55) 0%, rgba(14, 28, 23, 0) 60%);
}

.heroSlider .content {
  position: absolute; inset-block-end: 0; inset-inline: 0;
  padding-block: clamp(28px, 5vw, 64px);
  color: var(--ivory);
}

.heroSlider .content .inner { max-width: 60ch; }
.heroSlider .content .eyebrowGlobal { color: rgba(247, 244, 237, 0.72); }

.heroSlider .content h2 {
  font-size: clamp(1.6em, 4.4vw, 2.7em);
  line-height: 1.35;
  color: var(--ivory);
}

.heroSlider .content .by {
  display: flex; align-items: center; gap: 10px;
  margin-top: 16px; font-size: 0.86em; color: rgba(247, 244, 237, 0.82);
}
.heroSlider .content .by img {
  width: 34px; height: 34px; border-radius: 50%; object-fit: cover;
  border: 1px solid rgba(247, 244, 237, 0.3);
}

.heroSlider .content .actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 26px; }

.heroSlider .dots {
  position: absolute; inset-block-end: clamp(24px, 4vw, 52px);
  inset-inline-end: var(--gutter); z-index: 4;
  display: flex; gap: 8px;
}
.heroSlider .dots button {
  width: 34px; height: 3px; padding: 0; border: 0; cursor: pointer;
  background: rgba(247, 244, 237, 0.3); border-radius: 100px;
  transition: background var(--speed) var(--ease);
}
.heroSlider .dots button.active { background: var(--ivory); }

.heroSlider .arrow {
  position: absolute; inset-block-start: 50%; transform: translateY(-50%);
  z-index: 4; width: 46px; height: 46px; display: grid; place-items: center;
  border: 1px solid rgba(247, 244, 237, 0.32); border-radius: 50%;
  background: rgba(20, 39, 32, 0.24); color: var(--ivory);
  cursor: pointer; transition: background var(--speed) var(--ease);
}
.heroSlider .arrow:hover { background: rgba(20, 39, 32, 0.55); }
.heroSlider .arrow.prev { inset-inline-start: var(--gutter); }
.heroSlider .arrow.next { inset-inline-end: var(--gutter); }
.heroSlider .arrow.next svg { transform: rotate(180deg); }

@media (max-width: 700px) {
  .heroSlider .arrow { display: none; }
  .heroSlider .dots { inset-inline-start: var(--gutter); inset-inline-end: auto; }
}
/** end hero slider **/

/** intro strip **/
.introStrip { padding-block: clamp(32px, 5vw, 56px); }

.introStrip .items {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr));
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: var(--radiusLg);
  overflow: hidden;
}

.introStrip .item {
  background: var(--ivoryCard);
  padding: 22px 24px;
  display: flex; align-items: flex-start; gap: 13px;
}
.introStrip .item svg { width: 22px; height: 22px; color: var(--gold); flex: none; margin-top: 6px; }
.introStrip .item .t { font-size: 0.9em; font-weight: 500; color: var(--charcoal); }
.introStrip .item .d { font-size: 0.76em; color: var(--charcoalMuted); line-height: 1.75; }
/** end intro strip **/

/** artwork card **/
.artworkGrid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 268px), 1fr));
  gap: clamp(18px, 2vw, 26px);
  margin: 0;
  padding: 0;
  list-style: none;
}

.artworkGrid.wide { grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); }

.cardArtwork {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--ivoryCard);
  border: 1px solid var(--line);
  border-radius: var(--radiusLg);
  overflow: hidden;
  transition: border-color var(--speed) var(--ease),
              box-shadow var(--speed) var(--ease),
              transform var(--speed) var(--ease);
}

.cardArtwork:hover {
  border-color: #D8D1BF;
  box-shadow: var(--shadow);
  transform: translateY(-3px);
}

/* قاب تصویر: همیشه مربع، اثر کامل و بدون برش دیده می‌شود.
   تصویر با موقعیت مطلق داخل قاب می‌نشیند؛ درصدِ ارتفاع داخل باکسی که
   ارتفاعش از aspect-ratio می‌آید در مرورگر حل نمی‌شود و تصویر بیرون می‌زند. */
.cardArtwork .imageBox {
  --pad: clamp(16px, 2vw, 26px);
  display: block;
  position: relative;
  aspect-ratio: 1 / 1;
  background: var(--ivoryDeep);
  border-bottom: 1px solid var(--lineSoft);
  overflow: hidden;
}

.cardArtwork .imageBox img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  padding: var(--pad);
  object-fit: contain;
  transition: transform 0.6s var(--ease);
}

.cardArtwork:hover .imageBox img { transform: scale(1.035); }

.cardArtwork .flags {
  position: absolute;
  inset-block-start: 12px;
  inset-inline-start: 12px;
  display: flex; flex-direction: column; align-items: flex-start; gap: 6px;
  z-index: 2;
}

.cardArtwork .cardBody {
  display: flex;
  flex-direction: column;
  gap: 7px;
  padding: 15px 17px 16px;
  flex: 1;
}

.cardArtwork .title {
  font-size: 0.92em;
  font-weight: 500;
  color: var(--charcoal);
  line-height: 1.6;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.95em;
}

.cardArtwork:hover .title { color: var(--forest); }

.cardArtwork .artist {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 0.76em;
  color: var(--charcoalMuted);
  min-width: 0;
}

.cardArtwork .artist img {
  width: 22px; height: 22px; border-radius: 50%;
  object-fit: cover; flex: none; background: var(--ivory);
}

.cardArtwork .artist .who {
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.cardArtwork .artist a:hover { color: var(--forest); }
.cardArtwork .artist svg { width: 13px; height: 13px; color: var(--forest); flex: none; }

.cardArtwork .cardFoot {
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid var(--lineSoft);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.cardArtwork .price {
  font-family: var(--fontEn);
  font-size: 0.88em;
  font-weight: 600;
  color: var(--charcoal);
  direction: rtl;
  line-height: 1.6;
}
.cardArtwork .price del { font-weight: 400; color: var(--charcoalMuted); margin-inline-end: 7px; font-size: 0.85em; }
.cardArtwork .price ins { text-decoration: none; }
.cardArtwork .price .unit { font-family: var(--fontFa); font-size: 0.76em; font-weight: 400; color: var(--charcoalMuted); margin-inline-start: 3px; }

.cardArtwork .soldOut { font-size: 0.78em; color: var(--charcoalMuted); }

.cardArtwork .go {
  flex: none; width: 30px; height: 30px; display: grid; place-items: center;
  border: 1px solid var(--line); border-radius: 50%; color: var(--charcoalMuted);
  transition: border-color var(--speed) var(--ease), color var(--speed) var(--ease),
              background var(--speed) var(--ease);
}
.cardArtwork .go svg { width: 14px; height: 14px; }
.cardArtwork:hover .go { border-color: var(--forest); background: var(--forest); color: var(--ivory); }
/** end artwork card **/

/** artist card **/
.artistGrid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr));
  gap: clamp(12px, 1.4vw, 18px);
}

.cardArtist {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 15px 17px;
  background: var(--ivoryCard);
  border: 1px solid var(--line);
  border-radius: var(--radiusLg);
  transition: border-color var(--speed) var(--ease),
              box-shadow var(--speed) var(--ease),
              transform var(--speed) var(--ease);
}

.cardArtist:hover {
  border-color: #D8D1BF;
  box-shadow: var(--shadow);
  transform: translateY(-2px);
}

.cardArtist .avatar {
  width: 58px; height: 58px; flex: none;
  border-radius: 50%; overflow: hidden;
  background: var(--ivoryDeep);
  border: 1px solid var(--lineSoft);
}
.cardArtist .avatar img { width: 100%; height: 100%; object-fit: cover; }

.cardArtist .info { flex: 1; min-width: 0; }

.cardArtist .name {
  display: flex; align-items: center; gap: 6px;
  font-size: 0.93em; font-weight: 500; color: var(--charcoal); line-height: 1.7;
}
.cardArtist .name svg { width: 14px; height: 14px; color: var(--forest); flex: none; }
.cardArtist:hover .name { color: var(--forest); }

.cardArtist .craft {
  font-size: 0.76em; color: var(--charcoalMuted); line-height: 1.7;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

.cardArtist .count { font-size: 0.72em; color: var(--gold); line-height: 1.8; }

.cardArtist .go {
  flex: none; width: 30px; height: 30px; display: grid; place-items: center;
  border: 1px solid var(--line); border-radius: 50%; color: var(--charcoalMuted);
  transition: border-color var(--speed) var(--ease), color var(--speed) var(--ease),
              background var(--speed) var(--ease);
}
.cardArtist .go svg { width: 14px; height: 14px; }
.cardArtist:hover .go { border-color: var(--forest); background: var(--forest); color: var(--ivory); }
/** end artist card **/

/** category card **/
.categoryGrid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr));
  gap: clamp(12px, 1.4vw, 18px);
}

.cardCategory {
  position: relative;
  display: block;
  border-radius: var(--radiusLg);
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--ivoryCard);
  transition: border-color var(--speed) var(--ease), box-shadow var(--speed) var(--ease);
}
.cardCategory:hover { border-color: #D8D1BF; box-shadow: var(--shadow); }

.cardCategory .shot {
  --pad: 18px;
  display: block;
  position: relative;
  aspect-ratio: 4 / 3;
  background: var(--ivoryDeep);
  overflow: hidden;
}
.cardCategory .shot img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; max-width: none; padding: var(--pad);
  object-fit: contain; transition: transform 0.6s var(--ease);
}
.cardCategory:hover .shot img { transform: scale(1.05); }

.cardCategory .label {
  padding: 13px 16px;
  border-top: 1px solid var(--lineSoft);
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
}
.cardCategory .label .n { font-size: 0.88em; font-weight: 500; color: var(--charcoal); }
.cardCategory .label .c { font-size: 0.74em; color: var(--charcoalMuted); font-family: var(--fontEn); }
/** end category card **/

/** artist profile **/
.artistCover { height: clamp(180px, 30vw, 360px); background: var(--forestSoft); overflow: hidden; }
.artistCover img { width: 100%; height: 100%; object-fit: cover; }

.artistHead {
  display: flex; align-items: flex-end; gap: clamp(18px, 3vw, 36px);
  margin-top: clamp(-70px, -6vw, -46px); flex-wrap: wrap;
}

.artistHead .avatar {
  width: clamp(104px, 14vw, 160px); aspect-ratio: 1; flex: none;
  border-radius: 50%; overflow: hidden;
  border: 5px solid var(--ivory); background: var(--ivoryCard);
}
.artistHead .avatar img { width: 100%; height: 100%; object-fit: cover; }

.artistHead .identity { padding-bottom: 12px; flex: 1; min-width: 240px; }
.artistHead .identity h1 {
  font-size: clamp(1.4em, 3.6vw, 2em);
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.artistHead .identity .meta {
  margin-top: 6px; font-size: 0.82em; color: var(--charcoalMuted);
  display: flex; gap: 18px; flex-wrap: wrap; align-items: center;
}
.artistHead .identity .meta svg { width: 15px; height: 15px; vertical-align: -3px; }

.artistStory { max-width: 68ch; font-size: 1em; line-height: 2.1; }

.artistStats {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 1px; background: var(--line); border: 1px solid var(--line);
  border-radius: var(--radiusLg); overflow: hidden;
}
.artistStats .cell { background: var(--ivoryCard); padding: 22px 20px; text-align: center; }
.artistStats .cell .num {
  font-family: var(--fontEn); font-size: 1.45em; font-weight: 600;
  color: var(--charcoal); line-height: 1.4;
}
.artistStats .cell .label { font-size: 0.74em; color: var(--charcoalMuted); }

.workshopGrid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 12px;
}
.workshopGrid .shot {
  --pad: 16px;
  display: block; position: relative; aspect-ratio: 1;
  background: var(--ivoryDeep); border: 1px solid var(--line);
  border-radius: var(--radiusLg); overflow: hidden;
}
.workshopGrid .shot img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; padding: var(--pad); object-fit: contain; }
/** end artist profile **/

/** single artwork **/
.artworkSingle {
  display: grid; grid-template-columns: minmax(0, 1fr);
  gap: clamp(24px, 3.5vw, 56px);
  padding-block: clamp(12px, 2vw, 28px);
}

@media (min-width: 992px) {
  /* قاب گالری تا ارتفاع پنل خرید کشیده می‌شود و تصویر وسطش می‌نشیند،
     وگرنه وقتی اثر کوتاه است زیر ستون تصویر خالی می‌ماند. */
  .artworkSingle { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); align-items: stretch; }
  .artworkSingle .gallery { display: flex; align-items: center; justify-content: center; }
  .artworkSingle .gallery > * { width: 100%; }
  .artworkSingle .summary { align-self: start; }
}

.artworkSingle .gallery {
  background: var(--ivoryCard); border: 1px solid var(--line);
  border-radius: var(--radiusXl); padding: clamp(16px, 2.5vw, 34px);
}

.artworkSingle .summary { position: sticky; top: 100px; }
.artworkSingle .summary h1 { font-size: clamp(1.45em, 3.2vw, 2em); line-height: 1.45; }

.artworkSingle .summary .byArtist {
  display: flex; align-items: center; gap: 11px;
  margin-top: 18px; padding-block: 16px; border-block: 1px solid var(--lineSoft);
}
.artworkSingle .summary .byArtist img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.artworkSingle .summary .byArtist .name {
  font-weight: 500; color: var(--charcoal); display: flex; align-items: center; gap: 6px;
}
.artworkSingle .summary .byArtist .name svg { width: 14px; height: 14px; color: var(--forest); }
.artworkSingle .summary .byArtist .role { font-size: 0.75em; color: var(--charcoalMuted); }

.artworkSingle .summary .priceBox {
  margin-top: 24px; font-family: var(--fontEn); font-size: 1.3em;
  font-weight: 600; color: var(--charcoal); direction: rtl;
}
.artworkSingle .summary .priceBox del {
  font-size: 0.64em; font-weight: 400; color: var(--charcoalMuted); margin-inline-end: 10px;
}
.artworkSingle .summary .priceBox ins { text-decoration: none; }
.artworkSingle .summary .priceBox .unit {
  font-family: var(--fontFa); font-size: 0.6em; font-weight: 400; color: var(--charcoalMuted);
}

.artworkSingle .summary form.cart {
  margin-top: 22px; display: flex; gap: 12px; flex-wrap: wrap; align-items: center;
}
.artworkSingle .summary .stockNote { margin-top: 12px; font-size: 0.78em; color: var(--charcoalMuted); }

.storyBlock { margin-top: var(--sectionGap); max-width: 68ch; }
.storyBlock p { line-height: 2.15; }

.metaGlobal { border-top: 1px solid var(--line); }
.metaGlobal .row {
  display: flex; justify-content: space-between; gap: 24px;
  padding: 12px 0; border-bottom: 1px solid var(--lineSoft); font-size: 0.84em;
}
.metaGlobal .row .key { color: var(--charcoalMuted); }
.metaGlobal .row .val { color: var(--charcoal); text-align: end; }

.artworkAfter { padding-bottom: clamp(20px, 4vw, 48px); }

/** پنل خرید صفحه اثر **/
.artworkSingle .buyPanel {
  background: var(--ivoryCard);
  border: 1px solid var(--line);
  border-radius: var(--radiusXl);
  padding: clamp(20px, 2.4vw, 30px);
}

.artworkSingle .panelFlags {
  display: flex; gap: 7px; flex-wrap: wrap; margin-bottom: 14px;
}
.artworkSingle .panelFlags:empty { display: none; }
.artworkSingle .panelFlags a.badgeGlobal:hover { border-color: var(--forest); color: var(--forest); }

.artworkSingle .buyPanel .lead {
  margin-top: 14px; font-size: 0.9em; color: var(--charcoalText); line-height: 2;
}

.artworkSingle .buyPanel .priceBox {
  margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--lineSoft);
}

.artworkSingle .stockNote {
  display: flex; align-items: flex-start; gap: 8px;
  margin-top: 14px; font-size: 0.78em; color: var(--charcoalMuted);
}
.artworkSingle .stockNote svg { width: 15px; height: 15px; color: var(--success); flex: none; margin-top: 6px; }

.trustList {
  margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--lineSoft);
  display: grid; gap: 12px;
}
.trustList li { display: flex; align-items: flex-start; gap: 10px; font-size: 0.8em; line-height: 1.85; color: var(--charcoalMuted); }
.trustList svg { width: 17px; height: 17px; color: var(--gold); flex: none; margin-top: 6px; }
.trustList b { color: var(--charcoal); font-weight: 500; display: block; }

.panelArtist {
  display: flex; align-items: center; gap: 12px;
  margin-top: 20px; padding: 13px 14px;
  border: 1px solid var(--line); border-radius: var(--radiusLg);
  background: var(--ivory);
  transition: border-color var(--speed) var(--ease);
}
.panelArtist:hover { border-color: var(--forest); }
.panelArtist .avatar {
  width: 46px; height: 46px; flex: none; border-radius: 50%;
  overflow: hidden; background: var(--ivoryDeep);
}
.panelArtist .avatar img { width: 100%; height: 100%; object-fit: cover; }
.panelArtist .info { flex: 1; min-width: 0; }
.panelArtist .name {
  display: flex; align-items: center; gap: 6px;
  font-size: 0.88em; font-weight: 500; color: var(--charcoal); line-height: 1.7;
}
.panelArtist .name svg { width: 13px; height: 13px; color: var(--forest); }
.panelArtist .craft {
  font-size: 0.75em; color: var(--charcoalMuted); line-height: 1.7;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.panelArtist .go {
  flex: none; width: 28px; height: 28px; display: grid; place-items: center;
  border: 1px solid var(--line); border-radius: 50%; color: var(--charcoalMuted);
}
.panelArtist .go svg { width: 13px; height: 13px; }
.panelArtist:hover .go { border-color: var(--forest); background: var(--forest); color: var(--ivory); }

.artworkSingle .metaGlobal { margin-top: 22px; }

/** بخش داستان اثر **/
.storySection {
  margin-top: var(--sectionGap);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(24px, 3vw, 48px);
  align-items: start;
}

@media (min-width: 900px) {
  /* ستون دوم فقط وقتی ساخته می‌شود که نقل‌قول الهام وجود داشته باشد،
     وگرنه کنار متن یک ستون خالی می‌ماند. */
  .storySection.hasAside { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); }
}

.storySection:not(.hasAside) .storyMain { max-width: 76ch; }

.storyAside {
  background: var(--forest);
  color: rgba(247, 244, 237, 0.82);
  border-radius: var(--radiusXl);
  padding: clamp(24px, 3vw, 36px);
  position: sticky;
  top: 100px;
}
.storyAside .eyebrowGlobal { color: rgba(247, 244, 237, 0.6); }
.storyAside blockquote {
  margin: 0; font-size: 1.05em; line-height: 2; color: var(--ivory);
}
.storyAside .who {
  display: flex; align-items: center; gap: 10px;
  margin-top: 22px; padding-top: 18px;
  border-top: 1px solid rgba(247, 244, 237, 0.16);
  font-size: 0.84em;
}
.storyAside .who img {
  width: 34px; height: 34px; border-radius: 50%; object-fit: cover;
  border: 1px solid rgba(247, 244, 237, 0.25);
}

/** نوار فرآیند ساخت **/
.processStrip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: var(--radiusLg);
  overflow: hidden;
}
.processStrip .cell { background: var(--ivoryCard); padding: 22px 24px; }
.processStrip .k { font-size: 0.74em; color: var(--charcoalMuted); }
.processStrip .v { font-size: 1.02em; font-weight: 500; color: var(--charcoal); line-height: 1.7; }

/** پنل معرفی هنرمند **/
.artistPanel {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(24px, 3vw, 40px);
  background: var(--ivoryCard);
  border: 1px solid var(--line);
  border-radius: var(--radiusXl);
  padding: clamp(24px, 3vw, 40px);
}

@media (min-width: 860px) {
  .artistPanel { grid-template-columns: minmax(0, 260px) minmax(0, 1fr); }
}

.artistPanel .side .avatar {
  display: block; width: 96px; height: 96px; border-radius: 50%;
  overflow: hidden; background: var(--ivoryDeep); border: 1px solid var(--lineSoft);
}
.artistPanel .side .avatar img { width: 100%; height: 100%; object-fit: cover; }
.artistPanel .side .name {
  display: flex; align-items: center; gap: 7px;
  margin-top: 16px; font-size: 1.05em; font-weight: 600; color: var(--charcoal);
}
.artistPanel .side .name svg { width: 15px; height: 15px; color: var(--forest); }
.artistPanel .side .craft { font-size: 0.82em; color: var(--charcoalMuted); }

.artistPanel .miniStats {
  display: flex; gap: 22px; flex-wrap: wrap;
  margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--lineSoft);
}
.artistPanel .miniStats b { display: block; font-size: 1.05em; font-weight: 600; color: var(--charcoal); line-height: 1.5; }
.artistPanel .miniStats span { font-size: 0.72em; color: var(--charcoalMuted); }

.artistPanel .body .intro { font-size: 0.98em; line-height: 2.1; max-width: 60ch; }

.artistPanel .shots {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr));
  gap: 12px; margin-top: 24px;
}
.artistPanel .shots .shot {
  --pad: 12px;
  display: block; position: relative; aspect-ratio: 4 / 3;
  background: var(--ivoryDeep); border: 1px solid var(--lineSoft);
  border-radius: var(--radiusLg); overflow: hidden;
}
.artistPanel .shots .shot img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  max-width: none; padding: var(--pad); object-fit: contain;
}
/** end single artwork **/

/** archive **/
.archiveHead {
  padding-block: clamp(24px, 4vw, 48px) clamp(18px, 2.5vw, 28px);
}
.archiveHead .subTitle {
  margin-top: 12px; max-width: 62ch; color: var(--charcoalMuted); font-size: 0.9em;
}

.chipsGlobal {
  display: flex; gap: 8px; flex-wrap: wrap;
  padding-bottom: clamp(18px, 2.5vw, 26px);
}

.chipsGlobal a {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 8px 16px; border: 1px solid var(--line); border-radius: 100px;
  background: var(--ivoryCard); font-size: 0.8em; color: var(--charcoalText);
  transition: border-color var(--speed) var(--ease), background var(--speed) var(--ease),
              color var(--speed) var(--ease);
}
.chipsGlobal a:hover { border-color: var(--charcoal); color: var(--charcoal); }
.chipsGlobal a.active { background: var(--forest); border-color: var(--forest); color: var(--ivory); }
.chipsGlobal a .n { font-family: var(--fontEn); font-size: 0.85em; opacity: 0.6; }

.archiveToolbar {
  display: flex; align-items: center; justify-content: space-between;
  gap: 18px; flex-wrap: wrap;
  padding-block: 14px;
  border-block: 1px solid var(--line);
  margin-bottom: clamp(24px, 3.5vw, 40px);
  font-size: 0.82em; color: var(--charcoalMuted);
}
.archiveToolbar .woocommerce-result-count { margin: 0; }
.archiveToolbar form { margin: 0; }
.archiveToolbar select {
  padding: 9px 14px; border: 1px solid var(--line); border-radius: var(--radius);
  background: var(--ivoryCard); font-size: 1em; color: var(--charcoalText);
}
/** end archive **/

/** form **/
.fieldGlobal { margin-bottom: 18px; }
.fieldGlobal > label { display: block; margin-bottom: 7px; font-size: 0.8em; color: var(--charcoalMuted); }
.fieldGlobal input[type="text"], .fieldGlobal input[type="email"], .fieldGlobal input[type="tel"],
.fieldGlobal input[type="url"], .fieldGlobal input[type="number"], .fieldGlobal input[type="password"],
.fieldGlobal select, .fieldGlobal textarea {
  width: 100%; padding: 12px 14px; border: 1px solid var(--line);
  border-radius: var(--radius); background: var(--ivoryCard); font-size: 0.86em;
  transition: border-color var(--speed) var(--ease);
}
.fieldGlobal textarea { min-height: 150px; resize: vertical; line-height: 1.9; }
.fieldGlobal input:focus, .fieldGlobal select:focus, .fieldGlobal textarea:focus {
  outline: none; border-color: var(--forest);
}
.fieldGlobal .hint { margin-top: 6px; font-size: 0.72em; color: var(--charcoalMuted); }
/** end form **/

/** notice **/
.noticeGlobal {
  padding: 14px 18px; border: 1px solid var(--line);
  border-radius: var(--radius); background: var(--ivoryCard); font-size: 0.84em;
}
.noticeGlobal.success { border-color: rgba(47,107,79,.3); background: var(--forestSoft); color: var(--success); }
.noticeGlobal.error { border-color: rgba(142,59,50,.3); background: #FBF0EE; color: var(--error); }
.noticeGlobal.gold { border-color: rgba(176,138,70,.3); background: var(--goldSoft); color: var(--gold); }
/** end notice **/

/** empty state **/
.emptyGlobal {
  padding: clamp(44px, 8vw, 96px) 24px; text-align: center; color: var(--charcoalMuted);
  border: 1px dashed var(--line); border-radius: var(--radiusXl); background: var(--ivoryCard);
}
.emptyGlobal .boxTitleGlobal { margin-bottom: 8px; }
.emptyGlobal .btnGlobal { margin-top: 24px; }
/** end empty state **/

/** pagination **/
.paginationGlobal {
  display: flex; justify-content: center; gap: 7px; flex-wrap: wrap;
  margin-top: clamp(36px, 5vw, 64px);
}
.paginationGlobal .page-numbers {
  display: inline-grid; place-items: center; min-width: 42px; height: 42px;
  padding-inline: 10px; border: 1px solid var(--line); border-radius: var(--radius);
  background: var(--ivoryCard); font-family: var(--fontEn); font-size: 0.8em; color: var(--charcoalText);
}
.paginationGlobal .page-numbers:hover { border-color: var(--forest); color: var(--forest); }
.paginationGlobal .page-numbers.current { background: var(--forest); border-color: var(--forest); color: var(--ivory); }
.paginationGlobal svg { width: 15px; height: 15px; }
/** end pagination **/

/** popup **/
.popupGlobal { position: fixed; inset: 0; z-index: 100; display: none; }
.popupGlobal.open { display: block; }
.popupGlobal .blackLayer { position: absolute; inset: 0; background: rgba(20, 39, 32, 0.45); }
.popupGlobal .textLayer {
  position: absolute; inset-block-start: 50%; inset-inline-start: 50%;
  transform: translate(50%, -50%); width: min(92vw, 540px);
  max-height: 86vh; overflow-y: auto; background: var(--ivory);
  border-radius: var(--radiusXl); padding: 28px;
}
html[dir="ltr"] .popupGlobal .textLayer { transform: translate(-50%, -50%); }
.popupGlobal .close {
  cursor: pointer; color: var(--charcoalMuted); background: transparent;
  border: 0; line-height: 1; padding: 0;
}
/** end popup **/

/** social **/
.socialGlobal { display: flex; align-items: center; gap: 10px; }
.socialGlobal a {
  width: 38px; height: 38px; display: grid; place-items: center;
  border: 1px solid var(--line); border-radius: 50%; color: var(--charcoalMuted);
  transition: border-color var(--speed) var(--ease), color var(--speed) var(--ease);
}
.socialGlobal a:hover { border-color: var(--forest); color: var(--forest); }
.socialGlobal.light a { border-color: rgba(247, 244, 237, 0.22); color: rgba(247, 244, 237, 0.78); }
.socialGlobal.light a:hover { border-color: var(--ivory); color: var(--ivory); background: rgba(247,244,237,.08); }
.socialGlobal svg { width: 17px; height: 17px; }
/** end social **/

/** join banner **/
.joinBanner {
  background: var(--forest); color: var(--ivory);
  border-radius: var(--radiusXl); overflow: hidden;
  padding: clamp(34px, 5.5vw, 72px) clamp(24px, 5vw, 64px);
  position: relative;
}
.joinGrid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(32px, 5vw, 64px);
  align-items: center;
  position: relative;
  z-index: 2;
}

@media (min-width: 992px) {
  .joinGrid { grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); }
}

.joinBanner .inner { max-width: 56ch; }
.joinBanner .eyebrowGlobal { color: rgba(247, 244, 237, 0.66); }
.joinBanner h2 { color: var(--ivory); font-size: clamp(1.3em, 3vw, 1.85em); line-height: 1.5; }
.joinBanner p { color: rgba(247, 244, 237, 0.76); margin-top: 14px; font-size: 0.92em; }
.joinBanner .actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }

.joinSteps {
  margin-top: 26px;
  display: grid;
  gap: 14px;
}

.joinSteps li { display: flex; align-items: flex-start; gap: 13px; }

.joinSteps .n {
  flex: none;
  width: 30px; height: 30px;
  display: grid; place-items: center;
  border: 1px solid rgba(247, 244, 237, 0.28);
  border-radius: 50%;
  font-family: var(--fontFa);
  font-size: 0.78em;
  color: var(--ivory);
  margin-top: 4px;
}

.joinSteps .txt { display: block; }
.joinSteps .t { display: block; color: var(--ivory); font-size: 0.92em; font-weight: 500; line-height: 1.8; }
.joinSteps .d { display: block; color: rgba(247, 244, 237, 0.66); font-size: 0.82em; line-height: 1.85; }

/** ستون تصویری بنر عضویت **/
.joinArt { position: relative; }

.joinArt .mosaic {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(10px, 1.4vw, 16px);
}

.joinArt .tile {
  --pad: clamp(12px, 1.6vw, 20px);
  display: block;
  position: relative;
  aspect-ratio: 1 / 1;
  background: rgba(247, 244, 237, 0.07);
  border: 1px solid rgba(247, 244, 237, 0.14);
  border-radius: var(--radiusLg);
  overflow: hidden;
}

.joinArt .tile img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; max-width: none; padding: var(--pad);
  object-fit: contain;
}

/* دو کاشی میانی کمی پایین‌تر می‌نشینند تا چیدمان خشک نباشد */
.joinArt .tile:nth-child(2),
.joinArt .tile:nth-child(4) { transform: translateY(clamp(14px, 2.4vw, 30px)); }

.joinStat {
  margin-top: clamp(26px, 3.5vw, 44px);
  padding: 20px 22px;
  border: 1px solid rgba(247, 244, 237, 0.18);
  border-radius: var(--radiusLg);
  background: rgba(247, 244, 237, 0.06);
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.joinStat strong {
  font-size: 1.9em;
  font-weight: 600;
  color: var(--ivory);
  line-height: 1.3;
}

.joinStat span { color: rgba(247, 244, 237, 0.8); font-size: 0.86em; line-height: 1.8; }
.joinStat .sub { color: rgba(247, 244, 237, 0.55); font-size: 0.78em; }

@media (max-width: 991px) {
  .joinArt .tile:nth-child(2),
  .joinArt .tile:nth-child(4) { transform: none; }
}
/** end join banner **/

/** footer **/
.footerGlobal {
  margin-top: var(--sectionGap);
  background: var(--forest);
  color: rgba(247, 244, 237, 0.74);
  font-size: 0.86em;
}

.footerGlobal a:hover { color: var(--ivory); }

.footerGlobal .newsletter {
  border-bottom: 1px solid rgba(247, 244, 237, 0.14);
  padding-block: clamp(32px, 4.5vw, 52px);
}
.footerGlobal .newsletter .row {
  display: flex; align-items: center; justify-content: space-between;
  gap: clamp(20px, 3vw, 48px); flex-wrap: wrap;
}
.footerGlobal .newsletter .t { color: var(--ivory); font-size: 1.15em; font-weight: 500; }
.footerGlobal .newsletter .d { margin-top: 5px; max-width: 46ch; }
.footerGlobal .newsletter form {
  display: flex; gap: 10px; flex-wrap: wrap; flex: 1; min-width: 280px; max-width: 460px;
}
.footerGlobal .newsletter input {
  flex: 1; min-width: 180px; padding: 13px 16px;
  border: 1px solid rgba(247, 244, 237, 0.22); border-radius: var(--radius);
  background: rgba(247, 244, 237, 0.06); color: var(--ivory); font-size: 0.9em;
}
.footerGlobal .newsletter input::placeholder { color: rgba(247, 244, 237, 0.5); }
.footerGlobal .newsletter input:focus { outline: none; border-color: rgba(247, 244, 237, 0.55); }

.footerGlobal .main { padding-block: clamp(36px, 5vw, 64px); }

.footerGlobal .cols {
  display: grid;
  grid-template-columns: minmax(240px, 1.5fr) repeat(auto-fit, minmax(150px, 1fr));
  gap: clamp(28px, 3.5vw, 52px);
}

.footerGlobal .logo {
  font-family: var(--fontEn); font-size: 1.1em; font-weight: 600;
  letter-spacing: 0.22em; text-transform: uppercase; color: var(--ivory);
  display: inline-block; margin-bottom: 14px;
}
.footerGlobal .brandCol p { max-width: 38ch; line-height: 1.95; }
.footerGlobal .brandCol .socialGlobal { margin-top: 22px; }

.footerGlobal .colTitle {
  color: var(--ivory); font-weight: 500; font-size: 0.95em;
  margin-bottom: 16px; letter-spacing: 0.01em;
}

.footerGlobal ul li { margin-bottom: 9px; }

.footerGlobal .contactList li {
  display: flex; align-items: flex-start; gap: 9px; line-height: 1.9;
}
.footerGlobal .contactList svg { width: 16px; height: 16px; flex: none; margin-top: 6px; opacity: 0.7; }

.footerGlobal .trust {
  display: flex; gap: 10px; flex-wrap: wrap; margin-top: 20px;
}
.footerGlobal .trust span {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 13px; border: 1px solid rgba(247, 244, 237, 0.18);
  border-radius: var(--radius); font-size: 0.85em;
}
.footerGlobal .trust svg { width: 14px; height: 14px; opacity: 0.75; }

.footerGlobal .bottom {
  border-top: 1px solid rgba(247, 244, 237, 0.14);
  padding-block: 20px;
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; flex-wrap: wrap; font-size: 0.86em; opacity: 0.72;
}
/** end footer **/

/** entry content **/
.entryContent { max-width: 72ch; line-height: 2.15; }
.entryContent h2 { margin: 2em 0 0.7em; font-size: 1.22em; }
.entryContent h3 { margin: 1.7em 0 0.6em; font-size: 1.06em; }
.entryContent ul, .entryContent ol { margin: 0 0 1.2em; padding-inline-start: 1.3em; }
.entryContent ul li { list-style: disc; margin-bottom: 0.45em; }
.entryContent ol li { list-style: decimal; margin-bottom: 0.45em; }
.entryContent img { border-radius: var(--radius); margin-block: 1.6em; }
.entryContent blockquote {
  margin: 1.8em 0; padding-inline-start: 22px;
  border-inline-start: 2px solid var(--gold); color: var(--charcoal); font-size: 1.03em;
}
.entryContent a { color: var(--forest); text-decoration: underline; text-underline-offset: 4px; }

.pageHead { padding-block: clamp(26px, 4.5vw, 52px) clamp(18px, 3vw, 34px); }
.pageHead .subTitle {
  margin-top: 12px; max-width: 60ch; color: var(--charcoalMuted); font-size: 0.92em;
}
/** end entry content **/

/** woocommerce **/
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-error {
  list-style: none; padding: 14px 18px; margin-bottom: 20px;
  border: 1px solid var(--line); border-radius: var(--radius);
  background: var(--ivoryCard); font-size: 0.84em;
}
.woocommerce-notices-wrapper .woocommerce-message {
  border-color: rgba(47,107,79,.3); background: var(--forestSoft); color: var(--success);
}
.woocommerce-notices-wrapper .woocommerce-error {
  border-color: rgba(142,59,50,.3); background: #FBF0EE; color: var(--error);
}

.quantity input[type="number"] {
  width: 76px; padding: 13px 10px; border: 1px solid var(--line);
  border-radius: var(--radius); background: var(--ivoryCard);
  text-align: center; font-family: var(--fontEn);
}

.woocommerce-product-gallery { border-radius: var(--radiusLg); overflow: hidden; }
.woocommerce-product-gallery__wrapper { margin: 0; }
.woocommerce-product-gallery img { border-radius: var(--radiusLg); }

.flex-control-thumbs { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px; padding: 0; }
.flex-control-thumbs li { width: 74px; }
.flex-control-thumbs img {
  aspect-ratio: 1; object-fit: cover; border-radius: var(--radius);
  cursor: pointer; opacity: 0.6; transition: opacity var(--speed) var(--ease);
}
.flex-control-thumbs img:hover, .flex-control-thumbs img.flex-active { opacity: 1; }

.velanoWoo .related.products, .velanoWoo .up-sells.products { margin-top: var(--sectionGap); }
.velanoWoo .related.products > h2, .velanoWoo .up-sells.products > h2 {
  font-size: clamp(1.12em, 2.2vw, 1.42em); font-weight: 600;
  padding-bottom: 18px; margin-bottom: clamp(22px, 3vw, 34px);
  border-bottom: 1px solid var(--line);
}

/* خنثی کردن چیدمان پیش‌فرض ووکامرس روی گرید آثار.
   ووکامرس به li.product مقدار float و width درصدی می‌دهد که داخل گرید ما
   کارت را به چند ده پیکسل جمع می‌کند. این بلوک فقط همان‌ها را برمی‌دارد. */
.woocommerce ul.products.artworkGrid,
.woocommerce-page ul.products.artworkGrid {
  display: grid;
  margin: 0;
  padding: 0;
}

.artworkGrid::before, .artworkGrid::after,
.woocommerce ul.products.artworkGrid::before,
.woocommerce ul.products.artworkGrid::after { content: none !important; display: none !important; }

.artworkGrid > li.product,
.woocommerce ul.products.artworkGrid li.product,
.woocommerce-page ul.products.artworkGrid li.product {
  float: none !important;
  clear: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: start;
}

.woocommerce ul.products.artworkGrid li.product a { text-decoration: none; }

.woocommerce ul.products.artworkGrid li.product a.imageBox img,
.artworkGrid > li.product a.imageBox img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  padding: var(--pad);
  object-fit: contain;
  margin: 0 !important;
  box-shadow: none !important;
}

.woocommerce ul.products.artworkGrid li.product .price,
.woocommerce ul.products.artworkGrid li.product .price ins {
  color: var(--charcoal) !important;
  font-size: 0.88em !important;
  font-weight: 600;
  margin: 0 !important;
  display: block;
}
.woocommerce ul.products.artworkGrid li.product .price del {
  opacity: 1;
  font-weight: 400;
  color: var(--charcoalMuted);
}

.woocommerce ul.products.artworkGrid li.product h3,
.woocommerce ul.products.artworkGrid li.product .title {
  padding: 0 !important;
  font-size: 0.92em;
  font-weight: 500;
}

/* صفحه تک‌اثر: ووکامرس به گالری و ستون خلاصه float و عرض ۴۸٪ می‌دهد
   که داخل گرید دو ستونه ما هر دو را نصف می‌کند. */
.woocommerce div.product.artworkSingle .woocommerce-product-gallery,
.woocommerce div.product.artworkSingle div.images,
.woocommerce div.product.artworkSingle div.summary,
.woocommerce div.product.artworkSingle .entry-summary {
  float: none !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
}

.woocommerce div.product.artworkSingle .woocommerce-product-gallery__wrapper,
.woocommerce div.product.artworkSingle .woocommerce-product-gallery__image { width: 100%; }

/* بعضی آثار خیلی کشیده‌اند (قالی، کتیبه). ارتفاع تصویر سقف می‌خورد
   تا ستون گالری چند برابر ستون خرید بلند نشود. */
.woocommerce div.product.artworkSingle .woocommerce-product-gallery__image img {
  width: 100% !important;
  height: auto !important;
  max-height: 74vh;
  object-fit: contain;
  border-radius: var(--radiusLg);
}

.woocommerce div.product.artworkSingle .product_title { padding: 0; margin: 0; }
.woocommerce div.product.artworkSingle p.price { color: inherit; font-size: inherit; margin: 0; }
.woocommerce div.product.artworkSingle form.cart { margin: 22px 0 0; }
.woocommerce div.product.artworkSingle form.cart div.quantity { float: none; margin: 0; }
.woocommerce div.product.artworkSingle form.cart .button {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  padding: 13px 30px; border: 1px solid var(--forest); border-radius: var(--radius);
  background: var(--forest); color: var(--ivory); font-size: 0.86em; font-weight: 500;
  line-height: 1.5; float: none;
}
.woocommerce div.product.artworkSingle form.cart .button:hover {
  background: var(--forestDeep); border-color: var(--forestDeep);
}

/* آثار مرتبط ووکامرس هم از همان گرید کارت‌ها استفاده کند */
.velanoWoo .related ul.products,
.velanoWoo .up-sells ul.products {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 268px), 1fr));
  gap: clamp(18px, 2vw, 26px);
}

/* نوار مرتب‌سازی */
.archiveToolbar .sortWrap { display: flex; align-items: center; gap: 10px; }
.archiveToolbar .sortWrap > label { white-space: nowrap; }
.woocommerce .archiveToolbar .woocommerce-ordering { margin: 0; }
.woocommerce .archiveToolbar .woocommerce-result-count { margin: 0; }

/* شمارنده کنار عنوان آرشیو */
.archiveHead .countPill {
  display: inline-flex; align-items: center; gap: 7px;
  margin-top: 14px; padding: 6px 14px;
  border: 1px solid var(--line); border-radius: 100px;
  background: var(--ivoryCard); font-size: 0.78em; color: var(--charcoalMuted);
}
.archiveHead .countPill b { font-family: var(--fontEn); color: var(--charcoal); font-weight: 600; }
/** end woocommerce **/

/** motion **/
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
/** end motion **/

/** account **/
.velanoWooPage { max-width: none; }

.accountShell {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(20px, 2.6vw, 36px);
  padding-block: clamp(20px, 3vw, 40px) clamp(30px, 5vw, 60px);
  align-items: start;
}

@media (min-width: 992px) {
  .accountShell { grid-template-columns: 288px minmax(0, 1fr); }
  .accountAside { position: sticky; top: 100px; }
}

.accountCard {
  background: var(--ivoryCard);
  border: 1px solid var(--line);
  border-radius: var(--radiusLg);
  padding: 18px;
}

.accountUser { display: flex; align-items: center; gap: 13px; margin-bottom: 14px; }
.accountUser .avatar {
  width: 52px; height: 52px; flex: none; border-radius: 50%;
  overflow: hidden; background: var(--ivoryDeep); border: 1px solid var(--lineSoft);
}
.accountUser .avatar img { width: 100%; height: 100%; object-fit: cover; }
.accountUser .name { font-size: 0.95em; font-weight: 500; color: var(--charcoal); line-height: 1.6; }
.accountUser .since { font-size: 0.74em; color: var(--charcoalMuted); line-height: 1.6; }

.accountNav {
  background: var(--ivoryCard);
  border: 1px solid var(--line);
  border-radius: var(--radiusLg);
  padding: 8px;
}

.accountNav ul { display: grid; gap: 2px; }

.accountNav a {
  display: flex; align-items: center; gap: 11px;
  padding: 11px 13px; border-radius: var(--radius);
  font-size: 0.86em; color: var(--charcoalText);
  transition: background var(--speed) var(--ease), color var(--speed) var(--ease);
}
.accountNav a svg { width: 18px; height: 18px; flex: none; opacity: 0.75; }
.accountNav a span { flex: 1; }
.accountNav a .n {
  font-style: normal; font-size: 0.78em; color: var(--charcoalMuted);
  background: var(--ivory); border-radius: 100px; padding: 1px 8px;
}
.accountNav a:hover { background: var(--ivory); color: var(--charcoal); }

.accountNav li.is-active a {
  background: var(--forest); color: var(--ivory);
}
.accountNav li.is-active a svg { opacity: 1; }
.accountNav li.is-active a .n { background: rgba(247,244,237,.16); color: var(--ivory); }

.accountNav li.woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--error); }
.accountNav li.woocommerce-MyAccount-navigation-link--customer-logout a:hover { background: #FBF0EE; }

.accountHelp {
  display: flex; align-items: flex-start; gap: 11px;
  margin-top: 14px; padding: 15px 16px;
  border: 1px dashed var(--line); border-radius: var(--radiusLg);
  font-size: 0.78em; color: var(--charcoalMuted); line-height: 1.85;
}
.accountHelp svg { width: 18px; height: 18px; color: var(--gold); flex: none; margin-top: 6px; }
.accountHelp b { display: block; color: var(--charcoal); font-weight: 500; }
.accountHelp:hover { border-color: var(--forest); }

/* روی موبایل سایدبار به نوار افقی اسکرول‌شونده تبدیل می‌شود */
@media (max-width: 991px) {
  .accountNav { padding: 6px; overflow-x: auto; }
  .accountNav ul { display: flex; gap: 4px; }
  .accountNav a { white-space: nowrap; padding: 10px 14px; }
  .accountNav a .n { display: none; }
  .accountHelp { display: none; }
}

.accountHead { margin-bottom: clamp(20px, 3vw, 30px); }
.accountHead .subTitle {
  margin-top: 10px; max-width: 62ch; color: var(--charcoalMuted); font-size: 0.88em;
}

/* مهم‌ترین کار بعدی */
.nextAction {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  padding: clamp(18px, 2.2vw, 26px);
  background: var(--forest); color: rgba(247, 244, 237, 0.82);
  border-radius: var(--radiusLg);
  margin-bottom: clamp(18px, 2.4vw, 26px);
}
.nextAction .ico {
  width: 46px; height: 46px; flex: none; display: grid; place-items: center;
  border: 1px solid rgba(247, 244, 237, 0.28); border-radius: 50%; color: var(--ivory);
}
.nextAction .txt { flex: 1; min-width: 200px; }
.nextAction .t { display: block; color: var(--ivory); font-size: 1em; font-weight: 500; line-height: 1.7; }
.nextAction .d { display: block; font-size: 0.84em; line-height: 1.8; }
.nextAction .cta {
  display: inline-flex; align-items: center; gap: 7px; flex: none;
  padding: 11px 20px; border: 1px solid rgba(247, 244, 237, 0.4);
  border-radius: var(--radius); color: var(--ivory); font-size: 0.82em;
  transition: background var(--speed) var(--ease);
}
.nextAction .cta svg { width: 14px; height: 14px; }
.nextAction:hover .cta { background: rgba(247, 244, 237, 0.14); }

.accountStats {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 1px; background: var(--line); border: 1px solid var(--line);
  border-radius: var(--radiusLg); overflow: hidden;
}
.accountStats .cell { background: var(--ivoryCard); padding: 20px 18px; text-align: center; }
.accountStats .num { font-size: 1.45em; font-weight: 600; color: var(--charcoal); line-height: 1.4; }
.accountStats .label { font-size: 0.74em; color: var(--charcoalMuted); }

.accountSection { margin-top: clamp(30px, 4vw, 48px); }
.accountSectionHead {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 16px; flex-wrap: wrap; padding-bottom: 14px;
  border-bottom: 1px solid var(--line); margin-bottom: 18px;
}

/* سفارش‌ها */
.orderList { display: grid; gap: 12px; }

.orderRow {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  padding: 14px 16px;
  background: var(--ivoryCard); border: 1px solid var(--line);
  border-radius: var(--radiusLg);
  transition: border-color var(--speed) var(--ease), box-shadow var(--speed) var(--ease);
}
.orderRow:hover { border-color: #D8D1BF; box-shadow: var(--shadow); }

.orderRow .thumbs { display: flex; align-items: center; flex: none; }
.orderRow .thumbs .t {
  width: 46px; height: 46px; border-radius: var(--radius); overflow: hidden;
  border: 1px solid var(--lineSoft); background: var(--ivoryDeep);
  margin-inline-start: -10px;
}
.orderRow .thumbs .t:first-child { margin-inline-start: 0; }
.orderRow .thumbs .t img { width: 100%; height: 100%; object-fit: cover; }
.orderRow .thumbs .more {
  display: inline-grid; place-items: center; width: 34px; height: 34px;
  border-radius: 50%; background: var(--ivory); border: 1px solid var(--line);
  font-size: 0.72em; color: var(--charcoalMuted); margin-inline-start: 6px;
}

.orderRow .info { flex: 1; min-width: 160px; }
.orderRow .info .line { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.orderRow .info .num { font-size: 0.88em; font-weight: 600; color: var(--charcoal); }
.orderRow .info .meta { font-size: 0.76em; color: var(--charcoalMuted); }
.orderRow .total {
  font-family: var(--fontEn); font-size: 0.9em; font-weight: 600;
  color: var(--charcoal); direction: rtl; flex: none;
}

.orderStatus {
  display: inline-flex; align-items: center; padding: 2px 11px;
  border-radius: 100px; font-size: 0.7em; line-height: 1.95;
  border: 1px solid var(--line); background: var(--ivory); color: var(--charcoalMuted);
}
.orderStatus.is-processing { border-color: rgba(31,61,51,.22); background: var(--forestSoft); color: var(--forest); }
.orderStatus.is-completed  { border-color: rgba(47,107,79,.28); background: var(--forestSoft); color: var(--success); }
.orderStatus.is-pending,
.orderStatus.is-on-hold    { border-color: rgba(176,138,70,.3); background: var(--goldSoft); color: var(--gold); }
.orderStatus.is-cancelled,
.orderStatus.is-failed,
.orderStatus.is-refunded   { border-color: rgba(142,59,50,.28); background: #FBF0EE; color: var(--error); }

/* هنرمندان دنبال‌شده */
.followList { display: grid; gap: 12px; }

.followRow {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  padding: 14px 16px; background: var(--ivoryCard);
  border: 1px solid var(--line); border-radius: var(--radiusLg);
}
.followRow:hover { border-color: #D8D1BF; }
.followRow .who { display: flex; align-items: center; gap: 13px; flex: 1; min-width: 200px; }
.followRow .avatar {
  width: 54px; height: 54px; flex: none; border-radius: 50%;
  overflow: hidden; background: var(--ivoryDeep); border: 1px solid var(--lineSoft);
}
.followRow .avatar img { width: 100%; height: 100%; object-fit: cover; }
.followRow .name {
  display: flex; align-items: center; gap: 7px; flex-wrap: wrap;
  font-size: 0.92em; font-weight: 500; color: var(--charcoal); line-height: 1.7;
}
.followRow .name svg { width: 14px; height: 14px; color: var(--forest); }
.followRow .craft { display: block; font-size: 0.76em; color: var(--charcoalMuted); line-height: 1.7; }
.followRow .last { display: block; font-size: 0.72em; color: var(--charcoalMuted); opacity: 0.8; }
.followRow .actions { display: flex; gap: 8px; flex: none; flex-wrap: wrap; }

/* اعلان‌ها */
.notifList {
  border: 1px solid var(--line); border-radius: var(--radiusLg);
  background: var(--ivoryCard); overflow: hidden;
}
.notifRow {
  display: flex; align-items: center; gap: 13px;
  padding: 15px 17px; border-bottom: 1px solid var(--lineSoft);
}
.notifRow:last-child { border-bottom: 0; }
.notifRow:hover { background: var(--ivory); }
.notifRow .ico {
  width: 36px; height: 36px; flex: none; display: grid; place-items: center;
  border: 1px solid var(--line); border-radius: 50%; color: var(--gold);
}
.notifRow .ico svg { width: 17px; height: 17px; }
.notifRow .txt { flex: 1; font-size: 0.86em; color: var(--charcoalText); line-height: 1.8; }
.notifRow .when { flex: none; font-size: 0.72em; color: var(--charcoalMuted); }

/* آدرس‌ها */
.addressGrid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 14px;
}
.addressCard {
  background: var(--ivoryCard); border: 1px solid var(--line);
  border-radius: var(--radiusLg); padding: 18px 20px;
}
.addressCard.isEmpty { border-style: dashed; }
.addressCard .head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 14px; padding-bottom: 14px; margin-bottom: 14px;
  border-bottom: 1px solid var(--lineSoft);
}
.addressCard .head .t {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 0.9em; font-weight: 500; color: var(--charcoal);
}
.addressCard .head svg { width: 17px; height: 17px; color: var(--gold); }
.addressCard address { font-style: normal; font-size: 0.86em; line-height: 2; color: var(--charcoalText); }

/* فرم‌های پنل */
.formCard {
  background: var(--ivoryCard); border: 1px solid var(--line);
  border-radius: var(--radiusLg); padding: clamp(18px, 2.2vw, 26px);
  margin-bottom: 16px;
}
.formCardHead {
  font-size: 0.95em; font-weight: 500; color: var(--charcoal);
  padding-bottom: 14px; margin-bottom: 18px; border-bottom: 1px solid var(--lineSoft);
}
.formCardNote { font-size: 0.8em; color: var(--charcoalMuted); margin-bottom: 16px; }
.formActions { display: flex; gap: 12px; flex-wrap: wrap; }
.formRow {
  display: flex; align-items: center; justify-content: space-between;
  gap: 14px; flex-wrap: wrap; margin-bottom: 18px;
}
.checkLine { display: inline-flex; align-items: center; gap: 8px; font-size: 0.82em; color: var(--charcoalMuted); }

.profileCard { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; }
.profileCard .avatar {
  width: 68px; height: 68px; flex: none; border-radius: 50%;
  overflow: hidden; background: var(--ivoryDeep); border: 1px solid var(--lineSoft);
}
.profileCard .avatar img { width: 100%; height: 100%; object-fit: cover; }
.profileCard .name { font-size: 1.05em; font-weight: 600; color: var(--charcoal); }
.profileCard .since { font-size: 0.78em; color: var(--charcoalMuted); }

/* حالت خالی */
.accountEmpty {
  text-align: center; padding: clamp(38px, 6vw, 70px) 24px;
  border: 1px dashed var(--line); border-radius: var(--radiusLg);
  background: var(--ivoryCard); color: var(--charcoalMuted);
}
.accountEmpty svg { width: 30px; height: 30px; color: var(--gold); margin-inline: auto; }
.accountEmpty .t { margin-top: 14px; font-size: 1.02em; font-weight: 500; color: var(--charcoal); }
.accountEmpty p { margin-top: 6px; font-size: 0.86em; }
.accountEmpty .btnGlobal { margin-top: 20px; }

/* ورود و ثبت‌نام */
.loginShell {
  display: grid; grid-template-columns: minmax(0, 1fr);
  gap: clamp(22px, 3vw, 44px);
  padding-block: clamp(20px, 3vw, 40px) clamp(30px, 5vw, 60px);
  align-items: start;
}
@media (min-width: 900px) {
  .loginShell { grid-template-columns: minmax(0, 1fr) minmax(0, 440px); }
}

.loginAside {
  background: var(--forest); color: rgba(247, 244, 237, 0.8);
  border-radius: var(--radiusXl); padding: clamp(26px, 3.4vw, 46px);
}
.loginAside .eyebrowGlobal { color: rgba(247, 244, 237, 0.6); }
.loginAside h2 { color: var(--ivory); font-size: clamp(1.3em, 2.8vw, 1.8em); line-height: 1.55; }
.loginAside p { margin-top: 14px; font-size: 0.9em; line-height: 2; }
.loginPoints { margin-top: 26px; display: grid; gap: 14px; }
.loginPoints li { display: flex; align-items: flex-start; gap: 11px; font-size: 0.86em; line-height: 1.85; }
.loginPoints svg { width: 18px; height: 18px; color: var(--gold); flex: none; margin-top: 6px; }

.loginArtistNote { font-size: 0.82em; color: var(--charcoalMuted); text-align: center; }
.loginArtistNote a { color: var(--forest); text-decoration: underline; text-underline-offset: 4px; }

/* دکمه ذخیره اثر */
.wishBtn {
  position: absolute; z-index: 3;
  inset-block-start: 12px; inset-inline-end: 12px;
  width: 34px; height: 34px; display: grid; place-items: center;
  border: 1px solid var(--line); border-radius: 50%;
  background: rgba(255, 253, 248, 0.94); backdrop-filter: blur(6px);
  color: var(--charcoalMuted); cursor: pointer; padding: 0;
  transition: color var(--speed) var(--ease), border-color var(--speed) var(--ease),
              background var(--speed) var(--ease);
}
.wishBtn svg { width: 16px; height: 16px; }
.wishBtn:hover { border-color: var(--error); color: var(--error); }
.wishBtn.saved { border-color: var(--error); color: var(--error); }
.wishBtn.saved svg { fill: var(--error); }
.wishBtn.busy { opacity: 0.5; pointer-events: none; }

.cardArtwork { position: relative; }

.artworkSingle .priceRow {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--lineSoft);
}
.artworkSingle .priceRow .priceBox { margin: 0; padding: 0; border: 0; }
.artworkSingle .priceRow .wishBtn { position: static; width: 42px; height: 42px; flex: none; }
.artworkSingle .priceRow .wishBtn svg { width: 19px; height: 19px; }

.artworkSingle .panelFollow { margin-top: 12px; }
.artworkSingle .panelFollow .btnGlobal { width: 100%; }

/* دکمه دنبال کردن */
.followBtn .on { display: none; }
.followBtn[aria-pressed="true"] .on { display: inline; }
.followBtn[aria-pressed="true"] .off { display: none; }
.followBtn.busy { opacity: 0.5; pointer-events: none; }

.artistHead .headActions { padding-bottom: 12px; flex: none; }
/** end account **/

/** cart and checkout **/
/* ووکامرس به سایدبار و محتوای پنل float و عرض درصدی می‌دهد که داخل
   گرید ما سایدبار را به حدود ۸۶ پیکسل جمع می‌کرد. */
.woocommerce-account .accountShell .woocommerce-MyAccount-navigation,
.woocommerce-account .accountShell .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
}

.woocommerce-account .accountNav ul { margin: 0; padding: 0; }
.woocommerce-account .accountNav li { border: 0; margin: 0; }

.cartShell,
.checkoutShell {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(20px, 2.6vw, 36px);
  align-items: start;
  padding-block: clamp(16px, 2.4vw, 32px) clamp(30px, 5vw, 60px);
}

@media (min-width: 992px) {
  .cartShell,
  .checkoutShell { grid-template-columns: minmax(0, 1fr) minmax(0, 380px); }
  .cartAside,
  .checkoutAside { position: sticky; top: 100px; }
}

/* خطوط سبد */
.cartLines { display: grid; gap: 12px; }

.cartLine {
  position: relative;
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  padding: 14px 16px;
  background: var(--ivoryCard); border: 1px solid var(--line);
  border-radius: var(--radiusLg);
}
.cartLine:hover { border-color: #D8D1BF; }

.cartLine .shot {
  --pad: 6px;
  position: relative; display: block; flex: none;
  width: 82px; aspect-ratio: 1;
  background: var(--ivoryDeep); border: 1px solid var(--lineSoft);
  border-radius: var(--radius); overflow: hidden;
}
.cartLine .shot img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  max-width: none; padding: var(--pad); object-fit: contain;
}

.cartLine .info { flex: 1; min-width: 180px; }
.cartLine .name { display: block; font-size: 0.94em; font-weight: 500; color: var(--charcoal); line-height: 1.7; }
.cartLine .name:hover { color: var(--forest); }
.cartLine .by { display: block; font-size: 0.76em; color: var(--charcoalMuted); line-height: 1.7; }
.cartLine .by:hover { color: var(--forest); }
.cartLine .unit { margin-top: 4px; font-size: 0.76em; color: var(--charcoalMuted); }

.cartLine .qty { flex: none; }
.cartLine .qty .one {
  display: inline-flex; align-items: center; padding: 8px 14px;
  border: 1px solid var(--line); border-radius: var(--radius);
  background: var(--ivory); font-size: 0.78em; color: var(--charcoalMuted);
}

.cartLine .lineTotal {
  flex: none; font-family: var(--fontEn); font-size: 0.92em;
  font-weight: 600; color: var(--charcoal); direction: rtl; min-width: 110px; text-align: end;
}

.woocommerce .cartLine a.remove {
  position: absolute; inset-block-start: 10px; inset-inline-end: 10px;
  width: 26px; height: 26px; display: grid; place-items: center;
  border: 1px solid var(--line); border-radius: 50%;
  background: var(--ivoryCard); color: var(--charcoalMuted);
  font-size: 15px; line-height: 1;
}
.woocommerce .cartLine a.remove:hover {
  background: #FBF0EE; border-color: var(--error); color: var(--error);
}

.cartActions {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  padding-top: 16px; margin-top: 4px; border-top: 1px solid var(--line);
}
.cartActions .coupon { display: flex; gap: 8px; flex: 1; min-width: 240px; }
.cartActions .coupon input {
  flex: 1; padding: 11px 14px; border: 1px solid var(--line);
  border-radius: var(--radius); background: var(--ivoryCard); font-size: 0.84em;
}
.cartActions .coupon input:focus { outline: none; border-color: var(--forest); }

/* پنل خلاصه */
.summaryPanel {
  background: var(--ivoryCard);
  border: 1px solid var(--line);
  border-radius: var(--radiusXl);
  padding: clamp(18px, 2.2vw, 26px);
}

.summaryPanel .panelHead {
  font-size: 1em; font-weight: 500; color: var(--charcoal);
  padding-bottom: 14px; margin-bottom: 8px; border-bottom: 1px solid var(--lineSoft);
}
.summaryPanel .panelHead.small { font-size: 0.92em; }

.sumRow {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; padding: 10px 0; font-size: 0.86em; color: var(--charcoalText);
}
.sumRow .k { color: var(--charcoalMuted); }
.sumRow .v { font-family: var(--fontEn); direction: rtl; text-align: end; }
.sumRow .v .unit { font-family: var(--fontFa); }

.sumRow.total {
  margin-top: 8px; padding-top: 16px; border-top: 1px solid var(--line);
  font-size: 1em; color: var(--charcoal);
}
.sumRow.total .k { color: var(--charcoal); font-weight: 500; }
.sumRow.total .v { font-size: 1.15em; font-weight: 600; }

.summaryPanel .trustList { margin-top: 20px; }

.woocommerce .wc-proceed-to-checkout { margin-top: 18px; padding: 0; }
.woocommerce .wc-proceed-to-checkout a.checkout-button {
  display: flex; align-items: center; justify-content: center;
  width: 100%; padding: 15px 24px; margin: 0;
  background: var(--forest); border: 1px solid var(--forest);
  border-radius: var(--radius); color: var(--ivory);
  font-size: 0.9em; font-weight: 500;
}
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover {
  background: var(--forestDeep); border-color: var(--forestDeep);
}

.summaryPanel .shipping ul,
.summaryPanel .shipping li { list-style: none; margin: 0; padding: 0; }
.summaryPanel .shipping label { font-size: 0.9em; }
.summaryPanel .woocommerce-shipping-destination { font-size: 0.78em; color: var(--charcoalMuted); }

/* مراحل تسویه */
.checkoutSteps {
  display: flex; gap: 10px; flex-wrap: wrap;
  padding-block: clamp(16px, 2.4vw, 28px) 0;
  font-size: 0.8em; color: var(--charcoalMuted);
}
.checkoutSteps .step {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 16px; border: 1px solid var(--line);
  border-radius: 100px; background: var(--ivoryCard);
}
.checkoutSteps .step i {
  font-style: normal; width: 20px; height: 20px; display: grid; place-items: center;
  border-radius: 50%; background: var(--ivory); font-size: 0.85em;
}
.checkoutSteps .step.now { border-color: var(--forest); background: var(--forest); color: var(--ivory); }
.checkoutSteps .step.now i { background: rgba(247,244,237,.2); }
.checkoutSteps .step.done { border-color: var(--forestSoft); background: var(--forestSoft); color: var(--forest); }

/* فرم تسویه */
.woocommerce form .form-row { padding: 0; margin: 0 0 16px; }
.woocommerce form .form-row label {
  display: block; margin-bottom: 7px; font-size: 0.8em; color: var(--charcoalMuted);
}
.woocommerce form .form-row .required { color: var(--error); text-decoration: none; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce form .form-row .select2-container .select2-selection {
  width: 100%; padding: 12px 14px; border: 1px solid var(--line);
  border-radius: var(--radius); background: var(--ivoryCard);
  font-size: 0.86em; height: auto; line-height: 1.8;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus { outline: none; border-color: var(--forest); }
.woocommerce form .form-row textarea { min-height: 110px; }

.woocommerce .col2-set { display: grid; gap: 0; width: auto; }
.woocommerce .col2-set .col-1,
.woocommerce .col2-set .col-2 { float: none; width: auto; padding: 0; }

.woocommerce form .form-row-first,
.woocommerce form .form-row-last { width: 100%; float: none; }

@media (min-width: 640px) {
  .woocommerce form .form-row-first,
  .woocommerce form .form-row-last {
    width: calc(50% - 8px); display: inline-block; vertical-align: top;
  }
  .woocommerce form .form-row-first { margin-inline-end: 16px; }
}

.woocommerce .checkoutMain h3 {
  font-size: 0.95em; font-weight: 500; color: var(--charcoal);
  padding-bottom: 14px; margin-bottom: 18px; border-bottom: 1px solid var(--lineSoft);
}

/* مرور سفارش */
.reviewLines { display: grid; gap: 12px; padding-block: 6px 14px; border-bottom: 1px solid var(--lineSoft); }

.reviewLine { display: flex; align-items: center; gap: 12px; }
.reviewLine .shot {
  --pad: 5px;
  position: relative; flex: none; width: 54px; aspect-ratio: 1;
  background: var(--ivoryDeep); border: 1px solid var(--lineSoft);
  border-radius: var(--radius); overflow: visible;
}
.reviewLine .shot img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  max-width: none; padding: var(--pad); object-fit: contain;
  border-radius: var(--radius);
}
.reviewLine .shot .q {
  position: absolute; inset-block-start: -7px; inset-inline-start: -7px;
  min-width: 20px; height: 20px; padding-inline: 5px;
  display: grid; place-items: center; border-radius: 100px;
  background: var(--forest); color: var(--ivory); font-size: 10px; font-style: normal;
}
.reviewLine .info { flex: 1; min-width: 0; }
.reviewLine .n { display: block; font-size: 0.85em; color: var(--charcoal); line-height: 1.7; }
.reviewLine .a { display: block; font-size: 0.73em; color: var(--charcoalMuted); }
.reviewLine .p {
  flex: none; font-family: var(--fontEn); font-size: 0.84em;
  font-weight: 600; color: var(--charcoal); direction: rtl;
}

/* روش پرداخت */
.paymentBox { margin-top: 20px; }
.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods {
  padding: 0; border: 0; margin: 0 0 16px;
}
.woocommerce-checkout #payment ul.payment_methods li {
  border: 1px solid var(--line); border-radius: var(--radiusLg);
  background: var(--ivoryCard); padding: 14px 16px; margin-bottom: 10px;
  list-style: none;
}
.woocommerce-checkout #payment ul.payment_methods li label {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 0.88em; color: var(--charcoal); margin: 0;
}
.woocommerce-checkout #payment div.payment_box {
  background: var(--ivory); border-radius: var(--radius);
  margin: 12px 0 0; padding: 13px 15px; font-size: 0.8em; color: var(--charcoalMuted);
}
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment .place-order { padding: 0; margin-top: 6px; }
.woocommerce-checkout #payment #place_order {
  float: none; width: 100%; height: auto;
  padding: 15px 24px; font-size: 0.9em; font-weight: 500; line-height: 1.5;
  border-radius: var(--radius);
}
.woocommerce-checkout #payment .place-order { width: 100%; }
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper { margin-bottom: 14px; font-size: 0.8em; }

/* سفارش ثبت شد */
.thankyouWrap { padding-block: clamp(24px, 4vw, 52px) clamp(30px, 5vw, 60px); }

.thankyouHead { text-align: center; max-width: 62ch; margin-inline: auto; }
.thankyouHead .mark {
  width: 62px; height: 62px; margin: 0 auto 20px; display: grid; place-items: center;
  border-radius: 50%; background: var(--forestSoft); color: var(--success);
}
.thankyouHead .mark svg { width: 28px; height: 28px; }
.thankyouHead p { margin-top: 14px; color: var(--charcoalMuted); font-size: 0.92em; }

.orderFacts {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 1px; background: var(--line); border: 1px solid var(--line);
  border-radius: var(--radiusLg); overflow: hidden;
  margin-top: clamp(26px, 4vw, 42px);
}
.orderFacts .cell { background: var(--ivoryCard); padding: 20px 18px; text-align: center; }
.orderFacts .k { font-size: 0.74em; color: var(--charcoalMuted); }
.orderFacts .v { font-size: 0.98em; font-weight: 500; color: var(--charcoal); line-height: 1.7; }

.thankyouNext { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; margin-top: 30px; }

.woocommerce .thankyouWrap .woocommerce-order-details,
.woocommerce .thankyouWrap .woocommerce-customer-details { margin-top: clamp(30px, 4vw, 48px); }
.woocommerce .thankyouWrap h2 {
  font-size: 1.05em; font-weight: 600; color: var(--charcoal);
  padding-bottom: 14px; margin-bottom: 18px; border-bottom: 1px solid var(--line);
}
/** end cart and checkout **/

/** artists list page **/
.artistBigGrid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
  gap: clamp(16px, 2vw, 24px);
}

.cardArtistBig {
  display: flex; flex-direction: column;
  background: var(--ivoryCard);
  border: 1px solid var(--line);
  border-radius: var(--radiusLg);
  overflow: hidden;
  transition: border-color var(--speed) var(--ease), box-shadow var(--speed) var(--ease),
              transform var(--speed) var(--ease);
}
.cardArtistBig:hover { border-color: #D8D1BF; box-shadow: var(--shadow); transform: translateY(-3px); }

.cardArtistBig .cover {
  display: block; position: relative;
  aspect-ratio: 16 / 7;
  background: var(--forestSoft);
  overflow: hidden;
}
.cardArtistBig .cover img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  max-width: none; object-fit: cover;
  transition: transform 0.6s var(--ease);
}
.cardArtistBig:hover .cover img { transform: scale(1.04); }

.cardArtistBig .body {
  display: flex; flex-direction: column; flex: 1;
  padding: 0 18px 18px;
}

.cardArtistBig .avatar {
  display: block; width: 66px; height: 66px;
  margin-top: -33px; margin-bottom: 12px;
  border-radius: 50%; overflow: hidden;
  border: 4px solid var(--ivoryCard); background: var(--ivoryDeep);
  position: relative; z-index: 2;
}
.cardArtistBig .avatar img { width: 100%; height: 100%; object-fit: cover; }

.cardArtistBig .name {
  display: flex; align-items: center; gap: 7px;
  font-size: 1em; font-weight: 600; color: var(--charcoal); line-height: 1.6;
}
.cardArtistBig .name svg { width: 15px; height: 15px; color: var(--forest); flex: none; }
.cardArtistBig .name a:hover { color: var(--forest); }

.cardArtistBig .craft { font-size: 0.78em; color: var(--charcoalMuted); line-height: 1.8; }

.cardArtistBig .intro {
  margin-top: 10px; font-size: 0.84em; line-height: 1.95; color: var(--charcoalText);
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}

.cardArtistBig .foot {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; flex-wrap: wrap;
  margin-top: auto; padding-top: 16px;
  border-top: 1px solid var(--lineSoft);
}
.cardArtistBig .foot .count { font-size: 0.78em; color: var(--charcoalMuted); }
.cardArtistBig .foot .count b { color: var(--charcoal); font-weight: 600; }
.cardArtistBig .foot .actions { display: flex; gap: 8px; flex-wrap: wrap; }

/** about page **/
.aboutHero {
  background: var(--forest); color: rgba(247, 244, 237, 0.82);
  border-radius: var(--radiusXl);
  padding: clamp(30px, 5vw, 66px) clamp(24px, 5vw, 60px);
  margin-top: clamp(16px, 2vw, 24px);
}
.aboutHero .eyebrowGlobal { color: rgba(247, 244, 237, 0.6); }
.aboutHero h1 { color: var(--ivory); font-size: clamp(1.5em, 4vw, 2.4em); line-height: 1.45; max-width: 22ch; }
.aboutHero p { margin-top: 18px; max-width: 60ch; font-size: 0.95em; line-height: 2.05; }

.aboutValues {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  gap: 1px; background: var(--line); border: 1px solid var(--line);
  border-radius: var(--radiusLg); overflow: hidden;
  margin-top: var(--sectionGap);
}
.aboutValues .cell { background: var(--ivoryCard); padding: clamp(22px, 2.6vw, 30px); }
.aboutValues .cell svg { width: 24px; height: 24px; color: var(--gold); }
.aboutValues .cell .t { margin-top: 14px; font-size: 1em; font-weight: 500; color: var(--charcoal); }
.aboutValues .cell .d { margin-top: 6px; font-size: 0.85em; line-height: 1.95; color: var(--charcoalMuted); }

.aboutNumbers {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 1px; background: var(--line); border: 1px solid var(--line);
  border-radius: var(--radiusLg); overflow: hidden;
}
.aboutNumbers .cell { background: var(--ivoryCard); padding: 24px 20px; text-align: center; }
.aboutNumbers .num { font-size: 1.8em; font-weight: 600; color: var(--charcoal); line-height: 1.4; }
.aboutNumbers .label { font-size: 0.76em; color: var(--charcoalMuted); }
/** end about page **/

/** archive shell — WF-003 **/
.archiveShell {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: clamp(20px, 2.4vw, 34px);
  align-items: start;
  margin-top: 22px;
}

.archiveMain { min-width: 0; }

#velArchiveBody { transition: opacity 0.2s ease; }
#velArchiveBody.busy { opacity: 0.45; pointer-events: none; }

/** category hero **/
.catHero {
  display: grid;
  gap: clamp(18px, 2vw, 30px);
  align-items: center;
  padding: clamp(24px, 3vw, 40px);
  margin-bottom: 24px;
  border: 1px solid var(--line);
  border-radius: var(--radiusLg);
  background: var(--forestSoft);
}
.catHero.hasShot { grid-template-columns: minmax(0, 240px) minmax(0, 1fr); }

.catHero .shot {
  display: block; position: relative;
  aspect-ratio: 4 / 3; overflow: hidden;
  border-radius: var(--radius);
  background: var(--ivoryDeep);
}
.catHero .shot img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; max-width: none; object-fit: cover;
}

.catHero .say { min-width: 0; }
.catHero .subTitle { margin-top: 10px; max-width: 62ch; color: var(--charcoalText); font-size: 0.9em; }

.catHero .figures {
  display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 16px;
  font-size: 0.82em; color: var(--charcoalMuted);
}
.catHero .figures b { color: var(--forest); font-size: 1.15em; margin-inline-end: 4px; }

/** filter panel **/
.filterPanel {
  position: sticky; top: 90px;
  padding: 20px; border: 1px solid var(--line);
  border-radius: var(--radiusLg); background: var(--ivoryCard);
}

.filterPanel .head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 4px;
}
.filterPanel .head .t { font-size: 0.92em; color: var(--charcoal); }
.filterPanel .head .n {
  display: inline-grid; place-items: center; min-width: 19px; height: 19px;
  padding-inline: 5px; border-radius: 100px; background: var(--forest);
  color: var(--ivory); font-size: 10px; margin-inline-start: 6px;
}

.filterPanel .closeFilters { display: none; background: none; border: 0; cursor: pointer; color: var(--charcoalMuted); }

.filterPanel .clearAll {
  display: inline-block; margin-bottom: 14px;
  font-size: 0.78em; color: var(--gold); text-decoration: underline; text-underline-offset: 4px;
}

.filterPanel .group { padding-block: 16px; border-top: 1px solid var(--lineSoft); }
.filterPanel .group:first-of-type { border-top: 0; padding-top: 6px; }
.filterPanel .gt { font-size: 0.8em; color: var(--charcoalMuted); margin-bottom: 10px; }

.filterPanel .priceRow { display: flex; align-items: center; gap: 8px; }
.filterPanel .priceRow input {
  width: 100%; min-width: 0; padding: 9px 11px;
  border: 1px solid var(--line); border-radius: 6px;
  background: var(--ivory); font: inherit; font-size: 0.78em;
}
.filterPanel .priceRow .dash { flex: none; font-size: 0.75em; color: var(--charcoalMuted); }

.filterPanel .boxes { display: grid; gap: 2px; max-height: 240px; overflow-y: auto; }
.filterPanel label {
  display: flex; align-items: center; gap: 9px;
  padding: 7px 8px; border-radius: 5px; cursor: pointer;
  font-size: 0.82em; color: var(--charcoalText);
}
.filterPanel label:hover { background: var(--ivory); color: var(--charcoal); }
.filterPanel label input { accent-color: var(--forest); flex: none; }
.filterPanel label .l { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.filterPanel label .n { font-size: 0.85em; color: var(--charcoalMuted); }

.filterPanel .foot { margin-top: 18px; }
.filterPanel .foot .btnGlobal { width: 100%; justify-content: center; }

.archiveToolbar .openFilters { display: none; align-items: center; gap: 8px; }
.archiveToolbar .openFilters svg { width: 15px; height: 15px; }
.archiveToolbar .openFilters .n {
  display: inline-grid; place-items: center; min-width: 18px; height: 18px;
  border-radius: 100px; background: var(--forest); color: var(--ivory); font-size: 10px;
}

/** artist card inside the grid **/
.artworkGrid > li.artistPromo { grid-column: 1 / -1; list-style: none; }

.promoCard {
  display: flex; align-items: center; gap: clamp(14px, 2vw, 26px); flex-wrap: wrap;
  padding: clamp(18px, 2vw, 26px);
  border: 1px solid var(--line); border-radius: var(--radiusLg);
  background: var(--forestSoft);
}
.promoCard .shot {
  flex: none; display: block; width: 82px; height: 82px;
  border-radius: 100px; overflow: hidden; background: var(--ivoryDeep);
}
.promoCard .shot img { width: 100%; height: 100%; object-fit: cover; }
.promoCard .say { flex: 1; min-width: 200px; }
.promoCard .say h3 { margin: 6px 0 0; display: flex; align-items: center; gap: 7px; }
.promoCard .say h3 svg { width: 15px; height: 15px; color: var(--forest); }
.promoCard .meta { margin-top: 6px; font-size: 0.78em; color: var(--charcoalMuted); }
.promoCard p { margin: 8px 0 0; font-size: 0.84em; color: var(--charcoalText); max-width: 62ch; }

/** category story **/
.catStory {
  margin-top: clamp(34px, 4vw, 56px);
  padding-top: clamp(24px, 3vw, 36px);
  border-top: 1px solid var(--line);
}
.catStory .entryContent { margin-top: 14px; max-width: 74ch; }

@media (max-width: 1024px) {
  .archiveShell { grid-template-columns: minmax(0, 1fr); }

  .archiveToolbar .openFilters { display: inline-flex; }

  /* روی موبایل فیلتر از پایین بالا می‌آید — WF-003 */
  .archiveAside {
    position: fixed; inset-inline: 0; inset-block-end: 0; z-index: 95;
    max-height: 82vh; overflow-y: auto;
    transform: translateY(100%); visibility: hidden;
    transition: transform var(--speed) var(--ease), visibility var(--speed) var(--ease);
  }
  .archiveAside.open { transform: translateY(0); visibility: visible; }

  .filterPanel {
    position: static;
    border-radius: var(--radiusLg) var(--radiusLg) 0 0;
    box-shadow: 0 -20px 50px rgba(31, 61, 51, 0.18);
  }
  .filterPanel .closeFilters { display: block; }
}

@media (max-width: 700px) {
  .catHero.hasShot { grid-template-columns: minmax(0, 1fr); }
  .catHero .shot { aspect-ratio: 16 / 9; }
}

/** search & discover — WF-004 **/
.searchHero {
  padding-block: clamp(24px, 4vw, 46px) clamp(18px, 2.4vw, 30px);
  text-align: center;
}
.searchHero .eyebrowGlobal { display: block; }

.bigSearch {
  display: flex; gap: 10px; flex-wrap: wrap;
  max-width: 640px; margin: 22px auto 0;
}
.bigSearch input {
  flex: 1; min-width: 200px; padding: 15px 20px;
  border: 1px solid var(--line); border-radius: 100px;
  background: var(--ivoryCard); font: inherit; font-size: 0.92em; color: var(--charcoal);
}
.bigSearch input:focus { outline: none; border-color: var(--forest); }
.bigSearch button {
  display: inline-flex; align-items: center; gap: 8px; flex: none;
  padding: 15px 26px; border: 0; border-radius: 100px;
  background: var(--forest); color: var(--ivory);
  font: inherit; font-size: 0.85em; cursor: pointer;
}
.bigSearch button:hover { background: var(--charcoal); }
.bigSearch button svg { width: 16px; height: 16px; }

.recentWrap { margin-top: 20px; }
.recentWrap .rt { display: block; margin-bottom: 10px; font-size: 0.78em; color: var(--charcoalMuted); }
.recentWrap .chipsGlobal { justify-content: center; }
.recentWrap .clearRecent {
  border: 0; background: none; cursor: pointer;
  font: inherit; font-size: 0.78em; color: var(--gold);
  text-decoration: underline; text-underline-offset: 4px;
}

/** mood shortcuts **/
.moodGrid {
  display: grid; gap: clamp(10px, 1.4vw, 16px);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr));
}
.moodCard {
  display: grid; justify-items: center; gap: 10px;
  padding: clamp(18px, 2vw, 26px) 14px;
  border: 1px solid var(--line); border-radius: var(--radiusLg);
  background: var(--ivoryCard); text-align: center;
  font-size: 0.86em; color: var(--charcoalText);
  transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}
.moodCard:hover {
  border-color: var(--forest); background: var(--forestSoft);
  color: var(--forest); transform: translateY(-2px);
}
.moodCard svg { width: 22px; height: 22px; color: var(--gold); }
.moodCard:hover svg { color: var(--forest); }

/** article results **/
.postGrid {
  display: grid; gap: clamp(12px, 1.6vw, 18px);
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
}
.postCard {
  display: block; padding: 20px;
  border: 1px solid var(--line); border-radius: var(--radiusLg);
  background: var(--ivoryCard);
}
.postCard:hover { border-color: var(--charcoal); }
.postCard .d { display: block; font-size: 0.74em; color: var(--charcoalMuted); }
.postCard .t { display: block; margin-top: 8px; font-size: 0.92em; color: var(--charcoal); }
.postCard p { margin: 8px 0 0; font-size: 0.82em; color: var(--charcoalText); }

/** order detail — WF-007 **/
.orderSteps {
  display: grid; gap: 10px; margin: 0 0 24px; padding: 0; list-style: none;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.orderSteps li {
  display: grid; justify-items: center; gap: 8px;
  padding: 16px 8px; text-align: center;
  border: 1px solid var(--line); border-radius: var(--radius);
  background: var(--ivoryCard);
  font-size: 0.78em; color: var(--charcoalMuted);
}
.orderSteps li.done {
  border-color: rgba(47, 107, 79, 0.28);
  background: var(--forestSoft); color: var(--forest);
}
.orderSteps .dot {
  display: grid; place-items: center; width: 26px; height: 26px;
  border-radius: 100px; border: 1px solid currentColor;
}
.orderSteps li.done .dot { background: var(--forest); border-color: var(--forest); color: var(--ivory); }
.orderSteps .dot svg { width: 14px; height: 14px; }

.orderPanels {
  display: grid; gap: clamp(12px, 1.6vw, 18px); margin-top: 22px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
}
.orderPanels .panel {
  padding: 20px 22px;
  border: 1px solid var(--line); border-radius: var(--radiusLg);
  background: var(--ivoryCard);
}
.orderPanels address {
  margin-top: 12px; font-style: normal;
  font-size: 0.84em; line-height: 2.1; color: var(--charcoalText);
}
.orderPanels .row {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  margin: 10px 0 0; font-size: 0.82em; color: var(--charcoalMuted);
}
.orderPanels .row b { color: var(--charcoal); font-weight: 500; }

@media (max-width: 640px) {
  .orderSteps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/** artist page blocks — WF-001 **/
.collectionRow {
  display: grid; gap: clamp(12px, 1.6vw, 20px);
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr));
}
.collectionCard {
  display: block; overflow: hidden;
  border: 1px solid var(--line); border-radius: var(--radiusLg);
  background: var(--ivoryCard);
  transition: border-color 0.2s ease, transform 0.2s ease;
}
.collectionCard:hover { border-color: var(--forest); transform: translateY(-2px); }

.collectionCard .shot {
  display: block; position: relative;
  aspect-ratio: 4 / 3; overflow: hidden; background: var(--ivoryDeep);
}
.collectionCard .shot img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; max-width: none; object-fit: cover;
}

.collectionCard .say { display: block; padding: 16px 18px; }
.collectionCard .t { display: block; font-size: 0.92em; color: var(--charcoal); }
.collectionCard .d { display: block; margin-top: 6px; font-size: 0.8em; color: var(--charcoalText); }
.collectionCard .n { display: block; margin-top: 10px; font-size: 0.74em; color: var(--gold); }

.reviewRow {
  display: grid; gap: clamp(12px, 1.6vw, 18px);
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
}
.reviewCard {
  padding: 20px 22px;
  border: 1px solid var(--line); border-radius: var(--radiusLg);
  background: var(--ivoryCard);
}
.reviewCard .stars { display: block; color: var(--gold); font-size: 0.85em; letter-spacing: 2px; }
.reviewCard p {
  margin: 10px 0 0; font-size: 0.85em; line-height: 2.1; color: var(--charcoalText);
}
.reviewCard .who { display: block; margin-top: 14px; font-size: 0.8em; color: var(--charcoal); }
.reviewCard .on {
  display: block; margin-top: 4px; font-size: 0.76em; color: var(--charcoalMuted);
  text-decoration: underline; text-underline-offset: 3px;
}
.reviewCard .on:hover { color: var(--forest); }

/** artwork reviews — WF-002 **/
.reviewSection { scroll-margin-top: 100px; }

.ratingSummary {
  display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
  margin-bottom: 22px; padding: 16px 20px;
  border: 1px solid var(--line); border-radius: var(--radiusLg);
  background: var(--forestSoft);
}
.ratingSummary .avg { font-size: 1.9em; color: var(--forest); }
.ratingSummary .of { font-size: 0.8em; color: var(--charcoalMuted); }
.ratingSummary .stars { color: var(--gold); letter-spacing: 3px; }

.reviewList { margin: 0; padding: 0; list-style: none; display: grid; gap: 12px; }
.reviewList .children { margin: 12px 0 0; padding: 0; list-style: none; }

.reviewItem .body {
  padding: 18px 20px;
  border: 1px solid var(--line); border-radius: var(--radiusLg);
  background: var(--ivoryCard);
}
.reviewItem.isReply .body {
  background: var(--forestSoft);
  border-color: rgba(47, 107, 79, 0.22);
  margin-inline-start: clamp(14px, 3vw, 40px);
}

.reviewItem .head {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 14px; flex-wrap: wrap;
}
.reviewItem .who { font-size: 0.9em; color: var(--charcoal); }
.reviewItem .who .tag {
  display: inline-block; margin-inline-start: 7px; padding: 1px 9px;
  border-radius: 100px; background: var(--forest); color: var(--ivory);
  font-size: 0.68em; line-height: 1.9;
}
.reviewItem .side { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.reviewItem .stars { color: var(--gold); font-size: 0.85em; letter-spacing: 2px; }
.reviewItem time { font-size: 0.74em; color: var(--charcoalMuted); }
.reviewItem .say { margin-top: 10px; font-size: 0.86em; line-height: 2.1; color: var(--charcoalText); }
.reviewItem .say p { margin: 0 0 10px; }
.reviewItem .say p:last-child { margin-bottom: 0; }
.reviewItem .pending { margin: 8px 0 0; font-size: 0.78em; color: var(--gold); }

.reviewFormWrap {
  margin-top: clamp(24px, 3vw, 36px);
  padding: clamp(20px, 2.6vw, 30px);
  border: 1px solid var(--line); border-radius: var(--radiusLg);
  background: var(--ivoryCard);
  max-width: 46em;
}
.reviewFormWrap .loggedAs { margin: 10px 0 0; font-size: 0.8em; color: var(--charcoalMuted); }
.reviewFormWrap .comment-form { margin-top: 16px; }
.reviewFormWrap .ratingPick select { max-width: 16em; }
.reviewFormWrap .form-submit { margin: 18px 0 0; }
.reviewFormWrap .comment-reply-title { display: block; }

.careNote { max-width: 70ch; }

/** home — quick discovery (WF-005 بلوک ۲) **/
.quickDiscover {
  padding-block: clamp(20px, 2.6vw, 30px);
  border-bottom: 1px solid var(--line);
}

.qdSearch {
  display: flex; align-items: center; gap: 10px;
  padding: 6px 6px 6px 6px;
  padding-inline-start: 18px;
  border: 1px solid var(--line); border-radius: 999px;
  background: var(--ivoryCard);
  max-width: 44em; margin-inline: auto;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.qdSearch:focus-within { border-color: var(--forest); box-shadow: 0 0 0 4px rgba(31, 61, 51, 0.07); }
.qdSearch > svg { width: 20px; height: 20px; color: var(--charcoalMuted); flex: none; }
.qdSearch input {
  flex: 1 1 auto; min-width: 0;
  border: 0; background: none; outline: none;
  font: inherit; font-size: 0.88em; color: var(--charcoal);
  padding-block: 12px;
}
.qdSearch input::placeholder { color: var(--charcoalMuted); }
.qdSearch button {
  flex: none; border: 0; cursor: pointer;
  border-radius: 999px; padding: 12px 26px;
  background: var(--forest); color: #fff;
  font: inherit; font-size: 0.82em;
  transition: background 0.2s ease;
}
.qdSearch button:hover { background: var(--charcoal); }

.qdRow {
  display: flex; align-items: center; justify-content: center;
  flex-wrap: wrap; gap: 10px 14px;
  margin-top: clamp(14px, 1.8vw, 20px);
}
.qdLead { font-size: 0.78em; color: var(--charcoalMuted); }

.qdChips { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }

.qdChip {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 9px 16px;
  border: 1px solid var(--line); border-radius: 999px;
  background: var(--ivoryCard);
  font-size: 0.8em; color: var(--charcoalText);
  transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}
.qdChip svg { width: 16px; height: 16px; color: var(--gold); }
.qdChip:hover { border-color: var(--forest); color: var(--charcoal); background: #fff; }

@media (max-width: 600px) {
  .qdSearch { padding-inline-start: 14px; }
  .qdSearch button { padding-inline: 18px; }
  .qdRow { justify-content: flex-start; }
  .qdChips { justify-content: flex-start; }
}
/** end quick discovery **/

/** home — artist story (WF-005 بلوک ۶) **/
.artistStory {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1fr);
  gap: clamp(24px, 3.4vw, 52px);
  align-items: center;
  padding: clamp(22px, 3vw, 40px);
  border: 1px solid var(--line); border-radius: var(--radiusLg);
  background: var(--ivoryCard);
}

.artistStory .face .shot {
  display: block; overflow: hidden;
  border-radius: var(--radiusLg);
  aspect-ratio: 4 / 5;
  background: var(--line);
}
.artistStory .face .shot img { width: 100%; height: 100%; object-fit: cover; display: block; }

.artistStory .peek {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px; margin-top: 8px;
}
.artistStory .peek a {
  display: block; overflow: hidden;
  border-radius: var(--radiusSm, 8px);
  aspect-ratio: 1 / 1; background: var(--line);
}
.artistStory .peek img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 0.3s ease;
}
.artistStory .peek a:hover img { transform: scale(1.06); }

.artistStory .say h2 { margin: 10px 0 0; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

.artistStory .meta {
  display: flex; flex-wrap: wrap; gap: 8px 18px;
  margin: 12px 0 0; font-size: 0.78em; color: var(--charcoalMuted);
}
.artistStory .meta span { display: inline-flex; align-items: center; gap: 5px; }
.artistStory .meta svg { width: 15px; height: 15px; color: var(--gold); }

.artistStory .quote {
  margin: clamp(16px, 2vw, 22px) 0 0;
  padding-inline-start: 18px;
  border-inline-start: 2px solid var(--gold);
  font-size: 0.94em; line-height: 2.15; color: var(--charcoalText);
}

.artistStory .say .btnGlobal { margin-top: clamp(18px, 2.2vw, 26px); }

.artistStory .linkMore {
  display: inline-flex; align-items: center; gap: 6px;
  margin-top: clamp(18px, 2.2vw, 26px); margin-inline-start: 16px;
  font-size: 0.8em; color: var(--charcoalMuted);
}
.artistStory .linkMore svg { width: 16px; height: 16px; }
.artistStory .linkMore:hover { color: var(--forest); }

@media (max-width: 860px) {
  .artistStory { grid-template-columns: minmax(0, 1fr); }
  .artistStory .face .shot { aspect-ratio: 16 / 10; }
}
/** end artist story **/
