/*--- functions/styles/services.css ---*/

/* === Scroll Container === */
.scroll-container {
  overflow-y: auto;
  height: 100vh;
  scroll-behavior: smooth;
}

/* === Spacer (optional, can be removed entirely) === */
.snap-spacer {
  display: none;
}

/* === Section Base === */
.services-section {
  padding: 3rem 4rem;
  min-height: auto;
  background: var(--cc-tertiary);
  color: var(--cc-tertiary-text);
}

/* === Section Themes === */

.web-section,
.it-section,
.social-section {
  background: var(--cc-tertiary);
  color: var(--cc-tertiary-text);
  margin-bottom: 3rem;
}

.web-section { text-align: left; }
.it-section { text-align: right; }
.social-section { text-align: left; }

/* === Section Intros === */
.web-intro,
.it-intro,
.social-intro {
  margin-bottom: 2rem;
}

/* === Grid Layouts === */
.web-grid,
.it-grid,
.social-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
}

@media (max-width: 1024px) {
  .web-grid,
  .it-grid,
  .social-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .web-grid,
  .it-grid,
  .social-grid {
    grid-template-columns: 1fr;
  }
}

/* === Item Boxes === */
.web-item,
.it-item,
.social-item {
  padding: 2rem;
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  text-align: left;
  background: var(--cc-surface-raised);
  color: var(--cc-tertiary-text);
  border: 1px solid var(--cc-border);
  box-shadow: 0 18px 32px var(--cc-shadow);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.web-item h3,
.it-item h3,
.social-item h3 {
  font-size: 1.3rem;
  color: var(--cc-secondary);
  margin-bottom: 0.35rem;
}

.web-item p,
.it-item p,
.social-item p {
  color: var(--cc-tertiary-text);
  margin: 0;
  line-height: 1.55;
}


.web-item:hover,
.it-item:hover,
.social-item:hover {
  transform: translateY(-3px);
  box-shadow: 0 24px 42px rgba(16, 12, 12, 0.22);
}

/* === Definition Panel === */
.definition-content {
  display: none;
  grid-column: 1 / -1;
  border-radius: 12px;
  padding: 1.5rem 2rem;
  margin-top: 1rem;
  text-align: left;
  animation: fadeIn 0.3s ease;
  background: var(--cc-surface-raised);
  border: 1px solid var(--cc-border);
  box-shadow: 0 18px 32px var(--cc-shadow);
}

.definition-content ul {
  list-style-type: disc;
  padding-left: 1.5rem;
  margin: 0;
}

.definition-content li {
  margin-bottom: 0.8rem;
  line-height: 1.5;
  color: var(--cc-tertiary-text);
}

/* === Fade Animation === */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(-5px); }
  to { opacity: 1; transform: translateY(0); }
}

/* === Carousel Styling === */
.carousel {
  position: relative;
  width: 100%;
  height: 250px;
  overflow: hidden;
  border-radius: 6px;
  margin-top: 1rem;
}

.carousel-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  animation: fade 90s infinite;
}

.carousel-image:nth-child(1) { animation-delay: 0s; }
.carousel-image:nth-child(2) { animation-delay: 15s; }
.carousel-image:nth-child(3) { animation-delay: 30s; }
.carousel-image:nth-child(4) { animation-delay: 45s; }
.carousel-image:nth-child(5) { animation-delay: 60s; }
.carousel-image:nth-child(6) { animation-delay: 75s; }

@keyframes fade {
  0%   { opacity: 0; }
  5%   { opacity: 1; }
  25%  { opacity: 1; }
  30%  { opacity: 0; }
  100% { opacity: 0; }
}

/* === Typography === */
.services-section h2 {
  font-size: 2rem;
  margin-bottom: 1rem;
  color: var(--cc-secondary);
}

.services-section h3 {
  font-size: 1.25rem;
  margin-bottom: 0.5rem;
  color: var(--cc-secondary);
}

.services-section p {
  font-size: 1rem;
  line-height: 1.5;
  color: var(--cc-tertiary-text);
}

/* === Service Plans Lists === */
.service-plans {
  margin-top: 0.5rem;
  padding-left: 0;
  list-style-type: none;
  text-align: left;
}


.service-item {
  margin-bottom: 1.5rem;
  text-align: left;
  color: var(--cc-tertiary-text);
  background: transparent;
}


.service-item .title-line {
  font-weight: bold;
  margin-bottom: 0.3rem;
  color: var(--cc-secondary);
}

.service-item .price {
  font-weight: bold;
  margin-left: 0.3rem;
  white-space: nowrap;
  color: var(--cc-accent);
}

.service-item .description-line {
  font-size: 0.95rem;
  line-height: 1.5;
  margin-left: 0;
  color: var(--cc-muted);
}

/* === Optional Separator === */
.price-separator {
  margin: 0.3rem 0;              
  border-bottom: 1px dashed var(--cc-border);
}

/* === Responsive Adjustments === */
/* === Responsive Adjustments === */
@media (max-width: 1024px) {
  .web-grid,
  .it-grid,
  .social-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .web-grid,
  .it-grid,
  .social-grid {
    grid-template-columns: 1fr;
  }

  .web-item,
  .it-item,
  .social-item {
    text-align: left;
    padding: 1.5rem;
  }

  .service-plans li {
    flex-direction: column;
    align-items: flex-start;
  }

  .service-plans .price {
    margin-left: 0;
    margin-top: 0.3rem;
  }
}

/* === Mobile Edge Padding + Perfect Symmetry Fix === */
@media (max-width: 600px) {
  /* Remove section padding that causes offset */
  .services-section {
    padding: 1.5rem 0; /* ✅ Remove horizontal padding */
  }

  /* Ensure equal margins on both sides of each card */
  .web-item,
  .it-item,
  .social-item {
    width: auto;
    margin: 1rem 1rem; /* ✅ equal space left & right */
    border-radius: 8px;
    box-sizing: border-box;
  }

  /* Prevent parent grid from adding extra offsets */
  .web-grid,
  .it-grid,
  .social-grid {
    padding: 0;
    margin: 0 auto;
    width: 100%;
    box-sizing: border-box;
  }
}

/* Extra-small devices safety */
@media (max-width: 400px) {
  .web-item,
  .it-item,
  .social-item {
    margin: 0.75rem 0.75rem; /* ✅ tighter but symmetrical */
  }
}
