/* Spaces pages */
.crumbs { margin: 0 0 1rem; font-size: .875rem; color: #5b6476; }
.crumbs a { color: var(--teal-deep); text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }
.sp-hero, .sp-intro { padding: 2rem 0 3rem; background: linear-gradient(180deg, var(--teal-tint) 0%, #fff 100%); overflow: hidden; }
.sp-hero__grid { display: grid; gap: 2rem; align-items: center; }
.sp-hero__title { margin: .5rem 0 .5rem; font-size: clamp(2.1rem, 1.5rem + 2.6vw, 3.5rem); line-height: 1.08; letter-spacing: -.02em; text-wrap: balance; }
.sp-hero__tag { margin: 0 0 1rem; font-weight: 600; color: var(--teal-deep); }
.sp-hero__cta { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1.5rem 0 0; }
.sp-hero__media picture, .sp-photo picture, .sp-card__img picture { display: block; }
.sp-hero__media img, .sp-photo img, .sp-card__img img { display: block; width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; }
.sp-hero__media img { border-radius: 28px; box-shadow: 0 24px 48px -24px rgba(41,47,61,.45); }
.sp-intro .t-lead { max-width: 60ch; }
.sp-h2 { margin: .4rem 0 1rem; font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.1rem); line-height: 1.15; letter-spacing: -.01em; }
.sp-h2--light { color: #fff; }
.sp-inc, .sp-photos, .sp-price, .sp-faq, .sp-more, .sp-all { padding: 3rem 0; }
.sp-photos { padding-top: 0; }
.sp-inc__grid { display: grid; gap: 2.5rem; }
.sp-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.sp-list li { position: relative; padding-left: 1.9rem; }
.sp-list li::before { content: ""; position: absolute; left: 0; top: .35em; width: 1.05rem; height: 1.05rem; border-radius: 50%; border: 4px solid var(--teal); }
.sp-chips { list-style: none; margin: .6rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.sp-chips li { padding: .5rem 1rem; border-radius: 999px; background: var(--teal-tint); color: var(--ink); font-weight: 600; font-size: .9rem; }
.sp-photos__grid { display: grid; gap: 1rem; }
.sp-photo { margin: 0; }
.sp-photo img { border-radius: 20px; }
.sp-how { position: relative; overflow: hidden; padding: 3.5rem 0; background: var(--ink); color: #fff; }
.sp-how::before { content: ""; position: absolute; right: -90px; top: -90px; width: 260px; height: 260px; border-radius: 50%; border: 26px solid rgba(85,177,190,.35); }
.sp-how .wrap { position: relative; }
.sp-steps { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: 1.5rem; }
.sp-steps__n { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: var(--teal); color: var(--ink); font-weight: 700; }
.sp-steps__t { margin: .8rem 0 .25rem; font-size: 1.1rem; }
.sp-steps__d { margin: 0; color: #cfd8e3; }
.sp-price__box { display: grid; gap: 1.25rem; padding: 1.75rem; border: 1px solid var(--line); border-radius: 24px; background: var(--paper); }
.sp-price__text { margin: 0; max-width: 60ch; }
.sp-price__links { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0; }
.sp-faq__inner { max-width: 820px; }
.sp-q { border-top: 1px solid var(--line); padding: .25rem 0; }
.sp-q:last-child { border-bottom: 1px solid var(--line); }
.sp-q summary { cursor: pointer; padding: .9rem 0; font-weight: 600; }
.sp-q p { margin: 0 0 1rem; color: #43506a; }
.sp-more { background: var(--paper); }
.sp-more__grid, .sp-all__grid { list-style: none; margin: 1.25rem 0 0; padding: 0; display: grid; gap: 1.25rem; }
.sp-card { display: block; height: 100%; color: inherit; text-decoration: none; background: #fff; border: 1px solid var(--line); border-radius: 22px; overflow: hidden; transition: transform .2s, box-shadow .2s; }
.sp-card:hover { transform: translateY(-4px); box-shadow: 0 18px 36px -22px rgba(41,47,61,.5); }
.sp-card:focus-visible { outline: 3px solid var(--teal); outline-offset: 3px; }
.sp-card__name { display: block; padding: 1rem 1.15rem 0; font-weight: 700; font-size: 1.1rem; }
.sp-card__desc { display: block; padding: .25rem 1.15rem 1.1rem; color: #5b6476; font-size: .95rem; }
.sp-card__go { display: block; padding: 0 1.15rem 1.15rem; color: var(--teal-deep); font-weight: 600; }
.sp-all { padding-top: 1rem; }
@media (min-width: 640px) { .sp-more__grid, .sp-all__grid { grid-template-columns: repeat(2, 1fr); } .sp-photos__grid { grid-template-columns: repeat(2, 1fr); } .sp-steps { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 900px) {
  .sp-hero__grid { grid-template-columns: 1.05fr 1fr; gap: 3.5rem; }
  .sp-inc__grid { grid-template-columns: 1.4fr 1fr; }
  .sp-price__box { grid-template-columns: 1fr auto; align-items: center; padding: 2rem 2.5rem; }
  .sp-all__grid { grid-template-columns: repeat(3, 1fr); }
  .sp-more__grid { grid-template-columns: repeat(4, 1fr); }
}
@media (prefers-reduced-motion: reduce) { .sp-card { transition: none; } .sp-card:hover { transform: none; } }
@media (min-width: 900px) {
  .sp-all__grid { grid-template-columns: repeat(6, 1fr); }
  .sp-all__grid li { grid-column: span 2; }
  .sp-all__grid li:nth-child(n+4) { grid-column: span 3; }
}
.sp-price__amount { margin: 0 0 .25rem; display: flex; align-items: baseline; gap: .6rem; color: #5b6476; }
.sp-price__amount strong { font-size: clamp(2rem, 1.5rem + 2vw, 2.75rem); line-height: 1; color: var(--ink); letter-spacing: -.02em; }
.sp-price__text b { color: var(--teal-deep); }
.sp-gst { font-size: .8rem; font-weight: 600; color: #5b6476; }
.sp-photos__grid:has(.sp-photo:only-child) { grid-template-columns: 1fr; max-width: 820px; }
