/* services.css — Dedicated styles for services.html
   Keeps page-specific rules separate and fully responsive.
   Relies on CSS variables defined in style.css (colors, radii, etc.)
*/

/* Base scope for services page */
/* Use lightweight resets for the page-specific elements */
.services-hero {
  /* match homepage hero layout: full-bleed cinematic */
  position: relative;
  min-height: 100vh;
  display: grid;
  align-items: center;
  padding: calc(var(--topbar-h) + 6rem) 0 5rem;
  overflow: hidden;
  border-radius: 0;
}
.services-hero .hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.services-hero .hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
  opacity: 0.96;
  border-radius: 0;
  transform: scale(1.07);
  transition: transform 7s ease, opacity 0.9s ease;
}
.services-hero .hero__scrim {
  /* reuse the same cinematic scrim as homepage (keeps contrast consistent) */
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(
      180deg,
      rgba(6, 14, 26, 0.62) 0%,
      rgba(6, 14, 26, 0.42) 40%,
      rgba(6, 14, 26, 0.84) 100%
    ),
    linear-gradient(90deg, rgba(6, 14, 26, 0.52), rgba(6, 14, 26, 0.18));
}
.services-hero .hero__inner {
  position: relative;
  z-index: 2;
}
.services-hero h1 {
  margin: 0 0 1.6rem 0;
  font-size: clamp(2rem, 5vw, 4rem);
  line-height: 0.95;
  color: #ffffff;
  font-weight: 800;
}
.services-hero .eyebrow { color: rgba(255,255,255,0.9); }

/* SECTION HEADING */
.section-heading {
  text-align: center;
  margin-bottom: 2.6rem;
}
.section-heading h2 {
  font-size: clamp(1.4rem, 3.6vw, 2rem);
  color: var(--primary);
  margin: 0 0 0.6rem 0;
}
.section-heading .eyebrow { display: inline-block; margin-bottom: 0.9rem; }

/* Services grid — stacked cards layout */
.services-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}

.service-sheet {
  position: relative;
  background: linear-gradient(180deg, #ffffff, #fbfdff);
  border-radius: 14px;
  padding: 1.4rem 1.6rem;
  box-shadow: 0 22px 46px rgba(13,35,64,0.06);
  border: 1px solid rgba(13,35,64,0.06);
  overflow: visible;
  transition: transform 0.45s cubic-bezier(0.22,0.61,0.36,1), box-shadow 0.45s ease;
  will-change: transform, box-shadow;
}

.service-sheet::after {
  /* subtle vertical accent stripe */
  content: "";
  position: absolute;
  inset-block-start: 18px;
  inset-block-end: 18px;
  inset-inline-start: 12px;
  width: 6px;
  border-radius: 6px;
  background: linear-gradient(180deg, rgba(var(--accent-rgb),0.18), rgba(var(--accent-rgb),0.06));
  box-shadow: 0 8px 24px rgba(var(--accent-rgb),0.06);
  opacity: 1;
  pointer-events: none;
}

.service-sheet:hover {
  transform: translateY(-10px);
  box-shadow: 0 44px 90px rgba(13,35,64,0.12);
}
.service-sheet__head {
  display: flex;
  gap: 1rem;
  align-items: center;
}
.service-sheet__num {
  color: var(--accent);
  font-weight: 700;
  background: rgba(var(--accent-rgb),0.06);
  padding: 0.45rem 0.6rem;
  border-radius: 8px;
  font-size: 0.95rem;
}
.service-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, rgba(var(--accent-rgb),0.14), rgba(var(--accent-rgb),0.06));
  color: var(--accent-dark);
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(var(--accent-rgb),0.06);
  flex-shrink: 0;
  transition: transform 0.45s cubic-bezier(0.22,0.61,0.36,1), box-shadow 0.45s ease;
}
.service-sheet h3 {
  margin: 0.6rem 0 0.45rem 0;
  color: var(--primary);
  font-size: 1.05rem;
}
.service-sheet p {
  margin: 0 0 0.8rem 0;
  color: var(--text-muted);
  line-height: 1.6;
}

.service-sheet__list {
  margin: 0.6rem 0 0 1.05rem;
  padding: 0;
  list-style: disc;
  color: var(--text);
  /* collapsed by default — JS will set max-height when opening */
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.42s cubic-bezier(0.22,0.61,0.36,1), opacity 0.28s ease;
  opacity: 0;
}
.service-sheet__list li {
  margin: 0.45rem 0;
  color: var(--text-muted);
  font-size: 0.95rem;
}

/* when sheet is open, make list visible (JS sets explicit maxHeight too) */
.service-sheet.is-open .service-sheet__list {
  opacity: 1;
}

.service-sheet__toggle {
  background: transparent;
  border: 0;
  color: var(--primary);
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  gap: 0.5rem;
  align-items: center;
  padding: 0.45rem 0.6rem;
  border-radius: 8px;
}

/* rotate caret icon when open */
.service-sheet__toggle i {
  transition: transform 0.32s cubic-bezier(0.22,0.61,0.36,1);
  display: inline-block;
}
.service-sheet.is-open .service-sheet__toggle i {
  transform: rotate(180deg);
}

.service-sheet:hover .service-icon { transform: translateY(-6px) rotate(-6deg); }

/* entrance animation for cards (works with the reveal system) */
.service-sheet.reveal.is-visible {
  animation: cardEnter 0.7s cubic-bezier(0.22,0.61,0.36,1) both;
}

@keyframes cardEnter {
  from { opacity: 0; transform: translateY(18px) scale(0.995); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.service-sheet--cta {
  background: rgba(var(--primary-rgb,13,35,64),0.04);
  padding: 1.6rem 1.2rem;
  display: flex;
  gap: 1.2rem;
  align-items: center;
  border-radius: 12px;
}
.service-sheet--cta h3 { margin: 0 0 0.2rem 0; }
.service-sheet--cta p { margin: 0; color: var(--text-muted); }
.service-sheet--cta .btn { margin-left: auto; }

/* Narrow page left offset for nicer visuals (desktop centered container handles it) */
.container.services-wrap { max-width: var(--container); margin: 0 auto; }

/* Booking CTA (footer area) overrides for page-specific styling */
.footer-cta {
  padding-top: 2.4rem;
  padding-bottom: 2.6rem;
}
.footer-cta__inner {
  align-items: center;
}
.booking-form { gap: 0.5rem; }
.booking-form .bf-item input,
.booking-form .bf-item select { font-size: 0.95rem; }
.bf-submit { min-width: 120px; }

/* Accessibility tweaks: make the sr-only labels available to screen readers but not visible */
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }

/* Responsive behaviour */
@media (min-width: 860px) {
  /* On wider screens keep a centered column but allow roomy hero */
  .services-grid { grid-template-columns: 1fr; max-width: 980px; margin: 0 auto; }
  .service-sheet { padding: 1.6rem 1.8rem; }
}

@media (min-width: 1100px) {
  /* two-column layout on wide screens for a modern look; CTA spans full width */
  .services-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 2rem; max-width: var(--container); }
  .service-sheet { padding: 1.6rem 1.8rem; }
  .services-grid .service-sheet--cta { grid-column: 1 / -1; }
  .service-sheet__head { align-items: flex-start; }
  .service-sheet__num { margin-top: 6px; }
}

@media (max-width: 900px) {
  .hero__inner { padding: 3rem 0; }
  .service-sheet { padding: 1rem; }
  .services-hero h1 { font-size: clamp(1.6rem, 7vw, 2.6rem); }
  .booking-form { grid-template-columns: 1fr 1fr; }
  .footer-cta__inner { flex-direction: column; align-items: stretch; }
  /* shift focal point upward on narrower screens to match homepage cropping */
  .services-hero .hero__media img { object-position: center 36%; transform: scale(1.05); }
}

@media (max-width: 620px) {
  .hero__inner { padding: 2rem 0; }
  .services-hero { min-height: 80vh; }
  .section { padding: 3rem 0; }
  .services-grid { gap: 1rem; }
  .service-sheet { border-radius: 10px; padding: 0.9rem; }
  .service-sheet__num { padding: 0.35rem 0.5rem; }
  .service-icon { width: 34px; height: 34px; }
  .services-hero h1 { font-size: 1.6rem; }
  .section-heading h2 { font-size: 1.15rem; }
  .booking-form { grid-template-columns: 1fr; }
  .bf-submit { width: 100%; }
}

@media (max-width: 420px) {
  /* mobile: keep important subject higher so hero text overlays correctly */
  .services-hero .hero__media img { object-position: center 40%; transform: scale(1.03); }
}

/* small tweak for very narrow devices similar to homepage */
@media (max-width: 360px) {
  .services-hero .hero__media img { object-position: center 44%; }
}

@media (prefers-reduced-motion: reduce) {
  .service-sheet,
  .service-sheet .service-icon,
  .service-sheet.reveal.is-visible {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}

/* Minor utility helpers for the services page */
.service-sheet .bi { font-size: 1rem; }

/* Ensure lists inside service sheets don't cause width overflow */
.service-sheet__list { word-break: normal; }

/* Tighten the service-sheet__toggle dropdown styling when translated to english */
.service-sheet__toggle i { font-size: 0.95rem; }

/* Final safety: make the footer-cta and booking form adapt inside narrow header/containers */
.footer-cta__title h2 { color: #fff; }
.footer-cta__title p { color: rgba(255,255,255,0.85); }

/* end services.css */
