* { margin:0; padding:0; box-sizing:border-box; }
:root, [data-theme="dark"] {
  --bg:#0a0f16; --bg-alt:#070c12; --card:#111b27; --card-alt:#0c141d;
  --border:#1e2c3b; --border-soft:#274056; --hair:#152230;
  --text:#eef3f8; --text-soft:#b8c6d4; --muted:#93a4b5; --muted2:#7f92a4; --faint:#5f7285; --faint2:#4d5f72;
  --chip:#0f2233; --pill:#111b27; --deco:#1c3348; --header:rgba(10,15,22,0.86); --stripe:rgba(255,255,255,0.02);
  --accent:#0b93e0; --accent-strong:#023069; --accent-15:rgba(11,147,224,0.18); --on-accent:#ffffff;
}
[data-theme="light"] {
  --bg:#f1f6fb; --bg-alt:#e5eef6; --card:#ffffff; --card-alt:#e9f1f9;
  --border:#d7e3ef; --border-soft:#c6d6e5; --hair:#e2ebf3;
  --text:#0b2138; --text-soft:#375069; --muted:#54708b; --muted2:#6d879f; --faint:#8ba0b4; --faint2:#a9bccd;
  --chip:#e7f2fb; --pill:#ffffff; --deco:#cfdcea; --header:rgba(241,246,251,0.88); --stripe:rgba(3,48,105,0.04);
  --accent:#0b93e0; --accent-strong:#023069; --accent-15:rgba(11,147,224,0.16); --on-accent:#ffffff;
}
body { background:var(--bg); transition:background .3s ease; }
body.menu-open { overflow:hidden; }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }

.site-brand-ticker {
  border-bottom:1px solid var(--hair); background:var(--bg-alt); overflow:hidden;
}
.site-brand-ticker__track {
  display:flex; width:max-content; animation:ticker 28s linear infinite;
}
.site-brand-ticker__group {
  display:flex; align-items:center; gap:54px; padding:16px 27px;
}
.site-brand-ticker__item {
  font-family:'IBM Plex Mono',monospace; font-size:15px; color:var(--faint);
  letter-spacing:.08em; white-space:nowrap;
}
@keyframes rise { from { opacity:0; transform:translateY(26px); } to { opacity:1; transform:none; } }
@keyframes floaty { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-9px); } }
::selection { background:var(--accent); color:#ffffff; }
.homepage-root { font-family:'Tajawal',sans-serif; background:var(--bg); color:var(--text); min-height:100vh; overflow-x:hidden; position:relative; transition:background .3s ease, color .3s ease; }
[data-reveal][data-shown="1"] { animation:reveal-in .6s cubic-bezier(.2,.7,.2,1) both; }
@keyframes reveal-in { from { opacity:0; transform:translateY(26px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce) {
  [data-reveal][data-shown="1"] { animation:none; }
}

/* Top bar */
.site-topbar { background:var(--bg-alt); border-bottom:1px solid var(--hair); font-size:13px; color:var(--muted); }
.site-topbar__inner { max-width:1240px; margin:0 auto; padding:9px 28px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.site-topbar__meta { display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.site-topbar__item { display:flex; align-items:center; gap:7px; }
.site-topbar__dot { width:6px; height:6px; border-radius:50%; background:var(--accent); display:inline-block; }
.site-topbar__link { font-family:'IBM Plex Mono',monospace; letter-spacing:.02em; color:inherit; text-decoration:none; }
.site-topbar__actions { display:flex; align-items:center; gap:18px; }
.site-topbar__phone { font-family:'IBM Plex Mono',monospace; color:var(--text); text-decoration:none; }
.site-topbar__sep { width:1px; height:14px; background:var(--border-soft); }
.site-topbar__socials { display:flex; gap:12px; }
.site-topbar__social { color:var(--muted); text-decoration:none; }

/* Header */
.site-header { position:sticky; top:0; z-index:50; background:var(--header); backdrop-filter:blur(12px); border-bottom:1px solid var(--hair); }
.site-header__inner { max-width:1240px; margin:0 auto; padding:12px 28px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.site-header__brand { display:flex; align-items:center; gap:12px; text-decoration:none; color:inherit; min-width:0; }
.site-header__logo { height:46px; width:auto; display:block; flex-shrink:0; }
.site-header__titles { line-height:1.15; min-width:0; }
.site-header__name { font-weight:900; font-size:19px; letter-spacing:-.01em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.site-header__name-en { font-size:10px; color:var(--muted2); font-family:'IBM Plex Mono',monospace; letter-spacing:.08em; }
.site-nav--desktop { display:flex; align-items:center; gap:4px; flex-wrap:wrap; }
.site-nav__link { color:var(--text-soft); text-decoration:none; font-weight:500; font-size:15px; padding:9px 13px; border-radius:9px; transition:color .2s ease, background .2s ease; }
.site-nav__link:hover { color:var(--text); background:var(--chip); }
.site-nav__link.is-active { color:var(--text); font-weight:700; }
.site-header__actions { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.site-icon-btn { cursor:pointer; display:flex; align-items:center; justify-content:center; width:40px; height:40px; background:var(--chip); border:1px solid var(--border); color:var(--text); padding:0; border-radius:10px; }
.site-icon-btn__icon { width:18px; height:18px; display:inline-flex; align-items:center; justify-content:center; }
.site-header__cta { background:var(--accent); color:var(--on-accent); text-decoration:none; font-weight:800; font-size:14px; padding:12px 18px; border-radius:10px; white-space:nowrap; }
.site-menu-toggle { display:none; cursor:pointer; width:42px; height:42px; align-items:center; justify-content:center; background:var(--chip); border:1px solid var(--border); border-radius:10px; color:var(--text); padding:0; }
.site-menu-toggle__bars { display:flex; flex-direction:column; gap:5px; width:18px; }
.site-menu-toggle__bars span { display:block; height:2px; width:100%; background:currentColor; border-radius:2px; transition:transform .25s ease, opacity .2s ease; }
.site-menu-toggle[aria-expanded="true"] .site-menu-toggle__bars span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.site-menu-toggle[aria-expanded="true"] .site-menu-toggle__bars span:nth-child(2) { opacity:0; }
.site-menu-toggle[aria-expanded="true"] .site-menu-toggle__bars span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* Mobile drawer (RTL: from right) */
.site-drawer-overlay { position:fixed; inset:0; z-index:60; background:rgba(5,10,18,.55); opacity:0; pointer-events:none; transition:opacity .25s ease; }
.site-drawer-overlay.is-open { opacity:1; pointer-events:auto; }
.site-drawer {
  position:fixed; top:0; bottom:0; right:0; z-index:70;
  width:min(86vw, 320px); background:var(--card); border-left:1px solid var(--border);
  box-shadow:-18px 0 50px rgba(0,0,0,.28);
  transform:translateX(105%); transition:transform .28s cubic-bezier(.2,.7,.2,1);
  display:flex; flex-direction:column; padding:18px 18px 24px;
}
.site-drawer.is-open { transform:translateX(0); }
.site-drawer__head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:22px; }
.site-drawer__brand { display:flex; align-items:center; gap:10px; min-width:0; }
.site-drawer__logo { height:36px; width:auto; display:block; }
.site-drawer__title { font-weight:800; font-size:16px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.site-drawer__nav { display:flex; flex-direction:column; gap:6px; flex:1; overflow:auto; }
.site-drawer__link {
  color:var(--text-soft); text-decoration:none; font-weight:600; font-size:16px;
  padding:13px 14px; border-radius:12px; border:1px solid transparent; transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.site-drawer__link:hover, .site-drawer__link.is-active { background:var(--chip); color:var(--text); border-color:var(--border); }
.site-drawer__footer { margin-top:18px; padding-top:16px; border-top:1px solid var(--hair); }
.site-drawer__cta {
  display:flex; align-items:center; justify-content:center;
  background:var(--accent); color:var(--on-accent); text-decoration:none;
  font-weight:800; font-size:15px; padding:14px 16px; border-radius:12px;
}

.site-section-pad { max-width:1240px; margin:0 auto; padding:clamp(40px,8vw,82px) clamp(14px,4vw,28px); }
.site-section-title { font-size:clamp(26px,6vw,38px); font-weight:900; margin-top:12px; letter-spacing:-.02em; }
.site-hero__subtitle { font-size:clamp(16px,4vw,19px); line-height:1.7; color:var(--muted); margin:20px 0 0; max-width:520px; }
.site-hero__actions { display:flex; gap:14px; margin-top:32px; flex-wrap:wrap; }
.site-hero__actions a { flex:1 1 auto; min-width:min(100%, 200px); text-align:center; justify-content:center; }
.site-hero__stats { display:flex; gap:30px; margin-top:40px; flex-wrap:wrap; }
.site-hero__stat-sep { width:1px; background:var(--border); align-self:stretch; min-height:48px; }
.site-hero__media {
  aspect-ratio:4/5; border-radius:20px; overflow:visible; position:relative;
  display:flex; align-items:center; justify-content:center;
}
.site-hero__media img {
  width:100%; height:auto; object-fit:contain; border-radius:13px;
}
.site-why-us__video-frame iframe,
.site-youtube-lite {
  display:block;
  width:100%;
  aspect-ratio:16/9;
  border:0;
  border-radius:16px;
  background:#000;
}
.site-youtube-lite {
  position:relative;
  cursor:pointer;
  padding:0;
  overflow:hidden;
}
.site-youtube-lite__poster {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.site-youtube-lite__play {
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,.28);
  color:#fff;
  transition:background .2s ease;
}
.site-youtube-lite:hover .site-youtube-lite__play,
.site-youtube-lite:focus-visible .site-youtube-lite__play {
  background:rgba(0,0,0,.4);
}
.site-youtube-lite__play svg {
  width:64px;
  height:64px;
  filter:drop-shadow(0 4px 16px rgba(0,0,0,.35));
}

.home-scroll-carousel { position:relative; }
.home-scroll-carousel__track {
  display:flex;
  gap:var(--carousel-gap, 20px);
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  direction:rtl;
  padding:4px 0 8px;
}
.home-scroll-carousel__track::-webkit-scrollbar { display:none; }
.home-scroll-carousel__item {
  flex:0 0 var(--carousel-item-width, 100%);
  scroll-snap-align:start;
  min-width:0;
}
.home-scroll-carousel--products {
  --carousel-item-width:calc(100% - 56px);
  --carousel-gap:14px;
}
.home-scroll-carousel--clients {
  --carousel-item-width:calc(50% - 5px);
  --carousel-gap:10px;
}
@media (min-width:641px) {
  .home-scroll-carousel--products {
    --carousel-item-width:calc(50% - 8px);
    --carousel-gap:16px;
  }
}
@media (min-width:981px) {
  .home-scroll-carousel--products {
    --carousel-item-width:calc(25% - 15px);
    --carousel-gap:20px;
  }
  .home-scroll-carousel--clients {
    --carousel-item-width:calc(16.666% - 12px);
    --carousel-gap:14px;
  }
}

.site-why-us__intro {
  gap:clamp(24px, 4vw, 40px);
  align-items:center;
  margin-bottom:clamp(40px, 6vw, 64px);
}
.site-why-us__title {
  font-size:clamp(28px, 5vw, 40px);
  font-weight:900;
  line-height:1.15;
  letter-spacing:-.02em;
  margin:0;
}
.site-why-us__description {
  color:var(--muted);
  line-height:1.8;
  margin:18px 0 0;
  font-size:clamp(15px, 2.5vw, 17px);
}
.site-why-us__video-frame {
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  border-radius:18px;
  overflow:hidden;
  background:var(--card-alt);
}
.site-why-us__video-frame iframe {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}
.site-why-us__benefits-header {
  text-align:center;
  max-width:640px;
  margin:0 auto 48px;
}
.site-why-us__label {
  font-family:'IBM Plex Mono',monospace;
  font-size:13px;
  color:var(--accent);
  letter-spacing:.14em;
}
.site-why-us__subtitle { margin-top:12px; }
.site-why-us__card {
  background:var(--card);
  border:1px solid var(--border);
  border-radius:18px;
  padding:30px;
}
.site-why-us__card-icon {
  width:48px;
  height:48px;
  border-radius:12px;
  background:var(--chip);
  border:1px solid var(--accent-15);
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:18px;
}
.site-why-us__card-icon-dot {
  width:18px;
  height:18px;
  border-radius:50%;
  border:3px solid var(--accent);
}
.site-why-us__card-title {
  font-size:20px;
  font-weight:800;
  margin:0;
}
.site-why-us__card-description {
  color:var(--muted);
  line-height:1.7;
  margin-top:8px;
  font-size:15px;
}
.site-hero__float-card {
  position:absolute; bottom:18px; right:18px; background:var(--card); border:1px solid var(--border-soft);
  border-radius:14px; padding:14px 16px; box-shadow:0 16px 40px rgba(0,0,0,0.35); animation:floaty 5s ease-in-out infinite;
}
.site-footer { border-top:1px solid var(--hair); background:var(--bg-alt); }
.site-footer__inner {
  max-width:1240px; margin:0 auto; padding:clamp(40px,8vw,60px) clamp(14px,4vw,28px) 30px;
  display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:clamp(24px,5vw,40px);
}
.site-footer__col { min-width:0; }
.site-footer__bar {
  border-top:1px solid var(--hair);
}
.site-footer__bar-inner {
  max-width:1240px; margin:0 auto; padding:20px clamp(14px,4vw,28px);
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  font-size:13px; color:var(--faint);
}
.site-footer__contact { display:flex; flex-direction:column; gap:10px; font-size:14px; }
.site-footer__contact-link {
  color:var(--muted2); font-family:'IBM Plex Mono',monospace; text-decoration:none;
  transition:color .2s ease;
}
.site-footer__contact-link:hover { color:var(--accent); }
.site-footer__contact-link--whatsapp { color:var(--accent); font-family:'Tajawal',sans-serif; font-weight:700; }
.site-footer__contact-text { color:var(--muted2); }
.site-footer__socials { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.site-footer__social {
  width:40px; height:40px; border-radius:50%;
  border:1px solid var(--border-soft); background:var(--card); color:var(--text);
  display:inline-flex; align-items:center; justify-content:center;
  text-decoration:none; transition:border-color .2s ease, color .2s ease, transform .2s ease, background .2s ease;
}
.site-footer__social:hover {
  border-color:var(--accent); color:var(--accent); background:var(--accent-15); transform:translateY(-2px);
}
.site-cta-wrap { max-width:1240px; margin:clamp(40px,8vw,82px) auto; padding:0 clamp(14px,4vw,28px); }
.site-cta-box {
  position:relative; overflow:hidden; border-radius:26px;
  background:linear-gradient(120deg,#0b93e0,#023069);
  padding:clamp(32px,6vw,56px) clamp(20px,5vw,48px);
}
.site-cta-body { position:relative; display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap; }
.site-cta-title { font-size:clamp(26px,6vw,36px); font-weight:900; color:#ffffff; letter-spacing:-.02em; line-height:1.15; }
.site-cta-actions { display:flex; flex-direction:column; gap:12px; min-width:min(100%, 220px); flex:1 1 220px; }
.site-floating-whatsapp {
  position:fixed; bottom:max(24px, env(safe-area-inset-bottom)); left:max(24px, env(safe-area-inset-left));
  z-index:55; width:58px; height:58px; border-radius:50%; background:#25D366;
  box-shadow:0 10px 30px rgba(37,211,102,0.4); display:flex; align-items:center; justify-content:center;
}
body.menu-open .site-floating-whatsapp { display:none; }

@media (max-width: 980px) {
  .site-nav--desktop { display:none; }
  .site-menu-toggle { display:inline-flex; }
  .site-header__cta { display:none; }
  .site-header__inner { padding:10px 16px; gap:12px; }
  .site-header__brand { min-width:0; flex:1; }
  .site-header__name { font-size:clamp(14px,4vw,16px); }
  .site-header__logo { height:40px; }
  .site-topbar__inner { padding:8px 16px; gap:10px; }
  .public-grid--hero,
  .site-hero__grid { grid-template-columns:1fr !important; gap:28px !important; }
  .site-hero__grid { padding:40px 16px 48px !important; }
  .public-grid--2col,
  .public-grid--cta,
  .site-cta-body { grid-template-columns:1fr !important; }
  .public-grid--cards,
  .public-grid--services,
  .public-grid--steps,
  .public-grid--articles,
  .public-grid--clients { grid-template-columns:1fr !important; }
  .public-grid--products { grid-template-columns:repeat(2, minmax(0, 1fr)) !important; }
  .catalog-subcategories__grid.public-grid--cards { grid-template-columns:repeat(2, minmax(0, 1fr)) !important; }
  .site-hero__stat-sep { display:none; }
  .site-hero__float-card { position:static; margin-top:14px; animation:none; width:100%; }
  .catalog-layout { display:block !important; padding-top:18px; }
  .catalog-sidebar__card { position:static; }
  .catalog-sidebar__toggle { display:flex; }
  .catalog-sidebar:not(.is-open) .catalog-sidebar__card { display:none; }
  .catalog-article-card--featured { grid-template-columns:1fr; }
  .catalog-product-detail,
  .public-grid--product-detail { grid-template-columns:1fr !important; }
  .catalog-product-detail__gallery { max-width:none; margin:0 auto; padding:12px; }
  .catalog-product-detail__info { padding:16px; }
  .catalog-product-body { padding:8px; }
  .catalog-related { padding:16px; }
  .catalog-article-page__header { padding:16px; }
  .catalog-article-page__content { padding:16px; }
  .catalog-article-page__hero { padding:10px; }
  .catalog-product-detail__thumbs {
    flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch;
    padding-bottom:4px; scrollbar-width:thin; max-width:100%;
  }
  .catalog-product-detail__thumb { width:64px; height:64px; }
  .catalog-product-detail__cta { width:100%; justify-content:center; }
  .catalog-product-detail__image-badge { top:10px; right:10px; font-size:11px; padding:7px 12px; }
  .catalog-toolbar__inner { flex-direction:column; align-items:stretch; }
  .catalog-toolbar__sort label { width:100%; justify-content:space-between; }
  .catalog-toolbar__sort select { flex:1; min-width:0; max-width:100%; }
  .catalog-category-hero__content { flex-direction:column; align-items:flex-start; }
  .catalog-category-hero__media { width:min(100%, 180px); margin:0 auto; }
  .catalog-related-carousel .owl-nav { display:none; }
  .home-bestseller-carousel .owl-nav { display:none; }
  .site-drawer { width:min(92vw,340px); padding-bottom:max(24px, env(safe-area-inset-bottom)); }
  .site-footer__inner { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .catalog-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .catalog-page-header__inner { padding-block:22px; }
  .catalog-sidebar__title { display:none; }
}

@media (max-width: 640px) {
  .site-topbar__meta .site-topbar__link { display:none; }
  .site-topbar__meta .site-topbar__item { display:none; }
  .site-topbar__socials { display:none; }
  .site-topbar__sep { display:none; }
  .site-topbar__inner { justify-content:center; }
  .site-header__name-en { display:none; }
  .site-header__actions { gap:8px; }
  .site-icon-btn, .site-menu-toggle { width:40px; height:40px; }
  .catalog-grid,
  .public-grid--products { grid-template-columns:repeat(2, minmax(0, 1fr)) !important; gap:12px; }
  .catalog-articles__grid:not(.catalog-related-articles) { grid-template-columns:1fr !important; }
  .site-footer__inner { grid-template-columns:1fr; }
  .catalog-product-detail__title { font-size:clamp(22px,6vw,28px); }
  .catalog-product-detail__amount { font-size:28px; }
  .catalog-product-accordion__trigger { font-size:16px; padding:16px 18px; min-height:48px; }
  .faqs-page__ask { padding:20px 16px; margin-top:32px; }
  .faqs-page__ask-title { font-size:20px; }
  .faqs-page__ask-subtitle { font-size:16px; }
  .policy-page__section-body { font-size:15px; line-height:1.85; }
  .site-brand-ticker__group { gap:36px; padding:12px 18px; }
  .site-brand-ticker__item { font-size:13px; }
  .catalog-product-accordion__panel { padding:0 16px 18px; }
  .catalog-product-accordion__description { padding:14px 16px; font-size:15.5px; line-height:1.9; }
  .catalog-product-detail__excerpt { font-size:14.5px; padding:12px 14px; }
  .catalog-pagination__meta { display:none; }
  .catalog-pagination__mobile { display:block; }
  .catalog-pagination__pages { display:none; }
  .catalog-pagination__controls { justify-content:space-between; }
  .catalog-pagination__arrow { flex:1; justify-content:center; max-width:calc(50% - 6px); }
  .catalog-product-specs__row { grid-template-columns:1fr; gap:6px; }
  .catalog-article-page__title { font-size:clamp(24px,6vw,36px); }
  .catalog-article-page__content { font-size:16px; }
  .catalog-article-page__meta { gap:8px; font-size:12px; }
  .site-footer__bar-inner { flex-direction:column; align-items:flex-start; }
}

@media (max-width: 480px) {
  .site-brand-ticker__group { gap:32px; padding:12px 16px; }
  .site-brand-ticker__item { font-size:13px; }
  .catalog-subcategories__grid.public-grid--cards { grid-template-columns:repeat(2, minmax(0, 1fr)) !important; gap:10px; }
  .catalog-subcategory-card { padding:12px; }
  .catalog-subcategory-card__name { font-size:13px; }
  .catalog-subcategory-card__desc { font-size:11px; -webkit-line-clamp:2; }
  .catalog-grid,
  .public-grid--products { gap:10px; }
  .catalog-product-card__name { font-size:14px; }
  .catalog-product-card__body { padding:12px; }
  .catalog-product-card__amount { font-size:18px; }
  .catalog-product-card__spec { font-size:11px; }
  .catalog-product-card__tag { font-size:10px; padding:3px 8px; top:8px; right:8px; }
  .catalog-page-header__title { font-size:clamp(24px,7vw,32px); }
  .catalog-toolbar { padding-top:14px; }
}

/* Nav dropdown */
.site-nav__dropdown { position:relative; }
.site-nav__link--dropdown { display:inline-flex; align-items:center; gap:6px; }
.site-nav__chevron { transition:transform .2s ease; }
.site-nav__dropdown.is-open .site-nav__chevron { transform:rotate(180deg); }
.site-nav__menu {
  position:absolute; top:calc(100% + 8px); right:0; min-width:260px; max-width:320px;
  overflow:visible;
  background:var(--card); border:1px solid var(--border-soft); border-radius:14px;
  box-shadow:0 18px 40px rgba(0,0,0,.18); padding:8px; opacity:0; visibility:hidden;
  transform:translateY(8px); transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
  z-index:80;
}
.site-nav__dropdown.is-open .site-nav__menu { opacity:1; visibility:visible; transform:none; }
.site-nav__menu-item { position:relative; }
.site-nav__menu-link {
  display:block; color:var(--text-soft); text-decoration:none; font-weight:600; font-size:14px;
  padding:10px 12px; border-radius:10px; transition:background .2s ease, color .2s ease;
}
.site-nav__menu-link:hover { background:var(--chip); color:var(--text); }
.site-nav__menu-link--has-sub {
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  font-weight:700; color:var(--text);
}
.site-nav__sub-chevron { flex-shrink:0; color:var(--muted2); transition:transform .2s ease; }
.site-nav__menu-item.is-open > .site-nav__menu-link--has-sub { background:var(--chip); color:var(--text); }
.site-nav__menu-item.is-open .site-nav__sub-chevron { transform:translateX(-3px); color:var(--accent); }

.site-nav__submenu {
  position:fixed;
  min-width:240px;
  max-width:280px;
  background:var(--card);
  border:1px solid var(--border-soft);
  border-radius:14px;
  box-shadow:0 18px 40px rgba(0,0,0,.18);
  padding:8px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  z-index:100;
  transition:opacity .16s ease, visibility .16s ease, transform .16s ease;
  transform:translateX(2px);
}
.site-nav__menu-item.is-open > .site-nav__submenu {
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:none;
}
.site-nav__submenu-link {
  display:block; color:var(--text-soft); text-decoration:none; font-weight:600; font-size:13px;
  padding:10px 12px; border-radius:10px; line-height:1.45; transition:background .2s ease, color .2s ease;
}
.site-nav__submenu-link:hover { background:var(--chip); color:var(--text); }

.site-drawer__group { display:flex; flex-direction:column; gap:4px; }
.site-drawer__group-toggle {
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:10px;
  background:transparent; border:0; color:var(--text-soft); font-family:inherit; font-weight:700;
  font-size:16px; padding:13px 14px; border-radius:12px; cursor:pointer; text-align:right;
}
.site-drawer__group-toggle[aria-expanded="true"] { background:var(--chip); color:var(--text); }
.site-drawer__group-toggle svg,
.site-drawer__subgroup-toggle svg { flex-shrink:0; transition:transform .25s ease; color:var(--muted); }
.site-drawer__group-toggle[aria-expanded="true"] svg,
.site-drawer__subgroup-toggle[aria-expanded="true"] svg { transform:rotate(180deg); color:var(--accent); }
.site-drawer__subnav,
.site-drawer__subgroup-items {
  display:none;
  flex-direction:column;
  gap:2px;
}
.site-drawer__subnav.is-expanded {
  display:flex;
  padding:0 8px 8px 0;
}
.site-drawer__sublink {
  color:var(--muted); text-decoration:none; font-weight:600; font-size:14px;
  padding:10px 14px 10px 24px; border-radius:10px;
}
.site-drawer__sublink--child { padding-right:34px; font-size:13px; }
.site-drawer__sublink--overview { font-weight:800; color:var(--accent); padding-right:24px; }
.site-drawer__sublink:hover { background:var(--chip); color:var(--text); }

.site-drawer__subgroup { display:flex; flex-direction:column; gap:2px; }
.site-drawer__subgroup-toggle {
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:10px;
  background:transparent; border:0; color:var(--text-soft); font-family:inherit; font-weight:700;
  font-size:15px; padding:10px 14px 10px 24px; border-radius:10px; cursor:pointer; text-align:right;
}
.site-drawer__subgroup-toggle[aria-expanded="true"] { background:var(--chip); color:var(--text); }
.site-drawer__subgroup-items.is-expanded {
  display:flex;
  padding-bottom:6px;
}

/* Catalog pages */
.catalog-page { padding-bottom:48px; }
.catalog-page-header { border-bottom:1px solid var(--hair); background:var(--bg-alt); }
.catalog-page-header__inner {
  width:100%; max-width:1240px; margin:0 auto;
  padding-block:28px; padding-inline:clamp(14px,4vw,28px);
}
.catalog-page-header__label { font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--accent); letter-spacing:.14em; margin-top:14px; }
.catalog-page-header__title { font-size:clamp(28px,5vw,40px); font-weight:900; margin-top:12px; letter-spacing:-.02em; }
.catalog-page-header__subtitle { color:var(--muted); margin-top:8px; font-size:15px; max-width:640px; line-height:1.7; }

.catalog-breadcrumbs { display:flex; flex-wrap:wrap; gap:8px; font-size:13px; color:var(--muted); margin-bottom:12px; }
.catalog-breadcrumbs__link { color:var(--muted); text-decoration:none; }
.catalog-breadcrumbs__link:hover { color:var(--text); }
.catalog-breadcrumbs__current { color:var(--text); }

.catalog-toolbar { padding-top:18px; }
.catalog-toolbar__inner { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.catalog-toolbar__count { font-size:14px; color:var(--muted); }
.catalog-toolbar__count strong { color:var(--text); font-family:'IBM Plex Mono',monospace; }
.catalog-toolbar__sort label { display:flex; align-items:center; gap:9px; font-size:14px; color:var(--muted); }
.catalog-toolbar__sort select {
  cursor:pointer; font-family:'Tajawal',sans-serif; font-size:14px; font-weight:700; color:var(--text);
  background:var(--card); border:1px solid var(--border-soft); border-radius:10px; padding:10px 14px;
}

.catalog-layout {
  display:grid; grid-template-columns:260px 1fr; gap:28px; align-items:start; padding-top:24px;
}
.catalog-main { min-width:0; }
.catalog-sidebar__toggle {
  display:none; width:100%; align-items:center; justify-content:space-between; gap:12px;
  background:var(--card); border:1px solid var(--border); border-radius:14px; padding:14px 16px;
  font-family:'Tajawal',sans-serif; font-size:15px; font-weight:800; color:var(--text); cursor:pointer;
  margin-bottom:12px; transition:border-color .2s ease, background .2s ease;
}
.catalog-sidebar__toggle:hover { border-color:var(--accent); background:var(--chip); }
.catalog-sidebar__toggle svg { flex-shrink:0; transition:transform .25s ease; color:var(--muted); }
.catalog-sidebar.is-open .catalog-sidebar__toggle svg { transform:rotate(180deg); color:var(--accent); }
.catalog-sidebar__card { background:var(--card); border:1px solid var(--border); border-radius:18px; padding:18px; position:sticky; top:92px; }
.catalog-sidebar__title { font-size:16px; font-weight:800; margin-bottom:12px; }
.catalog-sidebar__nav { display:flex; flex-direction:column; gap:4px; }
.catalog-sidebar__link {
  color:var(--text-soft); text-decoration:none; font-weight:600; font-size:14px;
  padding:10px 12px; border-radius:10px; transition:background .2s ease, color .2s ease;
}
.catalog-sidebar__link--child { padding-right:24px; font-size:13px; }
.catalog-sidebar__link:hover, .catalog-sidebar__link.is-active { background:var(--chip); color:var(--text); }

.catalog-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap:20px; }
.catalog-grid--compact { grid-template-columns:repeat(auto-fit, minmax(min(100%, 180px), 1fr)); }

.catalog-product-card {
  display:flex; flex-direction:column; min-width:0; height:100%;
  text-decoration:none; color:inherit; background:var(--card); border:1px solid var(--border);
  border-radius:18px; overflow:hidden; transition:border-color .2s ease, transform .2s ease;
}
.catalog-product-card:hover { border-color:var(--accent); transform:translateY(-2px); }
.catalog-product-card__media { aspect-ratio:1/1; background:var(--bg); border-bottom:1px solid var(--border); position:relative; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.catalog-product-card__image { width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .35s ease; }
.catalog-product-card__image.is-loaded,
.catalog-product-card__image[loading="eager"] { opacity:1; }
.catalog-product-card__placeholder { width:72px; height:72px; border-radius:50%; background:repeating-radial-gradient(circle, var(--deco) 0 2px, transparent 2px 11px); }
.catalog-product-card__tag { position:absolute; top:12px; right:12px; background:var(--accent); color:var(--on-accent); font-weight:800; font-size:11px; padding:4px 10px; border-radius:100px; }
.catalog-product-card__body { padding:18px; flex:1 1 auto; display:flex; flex-direction:column; }
.catalog-product-card__spec { font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--accent); letter-spacing:.03em; }
.catalog-product-card__name { font-size:16px; font-weight:800; margin-top:7px; line-height:1.4; }
.catalog-product-card__price { display:flex; align-items:center; gap:6px; margin-top:16px; }
.catalog-product-card__amount { font-family:'IBM Plex Mono',monospace; font-size:22px; font-weight:600; }
.catalog-product-card__currency { font-size:12px; color:var(--muted2); }

.catalog-category-hero {
  position:relative; overflow:hidden; border-bottom:1px solid var(--hair);
  background:linear-gradient(120deg, var(--accent-strong), #0a1f3c);
}
.catalog-category-hero__inner { padding-block:44px 48px; position:relative; }
.catalog-category-hero__content { display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-top:20px; }
.catalog-category-hero__main { flex:1 1 280px; min-width:0; }
.catalog-category-hero__media { flex:0 0 auto; width:min(100%, 220px); }
.catalog-category-hero__image {
  width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:18px;
  border:2px solid rgba(255,255,255,.18); box-shadow:0 16px 40px rgba(0,0,0,.22);
}
.catalog-category-hero__stats--inline { margin-top:18px; }
.catalog-category-hero__title { font-size:clamp(30px,6vw,50px); font-weight:900; color:#fff; line-height:1.1; letter-spacing:-.02em; }
.catalog-category-hero__subtitle { font-size:clamp(15px,2.5vw,18px); line-height:1.7; color:#d6e6f6; margin-top:14px; max-width:620px; }
.catalog-category-hero__stat-value { font-family:'IBM Plex Mono',monospace; font-size:26px; font-weight:600; color:#fff; }
.catalog-category-hero__stat-label { font-size:12px; color:#bcd6ee; }
.catalog-category-hero .catalog-breadcrumbs__link, .catalog-category-hero .catalog-breadcrumbs__current, .catalog-category-hero .catalog-breadcrumbs__sep { color:#bcd6ee; }
.catalog-category-hero .catalog-breadcrumbs__current { color:#fff; }

.catalog-subcategories { padding-top:28px; }
.catalog-subcategories__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%, 150px), 1fr)); gap:12px; }
.catalog-subcategory-card {
  display:flex; align-items:flex-start; gap:12px; text-decoration:none; color:inherit;
  background:var(--card); border:1px solid var(--border); border-radius:14px; padding:14px;
  transition:border-color .2s ease, transform .2s ease;
}
.catalog-subcategory-card:hover { border-color:var(--accent); transform:translateY(-2px); }
.catalog-subcategory-card__icon { width:40px; height:40px; border-radius:11px; background:var(--chip); border:1px solid var(--accent-15); flex-shrink:0; }
.catalog-subcategory-card__image {
  width:40px; height:40px; border-radius:11px; object-fit:cover; flex-shrink:0;
  border:1px solid var(--border-soft);
}
.catalog-subcategory-card__body { min-width:0; flex:1; }
.catalog-subcategory-card__name { font-weight:800; font-size:14px; }
.catalog-subcategory-card__desc {
  font-size:12px; line-height:1.55; color:var(--muted); margin-top:4px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.catalog-subcategory-card__count { font-size:11px; color:var(--muted2); font-family:'IBM Plex Mono',monospace; margin-top:6px; }

.catalog-product-page,
.catalog-article-page,
.catalog-articles.public-page-container {
  padding-block:24px 48px;
}
.catalog-product-page { overflow-x:hidden; }
.catalog-page--product,
.catalog-page--article {
  background:
    radial-gradient(circle at 12% 0%, rgba(11,147,224,.07), transparent 42%),
    radial-gradient(circle at 88% 18%, rgba(2,48,105,.05), transparent 36%),
    var(--bg);
}
.catalog-product-surface {
  background:#fff;
  border:1px solid rgba(215,227,239,.9);
  border-radius:20px;
  box-shadow:0 10px 32px rgba(15,35,55,.06), 0 2px 8px rgba(15,35,55,.04);
}
[data-theme="dark"] .catalog-product-surface {
  background:var(--card);
  border-color:var(--border);
  box-shadow:0 12px 32px rgba(0,0,0,.28);
}
.catalog-product-detail {
  display:grid;
  grid-template-columns:minmax(280px, 480px) minmax(0, 1fr);
  gap:clamp(18px,3vw,28px);
  margin-top:16px;
  align-items:start;
}
.catalog-product-detail__gallery {
  display:flex; flex-direction:column; gap:14px; width:100%; max-width:480px;
  padding:16px;
}
.catalog-product-detail__stage {
  position:relative;
  aspect-ratio:1/1; width:100%;
  background:linear-gradient(180deg, #f8fbfd 0%, #eef5fb 100%);
  border:1px solid var(--hair);
  border-radius:16px; overflow:hidden; display:flex; align-items:center; justify-content:center;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
}
[data-theme="dark"] .catalog-product-detail__stage {
  background:var(--card-alt);
  box-shadow:none;
}
.catalog-product-detail__image-badge {
  position:absolute; top:14px; right:14px; z-index:2;
  background:linear-gradient(120deg, var(--accent-strong), var(--accent));
  color:var(--on-accent); font-weight:800; font-size:12px; line-height:1.35;
  padding:8px 14px; border-radius:100px;
  box-shadow:0 4px 14px rgba(2,48,105,.22);
  max-width:calc(100% - 28px); text-align:center;
  pointer-events:none;
}
.catalog-product-detail__image {
  width:100%; height:100%; object-fit:contain;
  background:transparent; padding:18px;
}
.catalog-product-detail__placeholder {
  width:120px; height:120px; border-radius:50%;
  background:repeating-radial-gradient(circle, var(--deco) 0 3px, transparent 3px 14px);
}
.catalog-product-detail__thumbs {
  display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-start;
}
.catalog-product-detail__thumb {
  width:76px; height:76px; padding:0; border-radius:12px; border:2px solid var(--border);
  background:#fff; overflow:hidden; cursor:pointer; flex-shrink:0;
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
[data-theme="dark"] .catalog-product-detail__thumb { background:var(--card-alt); }
.catalog-product-detail__thumb:hover { border-color:var(--border-soft); transform:translateY(-1px); }
.catalog-product-detail__thumb.is-active {
  border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-15);
}
.catalog-product-detail__thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.catalog-product-detail__info {
  min-width:0;
  padding:clamp(18px,3vw,28px);
}
.catalog-product-detail__spec {
  display:inline-flex; align-items:center;
  font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--accent);
  background:var(--accent-15); border-radius:999px; padding:6px 12px; font-weight:700;
  letter-spacing:.02em;
}
.catalog-product-detail__title {
  font-size:clamp(26px,3.6vw,36px); font-weight:900; margin-top:12px;
  line-height:1.28; letter-spacing:-.015em; color:var(--text);
  max-width:30ch;
}
.catalog-product-detail__technical-name {
  margin-top:8px; font-size:13px; line-height:1.55; color:var(--muted2);
  font-family:'IBM Plex Mono',monospace; letter-spacing:.01em; word-break:break-word;
}
.catalog-product-detail__category {
  display:inline-flex; align-items:center; margin-top:12px; color:var(--accent);
  text-decoration:none; font-weight:700; font-size:14px;
  border-bottom:1px solid transparent; transition:border-color .2s ease;
}
.catalog-product-detail__category:hover { border-bottom-color:var(--accent); }
.catalog-product-detail__price { margin-top:18px; display:flex; align-items:baseline; gap:8px; }
.catalog-product-price { margin-top:18px; }
.catalog-product-price--compact { margin-top:16px; }
.catalog-product-price__current {
  display:flex; align-items:center; gap:6px; margin:0;
  font-family:'IBM Plex Mono',monospace; font-size:clamp(28px,4vw,36px); font-weight:700; line-height:1;
  color:var(--text);
}
.catalog-product-price--compact .catalog-product-price__current {
  font-size:22px;
}
.catalog-riyal-icon {
  display:inline-block; vertical-align:-0.125em; flex-shrink:0;
}
.catalog-product-price__compare-row {
  display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:10px 0 0;
}
.catalog-product-price__old {
  display:inline-flex; align-items:center; gap:4px;
  font-family:'IBM Plex Mono',monospace; font-size:15px; color:var(--muted2);
  text-decoration:line-through; text-decoration-thickness:1px;
}
.catalog-product-price__discount {
  display:inline-flex; align-items:center; min-height:28px; padding:0 10px;
  border-radius:999px; background:#e8f5e9; color:#1b7f3b;
  font-size:12px; font-weight:800;
}
[data-theme="dark"] .catalog-product-price__discount {
  background:rgba(27,127,59,.18); color:#7ddea0;
}
.catalog-product-rating {
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  margin-top:12px;
}
.catalog-product-rating__stars {
  display:inline-flex; align-items:center; gap:2px;
}
.catalog-product-rating__star {
  color:var(--border-soft); line-height:0;
}
.catalog-product-rating__star.is-filled {
  color:#f5b301;
}
.catalog-product-rating__average {
  font-family:'IBM Plex Mono',monospace; font-size:15px; font-weight:700; color:var(--text);
}
.catalog-product-rating__count {
  font-size:13px; color:var(--muted2);
}
.catalog-product-viewers {
  display:flex; align-items:center; gap:8px; margin-top:10px;
  font-size:13px; color:var(--muted);
}
.catalog-product-viewers__icon {
  flex-shrink:0; color:var(--accent);
  animation:catalog-viewers-pulse 2s ease-in-out infinite;
}
.catalog-product-viewers__text {
  line-height:1.5;
}
.catalog-product-urgency {
  margin-top:14px;
}
.catalog-product-urgency__text {
  margin:0 0 8px;
  font-size:14px; font-weight:800; color:#e1001a;
}
.catalog-product-urgency__bar {
  width:100%; height:8px; border-radius:999px; overflow:hidden; background:#ececec;
}
.catalog-product-urgency__bar-fill {
  display:block; width:100%; height:100%; border-radius:inherit;
}
.catalog-offer-countdown {
  margin-top:16px; padding:16px 18px; border-radius:16px;
  background:linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
  color:#fff; border:1px solid rgba(255,255,255,.08);
}
.catalog-offer-countdown__label {
  display:flex; align-items:center; gap:10px; margin:0 0 14px;
  font-size:15px; font-weight:800; color:#fff;
}
.catalog-offer-countdown__label svg {
  flex-shrink:0; color:#fff;
}
.catalog-offer-countdown__list {
  display:flex; align-items:stretch; justify-content:space-between; gap:10px;
  margin:0; padding:0; list-style:none;
}
.catalog-offer-countdown__list li {
  flex:1; min-width:0; text-align:center; padding:12px 8px;
  border-radius:12px; background:rgba(255,255,255,.08);
}
.catalog-offer-countdown__value {
  display:block; font-family:'IBM Plex Mono',monospace;
  font-size:clamp(22px,4vw,28px); font-weight:700; line-height:1.1; color:#fff;
}
.catalog-offer-countdown__unit {
  display:block; margin-top:6px; font-size:12px; color:rgba(255,255,255,.72); font-weight:600;
}
@keyframes catalog-viewers-pulse {
  0%, 100% { opacity:1; transform:scale(1); }
  50% { opacity:.65; transform:scale(.94); }
}
.catalog-product-detail__amount { font-family:'IBM Plex Mono',monospace; font-size:34px; font-weight:600; color:var(--accent); }
.catalog-product-detail__currency { font-size:14px; color:var(--muted2); }
.catalog-product-detail__excerpt {
  margin:18px 0 0; padding:14px 16px;
  font-size:15px; line-height:1.85; color:var(--text-soft);
  background:rgba(241,246,251,.9); border:1px solid var(--hair); border-radius:14px;
}
[data-theme="dark"] .catalog-product-detail__excerpt {
  background:var(--card-alt);
}
.catalog-product-detail__actions { margin-top:22px; }
.catalog-product-detail__cta {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  background:var(--accent); color:var(--on-accent); text-decoration:none;
  font-weight:800; font-size:16px; padding:14px 24px; border-radius:12px;
  transition:background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.catalog-product-detail__cta:hover { transform:translateY(-1px); }
.catalog-product-detail__cta--whatsapp {
  background:#25D366;
  box-shadow:0 8px 22px rgba(37,211,102,.28);
}
.catalog-product-detail__cta--whatsapp:hover { background:#1fb855; }

.catalog-product-body {
  margin-top:28px;
  padding:clamp(8px,2vw,16px) clamp(8px,2vw,16px) clamp(12px,2vw,18px);
  overflow:hidden;
}
.catalog-product-body .catalog-product-accordion {
  margin-top:0; border:none; border-radius:14px; overflow:hidden;
  background:transparent; box-shadow:none;
}
.catalog-product-reviews {
  margin-top:8px;
  padding:clamp(12px,2vw,18px) clamp(14px,2.4vw,22px) clamp(16px,2.4vw,22px);
}
.catalog-product-reviews--accordion {
  margin-top:0;
  padding:0;
}
.catalog-product-reviews__title {
  margin:0 0 14px;
  font-size:clamp(18px,2.4vw,22px);
  font-weight:900;
  color:var(--text);
}
.catalog-product-reviews__list {
  display:grid;
  gap:12px;
}
.catalog-product-reviews__item {
  padding:14px 16px;
  border:1px solid rgba(215,227,239,.95);
  border-radius:14px;
  background:#f8fbfd;
}
[data-theme="dark"] .catalog-product-reviews__item {
  background:var(--card-alt);
  border-color:var(--border);
}
.catalog-product-reviews__meta {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 12px;
  margin-bottom:8px;
  font-size:13px;
  color:var(--muted2);
}
.catalog-product-reviews__author {
  color:var(--text);
  font-weight:800;
}
.catalog-product-reviews__rating {
  color:var(--accent);
  font-weight:800;
  font-family:'IBM Plex Mono',monospace;
}
.catalog-product-reviews__body {
  margin:0;
  color:var(--text-soft);
  line-height:1.75;
  font-size:14.5px;
}
.catalog-product-accordion {
  margin-top:40px; border:1px solid var(--border); border-radius:18px; overflow:hidden;
  background:var(--card);
}
.catalog-product-accordion__item + .catalog-product-accordion__item {
  border-top:1px solid var(--hair);
}
.catalog-product-accordion__trigger {
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:18px 22px; background:#f7fafc; border:none; cursor:pointer;
  min-height:52px;
  font-family:'Tajawal',sans-serif; font-size:18px; font-weight:900; color:var(--text);
  text-align:right; transition:background .2s ease, color .2s ease;
}
[data-theme="dark"] .catalog-product-accordion__trigger { background:var(--card-alt); }
.catalog-product-accordion__trigger:hover { background:#eef5fb; }
[data-theme="dark"] .catalog-product-accordion__trigger:hover { background:var(--chip); }
.catalog-product-accordion__item.is-open .catalog-product-accordion__trigger {
  color:var(--accent-strong); background:#eef6fc;
}
[data-theme="dark"] .catalog-product-accordion__item.is-open .catalog-product-accordion__trigger {
  color:var(--accent); background:var(--chip);
}
.catalog-product-accordion__icon {
  flex-shrink:0; color:var(--muted); transition:transform .25s ease;
}
.catalog-product-accordion__item.is-open .catalog-product-accordion__icon {
  transform:rotate(180deg); color:var(--accent);
}
.catalog-product-accordion__panel { padding:4px 22px 24px; }
.catalog-product-accordion__content {
  color:var(--text-soft); line-height:1.95; font-size:16.5px;
  max-width:72ch;
}
.catalog-product-accordion__description {
  white-space:pre-wrap;
  color:#2c4660;
  background:#fff;
  border:1px solid var(--hair);
  border-radius:14px;
  padding:18px 20px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}
[data-theme="dark"] .catalog-product-accordion__description {
  color:var(--text-soft);
  background:var(--card-alt);
  box-shadow:none;
}
.catalog-product-specs { display:grid; gap:0; margin:0; }
.catalog-product-specs__row {
  display:grid; grid-template-columns:minmax(140px, 220px) 1fr; gap:16px;
  padding:14px 12px; border-bottom:1px solid var(--hair);
  border-radius:10px;
}
.catalog-product-specs__row:nth-child(odd) {
  background:rgba(241,246,251,.65);
}
[data-theme="dark"] .catalog-product-specs__row:nth-child(odd) {
  background:rgba(255,255,255,.03);
}
.catalog-product-specs__row:last-child { border-bottom:none; }
.catalog-product-specs__row dt {
  margin:0; font-weight:800; color:var(--text); font-size:14px;
}
.catalog-product-specs__row dd {
  margin:0; color:var(--text-soft); font-size:15px; line-height:1.75;
}

.catalog-articles { max-width:1240px; margin:0 auto; padding:24px clamp(16px,4vw,28px) 0; }
.catalog-articles__featured { margin-bottom:24px; }
.catalog-articles__grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:20px; }

.catalog-article-card {
  display:block; text-decoration:none; color:inherit; background:var(--card); border:1px solid var(--border);
  border-radius:18px; overflow:hidden; transition:border-color .2s ease, transform .2s ease;
}
.catalog-article-card:hover { border-color:var(--accent); transform:translateY(-2px); }
.catalog-article-card--featured { display:grid; grid-template-columns:1.1fr 1fr; }
.catalog-article-card__media { aspect-ratio:16/10; background:var(--bg); position:relative; overflow:hidden; min-height:180px; }
.catalog-article-card__image { width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .35s ease; }
.catalog-article-card__image.is-loaded,
.catalog-article-card__image[loading="eager"] { opacity:1; }
.catalog-article-card__placeholder { width:100%; height:100%; background:repeating-linear-gradient(135deg, var(--stripe) 0 12px, transparent 12px 24px); }
.catalog-article-card__badge { position:absolute; top:16px; right:16px; background:var(--accent); color:#fff; font-weight:800; font-size:12px; padding:6px 13px; border-radius:100px; }
.catalog-article-card__body { padding:20px; }
.catalog-article-card__meta { display:flex; flex-wrap:wrap; gap:10px; font-size:12px; color:var(--muted2); margin-bottom:10px; }
.catalog-article-card__cat { color:var(--accent); font-weight:700; }
.catalog-article-card__title { font-size:20px; font-weight:900; line-height:1.35; }
.catalog-article-card__excerpt { margin-top:10px; color:var(--muted); line-height:1.7; font-size:14px; }

.catalog-article-page {
  display:flex;
  flex-direction:column;
  gap:20px;
}
.catalog-article-page__header {
  margin-top:4px;
  padding:clamp(18px,3vw,28px);
}
.catalog-article-page__meta {
  display:flex; flex-wrap:wrap; gap:12px;
  font-size:13px; color:var(--muted2);
}
.catalog-article-page__cat {
  color:var(--accent); font-weight:700;
  background:var(--accent-15); border-radius:999px;
  padding:4px 12px;
}
.catalog-article-page__title {
  font-size:clamp(26px,4.2vw,40px); font-weight:900; margin-top:14px;
  line-height:1.25; letter-spacing:-.02em; color:var(--text);
}
.catalog-article-page__hero {
  margin:0; padding:12px; overflow:hidden;
}
.catalog-article-page__hero img {
  width:100%; display:block; max-height:480px; object-fit:cover;
  border-radius:14px;
  background:linear-gradient(180deg, #f8fbfd 0%, #eef5fb 100%);
}
.catalog-article-page__content {
  margin:0;
  padding:clamp(20px,3vw,32px);
  color:var(--text);
  line-height:1.95;
  font-size:17px;
}
.catalog-article-page__content h2,
.catalog-article-page__content h3 {
  color:var(--text);
  font-weight:900;
  line-height:1.35;
  margin:1.5em 0 .55em;
}
.catalog-article-page__content h2 { font-size:clamp(20px,3vw,26px); }
.catalog-article-page__content h3 { font-size:clamp(17px,2.4vw,20px); }
.catalog-article-page__content h2:first-child,
.catalog-article-page__content h3:first-child { margin-top:0; }
.catalog-article-page__content p { margin-bottom:1.05em; color:var(--text-soft); }
.catalog-article-page__content strong { color:var(--text); font-weight:800; }
.catalog-article-page__content a {
  color:var(--accent); font-weight:700; text-decoration:underline;
  text-underline-offset:3px;
}
.catalog-article-page__content a:hover { color:var(--accent-strong, var(--accent)); }
.catalog-article-page__content ul,
.catalog-article-page__content ol {
  margin:0 0 1.15em;
  padding-inline-start:1.35em;
  color:var(--text-soft);
}
.catalog-article-page__content li { margin-bottom:.45em; padding-inline-start:.2em; }
.catalog-article-page__content li::marker { color:var(--accent); }
.catalog-article-page__content hr {
  border:none; border-top:1px solid rgba(215,227,239,.95);
  margin:1.6em 0;
}
.catalog-article-page__content .article-faq-item {
  margin:16px 0;
  padding:16px 18px;
  background:#f7fafc;
  border:1px solid rgba(215,227,239,.9);
  border-radius:14px;
}
.catalog-article-page__content .article-faq-item h3 { margin-top:0; }
.catalog-article-page__content .article-faq-item p:last-child { margin-bottom:0; }
.catalog-article-page__content .article-cta {
  margin:24px 0 8px;
  padding:clamp(18px,3vw,24px);
  border-radius:16px;
  background:linear-gradient(135deg, rgba(11,147,224,.08), rgba(2,48,105,.06));
  border:1px solid rgba(11,147,224,.18);
}
.catalog-article-page__content .article-cta h2 { margin-top:0; }
.catalog-article-page__content .article-cta p:last-child { margin-bottom:0; }
.catalog-article-page__content .article-cta__link {
  display:inline-flex; align-items:center; justify-content:center;
  margin-top:4px; padding:12px 18px; border-radius:12px;
  background:#25D366; color:#fff !important; font-weight:800;
  text-decoration:none !important;
  box-shadow:0 8px 22px rgba(37,211,102,.28);
  transition:transform .15s ease, background .15s ease;
}
.catalog-article-page__content .article-cta__link:hover {
  background:#1fb855; transform:translateY(-1px);
}
.catalog-article-page__content .article-internal-links {
  margin-top:20px;
  padding-top:8px;
}
.catalog-article-page__content .article-toc {
  margin:0 0 24px;
  padding:16px 18px;
  border:1px solid var(--border, rgba(0,0,0,.08));
  border-radius:12px;
  background:rgba(0,0,0,.02);
}
.catalog-article-page__content .article-toc h2 {
  margin-top:0;
  font-size:18px;
}
.catalog-article-page__content .article-toc ul {
  margin-bottom:0;
}
.catalog-article-page__content .article-table-wrap {
  overflow-x:auto;
  margin:1.25em 0;
}
.catalog-article-page__content .article-table {
  width:100%;
  border-collapse:collapse;
  font-size:14px;
}
.catalog-article-page__content .article-table th,
.catalog-article-page__content .article-table td {
  padding:10px 12px;
  border:1px solid var(--border, rgba(0,0,0,.1));
  text-align:start;
  vertical-align:top;
}
.catalog-article-page__content .article-table th {
  background:rgba(0,0,0,.04);
  font-weight:800;
  color:var(--text);
}
.catalog-article-page .catalog-related {
  margin-top:0;
}

.catalog-related {
  margin-top:28px; padding:clamp(18px,3vw,28px);
  border-top:none;
}
.catalog-related__title {
  font-size:clamp(22px,5vw,28px); font-weight:900; margin-bottom:20px;
  letter-spacing:-.01em;
}
.catalog-related-articles {
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:18px;
}
.catalog-related-articles .catalog-article-card {
  height:100%;
}
.catalog-related-articles .catalog-article-card__title {
  font-size:15px;
  line-height:1.4;
}
.catalog-related-articles .catalog-article-card__excerpt {
  font-size:13px;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.catalog-related-articles .catalog-article-card__media {
  aspect-ratio:16/10;
  min-height:0;
}
@media (max-width: 1100px) {
  .catalog-related-articles {
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .catalog-related-articles {
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:12px;
  }
  .catalog-related-articles .catalog-article-card__body {
    padding:12px;
  }
  .catalog-related-articles .catalog-article-card__title {
    font-size:13px;
  }
  .catalog-related-articles .catalog-article-card__excerpt {
    display:none;
  }
}
.catalog-related-carousel { position:relative; }
.catalog-related-carousel__item { height:100%; }
.catalog-related-carousel .catalog-product-card { height:100%; }
.catalog-related-carousel .owl-stage-outer { padding:4px 0 8px; }
.catalog-related-carousel .owl-nav {
  position:absolute; top:50%; left:0; right:0; transform:translateY(-50%);
  display:flex; justify-content:space-between; pointer-events:none; padding:0 4px;
}
.catalog-related-carousel .owl-nav button.owl-prev,
.catalog-related-carousel .owl-nav button.owl-next {
  pointer-events:auto; width:42px; height:42px; border-radius:12px;
  border:1px solid var(--border-soft); background:var(--card); color:var(--text);
  display:inline-flex; align-items:center; justify-content:center;
  box-shadow:0 8px 24px rgba(15,23,42,.08); transition:background .2s ease, border-color .2s ease, color .2s ease;
}
.catalog-related-carousel .owl-nav button.owl-prev:hover,
.catalog-related-carousel .owl-nav button.owl-next:hover {
  border-color:var(--accent); color:var(--accent); background:var(--accent-15);
}
.catalog-related-carousel .owl-nav button.owl-prev.disabled,
.catalog-related-carousel .owl-nav button.owl-next.disabled { opacity:.35; cursor:not-allowed; }
.catalog-related-carousel .owl-dots { margin-top:18px; text-align:center; }
.catalog-related-carousel .owl-dots .owl-dot span {
  width:10px; height:10px; margin:0 5px; background:var(--border-soft); transition:background .2s ease, transform .2s ease;
}
.catalog-related-carousel .owl-dots .owl-dot.active span,
.catalog-related-carousel .owl-dots .owl-dot:hover span { background:var(--accent); transform:scale(1.1); }

.home-bestseller-carousel { position:relative; }
.home-bestseller-carousel__item { height:100%; }
.home-bestseller-carousel .catalog-product-card {
  display:block; height:100%; background:var(--card); border:1px solid var(--border);
  border-radius:18px; overflow:hidden; text-decoration:none; color:inherit;
  transition:border-color .2s ease, transform .2s ease;
}
.home-bestseller-carousel .catalog-product-card:hover { border-color:var(--accent); transform:translateY(-2px); }
.home-bestseller-carousel .owl-stage-outer { padding:4px 0 8px; overflow:visible; }
.home-bestseller-carousel .owl-nav {
  position:absolute; top:38%; left:0; right:0; transform:translateY(-50%);
  display:flex; justify-content:space-between; pointer-events:none; padding:0 4px;
}
.home-bestseller-carousel .owl-nav button.owl-prev,
.home-bestseller-carousel .owl-nav button.owl-next {
  pointer-events:auto; width:42px; height:42px; border-radius:12px;
  border:1px solid var(--border-soft); background:var(--card); color:var(--text);
  display:inline-flex; align-items:center; justify-content:center;
  box-shadow:0 8px 24px rgba(15,23,42,.08); transition:background .2s ease, border-color .2s ease, color .2s ease;
}
.home-bestseller-carousel .owl-nav button.owl-prev:hover,
.home-bestseller-carousel .owl-nav button.owl-next:hover {
  border-color:var(--accent); color:var(--accent); background:var(--accent-15);
}
.home-bestseller-carousel .owl-nav button.owl-prev.disabled,
.home-bestseller-carousel .owl-nav button.owl-next.disabled { opacity:.35; cursor:not-allowed; }
.home-bestseller-carousel .owl-dots { margin-top:18px; text-align:center; }
.home-bestseller-carousel .owl-dots .owl-dot span {
  width:10px; height:10px; margin:0 5px; background:var(--border-soft); transition:background .2s ease, transform .2s ease;
}
.home-bestseller-carousel .owl-dots .owl-dot.active span,
.home-bestseller-carousel .owl-dots .owl-dot:hover span { background:var(--accent); transform:scale(1.1); }

.site-clients__header {
  text-align:center;
  margin-bottom:40px;
}
.site-clients__label {
  font-family:'IBM Plex Mono',monospace;
  font-size:13px;
  color:var(--accent);
  letter-spacing:.14em;
}
.site-clients__title {
  font-size:clamp(24px, 5vw, 32px);
}
.home-clients-carousel { position:relative; }
.home-clients-carousel__item { height:100%; }
.home-clients-carousel__logo {
  aspect-ratio:16/10;
  background:var(--card);
  border:1px solid var(--border);
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  padding:12px;
  height:100%;
}
.home-clients-carousel__logo img {
  max-width:100%;
  max-height:100%;
  object-fit:contain;
}
.home-clients-carousel__placeholder {
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  color:var(--faint2);
  text-align:center;
}
.home-clients-carousel .owl-stage-outer { padding:4px 0; }

.catalog-empty { background:var(--card); border:1px solid var(--border); border-radius:18px; padding:40px 24px; text-align:center; }
.catalog-empty h2 { font-size:24px; font-weight:900; }
.catalog-empty p { color:var(--muted); margin-top:10px; }
.catalog-empty a { color:var(--accent); }

.catalog-pagination { margin-top:32px; padding-top:24px; border-top:1px solid var(--hair); }
.catalog-pagination__nav { display:flex; flex-direction:column; align-items:center; gap:16px; }
.catalog-pagination__meta {
  margin:0; font-size:14px; color:var(--muted); text-align:center;
}
.catalog-pagination__mono { font-family:'IBM Plex Mono',monospace; font-weight:600; color:var(--text); }
.catalog-pagination__controls {
  display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap; width:100%;
}
.catalog-pagination__arrow {
  display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 16px;
  border-radius:12px; border:1px solid var(--border-soft); background:var(--card);
  color:var(--text); text-decoration:none; font-weight:800; font-size:14px;
  transition:background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}
.catalog-pagination__arrow:hover { border-color:var(--accent); color:var(--accent); background:var(--accent-15); }
.catalog-pagination__arrow.is-disabled {
  opacity:.45; cursor:not-allowed; pointer-events:none; background:var(--card-alt); color:var(--muted);
}
.catalog-pagination__pages {
  display:flex; align-items:center; justify-content:center; gap:6px; flex-wrap:wrap;
  padding:4px; border-radius:14px; background:var(--card-alt); border:1px solid var(--hair);
}
.catalog-pagination__page, .catalog-pagination__dots {
  display:inline-flex; align-items:center; justify-content:center; min-width:42px; height:42px;
  padding:0 12px; border-radius:10px; font-weight:800; font-size:14px; text-decoration:none;
}
.catalog-pagination__page {
  color:var(--text-soft); background:transparent; border:1px solid transparent;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.catalog-pagination__page:hover { color:var(--text); background:var(--card); border-color:var(--border); }
.catalog-pagination__page.is-active {
  background:var(--accent); border-color:var(--accent); color:var(--on-accent);
  box-shadow:0 8px 20px rgba(11,147,224,.22);
}
.catalog-pagination__dots { color:var(--muted2); letter-spacing:.12em; min-width:auto; padding:0 6px; }
.catalog-pagination__mobile {
  display:none; margin:0; font-size:13px; color:var(--muted); font-family:'IBM Plex Mono',monospace;
}
.catalog-pagination nav { width:100%; }
.catalog-pagination .pagination {
  display:flex; flex-wrap:wrap; justify-content:center; gap:8px; list-style:none; padding:0; margin:0;
}
.catalog-pagination .page-item .page-link {
  display:inline-flex; align-items:center; justify-content:center; min-width:42px; height:42px;
  padding:0 12px; border-radius:10px; font-weight:800; font-size:14px; text-decoration:none;
  color:var(--text-soft); background:var(--card); border:1px solid var(--border);
}
.catalog-pagination .page-item.active .page-link {
  background:var(--accent); border-color:var(--accent); color:var(--on-accent);
}
.catalog-article-page__content img { max-width:100%; height:auto; border-radius:12px; }
.catalog-article-page__content table { display:block; overflow-x:auto; max-width:100%; }
.catalog-article-page__content iframe,
.catalog-article-page__content video,
.catalog-article-page__content embed {
  display:block; max-width:100%; width:100%; height:auto; aspect-ratio:16/9; border:0; border-radius:12px;
}
.catalog-article-page__content pre { overflow-x:auto; max-width:100%; }
.catalog-breadcrumbs { word-break:break-word; }
.catalog-articles.public-page-container { padding-block:24px 40px; }

.faqs-page__content {
  padding:32px 0 56px;
}
.policy-page__content {
  padding:32px 0 56px;
}
.faqs-page__group + .faqs-page__group { margin-top:40px; }
.faqs-page__group-title {
  font-size:clamp(22px,4vw,28px); font-weight:900; margin:0 0 8px; letter-spacing:-.02em;
}
.faqs-page__group-subtitle {
  color:var(--muted); margin:0 0 18px; font-size:15px; line-height:1.7;
}
.faqs-page__accordion { margin-top:8px; }
.faqs-page__ask {
  margin-top:48px; padding:28px; border:1px solid var(--hair); border-radius:18px;
  background:linear-gradient(180deg, var(--card) 0%, var(--card-alt) 100%);
}
.faqs-page__ask-title { font-size:24px; font-weight:900; margin:0 0 8px; }
.faqs-page__ask-subtitle { font-size:18px; font-weight:800; margin:0 0 10px; color:var(--accent); }
.faqs-page__ask-description { color:var(--text-soft); margin:0 0 18px; line-height:1.8; }
.faqs-page__ask-cta {
  display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:0 22px;
  border-radius:12px; background:var(--accent); color:var(--on-accent); font-weight:800; text-decoration:none;
  transition:transform .2s ease, box-shadow .2s ease;
}
.faqs-page__ask-cta:hover {
  transform:translateY(-1px); box-shadow:0 10px 24px rgba(11,147,224,.24); color:var(--on-accent);
}

.policy-page__content {
  padding:32px 0 56px;
}
.policy-page__intro {
  color:var(--text-soft); font-size:16px; line-height:1.9; margin:0 0 28px;
}
.policy-page__section + .policy-page__section { margin-top:32px; }
.policy-page__section-title {
  font-size:clamp(20px,3.5vw,26px); font-weight:900; margin:0 0 14px; letter-spacing:-.02em;
}
.policy-page__section-body {
  color:var(--text-soft); font-size:15px; line-height:1.95; white-space:pre-wrap;
  padding:20px 22px; border:1px solid var(--hair); border-radius:16px; background:var(--card);
}
.policy-page__cta { margin-top:36px; }
.policy-page__cta-link {
  display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:0 22px;
  border-radius:12px; background:var(--accent); color:var(--on-accent); font-weight:800; text-decoration:none;
}

/* Responsive grid utilities (mobile-first: full width, then columns on larger screens) */
.public-page-container {
  width:100%; max-width:1240px; margin:0 auto; padding-inline:clamp(14px,4vw,28px);
}
.public-grid { display:grid; gap:20px; width:100%; }
.public-grid--hero {
  grid-template-columns:1.05fr .95fr; gap:52px; align-items:center;
  max-width:1240px; margin:0 auto; padding:74px clamp(14px,4vw,28px) 82px; position:relative;
}
.public-grid--cards { grid-template-columns:repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.public-grid--services { grid-template-columns:repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap:16px; }
.public-grid--steps { grid-template-columns:repeat(auto-fit, minmax(min(100%, 180px), 1fr)); }
.public-grid--articles { grid-template-columns:repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.public-grid--products { grid-template-columns:repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap:clamp(14px, 3vw, 20px); }
.public-grid--clients { grid-template-columns:repeat(auto-fit, minmax(min(100%, 140px), 1fr)); gap:14px; }
.public-grid--2col { grid-template-columns:repeat(2, minmax(0, 1fr)); }
.public-grid--product-detail {
  grid-template-columns:minmax(280px, 480px) minmax(0, 1fr);
  gap:clamp(24px,4vw,48px); align-items:start;
}
.public-grid--cta {
  display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap;
}
.public-grid__col-12 { grid-column:1 / -1; min-width:0; }
.site-hero__actions a,
.site-cta-actions a,
.catalog-product-detail__cta { width:100%; max-width:100%; }
@media (min-width: 641px) {
  .site-hero__actions a,
  .site-cta-actions a { width:auto; }
  .catalog-product-detail__cta { width:auto; }
}
