/**
 * SKILLORBIT Academy — Responsive
 * Breakpoints: 360 → 480 → 640 → 768 → 960 → 1024 → 1280 → 1440 → 1920
 * Mobile nav drawer, sticky bottom CTA, fluid grids
 */

/* ==========================================================================
   Fluid root tweaks (extra-large / small)
   ========================================================================== */
@media (min-width: 1920px) {
  :root {
    --container-lg: 1280px;
    --container-xl: 1400px;
    --fs-hero: 4rem;
  }
}

@media (max-width: 359px) {
  :root {
    --container-pad: 0.875rem;
    --header-h: 64px;
    --fs-base: 0.9375rem;
  }

  .btn {
    min-height: 44px;
    padding: 0.5rem 1.1rem;
  }
}

/* ==========================================================================
   ≤1440px — large desktop polish
   ========================================================================== */
@media (max-width: 1440px) {
  .container--xl {
    max-width: var(--container-lg);
  }
}

/* ==========================================================================
   ≤1280px — laptop
   ========================================================================== */
@media (max-width: 1280px) {
  .trainers__grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .career-support__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .footer__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem 1.5rem;
  }

  .footer__brand {
    grid-column: 1 / -1;
    max-width: none;
  }

  .footer__grid > :last-child {
    grid-column: auto;
  }
}

/* ==========================================================================
   ≤1024px — tablet landscape / small laptop
   ========================================================================== */
@media (max-width: 1024px) {
  :root {
    --header-h: 68px;
    --section-py: clamp(3rem, 7vw, 4.5rem);
  }

  .nav {
    display: none;
  }

  .nav-toggle {
    display: flex;
  }

  .header__actions .btn--primary,
  .header__actions .btn--secondary {
    display: none;
  }

  .hero__grid,
  .hero--split .hero__inner,
  .split,
  .distance-learning__grid,
  .dl-uni-grid,
  .dl-steps,
  .placements__grid,
  .placements__grid--stories,
  .certification__grid,
  .about__grid,
  .contact__grid,
  .faq-section__grid,
  .blog__featured,
  .testimonials__featured,
  .comparison__table-wrap + .comparison__note {
    grid-template-columns: 1fr;
  }

  .placements__grid--stories {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }

  .hero {
    min-height: auto;
    padding-block: clamp(2.5rem, 6vw, 4rem);
  }

  .hero__content {
    max-width: none;
    text-align: center;
    margin-inline: auto;
  }

  .hero__actions,
  .hero__trust {
    justify-content: center;
  }

  .hero__subtitle {
    margin-inline: auto;
  }

  .hero__visual {
    min-height: 280px;
    order: -1;
    margin-bottom: var(--space-4);
  }

  .hero__float-card--3 {
    display: none;
  }

  .why__grid,
  .features__grid,
  .courses__grid,
  .batches__grid,
  .projects__grid,
  .dl-program-grid,
  .testimonials__grid,
  .blog__grid,
  .pricing__grid,
  .about__values {
    grid-template-columns: repeat(2, 1fr);
  }

  .stats__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-2);
  }

  .stats__item:nth-child(2)::after {
    display: none;
  }

  .stats__item:nth-child(odd):not(:last-child)::after {
    display: block;
  }

  .stats__item:nth-child(even)::after {
    display: none;
  }

  .projects__grid--featured {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
  }

  .projects__grid--featured .project-card:first-child {
    grid-row: auto;
    grid-column: 1 / -1;
    min-height: 280px;
  }

  .trainers__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .dashboard-mockup {
    transform: none;
    max-width: 560px;
    margin-inline: auto;
  }

  .dashboard-mockup:hover {
    transform: none;
  }

  .dashboard-mockup__body {
    grid-template-columns: 140px 1fr;
  }

  .faq-section__intro {
    position: static;
  }

  .footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: 1rem 1.25rem;
  }

  .footer__brand {
    grid-column: 1 / -1;
  }

  .orbit-stage {
    width: min(340px, 85%);
  }

  /* Hide floating CTA label on mid screens; keep icon-friendly size */
  .floating-cta {
    bottom: var(--space-5);
    right: var(--space-5);
  }
}

/* ==========================================================================
   ≤960px — tablet
   ========================================================================== */
@media (max-width: 960px) {
  .form-row {
    grid-template-columns: 1fr;
  }

  .placements__stats {
    grid-template-columns: 1fr;
  }

  .comparison__table-wrap {
    display: none;
  }

  .comparison__cards {
    display: grid;
  }

  .cta-box {
    flex-direction: column;
    text-align: center;
  }

  .cta-box .btn-group {
    justify-content: center;
  }

  .lead-strip__inner {
    flex-direction: column;
    text-align: center;
  }

  .newsletter__form {
    flex-direction: column;
  }

  .newsletter__form .btn {
    width: 100%;
  }
}

/* ==========================================================================
   ≤768px — tablet portrait / large phone
   ========================================================================== */
@media (max-width: 768px) {
  :root {
    --header-h: 64px;
    --announce-h: 36px;
    --section-py: clamp(2.5rem, 8vw, 3.5rem);
    --radius-card: 18px;
  }

  html {
    scroll-padding-top: calc(var(--header-h) + var(--announce-h) + 4px);
  }

  /* Sticky bottom CTA bar — phones & small tablets */
  .sticky-cta-bar {
    display: flex;
  }

  body.has-sticky-cta {
    padding-bottom: calc(var(--sticky-cta-h) + env(safe-area-inset-bottom, 0px));
  }

  /* Hide desktop floating CTA when sticky bar is present */
  body.has-sticky-cta .floating-cta {
    display: none;
  }

  .floating-cta {
    bottom: calc(var(--space-4) + env(safe-area-inset-bottom, 0px));
    right: var(--space-4);
  }

  .why__grid,
  .features__grid,
  .courses__grid,
  .batches__grid,
  .projects__grid,
  .dl-program-grid,
  .dl-uni-grid,
  .testimonials__grid,
  .blog__grid,
  .pricing__grid,
  .about__values,
  .trainers__grid,
  .career-support__grid,
  .grid--2,
  .grid--3,
  .grid--4 {
    grid-template-columns: 1fr;
  }

  .stats__grid {
    grid-template-columns: 1fr 1fr;
    padding: var(--space-4);
  }

  .stats--overlap {
    margin-top: -40px;
  }

  .stats__item::after {
    display: none !important;
  }

  .hero__float-card--1,
  .hero__float-card--2 {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    bottom: auto;
    display: inline-flex;
    margin: var(--space-2);
  }

  .hero__visual {
    flex-direction: column;
  }

  .carousel__slide--third,
  .carousel__slide--half {
    flex: 0 0 85%;
  }

  .section-header {
    margin-bottom: var(--space-6);
  }

  .page-hero {
    padding-block: clamp(2.5rem, 6vw, 3.5rem);
    text-align: left;
  }

  .page-hero__inner {
    text-align: left;
  }

  .page-hero__subtitle {
    margin-inline: 0;
  }

  .blog__featured {
    padding: 0;
  }

  .blog__featured-media {
    border-radius: var(--radius-2xl) var(--radius-2xl) 0 0;
    min-height: 200px;
  }

  .contact__form-wrap {
    padding: var(--space-5);
  }

  .contact__map {
    height: 260px;
  }

  .footer {
    padding-top: 1.75rem;
    padding-bottom: 1rem;
  }

  .footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
  }

  .footer__brand {
    grid-column: 1 / -1;
    max-width: none;
  }

  .footer__bottom {
    flex-direction: column;
    text-align: center;
    gap: 0.75rem;
    padding-top: 0.75rem;
  }

  .footer__powered {
    margin-inline: 0;
    justify-content: center;
    order: 2;
  }

  .footer__legal {
    justify-content: center;
    gap: 0.75rem;
    order: 3;
  }

  .footer__bottom > p {
    order: 1;
  }

  .footer__powered-logo {
    height: 32px;
  }

  .announcement-bar {
    font-size: var(--fs-xs);
    padding-inline: var(--space-6) var(--space-8);
  }

  .modal__dialog {
    max-height: 85vh;
  }

  .modal__header,
  .modal__body {
    padding-inline: var(--space-5);
  }

  .dashboard-mockup__body {
    grid-template-columns: 1fr;
  }

  .dashboard-mockup__sidebar {
    display: none;
  }

  .dashboard-mockup__cards {
    grid-template-columns: repeat(3, 1fr);
  }

  .dashboard-mockup__float {
    display: none;
  }

  .timeline--horizontal {
    padding-bottom: var(--space-2);
  }

  .pricing-card.is-featured {
    transform: none;
  }

  .pricing-card.is-featured:hover {
    transform: translateY(-4px);
  }

  .batch-card__meta {
    grid-template-columns: 1fr;
  }

  .tabs__list {
    width: 100%;
  }

  .filters {
    flex-direction: column;
    align-items: stretch;
  }

  .filters__search {
    max-width: none;
  }

  /* Course card: disable heavy 3D on touch */
  .course-card:hover {
    transform: translateY(-4px);
  }

  /* Custom cursor off on coarse pointers handled in base; reinforce */
  .custom-cursor,
  .custom-cursor__ring {
    display: none !important;
  }

  body.has-custom-cursor,
  body.has-custom-cursor * {
    cursor: auto !important;
  }

  .toast-container {
    left: var(--space-3);
    right: var(--space-3);
    max-width: none;
    width: auto;
  }

  .cookie-banner {
    left: var(--space-3);
    right: var(--space-3);
    bottom: calc(var(--space-3) + env(safe-area-inset-bottom, 0px));
  }

  body.has-sticky-cta .cookie-banner {
    bottom: calc(var(--sticky-cta-h) + var(--space-3) + env(safe-area-inset-bottom, 0px));
  }
}

/* ==========================================================================
   ≤640px — large phones
   ========================================================================== */
@media (max-width: 640px) {
  :root {
    --btn-h: 48px;
    --container-pad: 1rem;
  }

  h1, .h1 { font-size: clamp(1.875rem, 8vw, 2.5rem); }
  h2, .h2 { font-size: clamp(1.5rem, 6vw, 2rem); }

  .btn-group {
    width: 100%;
    flex-direction: column;
  }

  .btn-group .btn {
    width: 100%;
  }

  .hero__actions {
    flex-direction: column;
    width: 100%;
  }

  .hero__actions .btn {
    width: 100%;
  }

  .stats__grid {
    grid-template-columns: 1fr;
  }

  .stats__value,
  .stat__value {
    font-size: 2.25rem;
  }

  .placement-card {
    flex-wrap: wrap;
  }

  .placement-card__package {
    margin-left: 0;
    width: 100%;
    text-align: left;
    margin-top: var(--space-2);
    padding-top: var(--space-2);
    border-top: 1px solid var(--border-color);
  }

  .certification__certificate {
    transform: none;
  }

  .about__image img {
    min-height: 280px;
  }

  .testimonials__featured {
    padding: var(--space-5);
  }

  .video-section__play {
    width: 64px;
    height: 64px;
  }

  .carousel__slide--third,
  .carousel__slide--half {
    flex: 0 0 92%;
  }

  .marquee__item {
    font-size: var(--fs-md);
  }

  .sticky-cta-bar__actions .btn--outline {
    display: none;
  }

  .floating-cta__btn {
    padding: 0.875rem;
    border-radius: 50%;
    width: 56px;
    height: 56px;
    justify-content: center;
  }

  .floating-cta__btn > span:not(.floating-cta__btn-icon) {
    display: none;
  }

  .floating-cta__btn-icon {
    width: 24px;
    height: 24px;
    background: transparent;
  }
}

/* ==========================================================================
   ≤480px — phones
   ========================================================================== */
@media (max-width: 480px) {
  :root {
    --header-h: 60px;
    --space-section: 2.5rem;
  }

  .announcement-bar {
    min-height: auto;
    padding-block: var(--space-2);
    line-height: 1.35;
  }

  .logo__tagline {
    display: none;
  }

  .logo__text {
    font-size: var(--fs-md);
  }

  .logo__img {
    width: 36px;
    height: 36px;
  }

  .card__body,
  .course-card__body,
  .feature-card,
  .why__card,
  .testimonial-card {
    padding: var(--space-4);
  }

  .glass-card {
    padding: var(--space-4);
  }

  .cta-box {
    padding: var(--space-5);
  }

  .nav-drawer__panel {
    width: 100%;
    padding: var(--space-5);
  }

  .modal {
    padding: var(--space-2);
    align-items: flex-end;
  }

  .modal__dialog {
    max-height: 92vh;
    border-radius: var(--radius-2xl) var(--radius-2xl) 0 0;
  }

  .modal.is-open .modal__dialog {
    transform: translateY(0);
  }

  .accordion__trigger,
  .faq__question {
    font-size: var(--fs-sm);
    padding: var(--space-3) var(--space-4);
  }

  .accordion__content > *,
  .faq__answer-inner > * {
    padding: 0 var(--space-4) var(--space-4);
  }

  .dashboard-mockup__cards {
    grid-template-columns: 1fr;
  }

  .orbit-stage__core {
    width: 88px;
    height: 88px;
    padding: 0;
    margin: 0;
  }

  .orbit-stage__core img {
    width: 100%;
    height: 100%;
  }

  .orbit-stage__node {
    min-width: 2.1rem;
    min-height: 2.1rem;
    max-width: 7.5rem;
    padding: 0.3rem 0.55rem;
    font-size: 0.65rem;
  }

  .skip-link:focus {
    left: var(--space-2);
    right: var(--space-2);
    width: auto;
  }
}

/* ==========================================================================
   ≤360px — small phones
   ========================================================================== */
@media (max-width: 360px) {
  :root {
    --container-pad: 0.75rem;
    --fs-base: 0.9375rem;
  }

  .btn--lg,
  .btn--xl {
    min-height: 48px;
    padding: 0.75rem 1.25rem;
    font-size: var(--fs-sm);
  }

  .hero__title {
    font-size: 1.75rem;
  }

  .stat__value,
  .stats__value {
    font-size: 1.875rem;
  }

  .sticky-cta-bar {
    padding-inline: var(--space-3);
  }

  .sticky-cta-bar .btn {
    min-height: 40px;
    padding-inline: 0.875rem;
    font-size: var(--fs-xs);
  }
}

/* ==========================================================================
   Mobile nav drawer — open body lock
   ========================================================================== */
@media (max-width: 1024px) {
  body.nav-open {
    overflow: hidden;
  }

  .header.scrolled .nav-toggle,
  .header.is-scrolled .nav-toggle,
  .header--transparent .nav-toggle,
  .header--dark:not(.scrolled):not(.is-scrolled) .nav-toggle {
    color: var(--near-black);
  }
}

/* ==========================================================================
   Landscape phones
   ========================================================================== */
@media (max-height: 500px) and (orientation: landscape) {
  .hero {
    min-height: auto;
    padding-block: var(--space-6);
  }

  .nav-drawer__panel {
    padding-top: var(--space-4);
  }

  .modal__dialog {
    max-height: 95vh;
  }
}

/* ==========================================================================
   Print
   ========================================================================== */
@media print {
  .header,
  .announcement-bar,
  .nav-drawer,
  .floating-cta,
  .sticky-cta-bar,
  .cookie-banner,
  .custom-cursor,
  .custom-cursor__ring,
  .toast-container,
  .skip-link {
    display: none !important;
  }

  body {
    background: white;
    color: black;
    padding: 0 !important;
  }

  .section {
    padding-block: 1.5rem;
    break-inside: avoid;
  }

  a {
    text-decoration: underline;
  }

  .card,
  .course-card,
  .btn {
    box-shadow: none !important;
  }
}

/* ==========================================================================
   High-DPI / retina polish
   ========================================================================== */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
  .border,
  .card,
  .course-card,
  .batch-card {
    border-width: 0.5px;
  }
}

/* ==========================================================================
   Hover-capable only (avoid sticky hover on touch)
   ========================================================================== */
@media (hover: hover) and (pointer: fine) {
  .course-card:hover {
    transform: perspective(1000px) rotateX(var(--tilt-x, -4deg)) rotateY(var(--tilt-y, 4deg)) translateY(-8px);
  }
}

@media (hover: none) {
  .course-card:hover,
  .card--interactive:hover,
  .feature-card:hover,
  .why__card:hover,
  .batch-card:hover,
  .trainer-card:hover,
  .blog-card:hover,
  .career-support__card:hover {
    transform: none;
  }

  .btn:hover {
    transform: none;
  }

  .marquee:hover .marquee__track {
    animation-play-state: running;
  }
}

/* ==========================================================================
   Container query-ish fallbacks via max-width utilities
   ========================================================================== */
@media (min-width: 768px) and (max-width: 1024px) {
  .courses__grid,
  .batches__grid,
  .blog__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .trainers__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* ==========================================================================
   Safe area (notched devices)
   ========================================================================== */
@supports (padding: max(0px)) {
  .header__inner {
    padding-left: max(var(--container-pad), env(safe-area-inset-left));
    padding-right: max(var(--container-pad), env(safe-area-inset-right));
  }

  .sticky-cta-bar {
    padding-left: max(var(--space-4), env(safe-area-inset-left));
    padding-right: max(var(--space-4), env(safe-area-inset-right));
  }

  .nav-drawer__panel {
    padding-top: max(var(--space-6), env(safe-area-inset-top));
    padding-bottom: max(var(--space-6), env(safe-area-inset-bottom));
  }
}

/* Dark theme responsive overrides removed — light theme only */
