/* Swarm Studios theme for Cassiopeia */
@import url('https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@600;700&family=IBM+Plex+Sans:wght@400;500;600&display=swap');

:root {
  --cassiopeia-color-primary: #0E0F12;
  --cassiopeia-color-link: #F2B53A;
  --cassiopeia-color-hover: #FFD27A;
  --swarm-bg: #0E0F12;
  --swarm-band: #121418;
  --swarm-surface: #17191E;
  --swarm-line: #2A2D35;
  --swarm-line-strong: #3A3E48;
  --swarm-text: #F2EFE8;
  --swarm-muted: #A9ABB2;
  --swarm-amber: #F2B53A;
  --swarm-amber-ink: #1A1406;
}

html, body.site { background: var(--swarm-bg); }
body.site { color: var(--swarm-text); font-family: 'IBM Plex Sans', system-ui, sans-serif; }
body.site a { color: var(--swarm-amber); }
body.site a:hover, body.site a:focus { color: #FFD27A; }
body.site h1, body.site h2, body.site h3 { font-family: 'Chakra Petch', sans-serif; color: var(--swarm-text); }

/* Header */
.header.container-header {
  background: var(--swarm-bg) !important;
  background-image: none !important;
  box-shadow: none;
  border-bottom: 1px solid var(--swarm-line);
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px;
  padding: 12px max(24px, calc((100% - 1200px) / 2));
}
.container-header .grid-child { max-width: none; margin: 0; padding: 0; }
.container-header .navbar-brand { padding: 0; margin: 0; }
.container-header .navbar-brand a {
  display: inline-flex; align-items: center; gap: 12px;
  color: var(--swarm-text); text-decoration: none;
  font-family: 'Chakra Petch', sans-serif; font-weight: 700; font-size: 20px; letter-spacing: .08em; text-transform: uppercase;
}
.container-header .navbar-brand a::before {
  content: ""; width: 32px; height: 32px; flex: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16 2 28 9v14L16 30 4 23V9z' fill='none' stroke='%23F2B53A' stroke-width='2.5'/%3E%3Cpath d='M16 11l4.3 2.5v5L16 21l-4.3-2.5v-5z' fill='%23F2B53A'/%3E%3C/svg%3E") no-repeat center / contain;
}
.container-header .site-description { display: none; }
.container-header .container-nav { padding: 0; }
.container-header .mod-menu, .container-header .metismenu { gap: 4px; }
.container-header .mod-menu > li > a, .container-header .metismenu > li > a {
  color: var(--swarm-text); font-weight: 500; padding: 12px 14px; text-decoration: none; opacity: 1;
}
.container-header .mod-menu > li > a:hover,
.container-header .mod-menu > li.active > a,
.container-header .mod-menu > li.current > a,
.container-header .metismenu > li.active > a { color: var(--swarm-amber); }
.container-header .navbar-toggler { color: var(--swarm-text); border-color: var(--swarm-line-strong); }

/* Main area: let page sections control their own width */
.site-grid { display: block !important; padding: 0 !important; margin: 0 !important; }
.container-component { padding: 0 !important; }
.com-content-article .page-header,
.com-content-article .article-info,
.com-content-article__info,
.com-content-article .icons { display: none !important; }
.com-content-article__body > *:first-child { margin-top: 0; }
.swarm-page p:last-child { margin-bottom: 0; }

/* Contact forms (Support, Careers, Business) */
.com-contact { max-width: 760px; margin: 0 auto; padding: 64px 24px 96px; }
.com-contact .page-header h1, .com-contact h1 { font-size: 44px; line-height: 1.1; }
.com-contact .com-contact__miscinfo, .com-contact .contact-miscinfo { color: var(--swarm-muted); line-height: 1.7; }
.com-contact .com-contact__container, .com-contact .contact-address, .com-contact .com-contact__image,
.com-contact .com-contact__info { display: none; }
.com-contact form {
  background: var(--swarm-surface); border: 1px solid var(--swarm-line); border-radius: 18px; padding: 32px;
}
.com-contact legend { color: var(--swarm-text); font-family: 'Chakra Petch', sans-serif; font-size: 24px; }
body.site label, body.site .control-label { color: var(--swarm-text); font-weight: 600; }
body.site .form-control, body.site .form-select, body.site input[type=text], body.site input[type=email],
body.site input[type=url], body.site textarea, body.site select {
  background-color: var(--swarm-bg); color: var(--swarm-text);
  border: 1px solid var(--swarm-line-strong); border-radius: 10px;
}
body.site .form-control:focus, body.site .form-select:focus { border-color: var(--swarm-amber); box-shadow: 0 0 0 3px rgba(242,181,58,.25); }
body.site .form-text, body.site small { color: var(--swarm-muted); }
body.site .btn-primary {
  background: var(--swarm-amber); border-color: var(--swarm-amber); color: var(--swarm-amber-ink);
  font-weight: 600; border-radius: 10px; padding: 12px 24px;
}
body.site .btn-primary:hover { background: #FFD27A; border-color: #FFD27A; color: var(--swarm-amber-ink); }
body.site .alert { border-radius: 12px; }

/* Footer */
.container-footer.footer { background: var(--swarm-bg) !important; background-image: none !important; color: var(--swarm-muted); border-top: 1px solid var(--swarm-line); }
.container-footer .grid-child { max-width: 1200px; margin: 0 auto; padding: 0 24px; display: block; }
.back-to-top-link { background: var(--swarm-amber); color: var(--swarm-amber-ink) !important; border-radius: 10px; }

/* Header: logo and menu on one row */
.container-header .grid-child { width: auto !important; flex: 0 1 auto; }
.container-header .container-nav { flex: 1 1 auto; display: flex; justify-content: flex-end; }

/* Contact pages: intro above form, hide Joomla's extra headings */
.com-contact { display: flex; flex-direction: column; gap: 16px; }
.com-contact > .page-header, .com-contact > h1, .com-contact .page-header { order: -3; }
.com-contact .com-contact__miscinfo { order: -2; font-size: 17px; }
.com-contact .com-contact__miscinfo > h2,
.com-contact .com-contact__form > h2,
.com-contact > h2,
.com-contact legend { display: none; }
.com-contact .com-contact__miscinfo p { margin: 0 0 10px; }
.com-contact form .control-group { margin-bottom: 18px; }
.com-contact fieldset { display: flex; flex-direction: column; }
.com-contact fieldset .control-group:has([id*="com_fields_platform"]) { order: -3; }
.com-contact fieldset .control-group:has([id*="com_fields_game"]):not(:has([id*="game_version"])) { order: -2; }
.com-contact fieldset .control-group:has([id*="com_fields_issue_type"]) { order: -1; }
.com-contact .form-actions, .com-contact .controls .btn-primary { margin-top: 8px; }

/* Dark dropdowns */
body.site select.form-select, body.site .form-select {
  background-color: #0E0F12 !important; color: #F2EFE8 !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 6l5 5 5-5' fill='none' stroke='%23F2B53A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important; background-position: right 14px center !important; background-size: 16px 16px !important;
  padding-right: 44px;
}
body.site select option { background: #17191E; color: #F2EFE8; }

/* More visible form text */
body.site .form-control, body.site .form-select, body.site input[type=text], body.site input[type=email],
body.site input[type=url], body.site textarea, body.site select {
  background-color: #262A32 !important; border-color: #4A505C !important; color: #FFFFFF !important; font-size: 16px;
}
body.site ::placeholder { color: #B4B7BF !important; opacity: 1 !important; }
body.site .form-select:invalid, body.site select.form-select option[value=""] { color: #B4B7BF; }
body.site label, body.site .control-label { color: #FFFFFF; font-size: 16px; }
.com-contact .com-contact__miscinfo, .com-contact .com-contact__miscinfo p { color: #D6D8DD; }
.com-contact .com-contact__miscinfo strong { color: #FFFFFF; }
.com-contact form { border-color: #3A3E48; }
body.site select.form-select { background-color: #262A32 !important; color: #FFFFFF !important; }
