:root{
  --navy:#101E3F;
  --navy-soft:#1B2E5C;
  --orange:#F0663D;
  --orange-deep:#D9502A;
  --paper:#FFFFFF;
  --mist:#F4F6FB;
  --line:#E3E7F0;
  --ink:#101E3F;
  --ink-soft:#4C5674;
  --radius:14px;
  --font-display:'Sora', sans-serif;
  --font-body:'Inter', sans-serif;
}

*{box-sizing:border-box;}

html{scroll-behavior:smooth;scroll-padding-top:84px;}

body{
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  padding-top:76px;
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  color:var(--navy);
  margin:0;
}

a{text-decoration:none;color:inherit;}
.accordion-body a{color:var(--orange-deep);font-weight:600;text-decoration:underline;}

.skip-link{
  position:absolute;
  left:-9999px;
  top:0;
  z-index:2000;
  background:var(--navy);
  color:#fff;
  padding:.6rem 1rem;
  border-radius:0 0 8px 0;
}
.skip-link:focus{left:0;}

/* ===== NAVBAR ===== */
.navbar-custom{
  background:var(--paper);
  border-bottom:1px solid var(--line);
  padding:.55rem 0;
}
.navbar-brand{margin-right:1rem;padding:0;display:flex;align-items:center;}
.brand-logo{
  height:40px;
  width:auto;
  display:block;
}
.navbar-custom .nav-link{
  color:var(--ink);
  font-weight:600;
  font-size:.95rem;
  padding:.5rem 1rem !important;
}
.navbar-custom .nav-link:hover{color:var(--orange);}
.btn-apply{
  background:var(--orange);
  color:#fff;
  font-weight:700;
  border:none;
  border-radius:8px;
  padding:.6rem 1.4rem;
  transition:background .2s ease, transform .2s ease;
}
.btn-apply:hover,.btn-apply:focus{background:var(--orange-deep);color:#fff;}
.btn-apply:hover{transform:translateY(-1px);}
.btn-apply:disabled{background:var(--orange-deep);color:#fff;opacity:.75;transform:none;}
.btn-outline-navy{
  border:2px solid var(--navy);
  color:var(--navy);
  font-weight:700;
  border-radius:8px;
  padding:.55rem 1.4rem;
  background:transparent;
}
.btn-outline-navy:hover{background:var(--navy);color:#fff;}

/* ===== HERO ===== */
.hero{
  background:linear-gradient(180deg,var(--mist) 0%, var(--paper) 100%);
  padding:5rem 0 4.5rem;
  border-bottom:1px solid var(--line);
}
.hero-kicker{
  color:var(--orange);
  font-weight:700;
  letter-spacing:.02em;
  margin-bottom:.75rem;
}
.hero-title{
  font-size:clamp(2.1rem, 4vw, 3.1rem);
  font-weight:800;
  line-height:1.15;
  max-width:560px;
}
.hero-lead{
  color:var(--ink-soft);
  font-size:1.1rem;
  max-width:520px;
  margin-top:1.2rem;
}
.hero-photo-wrap{
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow:0 20px 45px -20px rgba(16,30,63,.35);
}
.hero-photo{width:100%;height:100%;object-fit:cover;display:block;}

/* ===== SECTION GENERIC ===== */
section{padding:5rem 0;}
.section-kicker{
  color:var(--orange);
  font-weight:700;
  font-size:.85rem;
  margin-bottom:.5rem;
}
.section-title{
  font-size:clamp(1.8rem,3vw,2.4rem);
  font-weight:800;
  margin-bottom:1.2rem;
}
.section-text{color:var(--ink-soft);font-size:1.05rem;}

/* ===== ABOUT ===== */
.section-about{background:var(--paper);}
.about-photo{
  border-radius:var(--radius);
  border:1px solid var(--line);
  width:100%;
  height:auto;
  object-fit:cover;
}
.check-list{list-style:none;padding:0;margin-top:1.5rem;}
.check-list li{
  position:relative;
  padding-left:2rem;
  margin-bottom:.85rem;
  color:var(--ink);
  font-weight:500;
}
.check-list li::before{
  content:"";
  position:absolute;
  left:0;top:.3rem;
  width:20px;height:20px;
  border-radius:50%;
  background:var(--orange);
}
.check-list li::after{
  content:"";
  position:absolute;
  left:6.5px;top:.65rem;
  width:8px;height:4px;
  border-left:2px solid #fff;
  border-bottom:2px solid #fff;
  transform:rotate(-45deg);
}

/* ===== LANGUAGES ===== */
.section-languages{background:var(--mist);}
.lang-lead{max-width:700px;}

.lang-nav{
  list-style:none;
  padding:0;
  margin:2rem auto 3rem;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:.6rem;
}
.lang-nav a{
  display:inline-block;
  padding:.45rem 1rem;
  border:1px solid var(--line);
  border-radius:999px;
  background:var(--paper);
  color:var(--navy);
  font-weight:600;
  font-size:.9rem;
  transition:border-color .2s ease, color .2s ease;
}
.lang-nav a:hover{border-color:var(--orange);color:var(--orange-deep);}

.lang-group{margin-bottom:3.5rem;}
.lang-group-head{
  padding-bottom:1rem;
  margin-bottom:1.6rem;
  border-bottom:2px solid var(--navy);
}
.lang-group-title{
  font-size:1.5rem;
  font-weight:800;
  margin-bottom:.4rem;
}
.lang-group-intro{
  color:var(--ink-soft);
  margin:0;
  max-width:760px;
}

.lang-card{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:1.6rem 1.6rem 1.4rem;
  height:100%;
  display:flex;
  flex-direction:column;
}
.lang-head{
  display:flex;
  align-items:center;
  gap:1rem;
  margin-bottom:1rem;
}
.lang-badge{
  flex:0 0 auto;
  width:3.2rem;
  height:3.2rem;
  border-radius:10px;
  background:var(--navy);
  color:#fff;
  font-family:var(--font-display);
  font-weight:800;
  font-size:1.05rem;
  display:flex;
  align-items:center;
  justify-content:center;
  letter-spacing:-.01em;
}
.lang-badge-long{font-size:.8rem;}
.lang-name{
  font-size:1.25rem;
  font-weight:700;
  line-height:1.2;
}
.lang-role{
  color:var(--orange-deep);
  font-weight:600;
  font-size:.88rem;
  margin:.15rem 0 0;
}
.lang-desc{
  color:var(--ink-soft);
  font-size:.95rem;
  margin-bottom:1.1rem;
}
.lang-sub{
  font-family:var(--font-display);
  font-weight:700;
  font-size:.9rem;
  color:var(--navy);
  margin-bottom:.5rem;
}
.lang-list{
  list-style:none;
  padding:0;
  margin:0 0 1.1rem;
}
.lang-list li{
  position:relative;
  padding-left:1.25rem;
  margin-bottom:.4rem;
  font-size:.92rem;
  color:var(--ink);
}
.lang-list li::before{
  content:"";
  position:absolute;
  left:0;top:.6em;
  width:7px;height:7px;
  border-radius:50%;
  background:var(--orange);
}
.lang-build{
  margin:auto 0 0;
  padding-top:1rem;
  border-top:1px solid var(--line);
  font-size:.9rem;
  color:var(--ink-soft);
}
.lang-build strong{color:var(--navy);}

.lang-note{
  max-width:820px;
  margin:0 auto;
  padding:1.3rem 1.6rem;
  background:var(--paper);
  border:1px solid var(--line);
  border-left:4px solid var(--orange);
  border-radius:10px;
  color:var(--ink-soft);
}
.lang-note strong{color:var(--navy);}

/* ===== PROCESS ===== */
.section-process{background:var(--paper);}
.process-card{
  background:var(--navy);
  color:#fff;
  border-radius:var(--radius);
  padding:1.8rem 1.5rem;
  height:100%;
}
.process-index{
  display:inline-block;
  color:var(--orange);
  font-weight:700;
  font-size:.85rem;
  margin-bottom:.6rem;
}
.process-title{
  color:#fff;
  font-size:1.2rem;
  font-weight:700;
  margin-bottom:.6rem;
}
.process-text{color:#C9D1EA;font-size:.92rem;margin:0;}

/* ===== APPLY FORM ===== */
.section-apply{background:var(--mist);}
.apply-card{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:2rem;
  box-shadow:0 20px 45px -25px rgba(16,30,63,.25);
}
.form-label{font-weight:600;color:var(--navy);font-size:.9rem;}
.form-control,.form-select{
  border:1px solid var(--line);
  border-radius:8px;
  padding:.65rem .85rem;
}
.form-control:focus,.form-select:focus{
  border-color:var(--orange);
  box-shadow:0 0 0 3px rgba(240,102,61,.15);
}
.form-status{
  display:none;
  border-radius:8px;
  padding:.85rem 1rem;
  margin-bottom:1.2rem;
  font-weight:600;
  font-size:.92rem;
}
.form-status.success{
  display:block;
  background:#E8F6EE;
  color:#1C7A45;
  border:1px solid #BEE7CD;
}
.form-status.error{
  display:block;
  background:#FDEBE6;
  color:var(--orange-deep);
  border:1px solid #F6C9BB;
}
.form-status a{text-decoration:underline;}

/* spam-trap field: hidden from people, visible to simple bots */
.hp-field{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  overflow:hidden;
}

/* ===== FAQ ===== */
.section-faq{background:var(--paper);}
.accordion-item{
  border:1px solid var(--line);
  border-radius:10px !important;
  overflow:hidden;
  margin-bottom:.85rem;
}
.accordion-button{
  font-weight:600;
  color:var(--navy);
  font-size:1rem;
  background:var(--paper);
}
.accordion-button:not(.collapsed){
  background:var(--mist);
  color:var(--orange-deep);
  box-shadow:none;
}
.accordion-button:focus{box-shadow:none;border-color:var(--line);}
.accordion-button::after{filter:none;}

/* ===== FOOTER ===== */
.site-footer{
  background:var(--navy);
  color:#C9D1EA;
  padding:4rem 0 1.5rem;
}
.footer-logo-plate{
  display:inline-block;
  background:#fff;
  border-radius:12px;
  padding:.7rem 1rem;
}
.footer-logo{height:34px;width:auto;display:block;}
.footer-text{color:#C9D1EA;font-size:.92rem;}
.footer-text a{color:#fff;font-weight:600;}
.footer-text a:hover{color:var(--orange);}
.footer-heading{color:#fff;font-size:1.05rem;font-weight:700;margin-bottom:1rem;}
.footer-links{list-style:none;padding:0;margin:0;}
.footer-links li{margin-bottom:.6rem;}
.footer-links a{color:#C9D1EA;font-size:.92rem;}
.footer-links a:hover{color:var(--orange);}
.footer-rule{border-color:rgba(255,255,255,.15);margin:2.5rem 0 1.2rem;}
.footer-copy{color:#8D97BC;font-size:.82rem;margin:0;}

/* ===== ACCESSIBILITY / FOCUS ===== */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid var(--orange);
  outline-offset:2px;
}

/* ===== RESPONSIVE ===== */
@media (max-width:991px){
  body{padding-top:68px;}
  section{padding:3.5rem 0;}
  .navbar-collapse{padding-top:1rem;}
  .navbar-custom .nav-link{padding:.6rem 0 !important;}
}

@media (max-width:575px){
  .brand-logo{height:34px;}
  .apply-card{padding:1.4rem 1.1rem;}
  .lang-card{padding:1.3rem 1.2rem 1.2rem;}
  .lang-group-title{font-size:1.3rem;}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation:none !important; transition:none !important;}
}

/* A lone last card in a group spans the full row and lays out in two columns */
@media (min-width:992px){
  .lang-card-wide{
    display:grid;
    grid-template-columns:1fr 1fr;
    grid-template-areas:
      "head sub"
      "desc list"
      "build build";
    column-gap:3rem;
  }
  .lang-card-wide .lang-head{grid-area:head;}
  .lang-card-wide .lang-sub{grid-area:sub;align-self:end;}
  .lang-card-wide .lang-desc{grid-area:desc;margin-bottom:1.1rem;}
  .lang-card-wide .lang-list{grid-area:list;}
  .lang-card-wide .lang-build{grid-area:build;}
}
