/* cs-theme-v2 */
:root{
 --maxw: 1120px;
 --radius: 18px;
 --shadow: 0 12px 30px rgba(0,0,0,.18);
 --glass: rgba(255,255,255,.78);
 --glass-border: rgba(255,255,255,.30);
 --text: #0f172a;
 --muted: rgba(15,23,42,.75);
 --link: #2563eb;
 --link2: #1d4ed8;
 --bg: #050816;
}
html, body { height: 100%; }
body{
 margin:0;
 min-height:100%;
 color: var(--text);
 background: var(--bg);
 font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
 line-height: 1.5;
}
a{ color: var(--link); text-decoration: none; }
a:hover{ color: var(--link2); text-decoration: underline; }
h1,h2,h3{ line-height: 1.2; margin: 0 0 10px; }
p{ margin: 0 0 10px; color: var(--muted); }
img, video{ max-width: 100%; height: auto; }
img{ border-radius: 14px; }

.cs-bg{ position: fixed; inset: 0; z-index: -2; overflow: hidden; background: var(--bg); }
.cs-bg__video{ width: 100%; height: 100%; object-fit: cover; }

body::before{
 content:"";
 position: fixed;
 inset: 0;
 z-index: -1;
 pointer-events: none;
 background:
 radial-gradient(1200px 700px at 20% 10%, rgba(255,255,255,.10), rgba(255,255,255,0) 55%),
 radial-gradient(900px 600px at 80% 20%, rgba(37,99,235,.14), rgba(37,99,235,0) 60%),
 linear-gradient(180deg, rgba(5,8,22,.55), rgba(5,8,22,.72));
}

main{
 max-width: var(--maxw);
 margin: 0 auto;
 padding: 28px 16px 56px;
}
header{
 position: sticky;
 top: 0;
 z-index: 50;
 background: rgba(255,255,255,.55);
 border-bottom: 1px solid rgba(255,255,255,.25);
 backdrop-filter: blur(10px);
 -webkit-backdrop-filter: blur(10px);
}
header > *{
 max-width: var(--maxw);
 margin: 0 auto;
 padding: 10px 16px;
}

.card, .panel, .box, .tile, .glass,
main > section, main > article, main > form{
 background: var(--glass);
 border: 1px solid var(--glass-border);
 border-radius: var(--radius);
 box-shadow: var(--shadow);
 backdrop-filter: blur(10px);
 -webkit-backdrop-filter: blur(10px);
 padding: 18px;
 margin: 0 0 14px;
}

button, .btn, a.btn{
 display: inline-flex;
 align-items: center;
 justify-content: center;
 gap: 8px;
 border: 1px solid rgba(15,23,42,.12);
 background: rgba(255,255,255,.75);
 padding: 10px 14px;
 border-radius: 14px;
 cursor: pointer;
 text-decoration: none;
 color: var(--text);
}
button:hover, .btn:hover, a.btn:hover{
 background: rgba(255,255,255,.88);
 text-decoration: none;
}
@media (max-width: 520px){
 main{ padding-top: 18px; }
 .card, .panel, .box, .tile, .glass,
 main > section, main > article, main > form{ padding: 14px; }
}

/* cs-logo-fix-v1 */
.cs-logo-full {
  display: block;
  height: auto;
  width: auto;
  max-height: 56px;
  object-fit: contain;
}
/* If a parent clips the logo, make it visible (safe, narrow scope) */
header .cs-logo-full {
  overflow: visible;
}


/* cs-logo-parent-clip-fix-v1
   Fix: logo is clipped by header container (overflow/height/line-height).
   Scope: only header + brand link + logo img.
*/
header.cs-menu,
header.cs-menu .cs-menu__wrap,
header.cs-menu a.cs-menu__brand {
  overflow: visible !important;
}

header.cs-menu a.cs-menu__brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  line-height: normal;
  padding-top: 10px;
  padding-bottom: 10px;
  min-height: 72px;
}

header.cs-menu a.cs-menu__brand img.cs-logo-full {
  display: block;
  max-height: 56px;
  height: 56px;
  width: auto;
  object-fit: contain;
}


/* cs-logo-fix-v2
   Goal: prevent logo cropping in header regardless of other CSS (height/overflow/transform).
   Scope: only header menu + brand link + logo img.
*/
header.cs-menu,
header.cs-menu .cs-menu__wrap,
header.cs-menu a.cs-menu__brand,
header.cs-menu a.cs-menu__brand * {
  overflow: visible !important;
  clip: auto !important;
  mask: none !important;
}

header.cs-menu {
  height: auto !important;
  max-height: none !important;
}

header.cs-menu .cs-menu__wrap {
  height: auto !important;
  max-height: none !important;
  align-items: center !important;
}

header.cs-menu a.cs-menu__brand {
  display: inline-flex !important;
  align-items: center !important;
  gap: 12px !important;
  line-height: normal !important;
  height: auto !important;
  max-height: none !important;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
  min-height: 72px !important;
}

header.cs-menu a.cs-menu__brand img.cs-logo-full,
header.cs-menu a.cs-menu__brand img.cs-logo-img,
header.cs-menu a.cs-menu__brand img[src*="logo"] {
  display: block !important;
  position: static !important;
  top: auto !important;
  transform: none !important;
  height: 56px !important;
  max-height: none !important;
  width: auto !important;
  object-fit: contain !important;
}


/* cs-breadcrumbs-fix-v1
   Fix: remove numeric markers like "1." in breadcrumbs (ol/ul list-style),
   and make breadcrumbs readable.
*/
.breadcrumbs ol, .breadcrumbs ul,
nav.breadcrumbs ol, nav.breadcrumbs ul,
nav[aria-label*="breadcrumb" i] ol, nav[aria-label*="breadcrumb" i] ul {
  list-style: none !important;
  padding-left: 0 !important;
  margin: 0 !important;
}

.breadcrumbs li,
nav.breadcrumbs li,
nav[aria-label*="breadcrumb" i] li {
  display: inline !important;
}

.breadcrumbs li::marker,
nav.breadcrumbs li::marker,
nav[aria-label*="breadcrumb" i] li::marker {
  content: "" !important;
}

