/* STREAMING_CHUNK:Defining root design variables... /
/ CSS Root Design Tokens */
:root {
--photon-navy: #0a192f;
--photon-blue: #0284c7;
--photon-dark-blue: #0f2a4a;
--photon-gold: #f59e0b;
--photon-amber: #d97706;
--photon-light-bg: #f8fafc;
--photon-card-bg: #ffffff;
--photon-text-dark: #0f172a;
--photon-text-muted: #475569;
--photon-border-color: #e2e8f0;
}

/* STREAMING_CHUNK:Styling body and base typography... /
/ Body & Global Typography Setup /
body {
font-family: 'Inter', sans-serif;
color: var(--photon-text-dark);
background-color: var(--photon-light-bg);
line-height: 1.6;
padding-bottom: 70px; / Reserved space for sticky mobile bar */
}

h1, h2, h3, h4, h5, h6, .brand-font {
font-family: 'Poppins', sans-serif;
}

/* STREAMING_CHUNK:Configuring custom theme utility classes... /
/ Custom Theme Color & Accent Utility Classes */
.bg-photon-navy { background-color: var(--photon-navy) !important; }
.bg-photon-dark { background-color: var(--photon-dark-blue) !important; }
.bg-photon-gold { background-color: var(--photon-gold) !important; }
.text-photon-gold { color: var(--photon-gold) !important; }
.text-photon-blue { color: var(--photon-blue) !important; }
.border-photon-gold { border-color: var(--photon-gold) !important; }

/* STREAMING_CHUNK:Styling hero section layout... /
/ Hero Section Layout */
.hero-section {
background: linear-gradient(135deg, #0a192f 0%, #0f2a4a 60%, #0284c7 100%);
color: #ffffff;
padding: 3rem 0;
position: relative;
}

/* STREAMING_CHUNK:Designing enquiry card and form inputs... /
/ Above-The-Fold Enquiry Card & Input Controls */
.card-enquiry {
border: none;
border-radius: 1rem;
box-shadow: 0 20px 30px rgba(0,0,0,0.25);
background: #ffffff;
color: var(--photon-text-dark);
}

.form-control:focus, .form-select:focus {
border-color: var(--photon-blue);
box-shadow: 0 0 0 0.25rem rgba(2, 132, 199, 0.25);
}

/* STREAMING_CHUNK:Styling primary CTA buttons and badges... /
/ Primary Call-to-Action Buttons & Gold Badges */
.btn-photon-primary {
background: linear-gradient(45deg, var(--photon-gold), var(--photon-amber));
color: #000000;
font-weight: 700;
border: none;
border-radius: 0.5rem;
padding: 0.8rem 1.5rem;
transition: all 0.3s ease;
text-transform: uppercase;
letter-spacing: 0.5px;
}

.btn-photon-primary:hover {
background: linear-gradient(45deg, var(--photon-amber), #b45309);
color: #ffffff;
transform: translateY(-2px);
box-shadow: 0 6px 15px rgba(217, 119, 6, 0.4);
}

.badge-gold {
background-color: var(--photon-gold);
color: #000000;
font-weight: 700;
padding: 0.4rem 0.8rem;
border-radius: 20px;
}

/* STREAMING_CHUNK:Formatting FAQ details accordion... /
/ Pure CSS FAQ Accordion (using  & ) */
details.faq-item {
background-color: #ffffff;
border: 1px solid var(--photon-border-color);
border-radius: 0.75rem;
margin-bottom: 1rem;
overflow: hidden;
transition: all 0.2s ease;
}

details.faq-item summary {
padding: 1.25rem 1.5rem;
font-weight: 600;
font-size: 1.05rem;
cursor: pointer;
list-style: none;
display: flex;
justify-content: space-between;
align-items: center;
color: var(--photon-navy);
}

details.faq-item summary::-webkit-details-marker {
display: none;
}

details.faq-item summary::after {
content: '\f078';
font-family: 'Font Awesome 6 Free';
font-weight: 900;
transition: transform 0.3s ease;
color: var(--photon-blue);
}

details.faq-item[open] summary::after {
transform: rotate(180deg);
}

details.faq-item[open] {
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
border-color: var(--photon-blue);
}

.faq-answer {
padding: 0 1.5rem 1.25rem 1.5rem;
color: var(--photon-text-muted);
border-top: 1px solid #f1f5f9;
margin-top: 0.5rem;
padding-top: 1rem;
}

/* STREAMING_CHUNK:Styling CSS modal dialogs... /
/ Pure CSS Modal Dialog Overlay using :target Selector */
.css-modal {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(10, 25, 47, 0.85);
display: flex;
align-items: center;
justify-content: center;
opacity: 0;
pointer-events: none;
transition: opacity 0.3s ease;
z-index: 9999;
padding: 1rem;
}

.css-modal:target {
opacity: 1;
pointer-events: auto;
}

.css-modal-card {
background: #ffffff;
border-radius: 1rem;
max-width: 550px;
width: 100%;
padding: 2.5rem;
position: relative;
text-align: center;
box-shadow: 0 25px 50px rgba(0,0,0,0.3);
}

.css-modal-close {
position: absolute;
top: 15px;
right: 20px;
font-size: 1.5rem;
text-decoration: none;
color: #64748b;
font-weight: bold;
}

/* STREAMING_CHUNK:Styling floating action and mobile sticky bars... /
/ Floating WhatsApp & Call Quick Action Buttons */
.floating-whatsapp {
position: fixed;
bottom: 80px;
right: 20px;
width: 56px;
height: 56px;
background-color: #25d366;
color: #ffffff;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 28px;
box-shadow: 0 4px 12px rgba(37, 211, 102, 0.4);
z-index: 1000;
text-decoration: none;
transition: transform 0.3s ease;
}

.floating-call {
position: fixed;
bottom: 145px;
right: 20px;
width: 56px;
height: 56px;
background-color: var(--photon-blue);
color: #ffffff;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 24px;
box-shadow: 0 4px 12px rgba(2, 132, 199, 0.4);
z-index: 1000;
text-decoration: none;
transition: transform 0.3s ease;
}

.floating-whatsapp:hover, .floating-call:hover {
transform: scale(1.1);
color: #ffffff;
}

/* Sticky Bottom Navigation Bar for Mobile Viewports */
.sticky-mobile-bar {
position: fixed;
bottom: 0;
left: 0;
right: 0;
background: var(--photon-navy);
padding: 0.75rem 1rem;
display: flex;
gap: 10px;
z-index: 999;
box-shadow: 0 -4px 15px rgba(0,0,0,0.15);
border-top: 2px solid var(--photon-gold);
}

@media (min-width: 992px) {
.sticky-mobile-bar {
display: none; /* Hide bottom sticky bar on desktop where form is always visible */
}
body {
padding-bottom: 0;
}
}

/* STREAMING_CHUNK:Styling feature cards and interactive components... /
/ Feature Cards, Methodology Badges, and Image Zoom Effects */
.feature-card {
border: 1px solid var(--photon-border-color);
border-radius: 0.75rem;
padding: 1.75rem;
background: #ffffff;
height: 100%;
transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.feature-card:hover {
transform: translateY(-5px);
box-shadow: 0 12px 24px rgba(0,0,0,0.08);
border-color: var(--photon-blue);
}

.icon-box {
width: 60px;
height: 60px;
border-radius: 0.75rem;
background: rgba(2, 132, 199, 0.1);
color: var(--photon-blue);
display: flex;
align-items: center;
justify-content: center;
font-size: 1.5rem;
margin-bottom: 1.25rem;
}

.step-number {
width: 40px;
height: 40px;
border-radius: 50%;
background: var(--photon-gold);
color: #000;
font-weight: 800;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 1rem;
}

.img-zoom-container {
overflow: hidden;
border-radius: 0.75rem;
}

.img-zoom-container img {
transition: transform 0.5s ease;
}

.img-zoom-container:hover img {
transform: scale(1.05);
}
  .dps-css-carousel {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 440px;
    max-width: 760px;
    margin: 0 auto;
    overflow: hidden;
    border-radius: 16px;
    background-color: #0f172a;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.18), 0 8px 10px -6px rgba(0,0,0,0.1);
    user-select: none;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  }
  .dps-carousel-track {
    display: flex;
    width: 500%;
    height: 100%;
    transition: transform 0.45s cubic-bezier(0.25, 1, 0.5, 1);
  }
  .dps-carousel-slide {
    width: 20%;
    height: 100%;
    flex-shrink: 0;
    position: relative;
  }
  .dps-carousel-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  .dps-radio-input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    width: 0;
    height: 0;
    margin: 0;
  }
  #opt-1:checked ~ .dps-carousel-track { transform: translateX(0%); }
  #opt-2:checked ~ .dps-carousel-track { transform: translateX(-20%); }
  #opt-3:checked ~ .dps-carousel-track { transform: translateX(-40%); }
  #opt-4:checked ~ .dps-carousel-track { transform: translateX(-60%); }
  #opt-5:checked ~ .dps-carousel-track { transform: translateX(-80%); }

  #opt-1:checked ~ .dps-dots-box label[for="opt-1"] .dps-dot-pill,
  #opt-2:checked ~ .dps-dots-box label[for="opt-2"] .dps-dot-pill,
  #opt-3:checked ~ .dps-dots-box label[for="opt-3"] .dps-dot-pill,
  #opt-4:checked ~ .dps-dots-box label[for="opt-4"] .dps-dot-pill,
  #opt-5:checked ~ .dps-dots-box label[for="opt-5"] .dps-dot-pill {
    background-color: #ea580c !important;
    width: 28px !important;
    border-radius: 9999px !important;
    opacity: 1 !important;
  }
  .dps-arrow-btn {
    display: none;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 20;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.92);
    color: #0f172a;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 16px;
    font-weight: bold;
    box-shadow: 0 4px 12px rgba(0,0,0,0.25);
    border: 1px solid rgba(255,255,255,0.6);
    transition: background 0.2s, transform 0.2s;
  }
  .dps-arrow-btn:hover {
    background: #ffffff;
    transform: translateY(-50%) scale(1.08);
  }
  .dps-arrow-btn.prev { left: 14px; }
  .dps-arrow-btn.next { right: 14px; }

  #opt-1:checked ~ .dps-nav-arrows .arrow-1-prev,
  #opt-1:checked ~ .dps-nav-arrows .arrow-1-next { display: flex; }
  #opt-2:checked ~ .dps-nav-arrows .arrow-2-prev,
  #opt-2:checked ~ .dps-nav-arrows .arrow-2-next { display: flex; }
  #opt-3:checked ~ .dps-nav-arrows .arrow-3-prev,
  #opt-3:checked ~ .dps-nav-arrows .arrow-3-next { display: flex; }
  #opt-4:checked ~ .dps-nav-arrows .arrow-4-prev,
  #opt-4:checked ~ .dps-nav-arrows .arrow-4-next { display: flex; }
  #opt-5:checked ~ .dps-nav-arrows .arrow-5-prev,
  #opt-5:checked ~ .dps-nav-arrows .arrow-5-next { display: flex; }

/* ===== Icon cards (exams, curriculum) ===== */
.icon-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.icon-card{background:#fff;border-radius:16px;padding:26px 22px;box-shadow:var(--shadow-sm);border:1px solid var(--line);transition:all .25s ease;}
.icon-card:hover{box-shadow:var(--shadow);transform:translateY(-4px);}
.icon-card .ic{width:48px;height:48px;border-radius:12px;background:var(--paper2);display:flex;align-items:center;justify-content:center;color:var(--ace-blue);margin-bottom:14px;}
.icon-card h4{font-family:'Montserrat',sans-serif;font-size:.98rem;color:var(--navy);margin-bottom:6px;}
.icon-card p{font-size:.86rem;margin:0;}
@media(max-width:900px){.icon-card-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.icon-card-grid{grid-template-columns:1fr;}}

/* ===== Exam pill cards ===== */
.exam-pill-card{background:#fff;border-radius:14px;padding:16px 18px;box-shadow:var(--shadow-sm);border:1px solid var(--line);display:flex;align-items:center;gap:12px;}
.exam-pill-card .ic{width:38px;height:38px;border-radius:10px;background:#001f54;color:#fdb913;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.exam-pill-card b{font-family:'Montserrat',sans-serif;font-size:.86rem;color:#001f54;display:block;}
.exam-pill-card span{font-size:.74rem;color:var(--ink-soft);}
.exam-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
@media(max-width:700px){.exam-grid{grid-template-columns:1fr;}}
.exam-grid-5{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;}
.exam-grid-5 .exam-pill-card{padding:14px 12px;justify-content:center;text-align:center;flex-direction:column;gap:8px;}
@media(max-width:900px){.exam-grid-5{grid-template-columns:repeat(3,1fr);}}
@media(max-width:600px){.exam-grid-5{grid-template-columns:repeat(2,1fr) !important;}}

/* ===== Differentiator ribbons ===== */
.ribbon-list{display:flex;flex-direction:column;gap:12px;}
.ribbon-item{display:flex;align-items:center;gap:16px;background:#fff;border-radius:12px;padding:14px 18px;box-shadow:var(--shadow-sm);border-left:4px solid var(--gold);}
.ribbon-item .num{font-family:'Montserrat',sans-serif;font-weight:800;font-size:1.3rem;color:var(--gold);width:34px;flex-shrink:0;}
.ribbon-item .ic{width:36px;height:36px;border-radius:8px;background:var(--paper2);color:var(--ace-blue);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.ribbon-item b{font-family:'Montserrat',sans-serif;font-size:.9rem;color:var(--navy);}

/* ===== Hover + reveal animation polish (Program pages) ===== */
.timeline-item .icon-badge{transition:all .3s ease;}
.timeline-item:hover .icon-badge{background:var(--ace-blue);border-color:var(--ace-blue);color:#fff;transform:scale(1.1);}
.icon-flow .flow-step .circle{transition:all .3s cubic-bezier(.2,.8,.3,1.2);}
.icon-flow .flow-step:hover .circle{transform:translateY(-6px) scale(1.08);box-shadow:0 12px 24px rgba(11,25,60,.25);}
.exam-pill-card{transition:all .3s ease;}
.exam-pill-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--ace-blue);}
.exam-pill-card .ic{transition:all .3s ease;}
.exam-pill-card:hover .ic{background:#fdb913;color:#001f54;transform:rotate(-6deg) scale(1.08);}
.ribbon-item{transition:all .3s ease;}
.ribbon-item:hover{transform:translateX(6px);box-shadow:var(--shadow);border-left-color:var(--ace-blue);}
.ribbon-item .ic{transition:all .3s ease;}
.ribbon-item:hover .ic{background:var(--navy);color:var(--gold);}

.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease;}
.reveal.in{opacity:1;transform:translateY(0);}
