/* ==========================================
   Illumni Castle — Clean Site CSS
   Replacement for: css/illumni-castle-ccc54a.webflow.css
   (No Webflow dependency. Minimal serif vibe.)
========================================== */

/* ---------- Reset / Base ---------- */
:root{
  --text:#1a1b1f;
  --muted:#5a6270;
  --bg:#ffffff;
  --line:#e4ebf3;
  --soft:#f5f7fa;
  --focus:#0050bd;
  --radius:12px;
  --radius-sm:8px;
  --max:940px;
  --max-wide:1140px;
}

*,
*::before,
*::after{ box-sizing:border-box; }

html, body{
  width:100%;
  overflow-x:hidden; /* stops zoom-out “floating” / horizontal drift */
}

body{
  margin:0;
  min-height:100%;
  background:var(--bg);
  color:var(--text);
  font-family:"PT Serif", serif;
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

img{
  max-width:100%;
  height:auto;
  vertical-align:middle;
  display:inline-block;
}

a{
  color:inherit;
  text-decoration:none;
}

a:hover{ opacity:.78; }

:focus-visible{
  outline:2px solid var(--focus);
  outline-offset:3px;
  border-radius:6px;
}

p{ margin:0 0 10px; }

h1,h2,h3,h4,h5,h6{
  margin:0 0 10px;
  font-weight:700;
  letter-spacing:-0.01em;
}

h1{ font-size:38px; line-height:44px; margin-top:20px; }
h2{ font-size:32px; line-height:36px; margin-top:20px; }
h3{ font-size:24px; line-height:30px; margin-top:20px; }
h4{ font-size:18px; line-height:24px; margin-top:10px; }
h5{ font-size:14px; line-height:20px; margin-top:10px; }
h6{ font-size:12px; line-height:18px; margin-top:10px; }

ul,ol{
  margin:0 0 10px;
  padding-left:22px;
}

hr{
  border:0;
  border-top:1px solid var(--line);
  margin:22px 0;
}

/* ---------- Layout Containers ---------- */
.w-container,
.w-layout-blockcontainer{
  width:100%;
  max-width:var(--max);
  margin-left:auto;
  margin-right:auto;
  padding-left:16px;
  padding-right:16px;
}

@media (max-width:991px){
  .w-container,
  .w-layout-blockcontainer{ max-width:728px; }
}
@media (max-width:767px){
  .w-container,
  .w-layout-blockcontainer{ max-width:none; }
}

/* ---------- Utility ---------- */
.w-list-unstyled{ list-style:none; padding-left:0; margin:0; }
.text-block{ text-decoration:none; }

/* ---------- Language Toggle ---------- */
.div-block{
  width:100%;
  max-width:var(--max-wide);
  margin:0 auto;
  padding:10px 16px;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:10px;
  color:var(--muted);
  font-size:14px;
}

/* ---------- Navbar ---------- */
.navbar-no-shadow{
  width:100%;
}

.navbar-no-shadow-container{
  width:100%;
  max-width:var(--max-wide);
  margin:0 auto;
  padding:20px 16px;
  background:transparent;
}

.container-regular{
  width:100%;
  max-width:1260px;
  margin:0 auto;
}

.navbar-wrapper{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.navbar-brand img{ border-radius:10px; }

.nav-menu-wrapper{ }

.nav-menu{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  margin:0;
  padding:0;
}

.nav-link{
  display:inline-block;
  color:var(--text);
  letter-spacing:.25px;
  padding:8px 10px;
  font-size:14px;
  line-height:20px;
  border-radius:8px;
}

.nav-link:hover{ background:rgba(26,27,31,.04); opacity:1; }

.nav-button-wrapper{
  margin-left:16px;
  display:flex;
  justify-content:flex-end;
}

.menu-button{ display:none; } /* no Webflow JS menu */
.w-icon-nav-menu{ display:none; }

/* ---------- Buttons ---------- */
.w-button,
button,
input[type="submit"]{
  font-family:"PT Serif", serif;
}

.button-primary{
  display:inline-block;
  color:#fff;
  letter-spacing:2px;
  text-transform:uppercase;
  background:var(--text);
  padding:12px 18px;
  font-size:12px;
  line-height:20px;
  border-radius:10px;
  border:1px solid var(--text);
  transition:transform .15s ease, background .15s ease, opacity .15s ease;
}

.button-primary:hover{
  background:#32343a;
  border-color:#32343a;
  opacity:1;
}

.button-primary:active{ transform:translateY(1px); }

.button{
  display:inline-block;
  padding:10px 14px;
  border-radius:10px;
  border:1px solid var(--line);
  background:#fff;
}

.button-2{
  display:inline-block;
  padding:10px 14px;
  border-radius:10px;
  border:1px solid var(--line);
  background:#fff;
}

/* ---------- Hero / Sections ---------- */
.body{ font-family:"PT Serif", serif; }
.body-2{ text-align:center; font-family:"PT Serif", serif; }
.body-3{ font-family:"PT Serif", serif; }
.body-4{ font-family:"PT Serif", serif; }

.heading,
.paragraph{ text-align:center; }

.container-2{
  text-align:center;
  padding-top:80px;
  padding-bottom:80px;
}

.section{ padding-bottom:0; display:block; }

.container-3{ padding-top:40px; padding-bottom:40px; }
.container-4,
.container-5{ padding-top:20px; padding-bottom:20px; }

.section-7{ padding-top:40px; padding-bottom:40px; margin-bottom:0; }
.section-8{ padding-top:40px; padding-bottom:40px; }

.section-9,
.section-10,
.section-11,
.section-12,
.section-13,
.section-14{ padding-top:20px; padding-bottom:20px; }

.section-15{ padding-top:20px; }
.section-16{ padding-top:40px; padding-bottom:40px; }

.section-5,
.section-6{ text-align:left; }

.heading-2,
.heading-3,
.heading-4,
.heading-5,
.heading-6,
.heading-7{ text-align:center; }

.paragraph-4{
  text-align:center;
  font-size:12px;
  color:var(--muted);
}

.paragraph-7{ font-style:italic; color:var(--muted); }

.paragraph-3{
  width:auto;
  max-width:100%;
}

/* ---------- Cards (optional helper if you want blocks) ---------- */
.ic-card{
  border:1px solid var(--line);
  background:#fff;
  border-radius:var(--radius);
  padding:18px;
}

/* ---------- Forms (Apply page) ---------- */
.w-form{ margin:0; }

label{
  display:block;
  margin:12px 0 6px;
  font-weight:700;
  font-size:14px;
}

.w-input,
.w-select,
textarea.w-input,
input[type="text"],
input[type="email"],
input[type="url"],
select,
textarea{
  width:100%;
  padding:10px 12px;
  border:1px solid #d7dbe2;
  border-radius:10px;
  background:#fff;
  font-size:14px;
  font-family:"PT Serif", serif;
  color:var(--text);
}

textarea{ min-height:110px; resize:vertical; }

.w-input:focus,
.w-select:focus,
textarea:focus,
input:focus,
select:focus{
  border-color:var(--text);
  outline:none;
}

.w-checkbox{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:8px 0;
}

.w-checkbox-input{
  margin-top:3px;
  width:16px;
  height:16px;
}

.w-form-done{
  display:none;
  padding:16px;
  border-radius:12px;
  background:#eef7ee;
  border:1px solid #cbe7cb;
}

.w-form-fail{
  display:none;
  padding:16px;
  border-radius:12px;
  background:#fff0f0;
  border:1px solid #f1c7c7;
}

/* ---------- Footer ---------- */
.footer-dark{
  background:var(--soft);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:80px 16px 18px;
}

.container{
  width:100%;
  max-width:var(--max);
  margin:0 auto;
  padding-left:16px;
  padding-right:16px;
}

.footer-wrapper{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:24px;
  max-width:900px;
  margin:0 auto;
}

.footer-brand img{ border-radius:12px; }

.footer-content{
  display:grid;
  grid-template-columns:auto auto;
  grid-column-gap:70px;
  grid-row-gap:40px;
}

.footer-block{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}

.title-small{
  letter-spacing:1px;
  text-transform:uppercase;
  margin-bottom:12px;
  font-size:12px;
  font-weight:700;
  color:var(--muted);
}

.footer-link,
.footer-link-copy{
  display:inline-block;
  margin-top:12px;
  margin-bottom:6px;
  font-size:15px;
  line-height:16px;
  color:var(--text);
}

.footer-social-block{
  display:flex;
  align-items:center;
  margin-top:12px;
  margin-left:-12px;
}

.footer-social-link{ margin-left:12px; }

.footer-divider{
  width:100%;
  height:1px;
  background:var(--line);
  margin-top:50px;
  margin-bottom:15px;
}

.footer-copyright-center{
  text-align:center;
  font-size:13px;
  color:var(--muted);
}

/* ---------- Responsive ---------- */
@media (max-width:991px){
  .footer-content{ grid-column-gap:40px; }
}

@media (max-width:767px){
  .container-2{ padding-top:48px; padding-bottom:48px; }

  .navbar-wrapper{
    flex-direction:column;
    align-items:flex-start;
  }

  .nav-menu{
    width:100%;
    justify-content:flex-start;
    padding-top:8px;
  }

  .nav-button-wrapper{ width:100%; justify-content:flex-start; margin-left:0; }

  .footer-wrapper{
    flex-direction:column;
    align-items:center;
    text-align:center;
  }

  .footer-block{ align-items:center; }
  .footer-content{ grid-template-columns:1fr; }
  .footer-social-block{ justify-content:center; margin-left:0; }
}

@media (max-width:479px){
  h1{ font-size:30px; line-height:36px; }
  h2{ font-size:24px; line-height:30px; }
}
/* =========================
   FIX: Button text invisible
   (explicit color + font sizing)
========================= */

/* If you are using <a class="button w-button"> */
a.button,
a.button-2,
a.button-primary,
button.button,
button.button-2,
button.button-primary,
input.button-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  font-size: 14px;
  line-height: 1.2;
  font-weight: 700;

  padding: 12px 18px;
  border-radius: 10px;

  text-decoration: none;
  cursor: pointer;
  user-select: none;
}

/* Primary CTA look (dark button, white text) */
a.button,
a.button-2,
a.button-primary,
button.button-primary,
input.button-primary {
  background: #1a1b1f;
  color: #ffffff !important;
  border: 1px solid #1a1b1f;
}

/* Hover */
a.button:hover,
a.button-2:hover,
a.button-primary:hover,
button.button-primary:hover {
  background: #32343a;
  border-color: #32343a;
  color: #ffffff !important;
}

/* If any global link styles are fighting you */
a.button:visited,
a.button-2:visited,
a.button-primary:visited {
  color: #ffffff !important;
}

/* Optional: secondary/outline variant (if you want one) */
a.button--outline {
  background: transparent;
  color: #1a1b1f !important;
  border: 1px solid #d7dbe2;
}
a.button--outline:hover {
  background: #f5f7fa;
}