:root {
  --primary-color: #E3FDFD;
  --secondary-color: #CBF1F5;
  --tertiary-color:#A6E3E9;
  --quaternary-color: #71C9CE;
  --logo-color: rgb(92,141,161);

  --page-color:var(--secondary-color);
}  

.d-sm-flex {
    margin-bottom: 30px;
}

.Feature-Section {
    display: flex;
    justify-content: center;
    margin: 40px;
}

.carousel-section {
    margin: 30px;
}

body {
    background-color: var(--page-color);
    font-family: "Times New Roman", Times, serif;
    font-size: large;
}

.tvc_image {
    background-color: var(--page-color);
}

.menu-page {
    font-size: x-large;
    line-height: 1.5;
    padding-left: 5%;
    padding-right:5%
}

.two-column {
    display:flex;
    flex-direction: row; /* Default: items in a row */
    width:90%;
    margin-left: 5%;
    gap:10px;
}

.column-one {
    flex: 1;
}

.column-two {
    flex: 3;
}

.about-group {
    padding:10px;
    margin-top: 10px;
    margin-bottom: 10px;
    background-color: lightblue;
}

.about-item {
    margin-left: 25px;
}

.navbar {
    background-color: var(--secondary-color);
    position: fixed; /* This makes the navbar stick to the viewport */
    top: 0; /* Positions it at the very top of the viewport */
    width: 100%;  /*Ensures it spans the full width */
    z-index: 100; /* Ensures it stays on top of other elements */
}

.navbar-nav > li{
  padding-left:20px;
  font-weight: 600;
  font-size: large;
}

.font-size-var {
  font-size: 100%;  /* Same as parent */
}

.body-content {
    margin-top: 160px;
}

/* Styles for forms input */
/* *** Contact Request *** */
.grid-form {
  display: grid;
  /* Creates two columns of equal width */
  grid-template-columns: 1fr 1fr;
  /* Adds space between the rows and columns */
  gap: 20px;
  /* Ensures inputs don't overflow the container */
  box-sizing: border-box; 
  max-width: 50%;
  margin: 10px 25% 10px 25%;
  padding: 20px;
  border: 1px solid rgb(13, 202, 240); /* border-info color */
  border-radius: 20px;
}

/* *** Referral *** */
.referral-form {
  background-color: var(--page-color);
}

.boxed-item {
  box-sizing: border-box; 
  max-width: 85%;
  margin: 10px 7% 10px 8%;
  padding: 20px;
  border: 1px solid rgb(13, 202, 240); /* border-info color */
  border-radius: 20px;
}

.form-group label {
  display: block;
  margin-bottom: 5px;
}

.group-form {
  display: grid;
  /* Creates three columns of equal width */
  grid-template-columns: repeat(3, 1fr);
  text-align: center;

  /* Adds space between the rows and columns */
  gap: 20px;
  /* Ensures inputs don't overflow the container */
  box-sizing: border-box; 
  max-width: 85%;
  margin: 10px 7% 10px 8%;
  padding: 20px;
  border: 1px solid rgb(13, 202, 240); /* border-info color */
  border-radius: 20px;
}

:is(.form-group, .group-form) :is(input, select) {
  /* Ensures inputs take the full width of their grid cell */
  width: 100%; 
  padding: 8px;
  border: 1px solid #ddd;
  border-radius: 4px;
  box-sizing: border-box; /* Ensures padding/border is included in width */
}

/* Class to make items span across both columns */
.span-one {
  grid-column: 2 / span 1; /* Starts at column 2 and spans 1 column */
}

/* Class to make items span across both columns */
.span-two {
  grid-column: 1 / span 2; /* Starts at column 1 and spans 2 columns */
}

/* Class to make items span across three columns */
.span-three {
  grid-column: 1 / span 3; /* Starts at column 1 and spans 3 columns */
}

.inline-label {
  display: inline-block;
  width: 100px; /* Optional: ensures uniform label width across a form */
  margin-right: 10px; /* Adds space between label and input */
}

:is(.span-one, .span-two, .span-three) button {
  width: 100%;
  height: 2.5rem;
  background-color: rgb(13,110, 253);
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}

.align-middle {
    vertical-align: middle;
}

.label-combo {
  display: grid;
  /* Defines two columns: the first is 150px wide, the second takes the remaining space */
  grid-template-columns: 150px 1fr; 
  gap: 10px; /* Adds space between the label and the combobox */
  align-items: center; /* Vertically centers the items in the row */
}

.label-combo label {
  /* Ensure the label text aligns well within its column */
  text-align: right; 
  padding-top: 6px;
  padding-right: 10px;
}

.label-combo select {
  /* Optional: make the combobox take full width of its column */
  width: 100%; 
  padding: 5px;
}

.google-map {
  text-align: center;
  margin-top: 50px;
}

.btn-fixed {
  position: fixed;
  top: 15px;
  left: auto;
  right: 10px;
  padding: 10px;
  /* Ensure it is above other content */
  z-index: 1000; 
  font-size: smaller;
}

/* Add padding to the body or main content to prevent overlap */
body {
  padding-top: 60px; /* Adjust based on the height of your fixed-nav */
}

/* Apply the animation to an HTML element */
.slide-up-element {
    height: 50px;
    background-color: transparent;
    /* display: grid; */
    position: absolute; 
    top:60%; 
    left: 10px;
    text-align: left;
}

.rp-element {
  color:rebeccapurple;
}

.white-element {
  color:whitesmoke;
}

.logo-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-template-rows: repeat(3, 1fr);
  gap: 15px;
}

.logo-grid-5 {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 15px;
}

.logo-grid-item {
  align-items: center;
    animation: fadeIn 2s ease-in forwards; /* Applies the 'fadeIn' animation over 2 seconds */
    opacity: 0; /* Ensures the element is hidden before the animation starts */
}

.full-width {
  grid-column: 1 / -1; /* Starts at column 1 and spans all columns */
  text-align: center;
}

/* Define the @keyframes rule */
@keyframes slideup {
    from {
        transform: translateY(100%); /* Start position off-screen bottom */
        opacity: 0;
    }
    to {
        transform: translateY(0);    /* End position at its original place */
        opacity: 1;
    }
}

@keyframes fadeIn {
    0% {
        opacity: 0; /* Start of the animation: fully transparent */
    }
    100% {
        opacity: 1; /* End of the animation: fully opaque */
    }
}

/* Media Query for smaller screens  */
/* --bs-breakpoint-md = 768 px      */
@media (max-width: 768px) { 
  .two-column {
    flex-direction: column; /* On screens 768px or less, stack items vertically */
  }

  .grid-form {
    /* Stacks columns vertically on smaller screens */
    grid-template-columns: 1fr; 
    max-width: 75%;
    margin: 5px 15% 5px 15%;
  }

  .logo-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(6, 1fr);
    gap: 5px;
  }

  .logo-grid-5 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(5, 1fr);
    gap: 5px;
  }

  .navbar-nav > li{
    padding-left:0px;
    padding-top: 0px;
    padding-bottom: 0px;
    font-weight: 300;
    font-size:medium;
  }

  .font-size-var {
    font-size: smaller;
  }

  .slide-up-element {
      top:5%; 
      left: 5px;
  }
}
