@charset "UTF-8";
@import url(font-awesome.min.css);
/* @import url("https://fonts.googleapis.com/css?family=Source+Sans+Pro:300"); */

/* =====================
   Custom properties (glows)
   ===================== */
:root{
  /* rgb triplets for independent glow colors */
  --typing-glow: 92,200,255;   /* Astra is typing */
  --rag-glow:    255,0,0;   /* Refreshing RAG */
}

/*
HTML5 UP 
*/

/* =====================
   Reset & Box Model
   ===================== */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p,
blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn,
em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var,
b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas,
details, embed, figure, figcaption, footer, header, hgroup, menu, nav,
output, ruby, section, summary, time, mark, audio, video { margin:0; padding:0; border:0; font-size:100%; font:inherit; vertical-align:baseline; }
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display:block; }
body { line-height:1; -webkit-text-size-adjust:none; }
ol, ul { list-style:none; }
blockquote, q { quotes:none; }
blockquote:before, blockquote:after, q:before, q:after { content:''; content:none; }
table { border-collapse:collapse; border-spacing:0; }
*, *:before, *:after { -moz-box-sizing:border-box; -webkit-box-sizing:border-box; box-sizing:border-box; }

/* =====================
   Basic
   ===================== */
@media screen and (max-width:480px){ html, body { min-width:320px; font-weight:600; } }

body.is-loading *, body.is-loading *:before, body.is-loading *:after {
  -moz-animation:none !important; -webkit-animation:none !important; -ms-animation:none !important; animation:none !important;
  -moz-transition:none !important; -webkit-transition:none !important; -ms-transition:none !important; transition:none !important;
}

html { height:100%; }
body { height:100%;
  background-color:#ffffff;
  background-image:url("images/overlay.png"), -moz-linear-gradient(60deg, rgba(255,165,150,.5) 5%, rgba(0,228,255,.35)), url("../../images/bg.jpg");
  background-image:url("images/overlay.png"), -webkit-linear-gradient(60deg, rgba(255,165,150,.5) 5%, rgba(0,228,255,.35)), url("../../images/bg.jpg");
  background-image:url("images/overlay.png"), -ms-linear-gradient(60deg, rgba(255,165,150,.5) 5%, rgba(0,228,255,.35)), url("../../images/bg.jpg");
  background-image:url("images/overlay.png"), linear-gradient(60deg, rgba(255,165,150,.5) 5%, rgba(0,228,255,.35)), url("../../images/bg.jpg");
  background-repeat:repeat, no-repeat, no-repeat;
  background-size:100px 100px, cover, cover;
  background-position:top left, center center, bottom center;
  background-attachment:fixed, fixed, fixed;
}
body:after{
  content:''; display:block; position:fixed; top:0; left:0; width:100%; height:inherit; opacity:0; z-index:1;
  background-color:#ffffff;
  background-image:url("images/overlay.png"), -moz-linear-gradient(60deg, rgba(255,165,150,.5) 5%, rgba(0,228,255,.35));
  background-image:url("images/overlay.png"), -webkit-linear-gradient(60deg, rgba(255,165,150,.5) 5%, rgba(0,228,255,.35));
  background-image:url("images/overlay.png"), -ms-linear-gradient(60deg, rgba(255,165,150,.5) 5%, rgba(0,228,255,.35));
  background-image:url("images/overlay.png"), linear-gradient(60deg, rgba(255,165,150,.5) 5%, rgba(0,228,255,.35));
  background-repeat:repeat, no-repeat; background-size:100px 100px, cover; background-position:top left, center center;
  -moz-transition:opacity 1.75s ease-out; -webkit-transition:opacity 1.75s ease-out; -ms-transition:opacity 1.75s ease-out; transition:opacity 1.75s ease-out;
}
body.is-loading:after{ opacity:1; }

/* =====================
   Type
   ===================== */
body, input, select, textarea {
  color:#000000; font-family:"Roboto", Helvetica, sans-serif; font-size:14pt; font-weight:500; line-height:2; letter-spacing:.2em;
}
@media screen and (max-width:1680px){ body, input, select, textarea { font-size:11pt; font-weight:600; } }
@media screen and (max-width:480px){ body, input, select, textarea { font-size:10pt; line-height:1.75; font-weight:600; } }

a{ transition:color .2s ease, border-color .2s ease; color:inherit; text-decoration:none; }
a:before{ transition:color .2s ease, text-shadow .2s ease; }
a:hover{ color:#ff7496; }

strong, b{ color:#313f47; }
em, i{ font-style:italic; }
p{ margin:0 0 1.5em 0; }

h1, h2, h3, h4, h5, h6{ color:#313f47; line-height:1.5; margin:0 0 .75em 0; }
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a{ color:inherit; text-decoration:none; }
h1{ font-size:1.85em; letter-spacing:.22em; margin:0 0 .525em 0; font-weight:700; text-transform:none; }
h2{ font-size:1.25em; }
h3, h4, h5, h6{ font-size:1em; }
@media screen and (max-width:480px){ h1{ font-size:1.65em; font-weight:600; } }

sub{ font-size:.8em; position:relative; top:.5em; }
sup{ font-size:.8em; position:relative; top:-.5em; }
hr{ border:0; border-bottom:1px solid #c8cccf; margin:3em 0; }

/* =====================
   Form
   ===================== */
form{ margin:0 0 1.5em 0; }
form > .field{ margin:0 0 1.5em 0; }
form > .field > :last-child{ margin-bottom:0; }
label{ color:#313f47; display:block; font-size:.9em; margin:0 0 .75em 0; }

input[type="text"], input[type="password"], input[type="email"], input[type="tel"], select, textarea{
  -moz-appearance:none; -webkit-appearance:none; -ms-appearance:none; appearance:none;
  border-radius:4px; border:1px solid #c8cccf; color:inherit; display:block; outline:0; padding:0 1em; text-decoration:none; width:100%;
}
input[type="text"]:invalid, input[type="password"]:invalid, input[type="email"]:invalid, input[type="tel"]:invalid, select:invalid, textarea:invalid{ box-shadow:none; }
input[type="text"]:focus, input[type="password"]:focus, input[type="email"]:focus, input[type="tel"]:focus, select:focus, textarea:focus{ border-color:#ff7496; }

.select-wrapper{ text-decoration:none; display:block; position:relative; }
.select-wrapper:before{ content:""; -moz-osx-font-smoothing:grayscale; -webkit-font-smoothing:antialiased; font-family:FontAwesome; font-style:normal; font-weight:normal; text-transform:none !important; }
.select-wrapper:before{ color:#c8cccf; display:block; height:2.75em; line-height:2.75em; pointer-events:none; position:absolute; right:0; text-align:center; top:0; width:2.75em; }
.select-wrapper select::-ms-expand{ display:none; }

input[type="text"], input[type="password"], input[type="email"], select{ height:2.75em; }
textarea{ padding:.75em 1em; }

input[type="checkbox"], input[type="radio"]{ -moz-appearance:none; -webkit-appearance:none; -ms-appearance:none; appearance:none; display:block; float:left; margin-right:-2em; opacity:0; width:1em; z-index:-1; }
input[type="checkbox"] + label, input[type="radio"] + label{ text-decoration:none; color:#414f57; cursor:pointer; display:inline-block; font-size:1em; font-weight:300; padding-left:2.4em; padding-right:.75em; position:relative; }
input[type="checkbox"] + label:before, input[type="radio"] + label:before{ -moz-osx-font-smoothing:grayscale; -webkit-font-smoothing:antialiased; font-family:FontAwesome; font-style:normal; font-weight:normal; text-transform:none !important; }
input[type="checkbox"] + label:before, input[type="radio"] + label:before{ border-radius:4px; border:1px solid #c8cccf; content:''; display:inline-block; height:1.65em; left:0; line-height:1.58125em; position:absolute; text-align:center; top:.15em; width:1.65em; }
input[type="checkbox"]:checked + label:before, input[type="radio"]:checked + label:before{ color:#ff7496; content:'\f00c'; }
input[type="checkbox"]:focus + label:before, input[type="radio"]:focus + label:before{ border-color:#ff7496; }
input[type="checkbox"] + label:before{ border-radius:4px; }
input[type="radio"] + label:before{ border-radius:100%; }

/* Placeholders (light theme defaults) */
::-webkit-input-placeholder{ color:#616f77 !important; opacity:1.0; }
:-moz-placeholder{ color:#616f77 !important; opacity:1.0; }
::-moz-placeholder{ color:#616f77 !important; opacity:1.0; }
:-ms-input-placeholder{ color:#616f77 !important; opacity:1.0; }
.formerize-placeholder{ color:#616f77 !important; opacity:1.0; }

/* =====================
   Icon
   ===================== */
.icon{ text-decoration:none; position:relative; border-bottom:none; }
.icon:before{ -moz-osx-font-smoothing:grayscale; -webkit-font-smoothing:antialiased; font-family:FontAwesome; font-style:normal; font-weight:normal; text-transform:none !important; }
.icon > .label{ display:none; }

/* =====================
   Lists
   ===================== */
ol{ list-style:decimal; margin:0 0 1.5em 0; padding-left:1.25em; }
ol li{ padding-left:.25em; }
ul{ list-style:disc; margin:0 0 1.5em 0; padding-left:1em; }
ul li{ padding-left:.5em; }
ul.alt{ list-style:none; padding-left:0; }
ul.alt li{ border-top:1px solid #c8cccf; padding:.5em 0; }
ul.alt li:first-child{ border-top:0; padding-top:0; }

ul.icons{ cursor:default; list-style:none; padding-left:0; margin-top:-.675em; }
ul.icons li{ display:inline-block; padding:.675em .5em; }
ul.icons li a{ text-decoration:none; position:relative; display:block; width:3.75em; height:3.75em; border-radius:100%; border:1px solid #c8cccf; line-height:3.75em; overflow:hidden; text-align:center; text-indent:3.75em; white-space:nowrap; }
ul.icons li a:before{ -moz-osx-font-smoothing:grayscale; -webkit-font-smoothing:antialiased; font-family:FontAwesome; font-style:normal; font-weight:normal; text-transform:none !important; }
ul.icons li a:before{ color:#ffffff; text-shadow:1.25px 0 0 #c8cccf, -1.25px 0 0 #c8cccf, 0 1.25px 0 #c8cccf, 0 -1.25px 0 #c8cccf; }
ul.icons li a:hover:before{ text-shadow:1.25px 0 0 #ff7496, -1.25px 0 0 #ff7496, 0 1.25px 0 #ff7496, 0 -1.25px 0 #ff7496; }
ul.icons li a:before{ position:absolute; top:0; left:0; width:inherit; height:inherit; font-size:1.85rem; line-height:inherit; text-align:center; text-indent:0; }
ul.icons li a:hover{ border-color:#ff7496; }
@media screen and (max-width:480px){ ul.icons li a:before{ font-size:1.5rem; font-weight:600; } }

ul.actions{ cursor:default; list-style:none; padding-left:0; }
ul.actions li{ display:inline-block; padding:0 .75em 0 0; vertical-align:middle; }
ul.actions li:last-child{ padding-right:0; }

dl{ margin:0 0 1.5em 0; }
dl dt{ display:block; margin:0 0 .75em 0; }
dl dd{ margin-left:1.5em; }

/* =====================
   Buttons
   ===================== */
input[type="submit"], input[type="reset"], input[type="button"], button, .button{
  -moz-appearance:none; -webkit-appearance:none; -ms-appearance:none; appearance:none;
  transition:background-color .2s ease-in-out, border-color .2s ease-in-out, color .2s ease-in-out;
  display:inline-block; height:2.75em; line-height:2.75em; padding:0 1.5em;
  background-color:transparent; border-radius:4px; border:1px solid #c8cccf; color:#414f57 !important; cursor:pointer; text-align:center; text-decoration:none; white-space:nowrap;
}
input[type="submit"]:hover, input[type="reset"]:hover, input[type="button"]:hover, button:hover, .button:hover{ border-color:#ff7496; color:#ff7496 !important; }
input[type="submit"].icon, input[type="reset"].icon, input[type="button"].icon, button.icon, .button.icon{ padding-left:1.35em; }
input[type="submit"].icon:before, input[type="reset"].icon:before, input[type="button"].icon:before, button.icon:before, .button.icon:before{ margin-right:.5em; }
input[type="submit"].fit, input[type="reset"].fit, input[type="button"].fit, button.fit, .button.fit{ display:block; width:100%; margin:0 0 .75em 0; }
input[type="submit"].small, input[type="reset"].small, input[type="button"].small, button.small, .button.small{ font-size:.8em; }
input[type="submit"].big, input[type="reset"].big, input[type="button"].big, button.big, .button.big{ font-size:1.35em; }
input[type="submit"].disabled, input[type="submit"]:disabled, input[type="reset"].disabled, input[type="reset"]:disabled, input[type="button"].disabled, input[type="button"]:disabled,
button.disabled, button:disabled, .button.disabled, .button:disabled{ pointer-events:none; opacity:.5; }

/* =====================
   Main Panel
   ===================== */
#main{
  position:relative; max-width:50%; min-width:27em; padding:4.5em 3em 3em 3em; background:#ffffff; border-radius:4px; cursor:default; opacity:.95; text-align:center;
  transform-origin:50% 50%; transform:rotateX(0deg); transition:opacity 1s ease, transform 1s ease;
}
#main .avatar{ position:relative; display:block; margin-bottom:1.5em; }
#main .avatar img{ display:block; margin:0 auto; border-radius:100%; box-shadow:0 0 0 1.5em #ffffff; }
#main .avatar:before{ content:''; display:block; position:absolute; top:50%; left:-3em; width:calc(100% + 6em); height:1px; z-index:-1; background:#c8cccf; }
@media screen and (max-width:480px){
  #main{ min-width:0; width:100%; max-width:100%; padding:4em 2em 2.5em 2em; font-weight:600; }
  #main .avatar:before{ left:-2em; width:calc(100% + 4em); }
}
body.is-loading #main{ opacity:0; transform:rotateX(15deg); }

/* =====================
   Footer
   ===================== */
#footer{ align-self:flex-end; width:100%; padding:1.5em 0 0 0; color:rgba(255,255,255,.75); cursor:default; text-align:center; }
#footer .copyright{ margin:0; padding:0; font-size:.9em; list-style:none; }
#footer .copyright li{ display:inline-block; margin:0 0 0 .45em; padding:0 0 0 .85em; border-left:1px solid rgba(255,255,255,.5); line-height:1; }
#footer .copyright li:first-child{ border-left:0; }

/* =====================
   Wrapper
   ===================== */
#wrapper{ display:flex; align-items:center; justify-content:space-between; flex-direction:column; perspective:1000px; position:relative; min-height:100%; padding:1.5em; z-index:2; }
#wrapper > *{ z-index:1; }
#wrapper:before{ content:''; display:block; }
@media screen and (max-width:360px){ #wrapper{ padding:.75em; font-weight:600; } }
body.is-ie #wrapper{ height:100%; }

/* =====================
   (Optional) Astra Chat widget base styles
   ===================== */
#astra-chat{ max-width:720px; margin:2rem auto; text-align:left; }
#astra-chat #chat-box{ width:100%; height:400px; overflow-y:auto; border:1px solid #444; padding:10px; margin-bottom:10px; background:#222; white-space:pre-wrap; word-wrap:break-word; border-radius:8px; }
#astra-chat .msg{ margin:5px 0; line-height:1.35; }
#astra-chat .user{ color:#6ee76e; }
#astra-chat .astra{ color:#5cc8ff; }
#astra-chat .timestamp{ font-size:.8em; color:#aaa; margin-left:10px; }
#astra-chat #typing{ font-style:italic; color:#888; margin:5px 0; display:none; }
#astra-chat input[type="text"]{ padding:10px; font-size:16px; border-radius:6px; }
#astra-chat button.send{ padding:10px 16px; font-size:16px; border-radius:6px; }
#astra-chat .rag{ text-align:center; margin-top:12px; }
#astra-chat #refreshBtn{ padding:10px 20px; font-size:14px; border-radius:6px; }

/* DARK THEME OVERRIDES */
html, body { background:#111 !important; color:#fff !important; }
body { background-image:none !important; }
body:after { background:none !important; }
#wrapper, #main { background:transparent !important; opacity:1 !important; }
#main h1, #main h2, #main h3, #main h4, #main h5, #main h6 { color:#fff !important; }
#main p, #main li, #main dt, #main dd { color:#ddd !important; }
#main strong, #main b { color:#fff !important; }
label { color:#ddd !important; }
hr { border-bottom-color:#333 !important; }
ul.icons li a { border-color:#444 !important; }
input[type="text"], input[type="password"], input[type="email"], input[type="tel"], select, textarea {
  background:#111 !important; color:#fff !important; border-color:#333 !important;
}
input[type="text"]:focus, input[type="password"]:focus, input[type="email"]:focus, input[type="tel"]:focus, select:focus, textarea:focus {
  border-color:#2d7ef7 !important; box-shadow:none !important;
}
::-webkit-input-placeholder{ color:#aaa !important; opacity:1 !important; }
:-moz-placeholder{ color:#aaa !important; opacity:1 !important; }
::-moz-placeholder{ color:#aaa !important; opacity:1 !important; }
:-ms-input-placeholder{ color:#aaa !important; opacity:1 !important; }
.formerize-placeholder{ color:#aaa !important; opacity:1 !important; }

button, .button, input[type="submit"], input[type="reset"], input[type="button"],
#sendBtn, #astra-chat button.send, #refreshBtn {
  color:#fff !important; background:#2d7ef7 !important; border:none !important; opacity:1 !important;
}
button:hover, .button:hover, #sendBtn:hover, #astra-chat button.send:hover, #refreshBtn:hover {
  filter:brightness(1.1); border-color:transparent !important; color:#fff !important;
}

#astra-chat #chat-box { background:#1b1b1b !important; border-color:#333 !important; }
#astra-chat .timestamp { color:#9aa0a6 !important; }
#footer { color:rgba(255,255,255,.8) !important; }
#footer .copyright li { border-left:1px solid rgba(255,255,255,.35) !important; }
marquee { color:#fff !important; }

/* Independent glow effects (no default animation; applied via classes) */
#astra-chat #typing {
  color:#6EE76E !important; /* typing text color */
  text-shadow:
    0 0 6px  rgba(var(--typing-glow), 0.45),
    0 0 12px rgba(var(--typing-glow), 0.25);
}

/* Apply these via JS when active */
.glow-typing {
  animation: glowPulseTyping 1.8s ease-in-out infinite;
}
.glow-rag {
  animation: glowPulseRag 1.6s ease-in-out infinite;
  /* optional base color for RAG status text */
  color:#DC2626 !important;
}

/* Keyframes that read from CSS variables */
@keyframes glowPulseTyping {
  0%, 100% {
    opacity:0.85;
    text-shadow:
      0 0 6px  rgba(var(--typing-glow), 0.45),
      0 0 12px rgba(var(--typing-glow), 0.25);
  }
  50% {
    opacity:1;
    text-shadow:
      0 0 10px rgba(var(--typing-glow), 0.85),
      0 0 18px rgba(var(--typing-glow), 0.50);
  }
}
@keyframes glowPulseRag {
  0%, 100% {
    opacity:0.85;
    text-shadow:
      0 0 6px  rgba(var(--rag-glow), 0.45),
      0 0 12px rgba(var(--rag-glow), 0.25);
  }
  50% {
    opacity:1;
    text-shadow:
      0 0 10px rgba(var(--rag-glow), 0.85),
      0 0 18px rgba(var(--rag-glow), 0.50);
  }
}

/* Respect user motion settings */
@media (prefers-reduced-motion: reduce) {
  .glow-typing, .glow-rag { animation:none; }
}
