/* ==========================================================================
   Vira — dark theme layer for Elementor archive / single views
   Scope: body.archive, .blog, .search, .error404, .single
   Palette copied from home.css (:root) so both views look like the homepage.
   ========================================================================== */

:root {
  --pv-bg: #050c20;
  --pv-panel: #0d1936;
  --pv-panel-2: #0a1730;
  --pv-fg: #f4f7ff;
  --pv-muted: #9daecc;
  --pv-body: #c9d6ec;
  --pv-blue: #3577ff;
  --pv-cyan: #00d7ee;
  --pv-border: rgba(134, 167, 239, .18);
}

/* ---------- page shell ---------- */
html:has(body.archive), html:has(body.single), html:has(body.search), html:has(body.error404), html:has(body.blog) {
  background: var(--pv-bg);
}

body.archive, body.blog, body.search, body.error404, body.single {
  background:
    radial-gradient(ellipse at 92% -8%, rgba(53, 119, 255, .20), transparent 55%),
    radial-gradient(ellipse at 4% 6%, rgba(150, 83, 237, .16), transparent 48%),
    var(--pv-bg) !important;
  color: var(--pv-body);
  font-family: Vazirmatn, Tahoma, sans-serif;
}

body.archive ::selection, body.single ::selection { background: rgba(0, 215, 238, .3); color: #fff; }

/* every Elementor section sits on the dark canvas */
body.archive .elementor-location-archive,
body.blog .elementor-location-archive,
body.search .elementor-location-archive,
body.error404 .elementor-location-archive,
body.single .elementor-location-single,
body.archive .elementor-location-archive .elementor-section,
body.single .elementor-location-single .elementor-section {
  background-color: transparent !important;
}

/* ---------- the theme header/footer replace the Elementor locations everywhere ---------- */
body .elementor-location-header,
body .elementor-location-footer { display: none !important; }

/* ---------- header / footer: make the Elementor chrome look like the homepage ---------- */
body:not(.home) .elementor-location-header {
  background: rgba(4, 12, 34, .96) !important;
  border-bottom: 1px solid rgba(134, 167, 239, .18) !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .35);
}

body:not(.home) .elementor-location-header .elementor-section,
body:not(.home) .elementor-location-header .elementor-background-overlay {
  background-color: transparent !important;
  background-image: none !important;
}

/* brand block: same weight/size rhythm as the homepage wordmark */
body:not(.home) .elementor-location-header .elementor-heading-title {
  font-family: Vazirmatn, Tahoma, sans-serif;
  font-size: 22px !important;
  font-weight: 900 !important;
  color: #f4f7ff !important;
  line-height: 1.45 !important;
}

/* the tagline that follows the brand name */
body:not(.home) .elementor-location-header .elementor-widget-heading ~ .elementor-widget-heading .elementor-heading-title {
  font-size: 11.5px !important;
  font-weight: 500 !important;
  color: #9daecc !important;
  letter-spacing: 0 !important;
}

body:not(.home) .elementor-location-header p,
body:not(.home) .elementor-location-header .elementor-icon-list-text {
  color: #9daecc !important;
  font-size: 12px !important;
}

/* menu row */
body:not(.home) .elementor-location-header .elementor-nav-menu,
body:not(.home) .elementor-location-header .elementor-nav-menu--main { visibility: visible !important; }

body:not(.home) .elementor-location-header .elementor-nav-menu > li > a,
body:not(.home) .elementor-location-header .elementor-item {
  font-family: Vazirmatn, Tahoma, sans-serif;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: #d1dafa !important;
  padding: 9px 12px !important;
  border-radius: 8px;
  transition: color .2s ease, background .2s ease;
}

body:not(.home) .elementor-location-header .elementor-nav-menu > li > a:hover,
body:not(.home) .elementor-location-header .elementor-item:hover,
body:not(.home) .elementor-location-header .current-menu-item > a,
body:not(.home) .elementor-location-header .elementor-item-active {
  color: var(--pv-cyan) !important;
  background: rgba(0, 215, 238, .08);
}

body:not(.home) .elementor-location-header .elementor-nav-menu .sub-menu,
body:not(.home) .elementor-location-header .elementor-nav-menu--dropdown {
  background: #101b38 !important;
  border: 1px solid var(--pv-border) !important;
  border-radius: 12px !important;
  box-shadow: 0 18px 40px rgba(0, 0, 0, .45) !important;
  padding: 10px !important;
}

body:not(.home) .elementor-location-header .elementor-nav-menu .sub-menu a {
  color: #c9d6ec !important;
  font-size: 12.5px !important;
  padding: 7px 10px !important;
}

body:not(.home) .elementor-location-header .elementor-nav-menu .sub-menu a:hover { color: var(--pv-cyan) !important; }

/* login button gets the homepage glow treatment */
body:not(.home) .elementor-location-header .elementor-button {
  background: linear-gradient(115deg, #2363e9, #3f8fff) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 10px !important;
  font-family: Vazirmatn, Tahoma, sans-serif;
  font-size: 13px !important;
  font-weight: 600 !important;
  padding: 9px 16px !important;
  box-shadow: 0 9px 24px rgba(20, 93, 236, .35);
}

/* ---------- footer ---------- */
body:not(.home) .elementor-location-footer,
body:not(.home) .elementor-location-footer .elementor-section,
body:not(.home) .elementor-location-footer .elementor-background-overlay {
  background-color: #040b1e !important;
  background-image: none !important;
}

body:not(.home) .elementor-location-footer { border-top: 1px solid #21416f !important; }

body:not(.home) .elementor-location-footer .elementor-heading-title,
body:not(.home) .elementor-location-footer h1,
body:not(.home) .elementor-location-footer h2,
body:not(.home) .elementor-location-footer h3,
body:not(.home) .elementor-location-footer h4,
body:not(.home) .elementor-location-footer strong {
  color: #f4f7ff !important;
  font-family: Vazirmatn, Tahoma, sans-serif;
  font-size: 15px !important;
  font-weight: 800 !important;
}

body:not(.home) .elementor-location-footer p,
body:not(.home) .elementor-location-footer li,
body:not(.home) .elementor-location-footer .elementor-icon-list-text {
  color: #aebdd8 !important;
  font-size: 12.5px !important;
  line-height: 1.95 !important;
}

body:not(.home) .elementor-location-footer a {
  color: #99afd3 !important;
  font-size: 12.5px !important;
  text-decoration: none !important;
  transition: color .2s ease;
}

body:not(.home) .elementor-location-footer a:hover { color: var(--pv-cyan) !important; }
body:not(.home) .elementor-location-footer .elementor-icon { color: var(--pv-cyan) !important; }

body:not(.home) .elementor-location-footer input,
body:not(.home) .elementor-location-footer textarea {
  background: #0a1730 !important;
  border: 1px solid var(--pv-border) !important;
  color: #f4f7ff !important;
  border-radius: 10px !important;
}

body:not(.home) .elementor-location-footer .elementor-button {
  background: linear-gradient(115deg, #2363e9, #3f8fff) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 10px !important;
  font-size: 13px !important;
  padding: 10px 20px !important;
}

/* mobile: keep the Elementor hamburger on a dark bar */
@media (max-width: 760px) {
  body:not(.home) .elementor-location-header .elementor-heading-title { font-size: 18px !important; }
  body:not(.home) .elementor-location-header .elementor-nav-menu--dropdown,
  body:not(.home) .elementor-location-header .elementor-menu-toggle {
    background: #0a1530 !important;
    color: #d1dafa !important;
  }
  body:not(.home) .elementor-location-header .elementor-nav-menu--dropdown a { color: #c9d6ec !important; }
}

/* ---------- breadcrumbs ---------- */
body.archive .elementor-widget-breadcrumbs p,
body.blog .elementor-widget-breadcrumbs p,
body.search .elementor-widget-breadcrumbs p,
body.single .elementor-widget-breadcrumbs p,
body.archive .elementor-widget-breadcrumbs a,
body.single .elementor-widget-breadcrumbs a {
  color: var(--pv-muted) !important;
  font-size: 12.5px;
}

body.archive .elementor-widget-breadcrumbs a:hover,
body.single .elementor-widget-breadcrumbs a:hover { color: var(--pv-cyan) !important; }

/* ---------- archive title + divider ---------- */
body.archive .elementor-widget-theme-archive-title .elementor-heading-title,
body.search .elementor-widget-theme-archive-title .elementor-heading-title {
  color: var(--pv-fg) !important;
  font-size: clamp(26px, 3.2vw, 42px) !important;
  font-weight: 900 !important;
  line-height: 1.45 !important;
}

body.archive .elementor-widget-divider .elementor-divider-separator,
body.single .elementor-widget-divider .elementor-divider-separator {
  border-top-color: rgba(0, 215, 238, .55) !important;
}

/* ---------- archive post cards ---------- */
body.archive .elementor-posts .elementor-post,
body.blog .elementor-posts .elementor-post,
body.search .elementor-posts .elementor-post {
  background: rgba(13, 25, 54, .94) !important;
  border: 1px solid var(--pv-border) !important;
  border-radius: 16px !important;
  overflow: hidden;
  box-shadow: 0 16px 38px rgba(0, 0, 0, .32);
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}

body.archive .elementor-posts .elementor-post:hover,
body.blog .elementor-posts .elementor-post:hover,
body.search .elementor-posts .elementor-post:hover {
  transform: translateY(-4px);
  border-color: rgba(0, 215, 238, .45) !important;
  box-shadow: 0 22px 46px rgba(0, 0, 0, .45);
}

/* Elementor's cards skin paints an extra white wrapper – flatten it */
body.archive .elementor-post__card,
body.blog .elementor-post__card,
body.search .elementor-post__card {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

body.archive .elementor-post__thumbnail,
body.blog .elementor-post__thumbnail,
body.search .elementor-post__thumbnail,
body.single .elementor-post__thumbnail {
  background: var(--pv-panel-2);
  position: relative !important;
  overflow: hidden;
}

/* keep thumbnails from glowing against the dark shell */
body.archive .elementor-post__thumbnail img,
body.blog .elementor-post__thumbnail img,
body.search .elementor-post__thumbnail img { filter: brightness(.76) saturate(.85) contrast(1.02); }

body.archive .elementor-post__thumbnail img,
body.blog .elementor-post__thumbnail img { opacity: .92; }

/* navy veil so bright thumbnails don't blow out the dark card */
body.archive .elementor-post__thumbnail:after,
body.blog .elementor-post__thumbnail:after,
body.search .elementor-post__thumbnail:after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(5, 12, 32, .18) 0%, rgba(5, 12, 32, .62) 100%);
  pointer-events: none;
}

body.archive .elementor-post__text,
body.blog .elementor-post__text,
body.search .elementor-post__text { padding: 18px 20px 20px; }

body.archive .elementor-post__title,
body.blog .elementor-post__title,
body.search .elementor-post__title,
body.archive .elementor-post__title a,
body.blog .elementor-post__title a,
body.search .elementor-post__title a {
  color: var(--pv-fg) !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  line-height: 1.7 !important;
}

body.archive .elementor-post__title a:hover,
body.blog .elementor-post__title a:hover,
body.search .elementor-post__title a:hover { color: var(--pv-cyan) !important; }

body.archive .elementor-post__excerpt p,
body.blog .elementor-post__excerpt p,
body.search .elementor-post__excerpt p {
  color: #aebdd8 !important;
  font-size: 13px !important;
  line-height: 1.95 !important;
}

body.archive .elementor-post__meta,
body.blog .elementor-post__meta,
body.search .elementor-post__meta,
body.archive .elementor-post__meta a,
body.single .elementor-post__meta,
body.single .elementor-post__meta a {
  color: var(--pv-muted) !important;
  font-size: 12px !important;
}

body.archive .elementor-post__read-more,
body.blog .elementor-post__read-more { color: var(--pv-cyan) !important; }

body.archive .elementor-post__badge,
body.blog .elementor-post__badge { background: var(--pv-blue) !important; color: #fff !important; }

body.archive .elementor-post__avatar img,
body.blog .elementor-post__avatar img,
body.single .elementor-post__avatar img {
  border: 3px solid #0d1936 !important;
  box-shadow: 0 0 0 2px rgba(5, 12, 32, .95), 0 10px 22px rgba(0, 0, 0, .5) !important;
}

/* ---------- pagination ---------- */
body.archive .elementor-pagination,
body.blog .elementor-pagination,
body.search .elementor-pagination { gap: 8px; display: flex; flex-wrap: wrap; justify-content: center; }

body.archive .elementor-pagination .page-numbers,
body.blog .elementor-pagination .page-numbers,
body.search .elementor-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  padding: 0 12px;
  border-radius: 10px;
  background: rgba(13, 25, 54, .9);
  border: 1px solid var(--pv-border);
  color: #c9d6ec !important;
  transition: background .2s, color .2s, border-color .2s;
}

body.archive .elementor-pagination .page-numbers:hover,
body.blog .elementor-pagination .page-numbers:hover,
body.search .elementor-pagination .page-numbers:hover {
  background: rgba(0, 215, 238, .12);
  border-color: rgba(0, 215, 238, .45);
  color: #fff !important;
}

body.archive .elementor-pagination .page-numbers.current,
body.blog .elementor-pagination .page-numbers.current,
body.search .elementor-pagination .page-numbers.current {
  background: var(--pv-blue);
  border-color: var(--pv-blue);
  color: #fff !important;
  font-weight: 800;
}

/* ---------- single post ---------- */
body.single .elementor-widget-theme-post-title .elementor-heading-title {
  color: var(--pv-fg) !important;
  font-size: clamp(24px, 2.8vw, 38px) !important;
  font-weight: 900 !important;
  line-height: 1.55 !important;
}

body.single .elementor-widget-post-info,
body.single .elementor-widget-post-info .elementor-icon-list-text,
body.single .elementor-widget-post-info .elementor-icon-list-item,
body.single .elementor-widget-post-info a {
  color: var(--pv-muted) !important;
  font-size: 12.5px !important;
}

body.single .elementor-widget-post-info a:hover { color: var(--pv-cyan) !important; }
body.single .elementor-widget-post-info .elementor-icon { color: var(--pv-cyan) !important; }

/* body copy of the article */
body.single .elementor-widget-theme-post-content {
  color: var(--pv-body) !important;
  font-size: 15px;
  line-height: 2.1;
}

/* Elementor's kit sets #222 on nested paragraphs – override everywhere inside the article */
body.single .elementor-widget-theme-post-content p,
body.single .elementor-widget-theme-post-content li,
body.single .elementor-widget-theme-post-content span:not([class*="elementor-icon"]),
body.single .elementor-widget-theme-post-content div,
body.single .elementor-widget-theme-post-content td,
body.single .elementor-widget-theme-post-content figcaption,
body.single .elementor-widget-theme-post-content strong,
body.single .elementor-widget-theme-post-content em {
  color: var(--pv-body) !important;
}

body.single .elementor-widget-theme-post-content strong,
body.single .elementor-widget-theme-post-content b { color: #ffffff !important; }

body.single .elementor-widget-theme-post-content h1,
body.single .elementor-widget-theme-post-content h2,
body.single .elementor-widget-theme-post-content h3,
body.single .elementor-widget-theme-post-content h4,
body.single .elementor-widget-theme-post-content h5,
body.single .elementor-widget-theme-post-content h6 {
  color: var(--pv-fg) !important;
  font-weight: 800;
  line-height: 1.6;
  margin-top: 1.6em;
}

body.single .elementor-widget-theme-post-content h2 {
  padding-inline-start: 12px;
  border-inline-start: 3px solid var(--pv-cyan);
}

body.single .elementor-widget-theme-post-content a { color: var(--pv-cyan) !important; text-decoration: none; border-bottom: 1px dashed rgba(0, 215, 238, .45); }
body.single .elementor-widget-theme-post-content a:hover { color: #fff; }

body.single .elementor-widget-theme-post-content img { border-radius: 14px; height: auto; }

body.single .elementor-widget-theme-post-content blockquote {
  margin: 1.6em 0;
  padding: 16px 20px;
  background: rgba(13, 25, 54, .75);
  border-inline-start: 3px solid var(--pv-cyan);
  border-radius: 0 12px 12px 0;
  color: #dbe6f8;
  font-style: normal;
}

body.single .elementor-widget-theme-post-content code {
  background: #0a1730;
  color: #8fe9f7;
  padding: 2px 6px;
  border-radius: 6px;
  font-size: .92em;
}

body.single .elementor-widget-theme-post-content pre {
  background: #08132a;
  border: 1px solid var(--pv-border);
  border-radius: 12px;
  padding: 16px 18px;
  overflow-x: auto;
  direction: ltr;
  text-align: left;
}

body.single .elementor-widget-theme-post-content pre code { background: transparent; padding: 0; }

body.single .elementor-widget-theme-post-content table { border-collapse: collapse; width: 100%; }
body.single .elementor-widget-theme-post-content th {
  background: var(--pv-panel);
  color: var(--pv-fg);
  border: 1px solid var(--pv-border);
  padding: 10px 12px;
}
body.single .elementor-widget-theme-post-content td {
  border: 1px solid var(--pv-border);
  padding: 10px 12px;
  color: var(--pv-body);
}

body.single .elementor-widget-theme-post-content hr { border: 0; border-top: 1px solid var(--pv-border); }

/* side surfaces on the single view */
body.single .elementor-author-box,
body.single .elementor-widget-post-comments,
body.single .elementor-widget-table-of-contents,
body.single .elementor-widget-text-editor {
  color: var(--pv-body);
}

body.single .elementor-author-box {
  background: rgba(13, 25, 54, .72) !important;
  border: 1px solid var(--pv-border) !important;
  border-radius: 16px !important;
  padding: 18px 20px !important;
}

body.single .elementor-author-box__name,
body.single .elementor-author-box__name a { color: var(--pv-fg) !important; }
body.single .elementor-author-box__bio { color: #aebdd8 !important; }

body.single .elementor-toc__header,
body.single .elementor-toc__body,
body.single .elementor-toc__body a { color: var(--pv-body) !important; }

body.single .elementor-toc {
  background: rgba(13, 25, 54, .72) !important;
  border: 1px solid var(--pv-border) !important;
  border-radius: 16px !important;
  padding: 14px 18px !important;
}

body.single .comment-respond,
body.single .comments-area,
body.single .comment-list { color: var(--pv-body); }
body.single .comments-title, body.single .comment-reply-title { color: var(--pv-fg) !important; }
body.single .comment-list .comment-body { background: rgba(13, 25, 54, .7); border: 1px solid var(--pv-border); border-radius: 14px; padding: 14px 16px; margin-bottom: 12px; }
body.single .comment-list .comment-meta, body.single .comment-list .comment-metadata a { color: var(--pv-muted) !important; }
body.single .comment-form input, body.single .comment-form textarea {
  background: #0a1730 !important;
  border: 1px solid var(--pv-border) !important;
  border-radius: 10px !important;
  color: var(--pv-fg) !important;
}
body.single .comment-form input:focus, body.single .comment-form textarea:focus { border-color: rgba(0, 215, 238, .55) !important; }
/* Quill editor used by the comment form */
body.single .ql-toolbar,
body.single .ql-container,
body.single .ql-editor {
  background: #0a1730 !important;
  color: var(--pv-fg) !important;
  border-color: var(--pv-border) !important;
}
body.single .ql-editor.ql-blank::before { color: var(--pv-muted) !important; }
body.single .ql-snow .ql-stroke { stroke: #aebdd8; }
body.single .ql-snow .ql-picker { color: #aebdd8; }

body.single .comment-form .submit,
body.single .form-submit input {
  background: var(--pv-blue) !important;
  color: #fff !important;
  border-radius: 10px !important;
  padding: 10px 22px !important;
  border: 0 !important;
}

/* ---------- contrast + scrollbar polish ---------- */
body.archive .elementor-widget-breadcrumbs p,
body.single .elementor-widget-breadcrumbs p,
body.blog .elementor-widget-breadcrumbs p,
body.search .elementor-widget-breadcrumbs p { color: #b3c2dc !important; font-size: 13px !important; }

body.single .elementor-widget-post-info,
body.single .elementor-widget-post-info .elementor-icon-list-text,
body.single .elementor-widget-post-info .elementor-icon-list-item,
body.single .elementor-widget-post-info a { color: #b3c2dc !important; font-size: 13px !important; }

body.archive, body.single, body.blog, body.search, body.error404 { scrollbar-color: #24365c var(--pv-bg); }
body.archive::-webkit-scrollbar, body.single::-webkit-scrollbar,
body.blog::-webkit-scrollbar, body.search::-webkit-scrollbar { width: 10px; }
body.archive::-webkit-scrollbar-track, body.single::-webkit-scrollbar-track { background: var(--pv-bg); }
body.archive::-webkit-scrollbar-thumb, body.single::-webkit-scrollbar-thumb { background: #24365c; border-radius: 8px; }

/* ---------- mobile polish ---------- */
@media (max-width: 760px) {
  body.archive .elementor-post__text,
  body.blog .elementor-post__text,
  body.search .elementor-post__text { padding: 14px 16px 16px; }

  body.archive .elementor-widget-theme-archive-title .elementor-heading-title { font-size: 24px !important; }

  body.single .elementor-widget-theme-post-title .elementor-heading-title { font-size: 22px !important; }

  body.single .elementor-widget-theme-post-content { font-size: 14.5px; line-height: 2; }
}
