/*
Theme Name: Arbsbuy Pro Child
Theme URI: https://www.arbsbuy.com/
Template: arbsbuy-theme
Author: Arb Digital (Arbsbuy LLC)
Author URI: https://www.arbsbuy.com/
Description: Child theme of Arbsbuy Pro. Custom CSS and overrides (premium header + Services mega menu) live here so the parent theme can be updated safely.
Version: 1.8.0
Requires at least: 6.4
Requires PHP: 7.4
License: Proprietary — Arbsbuy LLC. All rights reserved.
Text Domain: arbsbuy-child
*/

/* ============================================================
   PREMIUM HEADER — balanced layout (logo · centered nav · CTA)
   ============================================================ */
.wsx-header .ws-header__inner { display: flex; align-items: center; gap: 1.25rem; min-height: 78px; }
.wsx-header .ws-logo { flex: 0 0 auto; font-size: 1.5rem; }
.wsx-header .ws-logo b { color: var(--ws-gold); font-weight: 800; }
.wsx-nav { margin: 0; flex: 1 1 auto; display: flex; justify-content: center; }
.wsx-menu { display: flex; align-items: center; gap: .3rem; list-style: none; margin: 0; padding: 0; }
.wsx-menu > li { position: relative; }
.wsx-menu > li > a {
  display: inline-flex; align-items: center; gap: .3rem;
  padding: .62rem .85rem; border-radius: 11px;
  font-family: var(--ws-h); font-weight: 600; font-size: .95rem;
  color: var(--ws-ink); line-height: 1; transition: background .18s, color .18s;
}
.wsx-menu > li > a:hover { color: var(--ws-navy); background: var(--ws-cloud); }
.wsx-caret { width: .4rem; height: .4rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); margin-left: .15rem; opacity: .55; transition: transform .2s; }
.wsx-has-mega:hover > a .wsx-caret, .wsx-has-mega:focus-within > a .wsx-caret { transform: rotate(-135deg); opacity: .9; }
.wsx-cta { flex: 0 0 auto; box-shadow: 0 6px 18px rgba(232,160,32,.28); }

/* ============================================================
   SERVICES MEGA MENU — 4 colored columns with icons
   ============================================================ */
.wsx-has-mega { position: static; }
.wsx-mega {
  position: absolute; left: 50%; top: 100%;
  transform: translateX(-50%) translateY(12px);
  width: min(980px, calc(100vw - 2rem));
  background: #fff; border: 1px solid var(--ws-line); border-radius: 20px;
  box-shadow: 0 28px 70px rgba(18,41,77,.18);
  padding: 1.6rem 1.7rem; margin-top: .35rem;
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .2s ease, transform .2s ease; z-index: 90;
}
.wsx-has-mega:hover > .wsx-mega,
.wsx-has-mega:focus-within > .wsx-mega {
  opacity: 1; visibility: visible; pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
.wsx-mega__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem 1.4rem; }
.wsx-mega__col { min-width: 0; }
.wsx-mega__head {
  display: block; font-family: var(--ws-h); font-weight: 800;
  font-size: .72rem; letter-spacing: .09em; text-transform: uppercase;
  margin-bottom: .55rem; padding-bottom: .45rem; border-bottom: 2px solid var(--ws-line);
  color: var(--ws-ink);
}
.wsx-mega__item {
  display: flex; align-items: center; gap: .6rem;
  padding: .48rem .55rem; border-radius: 12px;
  color: var(--ws-body); font-weight: 600; font-size: .9rem;
  transition: background .15s, transform .15s, color .15s;
}
.wsx-mega__item:hover { background: var(--ws-cloud); color: var(--ws-navy); transform: translateX(3px); }
.wsx-mega__ico { flex: 0 0 auto; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 10px; font-size: 1.08rem; background: #eef2f9; }
.wsx-mega__txt { line-height: 1.25; }

/* category color tones */
.wsx-tone--blue   .wsx-mega__head { color: #1a1a1a; border-color: rgba(27,58,107,.28); }
.wsx-tone--blue   .wsx-mega__ico  { background: rgba(27,58,107,.10); }
.wsx-tone--gold   .wsx-mega__head { color: #c8430a; border-color: rgba(232,160,32,.32); }
.wsx-tone--gold   .wsx-mega__ico  { background: rgba(232,160,32,.15); }
.wsx-tone--teal   .wsx-mega__head { color: #0F766E; border-color: rgba(15,118,110,.28); }
.wsx-tone--teal   .wsx-mega__ico  { background: rgba(15,118,110,.12); }
.wsx-tone--purple .wsx-mega__head { color: #6D28D9; border-color: rgba(124,58,237,.28); }
.wsx-tone--purple .wsx-mega__ico  { background: rgba(124,58,237,.12); }

.wsx-mega__foot {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  margin-top: 1.2rem; padding-top: 1rem; border-top: 1px solid var(--ws-line);
  font-size: .86rem; color: var(--ws-muted);
}
.wsx-mega__all { font-family: var(--ws-h); font-weight: 700; color: var(--ws-navy); white-space: nowrap; }
.wsx-mega__all:hover { color: var(--ws-gold); }

/* ============================================================
   MOBILE — slide-in drawer; mega becomes a stacked list
   ============================================================ */
@media (max-width: 1024px) {
  .wsx-header .ws-burger { display: block; margin-left: auto; }
  .wsx-cta { display: none; }
  .wsx-nav {
    position: fixed; inset: 0 0 0 auto; width: min(88vw, 370px);
    background: #fff; transform: translateX(100%); transition: transform .25s;
    box-shadow: -14px 0 44px rgba(0,0,0,.16);
    padding: 4.5rem 1.25rem 2rem; margin: 0; overflow: auto;
    justify-content: flex-start; z-index: 120;
  }
  .wsx-nav.is-open { transform: translateX(0); }
  .wsx-menu { flex-direction: column; align-items: stretch; gap: .15rem; width: 100%; }
  .wsx-menu > li > a { font-size: 1rem; padding: .75rem .65rem; }
  .wsx-caret { display: none; }
  .wsx-mega {
    position: static; transform: none; width: 100%; opacity: 1; visibility: visible;
    pointer-events: auto; box-shadow: none; border: 0; border-radius: 0;
    padding: .2rem 0 .5rem .4rem; margin: 0;
  }
  .wsx-mega__grid { grid-template-columns: 1fr; gap: .15rem; }
  .wsx-mega__head { margin-top: .5rem; }
  .wsx-mega__foot { display: none; }
}

/* ============================================================
   BLOG — premium hero banner + post-card grid
   ============================================================ */
.wsx-blog-hero { background: radial-gradient(120% 140% at 12% 0%, #0f0f0f 0%, #1a1a1a 45%, #2d1208 100%); color: #efe6dd; text-align: center; padding: clamp(2.6rem,5vw,4.6rem) 0; }
.wsx-blog-hero__eyebrow { display: inline-block; color: var(--ws-gold-soft); font-family: var(--ws-h); font-weight: 800; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; margin-bottom: .8rem; }
.wsx-blog-hero__title { color: #fff; font-size: clamp(2rem,1.4rem + 2.6vw,3.2rem); margin: 0 0 .8rem; }
.wsx-blog-hero__sub { max-width: 680px; margin: 0 auto 1.6rem; color: rgba(255,255,255,.55); font-size: 1.05rem; line-height: 1.7; }
.wsx-blog-cats { display: flex; gap: .5rem; justify-content: center; flex-wrap: wrap; }
.wsx-blog-cats a { font-family: var(--ws-h); font-weight: 700; font-size: .82rem; color: rgba(255,255,255,.72); background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); padding: .45rem 1rem; border-radius: 999px; transition: all .18s; }
.wsx-blog-cats a:hover, .wsx-blog-cats a.is-active { background: var(--ws-gold); color: var(--ws-navy-deep); border-color: var(--ws-gold); }

.wsx-blog-grid { gap: 1.8rem; }
.wsx-blog-card { display: flex; flex-direction: column; padding: 0; overflow: hidden; border: 1px solid var(--ws-line); border-radius: var(--ws-r-lg); background: #fff; box-shadow: var(--ws-shadow); transition: transform .2s, box-shadow .2s; }
.wsx-blog-card:hover { transform: translateY(-6px); box-shadow: var(--ws-lift); }
.wsx-blog-card__img { position: relative; display: block; aspect-ratio: 16/9; overflow: hidden; background: #0a0a0a; }
.wsx-blog-card__img img { width: 100%; height: 100%; object-fit: contain; transition: transform .35s; }
.wsx-blog-card:hover .wsx-blog-card__img img { transform: scale(1.03); }
.wsx-blog-card__ph { display: grid; place-items: center; height: 100%; font-size: 2.4rem; }
.wsx-blog-card__cat { position: absolute; top: 12px; left: 12px; background: var(--ws-gold); color: var(--ws-navy-deep); font-family: var(--ws-h); font-weight: 800; font-size: .68rem; letter-spacing: .04em; text-transform: uppercase; padding: .3rem .7rem; border-radius: 999px; }
.wsx-blog-card__body { display: flex; flex-direction: column; flex: 1; padding: 1.3rem 1.4rem 1.5rem; }
.wsx-blog-card__meta { font-size: .78rem; color: var(--ws-muted); font-family: var(--ws-h); font-weight: 600; margin-bottom: .55rem; }
.wsx-blog-card__title { font-size: 1.15rem; line-height: 1.35; margin: 0 0 .6rem; }
.wsx-blog-card__title a { color: var(--ws-ink); }
.wsx-blog-card__title a:hover { color: var(--ws-navy); }
.wsx-blog-card__excerpt { font-size: .92rem; color: var(--ws-body); margin: 0 0 1rem; flex: 1; }
.wsx-blog-card__more { font-family: var(--ws-h); font-weight: 700; font-size: .85rem; color: var(--ws-navy); }
.wsx-blog-card__more:hover { color: var(--ws-gold); }

.wsx-pagination { margin-top: 2.6rem; text-align: center; }
.wsx-pagination .page-numbers { display: inline-flex; min-width: 42px; height: 42px; align-items: center; justify-content: center; padding: 0 .8rem; margin: 0 .2rem; border: 1px solid var(--ws-line); border-radius: 10px; font-family: var(--ws-h); font-weight: 700; color: var(--ws-navy); }
.wsx-pagination .page-numbers.current { background: var(--ws-navy); color: #fff; border-color: var(--ws-navy); }
.wsx-pagination a.page-numbers:hover { background: var(--ws-cloud); }

/* ============================================================
   SINGLE POST — hero + content + sticky ad-ready sidebar
   ============================================================ */
.wsx-post__hero { background: linear-gradient(180deg, var(--ws-cloud), #fff); border-bottom: 1px solid var(--ws-line); padding: clamp(2.2rem,4vw,3.4rem) 0 clamp(1.6rem,3vw,2.4rem); text-align: center; }
.wsx-post__cat { display: inline-block; background: var(--ws-gold); color: var(--ws-navy-deep); font-family: var(--ws-h); font-weight: 800; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; padding: .35rem .9rem; border-radius: 999px; margin-bottom: 1rem; }
.wsx-post__title { max-width: 900px; margin: 0 auto .9rem; font-size: clamp(1.85rem,1.2rem + 2.4vw,2.9rem); line-height: 1.18; }
.wsx-post__meta { display: flex; gap: 1.2rem; justify-content: center; flex-wrap: wrap; color: var(--ws-muted); font-size: .88rem; font-family: var(--ws-h); font-weight: 600; }
.wsx-post__body { display: grid; grid-template-columns: minmax(0,1fr) 340px; gap: 3.2rem; align-items: start; padding-block: clamp(2rem,4vw,3.2rem); }
.wsx-post__main { min-width: 0; }
.wsx-post__thumb { margin: 0 0 2rem; }
.wsx-post__thumb img { width: 100%; border-radius: var(--ws-r-lg); box-shadow: var(--ws-shadow); height: auto; }
.wsx-post__foot { display: none; } /* hide the article tag list */

/* ===== Premium comments ===== */
.wsx-post__main .comment-respond,
.wsx-post__main .comments-area { margin-top: 2.8rem; padding-top: 2rem; border-top: 1px solid var(--ws-line); }
.comment-reply-title, .comments-title { font-family: var(--ws-h); font-size: 1.4rem; font-weight: 800; color: var(--ws-ink); margin: 0 0 1.2rem; }
.comment-respond .logged-in-as, .comment-notes { font-size: .88rem; color: var(--ws-muted); margin-bottom: 1.1rem; }
.comment-respond .logged-in-as a, .comment-notes a { color: var(--ws-navy); font-weight: 600; }
.comment-form { display: flex; flex-direction: column; gap: 1rem; }
.comment-form p { margin: 0; }
.comment-form label { display: block; font-family: var(--ws-h); font-weight: 600; font-size: .88rem; color: var(--ws-ink); margin-bottom: .4rem; }
.comment-form input[type=text], .comment-form input[type=email], .comment-form input[type=url], .comment-form textarea {
  width: 100%; padding: .85rem 1rem; border: 1.5px solid var(--ws-line); border-radius: 12px;
  font-family: var(--ws-b); font-size: 1rem; color: var(--ws-ink); background: #fff; outline: none;
  transition: border-color .15s, box-shadow .15s;
}
.comment-form textarea { min-height: 150px; resize: vertical; }
.comment-form input:focus, .comment-form textarea:focus { border-color: var(--ws-navy); box-shadow: 0 0 0 3px rgba(27,58,107,.12); }
.comment-form .form-submit { margin: 0; }
.comment-form .submit, .comment-form input[type=submit] {
  appearance: none; background: var(--ws-gold); color: var(--ws-navy-deep);
  font-family: var(--ws-h); font-weight: 700; font-size: .95rem; letter-spacing: .2px;
  border: 0; border-radius: 999px; padding: .85rem 2rem; cursor: pointer;
  box-shadow: 0 8px 22px rgba(232,160,32,.3); transition: transform .15s, background .15s;
}
.comment-form .submit:hover, .comment-form input[type=submit]:hover { background: var(--ws-gold-soft); transform: translateY(-2px); }
.comment-form .comment-form-cookies-consent { flex-direction: row; align-items: center; gap: .5rem; font-size: .85rem; color: var(--ws-muted); }
.comment-form .comment-form-cookies-consent input { width: auto; }
.comment-list { list-style: none; margin: 2rem 0 0; padding: 0; }
.comment-list .comment { background: var(--ws-cloud); border: 1px solid var(--ws-line); border-radius: 14px; padding: 1.2rem 1.4rem; margin-bottom: 1.1rem; }
.comment-list .comment-author { font-family: var(--ws-h); font-weight: 700; color: var(--ws-ink); }
.comment-list .comment-metadata { font-size: .8rem; color: var(--ws-muted); }
.comment-list .reply a { font-family: var(--ws-h); font-weight: 700; font-size: .82rem; color: var(--ws-navy); }
.wsx-post__aside { position: sticky; top: 92px; display: flex; flex-direction: column; gap: 1.2rem; }
.wsx-side-card { background: #fff; border: 1px solid var(--ws-line); border-radius: 16px; padding: 1.4rem; box-shadow: var(--ws-shadow); }
.wsx-side-card h4 { font-size: 1.05rem; margin: 0 0 .7rem; }
.wsx-side-cta { background: linear-gradient(135deg, var(--ws-navy-deep), var(--ws-navy)); color: rgba(255,255,255,.72); border: 0; }
.wsx-side-cta h4 { color: #fff; }
.wsx-side-cta p { font-size: .9rem; margin: 0 0 1rem; }
.wsx-side-links { list-style: none; margin: 0; padding: 0; }
.wsx-side-links li { border-top: 1px solid var(--ws-line); }
.wsx-side-links li:first-child { border-top: 0; }
.wsx-side-links a { display: block; padding: .58rem 0; font-weight: 600; font-size: .9rem; color: var(--ws-body); }
.wsx-side-links a:hover { color: var(--ws-gold); }
/* layout-shift-safe ad zone (Auto Ads / manual units) */
.wsx-ad { background: var(--ws-cloud); border: 1px dashed var(--ws-line); text-align: center; padding: .6rem; min-height: 280px; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.wsx-ad__label { font-family: var(--ws-h); font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ws-muted); margin-bottom: .4rem; }

/* ============================================================
   ARTICLE TYPOGRAPHY (.ws-prose) + highlighted links
   ============================================================ */
/* Medium.com-style reading typography: serif body, clean sans headings */
:root { --ws-serif: Charter, "Bitstream Charter", "Sitka Text", Cambria, Georgia, "Times New Roman", serif; }
.ws-prose { font-family: var(--ws-serif); font-size: 1.25rem; line-height: 1.6; color: #242424; letter-spacing: -.003em; text-align: left; -webkit-hyphens: auto; hyphens: auto; overflow-wrap: break-word; }
.ws-prose h2, .ws-prose h3, .ws-prose h4 { text-align: left; -webkit-hyphens: none; hyphens: none; }
.ws-prose > :first-child { margin-top: 0; }
.ws-prose p { margin: 0 0 1.7rem; }
.ws-prose h2 { font-family: var(--ws-h); font-weight: 700; font-size: clamp(1.55rem,1.2rem + 1vw,1.95rem); letter-spacing: -.02em; line-height: 1.25; color: #1a1a1a; margin: 2.9rem 0 .55rem; padding: 0; border: 0; }
.ws-prose h3 { font-family: var(--ws-h); font-weight: 700; font-size: 1.4rem; letter-spacing: -.015em; color: #1a1a1a; margin: 2.2rem 0 .5rem; }
.ws-prose h4 { font-family: var(--ws-h); font-weight: 700; font-size: 1.18rem; color: #1a1a1a; margin: 1.8rem 0 .5rem; }
.ws-prose ul, .ws-prose ol { margin: 0 0 1.7rem 1.4rem; }
.ws-prose li { margin-bottom: .65rem; }
.ws-prose strong { color: #1a1a1a; font-weight: 700; }
.ws-prose img { border-radius: 6px; box-shadow: var(--ws-shadow); height: auto; margin: 2rem 0; }
.ws-prose figcaption { font-family: var(--ws-b); text-align: center; font-size: .85rem; color: var(--ws-muted); margin-top: .5rem; }
.ws-prose blockquote { margin: 2rem 0; padding: .1rem 0 .1rem 1.4rem; border-left: 3px solid #242424; background: none; border-radius: 0; font-style: italic; color: #515151; }
.ws-prose table { font-family: var(--ws-b); width: 100%; border-collapse: collapse; margin: 1.9rem 0; font-size: 1rem; }
.ws-prose th, .ws-prose td { border: 1px solid var(--ws-line); padding: .7rem .9rem; text-align: left; }
.ws-prose th { background: var(--ws-cloud); font-family: var(--ws-h); }
.ws-prose code { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; background: var(--ws-cloud); padding: .15em .4em; border-radius: 5px; font-size: .9em; }
/* links highlighted (navy underline → gold on hover), internal + external */
.ws-prose a { color: #c8430a; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(200,67,10,.55); transition: color .15s, text-decoration-color .15s; }
.ws-prose a:hover { color: #E8520A; text-decoration-color: #E8520A; }
.ws-prose a[href^="http"]:not([href*="arbsbuy.com"])::after { content: "↗"; font-size: .72em; margin-left: .1em; opacity: .65; }

/* Same Medium reading feel + orange highlighted links for tool-page articles */
.arbtools .article { font-family: var(--ws-serif); font-size: 1.12rem; line-height: 1.7; color: #242424; }
.arbtools .article p, .arbtools .article li { color: #333; }
.arbtools .article a { color: #c8430a; text-decoration: underline; text-underline-offset: 2px; font-weight: 700; }
.arbtools .article a:hover { color: #E8520A; }

@media (max-width: 980px) {
  .wsx-post__body { grid-template-columns: 1fr; gap: 2rem; }
  .wsx-post__aside { position: static; }
}

/* ============================================================
   HEADER LOGO — cap the custom-logo image size
   ============================================================ */
.ws-header .ws-logo img,
.ws-logo img.custom-logo { max-height: 46px; width: auto; height: auto; display: block; }

/* Header logo — hard cap (override Flatsome/attachment size + arb-speed combine) */
.ws-header .ws-logo,
.ws-header .ws-logo .custom-logo-link { display:inline-flex; align-items:center; }
.ws-header .ws-logo img,
.ws-header .ws-logo .custom-logo,
.ws-logo img.custom-logo { max-height:44px !important; width:auto !important; height:auto !important; }

/* ============================================================
   PREMIUM WIDTH — widen homepage sections + footer to 1440px
   (their inline CSS caps at 1280px; override needs !important
   because the inline <style> sits after this file in source order)
   ============================================================ */
.arbs-hero-wrap, .arbs-cats-wrap, .arbs-prod-wrap, .arbs-why-wrap,
.arbs-digital-wrap, .arbs-stats-wrap, .arbs-reviews-wrap, .arbs-blog-wrap,
.arbs-trust-wrap, .arbs-bs-header-wrap, .arbs-final-cta-wrap,
.arbs-footer-nl-wrap, .arbs-footer-main-wrap, .arbs-footer-trust-wrap,
.arbs-footer-bottom-wrap, .arbs-foot-res-wrap { max-width: 1440px !important; }

/* ============================================================
   PREMIUM BLOG POST — Medium.com-style comfortable reading
   ============================================================ */
/* Centered, narrower title block */
.wsx-post__hero .ws-wrap { max-width: 820px; }
/* Center the content block; cap the reading column ~720px (Medium width) */
.wsx-post__body {
  max-width: 1140px !important;
  margin-inline: auto;
  grid-template-columns: minmax(0, 720px) 320px !important;
  justify-content: center;
  gap: 4.5rem !important;
  align-items: start;
}
/* Force natural left-aligned reading (never justified) */
.ws-prose, .ws-prose p, .ws-prose li, .ws-prose h2, .ws-prose h3, .ws-prose h4 { text-align: left !important; }
.ws-prose { -webkit-hyphens: none !important; hyphens: none !important; }
.ws-prose p { margin: 0 0 1.65rem; }
/* Premium media + tables inside the reading column */
.wsx-post__thumb { margin-bottom: 2.4rem; }
.ws-prose img { width: 100%; }
.ws-prose table { font-size: .98rem; box-shadow: var(--ws-shadow); border-radius: 10px; overflow: hidden; }
@media (max-width: 980px) {
  .wsx-post__body { grid-template-columns: 1fr !important; max-width: 720px !important; gap: 2rem !important; }
  .wsx-post__hero .ws-wrap { max-width: 100%; }
}

/* === KEEP blog post at full 1440px width (user preference) — override the
   earlier narrowing; left-align + Medium typography above still apply === */
.wsx-post__hero .ws-wrap { max-width: 1440px !important; }
.wsx-post__body {
  max-width: 1440px !important;
  grid-template-columns: minmax(0,1fr) 340px !important;
  gap: 3.2rem !important;
  justify-content: initial !important;
}

/* === MOBILE: blog post single column (override the desktop 2-col !important) === */
@media (max-width: 980px) {
  .wsx-post__body { grid-template-columns: 1fr !important; gap: 2rem !important; max-width: 100% !important; }
  .wsx-post__hero .ws-wrap { max-width: 100% !important; }
  .wsx-post__aside { position: static !important; }
}
/* === MOBILE: product grid + sections never overflow === */
@media (max-width: 760px) {
  .ux-products ul.products { grid-template-columns: 1fr 1fr !important; }
}
@media (max-width: 480px) {
  .ux-products ul.products { grid-template-columns: 1fr !important; }
}

/* === User wants JUSTIFIED reading text (body), headings left-aligned === */
.ws-prose, .ws-prose p, .ws-prose li { text-align: justify !important; -webkit-hyphens: auto !important; hyphens: auto !important; }
.ws-prose h2, .ws-prose h3, .ws-prose h4 { text-align: left !important; -webkit-hyphens: none !important; hyphens: none !important; }
