/* WS Addons 1.0.11 — GOV-friendly minimal information design.
 * Visual hierarchy ~70% of v1.0.6, without browser zoom or reduced accessibility.
 * No background images, effects, shadows or web fonts.
 */
:root {
  --ws-ink: #182b42;
  --ws-muted: #4b5d71;
  --ws-blue: #0759aa;
  --ws-line: #dce3eb;
  --ws-soft: #f6f8fa;
  --ws-width: 1120px;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.ws-body { margin: 0; background: #fff; color: var(--ws-ink); font: 16px/1.55 system-ui, -apple-system, "Segoe UI", Arial, sans-serif; }
.ws-body img, .ws-body svg { max-width: 100%; }
.ws-body button, .ws-body input, .ws-body textarea { font: inherit; }
.ws-body :focus-visible { outline: 3px solid #106bd2; outline-offset: 3px; }
.ws-container { width: min(calc(100% - 72px), var(--ws-width)); margin-inline: auto; }
.ws-skip { position:absolute; z-index:9999; left:12px; top:-90px; background:#fff; padding:12px 16px; color:var(--ws-blue); }
.ws-skip:focus { top:12px; }
.ws-body a { color:var(--ws-blue); }

/* Clear institutional header — no marketing buttons or decorative effects. */
.ws-header { position:relative; z-index:10; background:#fff; border-bottom:1px solid var(--ws-line); }
.ws-header-inner { min-height:78px; display:flex; align-items:center; gap:28px; }
.ws-brand { display:flex; gap:11px; align-items:center; flex:0 0 auto; text-decoration:none; color:var(--ws-ink) !important; white-space:nowrap; }
.ws-brand img { width:62px; height:29px; object-fit:contain; }
.ws-brand span { font-size:21px; font-weight:700; letter-spacing:-.035em; }
.ws-nav-panel { display:flex; align-items:center; justify-content:space-between; flex:1; gap:24px; margin-left:55px; }
.ws-menu { flex:1; }
.ws-menu ul, .ws-menu-fallback { display:flex; align-items:center; gap:28px; list-style:none; padding:0; margin:0; }
.ws-menu li { list-style:none; }
.ws-menu li a { font-size:14px; color:var(--ws-ink); text-decoration:none; font-weight:500; }
.ws-menu a:hover, .ws-menu a:focus-visible { color:var(--ws-blue); text-decoration:underline; }
.ws-menu ul ul { display:none; }
.ws-menu li:hover > ul, .ws-menu li:focus-within > ul { display:flex; position:absolute; top:66px; flex-direction:column; align-items:stretch; gap:9px; padding:15px; min-width:175px; background:#fff; border:1px solid var(--ws-line); }
.ws-header-actions { display:flex; align-items:center; gap:18px; flex:0 0 auto; }
.ws-search-link { line-height:0; display:inline-flex; align-items:center; padding:10px; color:var(--ws-ink) !important; }
.ws-header-actions svg { width:18px; height:18px; vertical-align:middle; }
.ws-signin { color:var(--ws-blue) !important; font-size:14px; font-weight:600; text-decoration:none; white-space:nowrap; }
.ws-signin:hover { text-decoration:underline; }
.ws-account-button, .ws-primary-button { display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:10px 17px; min-height:42px; border:1px solid var(--ws-blue); border-radius:3px; background:var(--ws-blue); color:#fff !important; font-size:14px; font-weight:600; text-decoration:none; line-height:1.3; }
.ws-account-button:hover, .ws-primary-button:hover { background:#003d83; border-color:#003d83; color:#fff; }
.ws-primary-button svg, .ws-account-button svg { width:17px; height:17px; }
.ws-nav-toggle { display:none; align-items:center; justify-content:center; width:44px; height:44px; padding:8px; border:1px solid var(--ws-line); background:#fff; cursor:pointer; }
.ws-nav-toggle svg { width:23px; height:23px; }

/* Home — simple headline, one paragraph and one action. */
.ws-hero { background:#fff; }
.ws-hero-inner { padding-top:83px; padding-bottom:100px; }
.ws-hero-copy { max-width:750px; }
.ws-eyebrow { margin:0 0 17px; font-size:12px; letter-spacing:.17em; line-height:1.4; font-weight:700; color:var(--ws-blue); text-transform:uppercase; }
.ws-hero h1 { max-width:695px; margin:0 0 20px; font-size:clamp(40px, 4vw, 54px); letter-spacing:-.04em; line-height:1.15; font-weight:600; }
.ws-hero h1 span { display:inline-block; white-space:nowrap; }
.ws-accent { color:var(--ws-blue); }
.ws-hero-description { margin:0 0 27px; max-width:650px; font-size:17px; line-height:1.65; font-weight:400; color:var(--ws-muted); }

/* Functional catalogue, not promotional cards. */
.ws-products { padding:28px 0 85px; border-top:1px solid var(--ws-line); scroll-margin-top:25px; }
.ws-section-heading { display:flex; align-items:baseline; gap:28px; justify-content:space-between; padding:0 0 16px; }
.ws-section-heading h2 { margin:0; font-size:25px; font-weight:650; letter-spacing:-.025em; }
.ws-section-heading p { color:var(--ws-muted); font-size:14px; margin:0; }
.ws-product-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; }
.ws-product { display:flex; align-items:flex-start; gap:18px; padding:24px; border:1px solid var(--ws-line); border-radius:4px; background:#fff; min-width:0; }
.ws-product-icon { width:54px; height:54px; flex:none; background:var(--ws-soft); border:1px solid var(--ws-line); color:var(--ws-blue); display:grid; place-items:center; }
.ws-product-icon svg { width:30px; height:30px; }
.ws-product-text { display:flex; flex-direction:column; align-items:flex-start; flex:1; min-width:0; }
.ws-product h3 { margin:-2px 0 4px; font-size:21px; font-weight:650; line-height:1.35; }
.ws-product p { margin:0; max-width:720px; color:var(--ws-muted); font-size:15px; line-height:1.65; flex:1; }
.ws-product-versions { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:14px; }
.ws-version-tag { display:inline-flex; align-items:center; justify-content:center; border:1px solid #d6dee7; border-radius:3px; background:#fff; color:#46576a; font-size:12px; font-weight:600; line-height:1.4; padding:3px 8px; white-space:nowrap; }
/* Joomla's brand palette inspires the version labels; these are UI identifiers,
   not official version-specific Joomla brand colors. */
.ws-version-tag--4 { border-color:#e4aa61; color:#93540c; background:#fffaf4; }
.ws-version-tag--5 { border-color:#73a9d7; color:#1a6094; background:#f5faff; }
.ws-version-tag--6 { border-color:#91c66b; color:#396b20; background:#f7fcf3; }
.ws-product-meta { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 16px; width:100%; margin-top:16px; }
.ws-product-price { color:var(--ws-ink); font-size:15px; font-weight:700; line-height:1.45; white-space:nowrap; font-variant-numeric:tabular-nums; }
.ws-product a { display:inline-flex; align-items:center; gap:5px; font-size:14px; font-weight:600; text-underline-offset:3px; }
.ws-product a svg { width:15px; height:15px; }
.ws-home-after { margin-block:25px 50px; }

/* Short footer. */
.ws-footer { background:var(--ws-soft); border-top:1px solid var(--ws-line); }
.ws-footer-inner { display:flex; align-items:center; gap:30px; justify-content:space-between; padding:28px 0 17px; }
.ws-footer-brand { display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--ws-ink) !important; }
.ws-footer-brand img { width:47px; height:25px; object-fit:contain; }
.ws-footer-brand span { display:flex; flex-direction:column; gap:1px; }
.ws-footer-brand strong { font-size:16px; font-weight:700; }
.ws-footer-brand small { font-size:12px; color:var(--ws-muted); }
.ws-footer-nav { display:flex; align-items:center; flex-wrap:wrap; gap:14px 24px; }
.ws-footer-nav a { font-size:13px; text-decoration:none; color:var(--ws-muted); }
.ws-footer-nav a:hover { color:var(--ws-blue); text-decoration:underline; }
.ws-footer-legal { padding:0 0 17px; font-size:12px; color:var(--ws-muted); }

/* Joomla component, form and pagination support. */
.ws-content-layout { display:flex; gap:50px; min-height:50vh; padding-block:45px 70px; }
.ws-content-main { min-width:0; flex:1; }
.ws-content-main h1, .ws-content-main h2, .ws-content-main h3 { line-height:1.2; }
.ws-content-main p { line-height:1.7; }
.ws-sidebar { flex:0 0 265px; }
.ws-body input:not([type=checkbox]):not([type=radio]):not([type=submit]), .ws-body select, .ws-body textarea { min-height:42px; padding:9px 11px; border:1px solid #9daec0; border-radius:3px; background:#fff; color:var(--ws-ink); }
.ws-body button, .ws-body input[type=submit] { cursor:pointer; }
.ws-content-main .btn, .ws-content-main button.btn { color:#fff; background:var(--ws-blue); border:1px solid var(--ws-blue); border-radius:3px; padding:10px 15px; }
.ws-content-main .pagination, .ws-content-main ul.pagination { display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; }
.ws-content-main .pagination a, .ws-content-main .pagination span { display:inline-block; border:1px solid var(--ws-line); padding:7px 10px; }
.ws-component-only .ws-content-layout { display:block; }

@media(max-width:1090px) {
  .ws-container { width:min(calc(100% - 56px),var(--ws-width)); }
  .ws-nav-panel { margin-left:10px; gap:16px; }
  .ws-menu ul,.ws-menu-fallback { gap:17px; }
  .ws-header-actions { gap:9px; }
  .ws-section-heading { flex-direction:column; gap:3px; align-items:flex-start; }
}
@media(max-width:920px) {
  .ws-header-inner { min-height:70px; }
  .ws-nav-toggle { display:inline-flex; margin-left:auto; }
  .ws-nav-panel { display:none; position:absolute; top:70px; left:0; right:0; z-index:20; flex-direction:column; align-items:stretch; gap:20px; margin:0; padding:20px 28px 24px; background:#fff; border-top:1px solid var(--ws-line); border-bottom:1px solid var(--ws-line); }
  .ws-nav-panel.is-open { display:flex; }
  .ws-menu ul,.ws-menu-fallback { flex-direction:column; align-items:stretch; gap:15px; }
  .ws-menu li:hover > ul, .ws-menu li:focus-within > ul { position:static; }
  .ws-header-actions { border-top:1px solid var(--ws-line); padding-top:16px; flex-wrap:wrap; justify-content:flex-start; gap:14px; }
  .ws-hero-inner { padding-top:68px; padding-bottom:73px; }
  .ws-footer-inner { flex-wrap:wrap; }
}
@media(max-width:760px) {
  .ws-product-list { grid-template-columns:1fr; gap:16px; }
  .ws-product { padding:21px; }
}
@media(max-width:600px) {
  .ws-container { width:calc(100% - 36px); }
  .ws-brand img { width:56px; height:27px; }
  .ws-brand span { font-size:19px; }
  .ws-hero-inner { padding-top:56px; padding-bottom:64px; }
  .ws-hero h1 { font-size:clamp(34px, 9vw, 42px); line-height:1.16; max-width:100%; }
  .ws-hero h1 span { white-space:normal; }
  .ws-hero-description { font-size:16px; }
  .ws-eyebrow { font-size:11px; }
  .ws-products { padding-top:25px; padding-bottom:62px; }
  .ws-product { gap:15px; padding:18px; }
  .ws-product-icon { width:47px; height:47px; }
  .ws-product-icon svg { width:27px; height:27px; }
  .ws-product h3 { font-size:19px; }
  .ws-product p { font-size:15px; }
  .ws-footer-inner { flex-direction:column; align-items:flex-start; gap:18px; }
  .ws-footer-nav { gap:12px 20px; }
  .ws-content-layout { display:block; padding-block:30px 55px; }
  .ws-sidebar { margin-top:34px; }
}
@media(prefers-reduced-motion:reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; transition:none !important; }
}
