/*
 Theme Name:   HSWare's Advance Shield Theme
 Description:  HSWare Kadence Child Theme — advanced custom frontend, software layouts, schema controls, and performance architecture for Kadence.
 Author:       Hammad Shujra (HSWare)
 Author URI:   https://www.linkedin.com/in/hammadshujra/
 Template:     kadence
 Version:      4.4.0
 Tags:         customizable, modern, responsive-layout, gutenberg
 Text Domain:  kadencechild
*/

/* HSWare develops and maintains this Kadence child theme while Soft Orbit remains the public site brand. */

/*
 * Soft Orbit v3.3.3 — Kadence native Global Palette bridge.
 *
 * Kadence 1.4+ emits palette1..palette15 as native CSS variables. Every Soft
 * Orbit color token below resolves directly from those variables. No PHP
 * palette parsing or per-request bridge is used. Safe CSS fallbacks remain only
 * for fail-open rendering during a cache or parent-theme transition.
 */
:root {
  --so-accent: var(--global-palette1, #059669);
  --so-accent-alt: var(--global-palette2, #047857);
  --so-strongest: var(--global-palette3, #0c0a09);
  --so-strong: var(--global-palette4, #1c1917);
  --so-medium: var(--global-palette5, #57534e);
  --so-subtle: var(--global-palette6, #78716c);
  --so-bg-subtle: var(--global-palette7, #f5f5f4);
  --so-bg-lighter: var(--global-palette8, #fafaf9);
  --so-white: var(--global-palette9, #ffffff);
  --so-accent-complement: var(--global-palette10, #f6b000);
  --so-success: var(--global-palette11, #10b981);
  --so-info: var(--global-palette12, #1a69ff);
  --so-alert: var(--global-palette13, #c2410c);
  --so-warning: var(--global-palette14, #fdba74);
  --so-rating: var(--global-palette15, #f6b000);

  /* Derived UI shades: these follow the live Kadence palette automatically. */
  --so-border: color-mix(in srgb, var(--so-subtle) 18%, var(--so-white));
  --so-border-strong: color-mix(in srgb, var(--so-subtle) 31%, var(--so-white));
  --so-neutral-400: color-mix(in srgb, var(--so-subtle) 65%, var(--so-white));
  --so-neutral-700: color-mix(in srgb, var(--so-strong) 83%, var(--so-white));
  --so-neutral-800: color-mix(in srgb, var(--so-strongest) 89%, var(--so-white));

  --so-accent-soft: color-mix(in srgb, var(--so-accent) 7%, var(--so-white));
  --so-accent-soft-2: color-mix(in srgb, var(--so-accent) 16%, var(--so-white));
  --so-accent-border: color-mix(in srgb, var(--so-accent) 30%, var(--so-white));
  --so-accent-deep: color-mix(in srgb, var(--so-accent-alt) 82%, var(--so-strongest));

  --so-success-soft: color-mix(in srgb, var(--so-success) 16%, var(--so-white));
  --so-info-soft: color-mix(in srgb, var(--so-info) 10%, var(--so-white));
  --so-alert-soft: color-mix(in srgb, var(--so-alert) 8%, var(--so-white));
  --so-warning-soft: color-mix(in srgb, var(--so-warning) 14%, var(--so-white));
  --so-rating-soft: color-mix(in srgb, var(--so-rating) 24%, var(--so-white));
}


/* --------------------------------------------------------------------------
 * HSWare 4.1 — real WordPress Software/Blog Pages and mixed content archives.
 * The active Template 1/2 body class continues to select the software card
 * renderer; these shared layout rules keep directory behavior consistent.
 * -------------------------------------------------------------------------- */
.hsware-directory-page { min-height: 60vh; }
.hsware-directory-search { max-width: 760px; margin-top: 24px; }
.hsware-directory-layout { display: grid; grid-template-columns: minmax(210px, 260px) minmax(0, 1fr); gap: 30px; align-items: start; }
.hsware-directory-layout.no-sidebar { grid-template-columns: minmax(0, 1fr); }
.hsware-directory-sidebar { position: sticky; top: 28px; padding: 20px; border: 1px solid var(--so-border); border-radius: 18px; background: var(--so-white); }
.hsware-directory-sidebar h2 { margin: 0 0 14px; font-size: 18px; color: var(--so-strongest); }
.hsware-category-filter { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 12px; margin: 3px 0; border-radius: 10px; color: var(--so-medium); text-decoration: none; font-size: 14px; font-weight: 600; }
.hsware-category-filter:hover, .hsware-category-filter.is-active { color: var(--so-strongest); background: var(--so-bg-subtle); }
.hsware-category-filter.is-active { box-shadow: inset 3px 0 0 var(--so-accent); }
.hsware-category-filter b { min-width: 28px; padding: 2px 7px; border-radius: 999px; background: var(--so-bg-lighter); color: var(--so-subtle); text-align: center; font-size: 12px; }
.hsware-directory-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin: 0 0 20px; }
.hsware-directory-heading span { display: block; margin-bottom: 4px; color: var(--so-subtle); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.hsware-directory-heading h2 { margin: 0; color: var(--so-strongest); font-size: clamp(22px, 3vw, 30px); }
.hsware-directory-heading > a { color: var(--so-accent-alt); font-size: 13px; font-weight: 700; text-decoration: none; }
.hsware-directory-pagination { margin-top: 32px; }
.hsware-directory-copy .entry-content { max-width: 900px; }
.hsware-directory-copy .entry-content > :first-child { margin-top: 0; }
.hsware-directory-copy .entry-content > :last-child { margin-bottom: 0; }

.hsware-blog-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.hsware-blog-card { overflow: hidden; border: 1px solid var(--so-border); border-radius: 18px; background: var(--so-white); box-shadow: 0 8px 30px color-mix(in srgb, var(--so-strongest) 5%, transparent); }
.hsware-blog-thumb { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--so-bg-subtle); }
.hsware-blog-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.hsware-blog-card:hover .hsware-blog-thumb img { transform: scale(1.025); }
.hsware-blog-card-body { padding: 22px; }
.hsware-blog-meta { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-bottom: 10px; color: var(--so-subtle); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.hsware-blog-card h2 { margin: 0 0 10px; font-size: clamp(19px, 2.3vw, 24px); line-height: 1.25; }
.hsware-blog-card h2 a { color: var(--so-strongest); text-decoration: none; }
.hsware-blog-card p { margin: 0 0 16px; color: var(--so-medium); line-height: 1.7; }
.hsware-blog-read { color: var(--so-accent-alt); font-weight: 800; text-decoration: none; }
.hsware-blog-read span { display: inline-block; transition: transform .2s ease; }
.hsware-blog-read:hover span { transform: translateX(3px); }
.hsware-mixed-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.hsware-mixed-grid .hsware-blog-card { grid-column: span 1; }

.softorbit-template2 .hsware-directory-sidebar,
.softorbit-template2 .hsware-blog-card { border-radius: 24px; }
.softorbit-template2 .hsware-directory-sidebar { box-shadow: 0 12px 36px color-mix(in srgb, var(--so-strongest) 6%, transparent); }

@media (max-width: 980px) {
  .hsware-directory-layout { grid-template-columns: 1fr; }
  .hsware-directory-sidebar { position: static; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
  .hsware-directory-sidebar h2 { grid-column: 1 / -1; }
  .hsware-mixed-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .hsware-directory-sidebar { grid-template-columns: 1fr; }
  .hsware-blog-grid, .hsware-mixed-grid { grid-template-columns: 1fr; }
  .hsware-directory-heading { align-items: flex-start; flex-direction: column; }
  .hsware-blog-card-body { padding: 18px; }
}


/* HSWare 4.3 — Blog cards + homepage Blog section. */
.hsware-blog-card {
  display: flex;
  min-width: 0;
  height: 100%;
  flex-direction: column;
  border-radius: 16px;
  box-shadow: 0 4px 18px color-mix(in srgb, var(--so-strongest) 5%, transparent);
}
.hsware-blog-thumb { flex: 0 0 auto; }
.hsware-blog-ratio-16-9 .hsware-blog-thumb { aspect-ratio: 16 / 9; }
.hsware-blog-ratio-4-3 .hsware-blog-thumb { aspect-ratio: 4 / 3; }
.hsware-blog-ratio-3-2 .hsware-blog-thumb { aspect-ratio: 3 / 2; }
.hsware-blog-ratio-1-1 .hsware-blog-thumb { aspect-ratio: 1 / 1; }
.hsware-blog-card-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  padding: 18px;
}
.hsware-blog-card h2 {
  margin: 0 0 9px;
  font-size: clamp(18px, 2vw, 22px);
  line-height: 1.32;
  letter-spacing: -.015em;
}
.hsware-blog-card p {
  display: -webkit-box;
  margin: 0 0 14px;
  overflow: hidden;
  color: var(--so-medium);
  font-size: 13px;
  line-height: 1.65;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.hsware-blog-meta {
  order: 3;
  margin: auto 0 12px;
  padding-top: 12px;
  border-top: 1px solid var(--so-border);
  color: var(--so-subtle);
  font-size: 10.5px;
  letter-spacing: .035em;
}
.hsware-blog-read {
  order: 4;
  display: inline-flex;
  width: fit-content;
  min-height: 34px;
  align-items: center;
  gap: 7px;
  padding: 7px 11px;
  border: 1px solid var(--so-border-strong);
  border-radius: 9px;
  background: var(--so-bg-lighter);
  color: var(--so-strongest) !important;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  text-decoration: none !important;
}
.hsware-blog-read:hover,
.hsware-blog-read:focus {
  border-color: var(--so-strongest);
  background: var(--so-strongest);
  color: var(--so-white) !important;
}
.hsware-home-blog-section {
  border-top: 1px solid var(--so-border);
  background: var(--so-white);
}
.hsware-home-blog-head {
  align-items: end;
}
.hsware-home-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.hsware-home-blog-section .hsware-blog-thumb {
  max-height: 220px;
}
.hsware-home-blog-section .hsware-blog-card-body {
  padding: 16px;
}
.hsware-home-blog-section .hsware-blog-card h2 {
  font-size: 18px;
}
.hsware-home-blog-viewall {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 7px;
  padding: 9px 12px;
  border: 1px solid var(--so-border-strong);
  border-radius: 9px;
  color: var(--so-strongest) !important;
  font-size: 11px;
  font-weight: 800;
  text-decoration: none !important;
}
.hsware-home-blog-viewall:hover {
  border-color: var(--so-strongest);
  background: var(--so-strongest);
  color: var(--so-white) !important;
}
.hsware-home-blog-viewall svg { width: 14px; height: 14px; }
@media (max-width: 980px) {
  .hsware-home-blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .hsware-home-blog-grid { grid-template-columns: 1fr; }
  .hsware-home-blog-head { align-items: flex-start; }
  .hsware-home-blog-viewall { margin-top: 4px; }
}


/* HSWare 4.4 — Homepage Blog display controls. */
.hsware-home-blog-grid.hsware-home-blog-columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hsware-home-blog-grid.hsware-home-blog-columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hsware-home-blog-grid.hsware-home-blog-columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.hsware-blog-card.is-image-hidden .hsware-blog-card-body { padding-top: 20px; }
.hsware-blog-card .hsware-blog-read:last-child { margin-top: auto; }
@media (max-width: 1100px) {
  .hsware-home-blog-grid.hsware-home-blog-columns-4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
  .hsware-home-blog-grid.hsware-home-blog-columns-2,
  .hsware-home-blog-grid.hsware-home-blog-columns-3,
  .hsware-home-blog-grid.hsware-home-blog-columns-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .hsware-home-blog-grid.hsware-home-blog-columns-2,
  .hsware-home-blog-grid.hsware-home-blog-columns-3,
  .hsware-home-blog-grid.hsware-home-blog-columns-4 { grid-template-columns: 1fr; }
}
