/* ==========================================================================
   theme.css  =  چیدمان قالب: هدر، منو، دراور، فوتر، برگه، بلاگ، کلاس‌های وردپرس
   فقط از توکن‌ها می‌خواند. کامپوننت‌ها در components.css هستند.
   ========================================================================== */

/* ==== ۱. اسکلت صفحه ==================================================== */
body { display: flex; flex-direction: column; min-block-size: 100vh; min-block-size: 100dvh; }
.ca-main { flex: 1; padding-block: 0 var(--ca-section-gap); }
.ca-main--home, .ca-main--full { padding-block-start: 0; }
.ca-container--narrow { max-inline-size: calc(var(--ca-container-narrow) + 2 * var(--ca-gutter)); }

.ca-page-header { display: grid; gap: var(--ca-space-3); padding-block: var(--ca-space-6) var(--ca-space-8); }
.ca-page-header__title { font-size: var(--ca-text-h1); }
.ca-page-header__desc { color: var(--ca-color-text-secondary); max-inline-size: var(--ca-measure); }
.ca-page-header__search { max-inline-size: 28rem; }

.ca-layout { display: grid; gap: var(--ca-space-12); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1024px) { .ca-has-sidebar .ca-layout { grid-template-columns: minmax(0, 1fr) 300px; } }
.ca-layout__main { min-inline-size: 0; }
.ca-layout__aside { display: grid; gap: var(--ca-space-8); align-content: start; min-inline-size: 0; }

/* ==== ۲. هدر ============================================================ */
.ca-header {
  position: sticky; inset-block-start: 0; z-index: var(--ca-z-header);
  background: var(--ca-color-bg);
  border-block-end: 1px solid var(--ca-color-border);
}
.admin-bar .ca-header { inset-block-start: var(--wp-admin--admin-bar--height, 0px); }
@media (max-width: 600px) { .admin-bar .ca-header { inset-block-start: 0; } }
.ca-header__inner {
  display: flex; align-items: center; gap: var(--ca-space-4);
  min-block-size: var(--ca-header-h-mobile);
}
@media (min-width: 768px) { .ca-header__inner { min-block-size: var(--ca-header-h); } }
.ca-header__brand { flex-shrink: 0; }
.ca-header__actions { display: flex; align-items: center; gap: var(--ca-space-1); margin-inline-start: auto; }
.ca-header__search { display: none; flex: 1; max-inline-size: 26rem; }
.ca-header__search .ca-input { min-block-size: 40px; background: var(--ca-color-bg-subtle); }
@media (min-width: 1024px) { .ca-header__search { display: block; } .ca-header__menu-btn { display: none; } }
/* سه دکمه‌ی سمت چپ (اعلان‌ها، حساب، سبد) در ۳۲۰px جا نمی‌شدند: فاصله‌ها کم می‌شود، اندازه‌ی دکمه (۴۴) همان می‌ماند */
@media (max-width: 359px) { .ca-header__inner { gap: var(--ca-space-2); } .ca-header__actions { gap: 0; } }

.ca-logo { display: inline-flex; align-items: center; color: var(--ca-color-text); text-decoration: none; }
.ca-logo .ca-logo__img { block-size: 36px; inline-size: auto; max-inline-size: none; flex-shrink: 0; } /* دو کلاس: .woocommerce img ارتفاع را auto می‌کند */
@media (max-width: 479px) { .ca-header .ca-logo .ca-logo__img { block-size: 30px; } }
.ca-logo__text { font-size: var(--ca-text-h4); font-weight: var(--ca-weight-black); font-variation-settings: "DOTS" var(--ca-dots-display); line-height: 1; }

/* ==== ۳. منوی اصلی (دسکتاپ) ============================================ */
.ca-nav__list { display: flex; margin: 0; padding: 0; list-style: none; }
.ca-nav--primary { display: none; }
@media (min-width: 1024px) { .ca-nav--primary { display: block; } }
.ca-nav--primary > .ca-nav__list { gap: var(--ca-space-1); }
.ca-nav--primary .ca-nav__item { position: relative; display: flex; align-items: center; }
.ca-nav--primary > ul > .ca-nav__item > .ca-nav__link {
  display: flex; align-items: center; min-block-size: 40px; padding-inline: var(--ca-space-3);
  border-radius: var(--ca-radius-sm);
  color: var(--ca-color-text); font-size: var(--ca-text-sm); font-weight: var(--ca-weight-semibold); text-decoration: none;
  transition: background-color var(--ca-dur-fast) var(--ca-ease-out), color var(--ca-dur-fast);
}
@media (hover: hover) { .ca-nav--primary > ul > .ca-nav__item > .ca-nav__link:hover { background: var(--ca-color-hover-bg); } }
.ca-nav--primary .ca-nav__item.is-current > .ca-nav__link,
.ca-nav--primary .ca-nav__item.is-ancestor > .ca-nav__link { color: var(--ca-color-primary-text); }
.ca-nav--primary .has-children > .ca-nav__link { padding-inline-end: var(--ca-space-1); }
.ca-nav__toggle {
  display: grid; place-items: center; inline-size: 24px; block-size: 24px; padding: 0;
  border: 0; border-radius: var(--ca-radius-xs); background: transparent; color: var(--ca-color-text-secondary); cursor: pointer;
}
.ca-nav__toggle .ca-icon { transition: transform var(--ca-dur-base) var(--ca-ease-out); }
.ca-nav__toggle[aria-expanded="true"] .ca-icon { transform: rotate(180deg); }

.ca-nav--primary .ca-nav__sub {
  position: absolute; inset-block-start: calc(100% + 4px); inset-inline-start: 0; z-index: var(--ca-z-dropdown);
  min-inline-size: 220px; margin: 0; padding: var(--ca-space-1); list-style: none;
  border: 1px solid var(--ca-color-border); border-radius: var(--ca-radius-lg);
  background: var(--ca-color-surface-raised); box-shadow: var(--ca-shadow-md);
  opacity: 0; visibility: hidden; transform: translateY(-4px);
  transition: opacity var(--ca-dur-base) var(--ca-ease-out), transform var(--ca-dur-base) var(--ca-ease-out), visibility var(--ca-dur-base);
}
.ca-nav--primary .ca-nav__sub .ca-nav__sub { inset-block-start: calc(-1 * var(--ca-space-1)); inset-inline-start: 100%; }
@media (hover: hover) { .ca-nav--primary .has-children:hover > .ca-nav__sub { opacity: 1; visibility: visible; transform: none; } }
.ca-nav--primary .has-children:focus-within > .ca-nav__sub,
.ca-nav--primary .has-children.is-open > .ca-nav__sub { opacity: 1; visibility: visible; transform: none; }
.ca-nav--primary .ca-nav__sub .ca-nav__item { inline-size: 100%; }
.ca-nav--primary .ca-nav__sub .ca-nav__link {
  flex: 1; display: block; padding: var(--ca-space-2) var(--ca-space-3); border-radius: var(--ca-radius-sm);
  color: var(--ca-color-text); font-size: var(--ca-text-sm); text-decoration: none;
}
@media (hover: hover) { .ca-nav--primary .ca-nav__sub .ca-nav__link:hover { background: var(--ca-color-hover-bg); } }

/* ==== ۴. دراور منوی موبایل (<dialog>) =================================== */
.ca-nav-drawer {
  position: fixed; inset-block: 0; inset-inline-start: 0; inset-inline-end: auto;
  inline-size: min(100% - 48px, 360px); max-inline-size: none; block-size: 100%; max-block-size: none;
  margin: 0; padding: 0; border: 0;
  display: none; flex-direction: column;
  background: var(--ca-color-surface-raised); color: var(--ca-color-text);
  border-start-end-radius: var(--ca-radius-xl); border-end-end-radius: var(--ca-radius-xl);
  box-shadow: var(--ca-shadow-lg);
}
.ca-nav-drawer[open] { display: flex; animation: ca-drawer-in var(--ca-dur-slower) var(--ca-ease-out); }
[dir="rtl"] .ca-nav-drawer[open] { animation-name: ca-drawer-in-rtl; }
@keyframes ca-drawer-in { from { transform: translateX(-100%); } }
@keyframes ca-drawer-in-rtl { from { transform: translateX(100%); } }
.ca-nav-drawer::backdrop { background: var(--ca-color-overlay); }
.ca-nav-drawer__head { display: flex; align-items: center; justify-content: space-between; gap: var(--ca-space-3); padding: var(--ca-space-3) var(--ca-space-4); border-block-end: 1px solid var(--ca-color-border); }
.ca-nav-drawer__body { flex: 1; overflow-y: auto; display: grid; align-content: start; gap: var(--ca-space-4); padding: var(--ca-space-4); }
.ca-nav--drawer .ca-nav__list { flex-direction: column; }
.ca-nav--drawer .ca-nav__item { display: flex; flex-wrap: wrap; align-items: center; border-block-end: 1px solid var(--ca-color-border); }
.ca-nav--drawer .ca-nav__link { flex: 1; padding-block: var(--ca-space-3); color: var(--ca-color-text); font-weight: var(--ca-weight-semibold); text-decoration: none; }
.ca-nav--drawer .ca-nav__toggle { inline-size: 40px; block-size: 40px; }
.ca-nav--drawer .ca-nav__sub { display: none; inline-size: 100%; margin: 0; padding: 0 var(--ca-space-4) var(--ca-space-2) 0; list-style: none; }
.ca-nav--drawer .has-children.is-open > .ca-nav__sub { display: block; }
.ca-nav--drawer .ca-nav__sub .ca-nav__item { border: 0; }
.ca-nav--drawer .ca-nav__sub .ca-nav__link { padding-block: var(--ca-space-2); font-weight: var(--ca-weight-regular); color: var(--ca-color-text-secondary); }
html.ca-scroll-lock { overflow: hidden; }

/* ==== ۵. فوتر =========================================================== */
.ca-footer { margin-block-start: auto; background: var(--ca-color-bg-subtle); border-block-start: 1px solid var(--ca-color-border); font-size: var(--ca-text-sm); }
.ca-footer__grid { display: grid; gap: var(--ca-space-8); padding-block: var(--ca-space-12); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 768px) { .ca-footer__grid { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); } }
.ca-footer__col { display: grid; align-content: start; gap: var(--ca-space-3); min-inline-size: 0; }
.ca-footer__title { font-size: var(--ca-text-h6); font-weight: var(--ca-weight-bold); }
.ca-footer__desc { color: var(--ca-color-text-secondary); max-inline-size: 36ch; }
.ca-footer__phone { display: flex; align-items: center; gap: var(--ca-space-2); font-weight: var(--ca-weight-semibold); }
.ca-footer__menu, .ca-footer__col ul { display: grid; gap: var(--ca-space-2); margin: 0; padding: 0; list-style: none; }
.ca-footer a { color: var(--ca-color-text-secondary); text-decoration: none; }
@media (hover: hover) { .ca-footer a:hover { color: var(--ca-color-link); } }
.ca-footer__bar { border-block-start: 1px solid var(--ca-color-border); }
.ca-footer__bar-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ca-space-3); padding-block: var(--ca-space-4) calc(var(--ca-space-4) + env(safe-area-inset-bottom, 0px)); color: var(--ca-color-text-muted); font-size: var(--ca-text-xs); }
.ca-footer__social { display: flex; flex-wrap: wrap; gap: var(--ca-space-4); margin: 0; padding: 0; list-style: none; }

/* ==== ۶. بلاگ ========================================================== */
.ca-post-grid { display: grid; gap: var(--ca-space-8) var(--ca-grid-gap); grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
.ca-post-card { display: grid; gap: var(--ca-space-3); align-content: start; position: relative; }
.ca-post-card__media { display: grid; place-items: center; aspect-ratio: var(--ca-ratio-blog); overflow: hidden; border-radius: var(--ca-radius-lg); background: var(--ca-color-media-bg); color: var(--ca-color-text-muted); }
.ca-post-card__media img { inline-size: 100%; block-size: 100%; object-fit: cover; transition: transform var(--ca-dur-slower) var(--ca-ease-out); }
@media (hover: hover) { .ca-post-card:hover .ca-post-card__media img { transform: scale(1.03); } }
.ca-post-card__body { display: grid; gap: var(--ca-space-2); }
.ca-post-card__title { font-size: var(--ca-text-h4); line-height: var(--ca-leading-tight); }
.ca-post-card__title a { color: inherit; text-decoration: none; }
.ca-post-card__title a::after { content: ""; position: absolute; inset: 0; border-radius: var(--ca-radius-lg); }
.ca-post-card__title a:focus-visible { outline: none; }
.ca-post-card__title a:focus-visible::after { outline: var(--ca-focus-width) solid var(--ca-focus-color); outline-offset: var(--ca-focus-offset); }
.ca-post-card__excerpt { color: var(--ca-color-text-secondary); font-size: var(--ca-text-sm); line-height: var(--ca-leading-sm); }
.ca-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ca-space-2); font-size: var(--ca-text-xs); color: var(--ca-color-text-muted); }

.ca-entry__media { margin: 0 0 var(--ca-space-8); border-radius: var(--ca-radius-lg); overflow: hidden; }
.ca-entry__media img { inline-size: 100%; }
.ca-prose--wide { max-inline-size: none; }
.ca-entry__tags { display: flex; flex-wrap: wrap; gap: var(--ca-space-2); margin: var(--ca-space-8) 0 0; padding: 0; list-style: none; }
.ca-entry__tags a { display: inline-flex; padding: var(--ca-space-1) var(--ca-space-3); border-radius: var(--ca-radius-pill); background: var(--ca-color-bg-subtle); color: var(--ca-color-text-secondary); font-size: var(--ca-text-xs); text-decoration: none; }

.ca-post-nav .nav-links { display: grid; gap: var(--ca-space-4); grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); margin-block: var(--ca-space-12); }
.ca-post-nav a { display: grid; gap: var(--ca-space-1); padding: var(--ca-space-4); border: 1px solid var(--ca-color-border); border-radius: var(--ca-radius-lg); color: var(--ca-color-text); text-decoration: none; }
.ca-post-nav .nav-next { text-align: end; }
.ca-post-nav__title { font-weight: var(--ca-weight-bold); }

/* صفحه‌بندی وردپرس (بلاگ، دیدگاه، ووکامرس) با ظاهر .ca-page */
.nav-links, .woocommerce-pagination ul.page-numbers { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--ca-space-1); margin: 0; padding: 0; list-style: none; }
.ca-posts-pagination { margin-block-start: var(--ca-space-12); }
.page-numbers:not(ul) {
  display: inline-grid; place-items: center; min-inline-size: 40px; block-size: 40px; padding-inline: var(--ca-space-2);
  border-radius: var(--ca-radius-md); color: var(--ca-color-text); text-decoration: none;
  font-weight: var(--ca-weight-semibold); font-feature-settings: var(--ca-font-features-tabular);
}
@media (hover: hover) { a.page-numbers:hover { background: var(--ca-color-hover-bg); } }
.page-numbers.current { background: var(--ca-color-primary); color: var(--ca-color-on-primary); }
.page-numbers.dots { color: var(--ca-color-text-muted); }
.screen-reader-text { position: absolute !important; inline-size: 1px; block-size: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ==== ۷. دیدگاه‌ها ======================================================= */
.ca-comments { display: grid; gap: var(--ca-space-6); margin-block-start: var(--ca-space-12); padding-block-start: var(--ca-space-8); border-block-start: 1px solid var(--ca-color-border); }
.ca-comments__list, .ca-comments__list .children { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--ca-space-4); }
.ca-comments__list .children { padding-inline-start: var(--ca-space-6); margin-block-start: var(--ca-space-4); }
.ca-comments .comment-body { padding: var(--ca-space-4); border-radius: var(--ca-radius-lg); background: var(--ca-color-surface); }
.ca-comments .comment-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ca-space-2); margin-block-end: var(--ca-space-2); font-size: var(--ca-text-xs); color: var(--ca-color-text-muted); }
.ca-comments .comment-meta a { color: inherit; }
.ca-comments .avatar { border-radius: var(--ca-radius-circle); }
.ca-comments .fn { font-weight: var(--ca-weight-bold); color: var(--ca-color-text); font-size: var(--ca-text-sm); }
.ca-comments .says { display: none; }
.ca-comments .reply a { font-size: var(--ca-text-xs); font-weight: var(--ca-weight-semibold); color: var(--ca-color-link); }
.ca-comment-form { display: grid; gap: var(--ca-space-4); }
.ca-comment-form label { display: block; margin-block-end: var(--ca-space-2); font-size: var(--ca-text-sm); font-weight: var(--ca-weight-semibold); }
.ca-comment-form :is(input[type="text"], input[type="email"], input[type="url"], textarea),
.ca-search-form .ca-input { inline-size: 100%; }
.ca-comment-form :is(input[type="text"], input[type="email"], input[type="url"], textarea) {
  min-block-size: var(--ca-control-h-md); padding: var(--ca-space-2) var(--ca-input-px);
  border: 1px solid var(--ca-color-border-control); border-radius: var(--ca-radius-md); background: var(--ca-color-bg); font-size: var(--ca-text-md);
}
.ca-comment-form textarea { min-block-size: 8rem; line-height: var(--ca-leading-body); }
.ca-comment-form :is(input, textarea):focus { outline: none; border-color: var(--ca-color-primary); box-shadow: var(--ca-focus-ring-soft); }
.ca-comment-form .comment-form-cookies-consent { display: flex; align-items: center; gap: var(--ca-space-2); font-size: var(--ca-text-sm); }
.ca-comment-form .comment-form-cookies-consent label { margin: 0; font-weight: var(--ca-weight-regular); }

/* ==== ۸. ابزارک‌ها ======================================================= */
.ca-widget { display: grid; gap: var(--ca-space-3); }
.ca-widget__title { font-size: var(--ca-text-h5); font-weight: var(--ca-weight-bold); }
.ca-widget ul { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--ca-space-2); }
.ca-widget a { color: var(--ca-color-text-secondary); text-decoration: none; }
@media (hover: hover) { .ca-widget a:hover { color: var(--ca-color-link); } }

/* ==== ۹. کلاس‌های هسته‌ی وردپرس و بلوک‌ها =============================== */
.alignleft, .alignright { margin-block-end: var(--ca-space-4); }
.alignleft { float: left; margin-right: var(--ca-space-6); }   /* فیزیکی: وردپرس left/right را فیزیکی تعریف کرده */
.alignright { float: right; margin-left: var(--ca-space-6); }
.aligncenter { display: block; margin-inline: auto; }
.wp-caption, .wp-block-image figcaption, figcaption { font-size: var(--ca-text-xs); color: var(--ca-color-text-muted); text-align: center; margin-block-start: var(--ca-space-2); }
.ca-prose img, .ca-prose figure { border-radius: var(--ca-radius-md); }
.ca-prose figure { margin-inline: 0; }
.ca-prose table { inline-size: 100%; border-collapse: collapse; font-size: var(--ca-text-sm); }
.ca-prose th, .ca-prose td { padding: var(--ca-space-2) var(--ca-space-3); border-block-end: 1px solid var(--ca-color-border); text-align: start; }
.ca-prose code { padding: 0.1em 0.35em; border-radius: var(--ca-radius-xs); background: var(--ca-color-bg-subtle); font-size: 0.875em; font-feature-settings: var(--ca-font-features-latin); }
.ca-prose pre { overflow-x: auto; padding: var(--ca-space-4); border-radius: var(--ca-radius-md); background: var(--ca-color-bg-subtle); direction: ltr; text-align: left; }
.ca-entry__content--full > * + * { margin-block-start: var(--ca-section-gap); }
.wp-block-button__link { /* دکمه‌ی بلوک = دکمه‌ی اصلی */
  display: inline-flex; align-items: center; justify-content: center; min-block-size: var(--ca-control-h-md);
  padding: var(--ca-space-1) var(--ca-btn-px-md); border-radius: var(--ca-radius-md);
  background: var(--ca-color-primary); color: var(--ca-color-on-primary); font-weight: var(--ca-weight-semibold); text-decoration: none;
}
.is-style-outline .wp-block-button__link { background: transparent; color: var(--ca-color-text); box-shadow: inset 0 0 0 1px var(--ca-color-border-control); }
.sticky .ca-post-card__title::before { content: ""; display: inline-block; inline-size: 8px; block-size: 8px; margin-inline-end: var(--ca-space-2); border-radius: var(--ca-radius-circle); background: var(--ca-color-primary); vertical-align: middle; }
.bypostauthor { /* لازم برای Theme Check */ }

/* ==== ۱۰. ۴۰۴ ========================================================== */
.ca-404 { padding-block: var(--ca-space-16); }
.ca-404__search { inline-size: min(100%, 28rem); }

/* ==== ۱۱. ابزارک‌ها و بلوک‌های پیش‌فرض وردپرس ============================ */
.ca-widget :is(h2, h3, .wp-block-heading) { font-size: var(--ca-text-h5); }
.wp-block-search__label { display: block; margin-block-end: var(--ca-space-2); font-size: var(--ca-text-sm); font-weight: var(--ca-weight-semibold); }
.wp-block-search__inside-wrapper { display: flex; gap: var(--ca-space-2); }
.wp-block-search__input {
  flex: 1; inline-size: 100%; min-inline-size: 0; min-block-size: var(--ca-control-h-md); padding: var(--ca-space-2) var(--ca-input-px);
  border: 1px solid var(--ca-color-border-control); border-radius: var(--ca-radius-md); background: var(--ca-color-bg); font-size: var(--ca-text-md);
}
.wp-block-search__input:focus { outline: none; border-color: var(--ca-color-primary); box-shadow: var(--ca-focus-ring-soft); }
.wp-block-search__button {
  min-block-size: var(--ca-control-h-md); padding: var(--ca-space-1) var(--ca-btn-px-md); margin: 0;
  border: 1px solid var(--ca-color-border-control); border-radius: var(--ca-radius-md); background: var(--ca-color-bg); color: var(--ca-color-text);
  font-weight: var(--ca-weight-semibold); cursor: pointer;
}
@media (hover: hover) { .wp-block-search__button:hover { border-color: var(--ca-color-text); } }
.wp-block-latest-posts, .wp-block-latest-comments { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--ca-space-3); font-size: var(--ca-text-sm); }
.wp-block-latest-comments__comment { margin: 0; line-height: var(--ca-leading-sm); }
