/* ---------- Global Reset & Variables ---------- */
*{margin:0;padding:0;box-sizing:border-box;}
:root{
  /* INVERTED PALETTE:
     - Primary/secondary now ORANGE tones (were blues)
     - Accent now DEEP BLUE (was orange)
  */
  --primary-color:#f15a29;      /* was #1e2a78 */
  --secondary-color:#ff8a50;    /* was #4f7bed */
  --accent-color:#1e2a78;       /* was #f15a29 */
  --bg-light:#f9f9fb;
  --bg-section:#ffffff;
  --font-family:'Montserrat',sans-serif;
}
body{font-family:var(--font-family);color:#333;background-color:var(--bg-light);scroll-behavior:smooth;}
a{text-decoration:none;color:inherit;}
img{max-width:100%;display:block;}

/* ---------- Fixed Navbar ---------- */
nav{
  position:fixed;top:0;left:0;width:100%;
  background: rgba(241,90,41,0.95); /* orange, inverted from previous blue */
  z-index:999;padding:1rem 2rem;display:flex;align-items:center;justify-content:space-between;
  box-shadow:0 2px 8px rgba(0,0,0,.15);height:61px;
}
nav .logo{font-size:1.5rem;font-weight:700;color:#fff;}
.menu-toggle{display:none;font-size:1.5rem;color:#fff;cursor:pointer;}
.nav-links{list-style:none;display:flex;gap:2rem;}
.nav-links li a{color:#fff;font-weight:500;transition:color .2s ease;}
.nav-links li a:hover{color:var(--accent-color);}

/* ---------- Hero Section ---------- */
#hero{
  min-height:100vh;width:100%;
  background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;text-align:center;color:#fff;padding:1rem 2rem;
}
#hero .hero-content{max-width:800px;width:100%;margin-top:7rem;}
#hero h1{font-size:2.75rem;font-weight:700;line-height:1.2;margin-bottom:1rem;}
#hero p{font-size:1.15rem;margin-bottom:2rem;line-height:1.5;}
#hero .cta-btn{
  display:inline-block;padding:.75rem 1.75rem;background-color:var(--accent-color);color:#fff;font-size:1rem;font-weight:600;border-radius:4px;
  transition:background-color .2s ease, transform .2s ease;
}
#hero .cta-btn:hover{background-color:#14205f;transform:translateY(-2px);}
#hero .hero-animation{margin-top:2rem;max-width:400px;width:100%;margin-left:auto;margin-right:auto;}
.hero-logos{display:flex;justify-content:center;align-items:center;gap:1.5rem;margin-top:2rem;width:100%;max-width:400px;flex-wrap:wrap;padding-bottom:1rem;margin:auto;margin-top:4rem;}
.hero-logo-img{max-height:80px;width:auto;flex:1 1 45%;object-fit:contain}

/* Tablet */
@media (max-width:768px){
  #hero{flex-direction:column;padding:1rem;}
  #hero .hero-content{margin-top:3rem;}
  #hero h1{font-size:2.25rem;}
  #hero p{font-size:1rem;}
  #hero .cta-btn{padding:.5rem 1.25rem;font-size:.9rem;}
  #hero .hero-animation{max-width:300px;margin-top:1.5rem;}
  .hero-logos{max-width:300px;gap:1rem;}
  .hero-logo-img{max-height:60px;flex:1 1 40%;}
}

/* Phone */
@media (max-width:480px){
  #hero{padding:.5rem;margin-top:-0.2rem;}
  #hero h1{font-size:1.75rem;margin-bottom:.75rem;}
  #hero p{font-size:.9rem;margin-bottom:1.5rem;}
  #hero .cta-btn{padding:.4rem 1rem;font-size:.8rem;}
  #hero .hero-animation{max-width:250px;margin-top:1rem;}
  .hero-logos{max-width:250px;}
  .hero-logo-img{max-height:50px;flex:1 1 45%;}
}

/* ---------- Sections ---------- */
section{padding:6rem 2rem;background-color:var(--bg-section);}
section:nth-of-type(even){background-color:var(--bg-light);}
.section-header{text-align:center;margin-bottom:3rem;}
.section-header h2{font-size:2.5rem;font-weight:700;color:var(--primary-color);margin-bottom:.5rem;}
.section-header p{font-size:1rem;color:#555;}

/* ---------- Overview ---------- */
#overview .overview-text{max-width:800px;margin:0 auto;font-size:1rem;line-height:1.6;color:#444;text-align:justify;}

/* ---------- Cards Grid ---------- */
.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;max-width:1480px;margin:0 auto;}
.grid-3 .card{background:#fff;border-radius:8px;padding:2rem;box-shadow:0 4px 14px rgba(0,0,0,.05);transition:transform .2s ease, box-shadow .2s ease;}
.grid-3 .card:hover{transform:translateY(-5px);box-shadow:0 8px 20px rgba(0,0,0,.08);}
.grid-3 .card h3{font-size:1.25rem;color:var(--primary-color);margin-bottom:.75rem;font-weight:600;}
.grid-3 .card p{font-size:.95rem;color:#555;line-height:1.5;text-align:justify;}

/* ---------- Tables ---------- */
.table-wrapper{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.modules-table{width:100%;min-width:600px;max-width:1000px;margin:0 auto;border-collapse:collapse;font-size:.9rem;}
.modules-table th, .modules-table td{border:1px solid #ddd;padding:.75rem 1rem;text-align:left;}
.modules-table th{background-color:var(--secondary-color);color:#fff;font-weight:600;}
.modules-table tr:nth-child(even){background-color:#f1f1f1;}

/* ---------- Concept ---------- */
#ai-concept{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:2rem;}
#ai-concept .concept-text{max-width:400px;font-size:1rem;color:#444;line-height:1.6;}
#ai-concept .concept-animation{max-width:550px;width:400px;}

/* ---------- Footer ---------- */
footer{background-color:var(--primary-color);color:#fff;padding:3rem 2rem;text-align:center;}
footer p{font-size:.9rem;}

/* ---------- Fade-in ---------- */
.fade-in{opacity:0;transform:translateY(20px);transition:opacity .6s ease-out, transform .6s ease-out;}
.fade-in.visible{opacity:1;transform:translateY(0);}

/* ---------- Responsive Nav ---------- */
@media (max-width:768px){
  .menu-toggle{display:block;}
  .nav-links{
    position:fixed;top:61px;right:0;background-color:rgba(241,90,41,0.98);
    flex-direction:column;gap:1.5rem;padding:2rem 1.5rem;width:200px;transform:translateX(100%);transition:transform .3s ease;border-radius:4px 0 0 4px;
  }
  .nav-links.active{transform:translateX(0);}
  .nav-links li a{font-size:1.1rem;display:block;color:#fff;}
  body{padding-top:4rem;}
  section{padding:3rem 1rem;}
  .section-header h2{font-size:2rem;}
  .section-header p{font-size:.9rem;}
  .grid-3 .card h3{font-size:1.1rem;}
  .grid-3 .card p{font-size:.9rem;}
}

.nav-links li a.active{color:var(--accent-color);border-bottom:2px solid var(--accent-color);padding-bottom:2px;transition:color .2s ease, border-bottom .2s ease;}

/* Footer logos */
.footer-logos{display:flex;justify-content:center;align-items:center;gap:2rem;margin-bottom:1.5rem;flex-wrap:wrap;}
.footer-logos img{max-height:60px;height:auto;width:auto;object-fit:contain;}
@media (max-width:480px){.footer-logos img{max-height:50px;gap:1rem;}}

/* ===== Instructors ===== */
#instructors{padding:6rem 2rem;}
#instructors .section-header h2{font-size:2.5rem;font-weight:700;color:var(--primary-color);margin-bottom:.5rem;}
#instructors .section-header p{font-size:1rem;color:#555;}

.instructors-grid{display:flex;flex-wrap:wrap;gap:2rem;justify-content:center;max-width:1200px;margin:2rem auto 0;}
.instructor-card{background:#fff;border-radius:8px;padding:1.5rem 1rem;text-align:center;box-shadow:0 4px 14px rgba(0,0,0,.05);transition:transform .2s ease, box-shadow .2s ease;position:relative;cursor:pointer;flex:1 1 240px;max-width:300px;}
.instructor-card:hover{transform:translateY(-5px);box-shadow:0 8px 20px rgba(0,0,0,.08);}
.instructor-img{width:120px;height:120px;margin:0 auto 1rem;border-radius:50%;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.1);}
.instructor-img img{width:100%;height:100%;object-fit:cover;}
.instructor-card h3{font-size:1.25rem;color:var(--primary-color);margin-bottom:.5rem;font-weight:600;}
.instructor-card p{font-size:.95rem;color:#555;line-height:1.4;}

.cv-info{display:none;position:absolute;top:0;left:50%;transform:translateX(-50%) translateY(-100%);width:260px;background:#fff;color:#333;padding:1rem;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.1);z-index:10;text-align:left;}
.cv-info::after{content:"";position:absolute;bottom:-8px;left:50%;transform:translateX(-50%);border-width:8px;border-style:solid;border-color:#fff transparent transparent transparent;}
.instructor-card:hover .cv-info{display:block;}
.cv-info h4{margin:0 0 .5rem;font-size:1.1rem;color:var(--primary-color);}
.cv-info ul{list-style:disc inside;padding-left:1rem;margin:0;}
.cv-info ul li{font-size:.9rem;line-height:1.4;margin-bottom:.4rem;color:#555;}

@media (max-width:1024px){
  #instructors .instructors-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;}
  .instructor-img{width:100px;height:100px;}
  .instructor-card h3{font-size:1.1rem;}
  .instructor-card p{font-size:.9rem;}
  .cv-info{width:220px;padding:.75rem;font-size:.9rem;}
  .cv-info::after{bottom:-6px;border-width:6px;}
}
@media (max-width:600px){
  #instructors .instructors-grid{grid-template-columns:1fr;}
  .instructor-img{width:80px;height:80px;}
  .instructor-card h3{font-size:1rem;}
  .instructor-card p{font-size:.85rem;}
}

/* ===== Thematic Areas ===== */
#thematic-areas{padding:6rem 2rem;}
#thematic-areas .section-header h2{font-size:2.5rem;font-weight:700;color:var(--primary-color);margin-bottom:.5rem;}
#thematic-areas .section-header p{font-size:1rem;color:#555;}
.thematic-grid{display:grid;gap:2rem;max-width:1200px;margin:2rem auto 0;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));}
.thematic-item{background:#fff;border-radius:8px;padding:2rem 1.5rem;display:flex;gap:1.5rem;box-shadow:0 4px 14px rgba(0,0,0,.05);transition:transform .2s ease, box-shadow .2s ease;}
.thematic-item:hover{transform:translateY(-5px);box-shadow:0 8px 20px rgba(0,0,0,.08);}
.thematic-icon{flex-shrink:0;width:64px;height:64px;border-radius:50%;background-color:var(--secondary-color);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.thematic-icon img{width:40px;height:40px;object-fit:contain;filter:brightness(0) invert(1);}
.thematic-content h3{margin:0 0 .5rem;font-size:1.25rem;color:var(--primary-color);font-weight:600;}
.thematic-content p{font-size:.95rem;color:#444;line-height:1.6;}
@media (max-width:768px){
  #thematic-areas{padding:3rem 1rem;}
  .thematic-grid{grid-template-columns:1fr;gap:1.5rem;}
  .thematic-item{flex-direction:column;align-items:flex-start;padding:1.5rem 1rem;}
  .thematic-icon{width:56px;height:56px;margin-bottom:1rem;}
  .thematic-icon img{width:32px;height:32px;}
  .thematic-content h3{font-size:1.15rem;}
  .thematic-content p{font-size:.9rem;}
}

/* Overview tables (two-up) */
.overview-section{padding:2rem;background-color:var(--bg-section);}
.overview-tables{display:flex;flex-direction:row;gap:1.5rem;max-width:1000px;margin:0 auto;flex-wrap:nowrap;padding-bottom:2rem;}
.overview-table{width:48%;min-width:300px;border-collapse:collapse;}
.overview-table th, .overview-table td{padding:1rem 1.25rem;vertical-align:middle;}
.overview-table th{text-align:left;font-size:1rem;font-weight:600;color:var(--primary-color);border-bottom:2px solid #ddd;}
.overview-table td{border-bottom:1px solid #eee;}
@media (max-width:768px){
  .overview-tables{flex-direction:column;gap:1rem;}
  .overview-table{width:100%;min-width:auto;}
}
.key-cell{display:flex;align-items:center;gap:.75rem;width:35%;font-size:.95rem;color:#555;}
.key-cell i{font-size:1.25rem;color:var(--secondary-color);width:1.25rem;text-align:center;}
.value-cell{font-size:1.1rem;font-weight:700;color:#333;}

/* Progress circle */
.progress-circle{position:relative;width:48px;height:48px;}
.progress-circle svg{transform:rotate(-90deg);width:100%;height:100%;}
.progress-circle circle{fill:none;stroke-width:6;cx:24;cy:24;r:20;}
.progress-bg{stroke:#eee;}
.progress-fg{stroke:var(--accent-color); /* now deep blue */ stroke-dasharray:126; stroke-dashoffset:126; animation:fill-70 1.5s ease-out forwards;}
@keyframes fill-70{to{stroke-dashoffset:calc(126 * (1 - 0.70));}}
@media (max-width:600px){
  .overview-tables{gap:1.5rem;}
  .overview-table th, .overview-table td{padding:.75rem 1rem;}
  .key-cell{font-size:.9rem;}
  .value-cell{font-size:1rem;}
  .progress-circle{width:40px;height:40px;}
  .progress-circle circle{stroke-width:5;cx:20;cy:20;r:16;stroke-dasharray:100;}
  @keyframes fill-70{to{stroke-dashoffset:calc(100 * (1 - 0.70));}}
}

/* Overview text + Lottie side-by-side */
.overview-content{display:flex;align-items:flex-start;gap:2rem;max-width:1000px;margin:0 auto;padding:1rem 0;}
.overview-text{flex:1;font-size:1rem;line-height:1.6;color:#444;text-align:justify;}
.overview-animation{flex:1;max-width:400px;width:100%;}
.overview-animation lottie-player{width:100%;height:auto;display:block;}
@media (max-width:768px){.overview-content{flex-direction:column;} .overview-animation{margin-top:1.5rem;}}

/* Admissions buttons/links */
.apply-link{display:inline-block;padding:.5rem 1rem;background-color:var(--accent-color);color:#fff;border-radius:4px;text-decoration:none;font-weight:600;transition:background-color .2s ease;}
.apply-link:hover,.apply-link:focus{background-color:#14205f;outline:none;color:#ff8a50;}
.text-und-hov:hover{text-decoration:underline;}

/* Row hover highlight */
table tr:hover{background-color:#ffe1d5 !important;} /* light orange */

/* Cookie banner */
#cookie-banner{position:fixed;bottom:0;left:0;width:100%;background:var(--secondary-color);color:#fff;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:1rem 2rem;box-shadow:0 -2px 8px rgba(0,0,0,.2);z-index:1000;display:none;}
#cookie-banner p{margin:0;font-size:.9rem;}
#cookie-banner a{color:var(--accent-color);text-decoration:underline;margin-left:.25rem;}
#cookie-banner .btn-group{margin-top:.5rem;}
#cookie-banner button{background:#fff;color:var(--primary-color);border:none;padding:.5rem 1rem;margin-left:.5rem;border-radius:4px;cursor:pointer;font-weight:600;transition:background .2s;}
#cookie-banner button:hover{background:#f0f0f0;}

/* Modal */
#cookie-modal{position:fixed;top:0;left:0;width:100%;height:100%;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.6);z-index:1001;}
#cookie-modal .modal-content{background:#fff;padding:2rem;width:90%;max-width:500px;border-radius:8px;text-align:left;box-shadow:0 4px 20px rgba(0,0,0,.2);}
#cookie-modal h2{margin-top:0;color:var(--primary-color);}
#cookie-modal .modal-actions{text-align:right;margin-top:1.5rem;}
#cookie-modal .modal-actions button{background:var(--accent-color);color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;}
#cookie-modal .modal-actions button:hover{background:#14205f;}

/* Safety nets & minor tweaks */
html,body{overflow-x:hidden;}
.hero-animation,.overview-animation,.concept-animation{max-width:100%;}
#ai-concept .concept-animation{width:min(100%,400px);}
#admissions .concept-animation{width:100% !important;max-width:26em;}
#instructors .instructors-grid{display:flex !important;flex-wrap:wrap;gap:2rem;justify-content:center;max-width:1200px;margin:2rem auto 0;}
@media (max-width:480px){nav .logo img{height:44px !important;}}
.callout-new{max-width:1000px;margin:.75rem auto 1.5rem;background:#fff6ef;border-left:4px solid var(--secondary-color);padding:.85rem 1rem;border-radius:6px;color:#1f2a44;text-align:center;}
.callout-new a{color:var(--secondary-color);text-decoration:underline;}
.badge-extended{display:inline-block;padding:.2rem .5rem;background:#fff3cd;color:#8a6d3b;border:1px solid #ffe8a1;border-radius:4px;font-weight:700;}

/* Assessment table responsiveness */
#assessment .overview-tables{width:100% !important;max-width:50em;display:flex;justify-content:center;}
#assessment .overview-tables table{width:100%;min-width:0;}
@media (max-width:600px){
  #assessment .overview-tables{flex-direction:column;padding:0 1rem;}
  #assessment .overview-tables table{overflow-x:auto;display:block;}
  #assessment .overview-tables th, #assessment .overview-tables td{white-space:normal;}
}


#dates .dates-table{
  width:100%;
  max-width:1000px;
  margin:0 auto;
  border-collapse: collapse;
  font-size:0.95rem;
}
#dates .dates-table th,
#dates .dates-table td{
  border:1px solid #ddd;
  padding:0.75rem 1rem;
  text-align:left;
}
#dates .dates-table th{
  background-color: var(--secondary-color);
  color:#fff;
  font-weight:600;
}
#dates .dates-table tr:nth-child(even){
  background-color:#f8f8f8;
}


.overview-apply-wrapper {
  text-align: center;
  margin-top: 2rem;
  margin-bottom: 1rem;
}

.apply-now-btn {
  font-size: 1.25rem;
  padding: 1rem 3rem;
  border-radius: 999px;
  display: inline-block;
  animation: apply-pulse 1.6s ease-in-out infinite;
  background-color: var(--accent-color);
  color: white;
  font-weight: bold;
}

/* Simple pulsing animation */
@keyframes apply-pulse {
  0% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(0, 123, 255, 0.6);
  }
  70% {
    transform: scale(1.05);
    box-shadow: 0 0 0 18px rgba(0, 123, 255, 0);
  }
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(0, 123, 255, 0);
  }
}

