/* Basic helpers */
.glass { background: rgba(255,255,255,.55); backdrop-filter: blur(10px); }
@media (prefers-color-scheme: dark){
  .glass { background: rgba(2,6,23,.6); }
}

/* Hide horizontal scrollbar for the mobile button row */
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

/* Ensure section anchor links clear sticky header */
section { scroll-margin-top: 84px; }

.reveal, .reveal-right { opacity: 0; transform: translateY(8px); transition: opacity .6s ease, transform .6s ease; }
.reveal-right { transform: translateX(12px); }
.reveal.show, .reveal-right.show { opacity: 1; transform: translate(0); }


/* Testimonials slider */
.slider-track { transition: transform .35s ease; }
.slide { min-width: 240px; } /* tighter on mobile to avoid blank space */
@media (min-width: 420px){ .slide { min-width: 320px; } }
@media (min-width: 1024px){ .slide { min-width: 420px; } }

.slide {
  border-left: 4px solid transparent;
}
.slide:hover {
  border-left-color: #0ea5e9;
}
.dark .slide:hover {
  border-left-color: #38bdf8;
}

/* Emphasize center (active) review */
.slide.is-active {
  transform: scale(1.05);
  opacity: 1;
  z-index: 5;
  border-color: #0ea5e9 !important;
  box-shadow: 0 8px 24px rgba(14,165,233,0.15);
  transition: all 0.4s ease;
}

/* Dim side reviews slightly */
.slide:not(.is-active) {
  opacity: 0.8;
  transform: scale(0.95);
  transition: all 0.4s ease;
}

.slide::before {
  content: "“";
  position: absolute;
  top: 0.75rem;
  left: 1rem;
  font-size: 4rem;
  color: rgba(14, 165, 233, 0.2);
  font-family: serif;
  line-height: 1;
  pointer-events: none;
}

.slide p {
  margin-top: 1rem;
  font-style: italic;
  line-height: 1.6;
  color: #334155;
}
.dark .slide p {
  color: #cbd5e1;
}


.slide .review-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.slide .reviewer {
  font-weight: 600;
  font-size: 1.05rem;
  color: #0f172a;
}

.dark .slide .reviewer {
  color: #e2e8f0;
}

.slide .stars svg {
  width: 1.1rem;
  height: 1.1rem;
  color: #fbbf24;
  transition: transform 0.2s;
}

.slide:hover .stars svg {
  transform: scale(1.1);
}



.services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.5rem;
  padding-top: 1.5rem;
}




/* Services icons with colored circles centered */
.service-card .icon-wrap{
  width: 80px; height: 80px; border-radius: 9999px;
  display: grid; place-content: center;
  margin: 20px 0px;                /* center the icon bubble */
  color: var(--tone-fg, #0369a1); background: var(--tone-bg, #e0f2fe);
}
.service-card[data-accent="sky"]    { --tone-fg:#0284c7; --tone-bg:#e0f2fe; }
.service-card[data-accent="emerald"]{ --tone-fg:#059669; --tone-bg:#d1fae5; }
.service-card[data-accent="rose"]   { --tone-fg:#e11d48; --tone-bg:#ffe4e6; }
.service-card[data-accent="amber"]  { --tone-fg:#d97706; --tone-bg:#fef3c7; }
.service-card[data-accent="violet"] { --tone-fg:#7c3aed; --tone-bg:#ede9fe; }
.service-card[data-accent="slate"]  { --tone-fg:#334155; --tone-bg:#e2e8f0; }
.service-card.is-active { outline: 2px solid rgba(14,165,233,.25); }

/* Center icon + text inside each card */
.service-card{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
    position: relative;
    overflow: hidden;
    transition: all 0.3s ease;
  }
  .service-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, var(--tw-gradient-from, #0ea5e9), var(--tw-gradient-to, #38bdf8));
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 0;
  }
  .service-card:hover::before {
    opacity: 0.08;
  }
  .service-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 8px 20px rgba(14,165,233,0.15);
  }
  .service-card .icon-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 80px;
    width: 80px;
    border-radius: 50%;
    margin: 0 auto 1rem;
    background: rgba(14,165,233,0.08);
    transition: background 0.3s ease;
  }
  .service-card:hover .icon-wrap {
    background: rgba(14,165,233,0.15);
  }
  .service-card svg {
    width: 40px;
    height: 40px;
    fill: var(--tw-gradient-from, #0ea5e9);
  }
  .service-card:hover svg {
    transform: scale(1.05);
  }






/* Today row highlight in Hours table */
tr.is-today { background: rgba(14,165,233,.06); }
.dark tr.is-today { background: rgba(148,163,184,.12); }

/* FAQ: slightly smaller answers */
.faq .faq-item > div{
  font-size: 0.93rem;
  line-height: 1.6;
}
@media (max-width: 640px){
  .faq .faq-item > div{ font-size: 0.9rem; }
}

/* Small fade-in */
.fade-in { animation: fade .5s ease both; }
@keyframes fade{ from{opacity:0; transform: translateY(6px)} to{opacity:1; transform:none} }

/* Reduce accidental oversized whitespace on very small screens */
@media (max-width: 360px){
  h1 { word-break: break-word; }
}

/* Improve focus outlines (a11y) */
:focus-visible { outline: 2px solid rgba(14,165,233,.6); outline-offset: 2px; }
