/***********************
  IQ for Kids - style.css
  Custom Styles
***********************/

/* Typography */
body, html {
  font-family: 'Nunito', 'Segoe UI', Arial, sans-serif;
  background: #f6f8fa;
  color: #22304a;
  font-size: 1.08rem;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
h1, h2, h3, h4, h5, h6 {
  color: #22304a;
  font-weight: 700;
  font-family: inherit;
  letter-spacing: 0.01em;
  margin-bottom: 0.7em;
}
.text-logo {
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: 0.01em;
  color: #2477cd !important;
  font-family: 'Nunito', 'Segoe UI', Arial, sans-serif;
  display: inline-block;
  text-decoration: none;
}

/* Links */
a {
  color: #2477cd;
  text-decoration: none;
  transition: color 0.15s;
}
a:hover, a:focus {
  color: #185a9d;
  text-decoration: underline;
}

/* Container */
.container {
  max-width: 1320px;
}
.page-content {
  padding-left: 1.2rem;
  padding-right: 1.2rem;
}

/* Buttons */
.btn-primary {
  background: #2477cd;
  border-color: #2477cd;
  color: #fff;
  font-weight: 700;
  border-radius: 0.5rem;
  text-decoration: none;
  transition: background 0.15s, border-color 0.15s;
}
.btn-primary:hover, .btn-primary:focus {
  background: #185a9d;
  border-color: #185a9d;
  color: #fff;
}
.btn-accent {
  background: #30b3b6;
  border-color: #30b3b6;
  color: #fff;
  font-weight: 700;
  border-radius: 0.5rem;
  text-decoration: none;
  transition: background 0.15s, border-color 0.15s;
}
.btn-accent:hover, .btn-accent:focus {
  background: #259093;
  border-color: #259093;
  color: #fff;
}

/* Badges */
.badge-popular {
  background: #30b3b6;
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  border-radius: 0.4rem;
  padding: 0.45em 0.95em;
  display: inline-block;
}
.bg-teal {
  background: #eafcfc !important;
}

/* Cards & Panels */
.bg-paper {
  background: #fff !important;
}
.shadow-soft {
  box-shadow: 0 2px 12px rgba(219, 226, 234, 0.15);
}
.section-padding {
  padding: 3.5rem 0 3rem 0;
}
.section-title {
  font-size: 2.1rem;
  font-weight: 800;
  color: #22304a;
  margin-bottom: 1.1rem;
}
.section-bg-accent {
  background: #eafcfc;
}
.info-box {
  background: #f6f8fa;
  border-left: 4px solid #30b3b6;
  padding: 1rem 1.5rem;
  margin: 1.2rem 0;
}
.pull-quote {
  background: #f6f8fa;
  border-left: 4px solid #30b3b6;
  font-style: italic;
  padding: 0.7rem 1.2rem;
  margin: 1.2rem 0;
  color: #22304a;
}
.site-map-panel {
  background: #f6f8fa;
  border-radius: 0.5rem;
  border: 1px solid #e7eaf0;
  padding: 1.2rem 1.4rem;
}
.ad-block {
  border: 1px solid #dbe2ea;
  background: #fff;
  border-radius: 0.65rem;
  padding: 1.2rem 1rem;
  margin: 2rem 0;
  text-align: center;
}

/* Borders */
.border-primary-blue {
  border-left: 6px solid #2477cd !important;
  border-radius: 0 !important;
}
.border-accent-teal {
  border-left: 6px solid #30b3b6 !important;
  border-radius: 0 !important;
}

/* Icons */
.feature-icon {
  font-size: 2.1rem;
  color: #2477cd;
  vertical-align: middle;
}
.feature-icon-accent {
  color: #30b3b6;
}

/* Accordion Customization */
.accordion-button {
  border-radius: 0 !important;
  font-size: 1.08rem;
  background: #fff;
  color: #22304a;
  box-shadow: none;
  transition: background 0.15s, color 0.15s;
}
.accordion-button:not(.collapsed) {
  background: #eafcfc;
  color: #22304a;
}
.accordion-item {
  background: #fff;
  border: none;
  border-bottom: 1px solid #e7eaf0;
  border-radius: 0;
}
.accordion-body {
  color: #22304a;
}

/* Footer */
.accessibility-footer {
  font-size: 1rem;
  color: #7a869a;
  margin-top: 1.5rem;
}
.accessibility-footer .btn {
  font-size: 1rem;
  padding: 0.35rem 0.8rem;
}
.footer-legal {
  font-size: 0.95rem;
  color: #7a869a;
  margin-top: 1.5rem;
}
.footer-link {
  color: #2477cd;
  text-decoration: none;
  margin-right: 1.1em;
  transition: color 0.15s;
}
.footer-link:hover, .footer-link:focus {
  text-decoration: underline;
  color: #185a9d;
}

/* Safety List */
.safety-list i {
  color: #47c08a;
}

/* Responsive Utility */
@media (max-width: 991px) {
  .section-padding { padding: 2.5rem 0 2rem 0; }
  .container { max-width: 98vw; }
  .site-map-panel { padding: 1rem; }
  .text-logo { font-size: 1.5rem !important; }
}
@media (max-width: 575px) {
  .text-logo { font-size: 1.2rem !important; }
  .section-title { font-size: 1.3rem; }
  .badge-popular { font-size: 0.9rem; padding: 0.35em 0.7em; }
  .section-padding { padding: 1.4rem 0 1rem 0; }
}

/* Navbar */
.navbar .dropdown-menu { margin-top: -3px !important; }
.navbar .nav-link {
  color: #22304a;
  font-weight: 600;
  transition: color 0.15s;
}
.navbar .nav-link:hover, .navbar .nav-link:focus { color: #2477cd; }
.navbar .dropdown-menu .dropdown-item:hover, .navbar .dropdown-menu .dropdown-item:focus {
  background: #eafcfc;
  color: #2477cd;
}
@media (max-width: 991px) {
  .navbar .dropdown-menu { margin-top: 0 !important; }
  .text-logo { font-size: 1.5rem !important; }
}

/* Interactive Sample Activity */
.sample-activity-panel {
  background: #eafcfc;
  border-radius: 0.7rem;
  padding: 1.8rem 1.3rem 2rem 1.3rem;
  box-shadow: 0 2px 12px rgba(219, 226, 234, 0.15);
  margin-bottom: 1.2rem;
}
.sample-activity-feedback {
  font-size: 1.09rem;
  font-weight: 700;
  margin-top: 1.1rem;
  margin-bottom: 0.7rem;
}
.sample-activity-feedback.correct {
  color: #47c08a;
}
.sample-activity-feedback.incorrect {
  color: #df5a5a;
}

/* Miscellaneous */
ul, ol {
  margin-bottom: 1.1em;
  padding-left: 1.1em;
}
li {
  margin-bottom: 0.5em;
}
.list-unstyled {
  padding-left: 0;
  list-style: none;
}
.row.g-4 > .col, .row.g-4 > [class^="col-"] {
  margin-bottom: 0;
}

/* Hide number input spin buttons in Chrome/Safari */
input[type=number]::-webkit-inner-spin-button, 
input[type=number]::-webkit-outer-spin-button { 
  -webkit-appearance: none;
  margin: 0;
}
input[type=number] {
  -moz-appearance: textfield;
}

/* Remove outline on button click but keep accessibility */
button:focus, .btn:focus, .form-control:focus {
  outline: 2px solid #30b3b6;
  outline-offset: 2px;
  box-shadow: none !important;
}

/* Utility */
.font-weight-bold, .fw-bold { font-weight: 700 !important; }
.rounded-3 { border-radius: 0.7rem !important; }
.rounded-4 { border-radius: 1.2rem !important; }

/* Accessibility font size override */
html {
  font-size: 17px;
}
@media (max-width: 575px) {
  html {
    font-size: 16px;
  }
}

.iq-quiz-choice { border-color:#515455; color:#515455; }
.iq-grade-btn { background-color:#eee; color: #353637; }