/* Define color variables */
:root {
    /* --primary-green: #83A342; */
    /* --secondary-green: #9DBD5B; */
    /* --primary-orange: #E56020; */
    /* --light-pink: #F4CBC6; */
    --blue-smoke: #708986;
    --cape-cod: #435250;
    --dark-gray: #303030;
    --muted-black: #222222;
    --muted-white: #eeeeee;
    --muted-gray: #A7AAB0;
}

/* Enable smooth scrolling */
html {
    scroll-behavior: smooth;
}

@media (max-width: 992px) {
  /* target all sections */
  section {
    /* override any previous padding */
    padding: 1.25rem 0.75rem !important;
    min-height: auto;      /* let content define height */
  }
}

/* Basic reset for body */
body {
    margin: 0;
    padding: 0;
    font-family: 'Roboto', sans-serif;
    font-size: 1.2rem;
    scroll-behavior: smooth;
    background-color: var(--muted-white);
    color: var(--muted-black);
}

/* Landing Section */
#landing {
    background: url('../img/placeholder.jpg') center center/cover no-repeat;
    height: 100vh;
    color: var(--muted-white);
    position: relative;
}

#landing .overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
}

#landing .landing-content {
    z-index: 2;
    position: relative;
    top: 50%;
    transform: translateY(-50%);
}

/* Floating image sections */
.floating-img {
    height: auto;
    width: 100%;
    object-fit: contain;
}

.floating-text {
    background: var(--muted-white);
    border: none;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    width: 40%;
}


/* Header */
header {
    background: var(--muted-black);
    color: var(--muted-white);
    padding: 5%;
    text-align: center;
}


/* Styling for all sections */
section {
    padding: 5% 22%;
    min-height: 100vh;
    align-self: center;
}

section:nth-of-type(odd) {
    background-color: var(--dark-gray);
    color: var(--muted-white)
}

section:nth-of-type(even) {
    background-color: var(--muted-gray);
    color: var(--muted-black)
}


/* Button styles */
@media (max-width: 576px) {
  .btn-custom {
    width: 100%;
    font-size: 0.9rem;
    padding: 10px;
  }
}

.btn-custom {
    background-color: var(--blue-smoke);
    color: var(--muted-white);
    border: none;
}

.btn-custom:hover {
    background-color: var(--cape-cod);
}


/* focus (keyboard/tab) – remove the default ring and reset bg */
.btn-custom:focus,
.btn-custom.focus {
    outline: none;
    box-shadow: none;
    background-color: var(--cape-cod);
}


/* active/clicked */
.btn-custom:active,
.btn-custom.active,
.show>.btn-primary.dropdown-toggle {
    background-color: var(--cape-cod);
    border-color: var(--cape-cod);
}

.btn-custom:active,
.btn-custom.active {
    background-image: none;
}

/* Cards hover effect */
.feature-card:hover {
    transform: scale(1.025);
    transition: 0.3s;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
}

.feature-card img {
  transition: opacity 1s ease;
}


.feature-card {
  background: var(--muted-white);

}

.video-card {
  margin: 1.5rem auto;
  background: var(--muted-white);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  padding: 15px;
}

.video-inner {
  position: relative;
}


.video-caption-card {
  padding: 0.7rem 0rem  0rem  0rem;
  font-family: 'Segoe UI', sans-serif;
  font-size: 1.4rem;
  color: #333;
  background: var(--muted-white);
}

@media (max-width: 576px) {

  .video-card {
    margin: 1.5rem auto;
    background: var(--muted-white);
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    padding: 8px;
  }

  .video-caption-card {
    padding: 0.7rem 0rem  0rem  0rem;
    font-size: 1.0rem;
  }
}


/* Fixed Side Navigation */
#sideNav {
    position: fixed;
    width: max-content;
    box-sizing: border-box;
    top: 50%;
    left: 2%;
    transform: translateY(-50%);
    background: var(--blue-smoke);
    padding: 1%;
    z-index: 1000;
}

#sideNav a {
    display: block;
    margin: 5px 0;
    text-decoration: none;
    color: var(--muted-white);
    border: 1px solid transparent;
}

#sideNav a:hover {
    color: var(--cape-cod);
}

#sideNav a.active {
    border: 1px solid var(--dark-gray);
    border-radius: 5px;
    font-weight: bold;
}

@media (max-width: 992px) {
  #sideNav {
    display: none;
  }
}


/* Footer styling */
footer {
    background-color: var(--muted-black);
    color: var(--muted-white);
    text-align: center;
    padding: 30px;
}

.img-swap-container {
  position: relative;
  width: 100%;
  aspect-ratio: 2/3;
  overflow: hidden;
}

.swap-img {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: auto;
  transition: opacity 0.5s ease;
}

/* Base image shows by default */
.swap-img.base {
  opacity: 1;
  z-index: 1;
}

/* Hover image hidden initially */
.swap-img.hover {
  opacity: 0;
  z-index: 2;
}

/* On container hover, cross-fade both images */
.img-swap-container:hover .swap-img.base {
  opacity: 0;
}
.img-swap-container:hover .swap-img.hover {
  opacity: 1;
}


/* ================================================
   Hardware section: disable floating on small screens
================================================= */

@media (max-width: 1400px) {
  /* Target each .position-relative container in #hardware */
  #hardware .position-relative {
    display: flex;
    flex-direction: column-reverse;
    position: relative !important;
  }

  /* Make the text block flow below the image */
  #hardware .floating-text {
    position: static !important;
    margin: 0.75rem 0 1.5rem 0;
    width: 100%;
  }

  /* Ensure the image simply sits at full width */
  #hardware .floating-img {
    position: static !important;
    width: 100%;
    height: auto;
    margin: 0;
  }
}
