@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Inter:wght@400;500;600;700&display=swap');

:root {
  --steluni-ink: #1E1A16;
  --steluni-ink-soft: #3B342D;
  --steluni-muted: #6B6259;
  --steluni-cream: #F4EDE2;
  --steluni-cream-deep: #E6D9C3;
  --steluni-terracotta: #B05A34;
  --steluni-terracotta-dark: #8E4526;
  --steluni-terracotta-soft: #E8C8B6;
  --steluni-forest: #2C3A2F;
  --steluni-forest-deep: #1E2A22;
  --steluni-gold: #C9A961;
  --steluni-white: #FFFFFF;
  --steluni-shadow: 0 24px 60px -30px rgba(30, 26, 22, 0.45);
  --steluni-shadow-soft: 0 14px 40px -22px rgba(30, 26, 22, 0.3);
  --steluni-radius: 22px;
  --steluni-radius-sm: 12px;
  --steluni-font-display: 'Cormorant Garamond', 'Playfair Display', Georgia, 'Times New Roman', serif;
  --steluni-font-body: 'Inter', 'Helvetica Neue', Arial, sans-serif;
  --steluni-transition: 0.32s ease;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--steluni-font-body);
  font-size: 1rem;
  line-height: 1.7;
  color: var(--steluni-ink);
  background-color: var(--steluni-cream);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--steluni-font-display);
  font-weight: 600;
  color: var(--steluni-ink);
  line-height: 1.12;
  letter-spacing: -0.012em;
  margin: 0 0 0.7em;
}

h1 { font-size: clamp(2.5rem, 5.2vw, 4.25rem); font-weight: 500; }
h2 { font-size: clamp(1.95rem, 3.6vw, 2.9rem); font-weight: 500; }
h3 { font-size: clamp(1.4rem, 2.4vw, 1.85rem); }
h4 { font-size: clamp(1.15rem, 1.9vw, 1.4rem); }

p {
  margin: 0 0 1.05rem;
  color: var(--steluni-ink-soft);
  font-size: 1.0325rem;
}

p:last-child { margin-bottom: 0; }

a {
  color: var(--steluni-terracotta-dark);
  text-decoration: none;
  transition: color var(--steluni-transition);
}
a:hover, a:focus { color: var(--steluni-terracotta); }

img { max-width: 100%; height: auto; display: block; }

.container { max-width: 1180px; }

main { display: block; }

.steluni-section {
  padding: clamp(4rem, 8vw, 7rem) 0;
  position: relative;
}

.steluni-section--tight { padding: clamp(3rem, 5vw, 4.5rem) 0; }

.steluni-section--cream { background-color: var(--steluni-cream); }
.steluni-section--cream-deep { background-color: var(--steluni-cream-deep); }
.steluni-section--forest { background-color: var(--steluni-forest); color: var(--steluni-cream); }
.steluni-section--forest h2,
.steluni-section--forest h3,
.steluni-section--forest p { color: var(--steluni-cream); }

.steluni-section--photo {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: var(--steluni-white);
  padding: clamp(5rem, 10vw, 9rem) 0;
}
.steluni-section--photo h2,
.steluni-section--photo h3,
.steluni-section--photo p { color: var(--steluni-white); }

.steluni-eyebrow {
  display: inline-block;
  font-family: var(--steluni-font-body);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--steluni-terracotta-dark);
  margin-bottom: 1rem;
  position: relative;
  padding-left: 2.2rem;
}
.steluni-eyebrow::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 1.6rem;
  height: 1px;
  background: currentColor;
  transform: translateY(-50%);
}
.steluni-section--forest .steluni-eyebrow,
.steluni-section--photo .steluni-eyebrow { color: var(--steluni-gold); }

.steluni-lead {
  font-size: 1.15rem;
  color: var(--steluni-muted);
  max-width: 62ch;
}

.steluni-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-family: var(--steluni-font-body);
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  padding: 0.95rem 1.9rem;
  border-radius: 999px;
  border: 1px solid transparent;
  text-decoration: none;
  cursor: pointer;
  transition: transform var(--steluni-transition), background-color var(--steluni-transition), color var(--steluni-transition), box-shadow var(--steluni-transition);
  line-height: 1.2;
}
.steluni-btn:hover { transform: translateY(-2px); }
.steluni-btn:focus-visible { outline: 3px solid var(--steluni-gold); outline-offset: 3px; }

.steluni-btn--primary {
  background-color: var(--steluni-terracotta);
  color: var(--steluni-white);
  box-shadow: var(--steluni-shadow-soft);
}
.steluni-btn--primary:hover { background-color: var(--steluni-terracotta-dark); color: var(--steluni-white); }

.steluni-btn--ghost {
  background-color: transparent;
  color: var(--steluni-ink);
  border-color: currentColor;
}
.steluni-btn--ghost:hover { background-color: var(--steluni-ink); color: var(--steluni-cream); }

.steluni-btn--light {
  background-color: var(--steluni-cream);
  color: var(--steluni-ink);
}
.steluni-btn--light:hover { background-color: var(--steluni-white); color: var(--steluni-ink); }

.steluni-btn--gold {
  background-color: var(--steluni-gold);
  color: var(--steluni-ink);
}
.steluni-btn--gold:hover { background-color: #b8954f; color: var(--steluni-ink); }

.steluni-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 1030;
  background-color: rgba(244, 237, 226, 0.92);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(30, 26, 22, 0.06);
  transition: background-color var(--steluni-transition), box-shadow var(--steluni-transition), padding var(--steluni-transition);
  padding: 0.9rem 0;
}
.steluni-header--scrolled {
  background-color: rgba(244, 237, 226, 0.98);
  box-shadow: 0 8px 24px -18px rgba(30, 26, 22, 0.5);
  padding: 0.55rem 0;
}
.steluni-header .navbar-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  font-family: var(--steluni-font-display);
  font-size: 1.6rem;
  font-weight: 600;
  color: var(--steluni-ink);
  letter-spacing: -0.01em;
}
.steluni-header .navbar-brand:hover { color: var(--steluni-terracotta-dark); }
.steluni-header .nav-link {
  font-family: var(--steluni-font-body);
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--steluni-ink);
  padding: 0.4rem 0.9rem;
  position: relative;
}
.steluni-header .nav-link::after {
  content: "";
  position: absolute;
  left: 0.9rem;
  right: 0.9rem;
  bottom: 0;
  height: 1px;
  background: var(--steluni-terracotta);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--steluni-transition);
}
.steluni-header .nav-link:hover::after,
.steluni-header .nav-link.active::after { transform: scaleX(1); }
.steluni-header .navbar-toggler {
  border: 1px solid rgba(30, 26, 22, 0.15);
  padding: 0.35rem 0.6rem;
  border-radius: 10px;
  color: var(--steluni-ink);
}
.steluni-header .navbar-toggler:focus { box-shadow: 0 0 0 3px rgba(176, 90, 52, 0.25); }

.steluni-header__meta {
  display: flex;
  align-items: center;
  gap: 1.1rem;
  font-size: 0.85rem;
  color: var(--steluni-muted);
}
.steluni-header__meta a { color: var(--steluni-ink); font-weight: 500; }
.steluni-header__meta i { color: var(--steluni-terracotta); margin-right: 0.35rem; }

.steluni-hero {
  position: relative;
  min-height: 88vh;
  display: flex;
  align-items: center;
  color: var(--steluni-white);
  margin-top: 5.5rem;
  overflow: hidden;
}
.steluni-hero .carousel,
.steluni-hero .carousel-inner,
.steluni-hero .carousel-item {
  min-height: 88vh;
}
.steluni-hero .carousel-item {
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
}
.steluni-hero__content {
  position: relative;
  z-index: 2;
  max-width: 660px;
  padding: 5rem 0;
}
.steluni-hero__content h1 {
  color: var(--steluni-white);
  font-weight: 500;
  margin-bottom: 1.2rem;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35);
}
.steluni-hero__content p {
  color: rgba(255, 255, 255, 0.92);
  font-size: 1.13rem;
  margin-bottom: 1.9rem;
  max-width: 52ch;
}
.steluni-hero__actions { display: flex; gap: 1rem; flex-wrap: wrap; }
.steluni-hero .carousel-control-prev,
.steluni-hero .carousel-control-next {
  width: 56px;
  opacity: 0.85;
}
.steluni-hero .carousel-control-prev:hover,
.steluni-hero .carousel-control-next:hover { opacity: 1; }
.steluni-hero__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.55rem 1.1rem;
  border-radius: 999px;
  background-color: rgba(244, 237, 226, 0.14);
  border: 1px solid rgba(244, 237, 226, 0.35);
  color: var(--steluni-cream);
  font-size: 0.8rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 1.4rem;
}
.steluni-hero__badge i { color: var(--steluni-gold); }

.steluni-page-hero {
  position: relative;
  min-height: 55vh;
  display: flex;
  align-items: center;
  color: var(--steluni-white);
  margin-top: 5.5rem;
  background-size: cover;
  background-position: center;
}
.steluni-page-hero__content {
  position: relative;
  z-index: 2;
  max-width: 780px;
  padding: 5rem 0 4rem;
}
.steluni-page-hero h1 { color: var(--steluni-white); }
.steluni-page-hero p { color: rgba(255, 255, 255, 0.92); font-size: 1.1rem; max-width: 60ch; }

.steluni-card {
  background-color: var(--steluni-white);
  border-radius: var(--steluni-radius);
  box-shadow: var(--steluni-shadow-soft);
  overflow: hidden;
  height: 100%;
  display: flex;
  flex-direction: column;
  transition: transform var(--steluni-transition), box-shadow var(--steluni-transition);
}
.steluni-card:hover { transform: translateY(-4px); box-shadow: var(--steluni-shadow); }

.steluni-service-card {
  background-color: var(--steluni-white);
  border-radius: var(--steluni-radius);
  overflow: hidden;
  height: 100%;
  display: flex;
  flex-direction: column;
  box-shadow: var(--steluni-shadow-soft);
  transition: transform var(--steluni-transition), box-shadow var(--steluni-transition);
}
.steluni-service-card:hover { transform: translateY(-6px); box-shadow: var(--steluni-shadow); }
.steluni-service-card__media {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background-color: var(--steluni-cream-deep);
  position: relative;
}
.steluni-service-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.steluni-service-card:hover .steluni-service-card__media img { transform: scale(1.06); }
.steluni-service-card__body {
  padding: 1.6rem 1.6rem 1.8rem;
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  flex: 1;
}
.steluni-service-card__tag {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--steluni-terracotta-dark);
}
.steluni-service-card__title {
  font-family: var(--steluni-font-display);
  font-size: 1.5rem;
  margin: 0;
  color: var(--steluni-ink);
}
.steluni-service-card__text {
  color: var(--steluni-muted);
  font-size: 0.97rem;
  margin: 0;
  flex: 1;
}
.steluni-service-card__link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--steluni-terracotta-dark);
  margin-top: 0.4rem;
}
.steluni-service-card__link i { transition: transform var(--steluni-transition); }
.steluni-service-card__link:hover i { transform: translateX(4px); }

.steluni-feature {
  padding: 2rem 1.6rem;
  border-radius: var(--steluni-radius);
  background-color: var(--steluni-white);
  box-shadow: var(--steluni-shadow-soft);
  height: 100%;
  transition: transform var(--steluni-transition);
}
.steluni-feature:hover { transform: translateY(-4px); }
.steluni-feature__icon {
  width: 56px;
  height: 56px;
  border-radius: 16px;
  background-color: var(--steluni-terracotta-soft);
  color: var(--steluni-terracotta-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  margin-bottom: 1.2rem;
}
.steluni-feature h3 { font-size: 1.3rem; margin-bottom: 0.5rem; }
.steluni-feature p { font-size: 0.97rem; color: var(--steluni-muted); margin: 0; }

.steluni-stat {
  text-align: center;
  padding: 1.2rem 0.5rem;
}
.steluni-stat__number {
  font-family: var(--steluni-font-display);
  font-size: clamp(2.4rem, 4vw, 3.4rem);
  font-weight: 500;
  color: var(--steluni-terracotta-dark);
  line-height: 1;
  margin-bottom: 0.4rem;
}
.steluni-section--forest .steluni-stat__number { color: var(--steluni-gold); }
.steluni-stat__label {
  font-size: 0.82rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--steluni-muted);
}
.steluni-section--forest .steluni-stat__label { color: rgba(244, 237, 226, 0.75); }

.steluni-team-card {
  text-align: center;
  height: 100%;
}
.steluni-team-card__photo {
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border-radius: var(--steluni-radius);
  background-color: var(--steluni-cream-deep);
  margin-bottom: 1.1rem;
  box-shadow: var(--steluni-shadow-soft);
}
.steluni-team-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.steluni-team-card:hover .steluni-team-card__photo img { transform: scale(1.05); }
.steluni-team-card__name {
  font-family: var(--steluni-font-display);
  font-size: 1.35rem;
  margin: 0 0 0.15rem;
}
.steluni-team-card__role {
  font-size: 0.85rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--steluni-terracotta-dark);
  margin-bottom: 0.6rem;
}
.steluni-team-card__bio {
  font-size: 0.94rem;
  color: var(--steluni-muted);
  margin: 0;
}

.steluni-testimonial {
  background-color: var(--steluni-white);
  border-radius: var(--steluni-radius);
  padding: 2.2rem 1.9rem;
  box-shadow: var(--steluni-shadow-soft);
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}
.steluni-testimonial__quote {
  font-family: var(--steluni-font-display);
  font-size: 1.22rem;
  line-height: 1.5;
  color: var(--steluni-ink);
  font-style: italic;
  margin: 0;
  flex: 1;
}
.steluni-testimonial__person {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  border-top: 1px solid rgba(30, 26, 22, 0.08);
  padding-top: 1.1rem;
}
.steluni-testimonial__avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background-color: var(--steluni-cream-deep);
}
.steluni-testimonial__avatar img { width: 100%; height: 100%; object-fit: cover; }
.steluni-testimonial__name { font-weight: 600; font-size: 0.95rem; color: var(--steluni-ink); }
.steluni-testimonial__meta { font-size: 0.82rem; color: var(--steluni-muted); }
.steluni-testimonial__stars { color: var(--steluni-gold); font-size: 0.92rem; letter-spacing: 0.1em; }

.steluni-timeline {
  position: relative;
  padding-left: 2.4rem;
}
.steluni-timeline::before {
  content: "";
  position: absolute;
  left: 0.6rem;
  top: 0.4rem;
  bottom: 0.4rem;
  width: 2px;
  background: var(--steluni-terracotta-soft);
}
.steluni-timeline__item {
  position: relative;
  padding-bottom: 2rem;
}
.steluni-timeline__item:last-child { padding-bottom: 0; }
.steluni-timeline__item::before {
  content: "";
  position: absolute;
  left: -2.2rem;
  top: 0.4rem;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--steluni-terracotta);
  box-shadow: 0 0 0 4px var(--steluni-cream);
}
.steluni-timeline__year {
  font-family: var(--steluni-font-display);
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--steluni-terracotta-dark);
  margin-bottom: 0.3rem;
}
.steluni-timeline__title {
  font-family: var(--steluni-font-display);
  font-size: 1.2rem;
  margin: 0 0 0.3rem;
}
.steluni-timeline__text { color: var(--steluni-muted); margin: 0; font-size: 0.95rem; }

.steluni-process {
  list-style: none;
  padding: 0;
  margin: 0;
  counter-reset: step;
  display: grid;
  gap: 1.5rem;
}
.steluni-process__item {
  position: relative;
  background-color: var(--steluni-white);
  padding: 1.5rem 1.6rem 1.5rem 4.8rem;
  border-radius: var(--steluni-radius);
  box-shadow: var(--steluni-shadow-soft);
  counter-increment: step;
}
.steluni-process__item::before {
  content: counter(step, decimal-leading-zero);
  position: absolute;
  left: 1.5rem;
  top: 1.4rem;
  font-family: var(--steluni-font-display);
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--steluni-terracotta-dark);
}
.steluni-process__title {
  font-family: var(--steluni-font-display);
  font-size: 1.2rem;
  margin: 0 0 0.35rem;
}
.steluni-process__text { color: var(--steluni-muted); margin: 0; font-size: 0.95rem; }

.steluni-pricing {
  display: grid;
  gap: 1.4rem;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
.steluni-pricing__card {
  background-color: var(--steluni-white);
  border-radius: var(--steluni-radius);
  padding: 2rem 1.8rem;
  box-shadow: var(--steluni-shadow-soft);
  display: flex;
  flex-direction: column;
  gap: 1rem;
  position: relative;
  border: 1px solid transparent;
  transition: transform var(--steluni-transition), border-color var(--steluni-transition);
}
.steluni-pricing__card:hover { transform: translateY(-4px); }
.steluni-pricing__card--highlight {
  border-color: var(--steluni-terracotta);
  background: linear-gradient(160deg, #fdf8f0 0%, #f4ede2 100%);
}
.steluni-pricing__name {
  font-family: var(--steluni-font-display);
  font-size: 1.4rem;
  margin: 0;
}
.steluni-pricing__price {
  font-family: var(--steluni-font-display);
  font-size: 2.4rem;
  font-weight: 500;
  color: var(--steluni-terracotta-dark);
  line-height: 1;
  margin: 0;
}
.steluni-pricing__price small {
  font-size: 0.85rem;
  font-weight: 400;
  color: var(--steluni-muted);
  margin-left: 0.3rem;
}
.steluni-pricing__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.steluni-pricing__list li {
  display: flex;
  gap: 0.6rem;
  align-items: flex-start;
  font-size: 0.95rem;
  color: var(--steluni-ink-soft);
}
.steluni-pricing__list i { color: var(--steluni-terracotta); margin-top: 0.35rem; }

.steluni-gallery {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(3, 1fr);
}
.steluni-gallery__item {
  position: relative;
  overflow: hidden;
  border-radius: var(--steluni-radius-sm);
  aspect-ratio: 4 / 3;
  background-color: var(--steluni-cream-deep);
}
.steluni-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.steluni-gallery__item:hover img { transform: scale(1.06); }
.steluni-gallery__caption {
  position: absolute;
  inset: auto 0 0 0;
  padding: 1rem 1.1rem;
  font-size: 0.85rem;
  color: var(--steluni-white);
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.72) 100%);
}
.steluni-gallery__item--wide { grid-column: span 2; }

.steluni-faq .accordion-item {
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(30, 26, 22, 0.12);
  border-radius: 0;
  margin-bottom: 0;
}
.steluni-faq .accordion-button {
  background-color: transparent;
  color: var(--steluni-ink);
  font-family: var(--steluni-font-display);
  font-size: 1.2rem;
  font-weight: 600;
  padding: 1.4rem 0;
  box-shadow: none;
}
.steluni-faq .accordion-button:not(.collapsed) { color: var(--steluni-terracotta-dark); background-color: transparent; }
.steluni-faq .accordion-button:focus { box-shadow: none; border-color: transparent; }
.steluni-faq .accordion-body {
  padding: 0 0 1.4rem;
  color: var(--steluni-muted);
  font-size: 0.98rem;
}

.steluni-form {
  background-color: var(--steluni-white);
  border-radius: var(--steluni-radius);
  padding: clamp(1.8rem, 4vw, 2.8rem);
  box-shadow: var(--steluni-shadow-soft);
}
.steluni-form .form-label {
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--steluni-ink);
  margin-bottom: 0.4rem;
}
.steluni-form .form-control,
.steluni-form .form-select {
  border: 1px solid rgba(30, 26, 22, 0.16);
  border-radius: 10px;
  padding: 0.8rem 1rem;
  font-size: 0.97rem;
  background-color: #FBF7EF;
  color: var(--steluni-ink);
  transition: border-color var(--steluni-transition), box-shadow var(--steluni-transition);
}
.steluni-form .form-control:focus,
.steluni-form .form-select:focus {
  border-color: var(--steluni-terracotta);
  box-shadow: 0 0 0 3px rgba(176, 90, 52, 0.18);
  background-color: var(--steluni-white);
}
.steluni-form .form-control::placeholder { color: #9a9188; }
.steluni-form .form-check-label { font-size: 0.9rem; color: var(--steluni-muted); }
.steluni-form .form-check-input:checked {
  background-color: var(--steluni-terracotta);
  border-color: var(--steluni-terracotta);
}
.steluni-form .form-control.is-invalid,
.steluni-form .form-select.is-invalid {
  border-color: #B02A37;
  background-color: #FBEFEF;
}

.steluni-footer {
  background-color: var(--steluni-forest-deep);
  color: rgba(244, 237, 226, 0.82);
  padding: clamp(3.5rem, 6vw, 5rem) 0 2rem;
}
.steluni-footer h3 {
  color: var(--steluni-cream);
  font-size: 1.15rem;
  margin-bottom: 1.2rem;
}
.steluni-footer a { color: rgba(244, 237, 226, 0.82); }
.steluni-footer a:hover { color: var(--steluni-gold); }
.steluni-footer p { color: rgba(244, 237, 226, 0.7); font-size: 0.94rem; }
.steluni-footer__brand {
  font-family: var(--steluni-font-display);
  font-size: 1.8rem;
  color: var(--steluni-cream);
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  margin-bottom: 1rem;
}
.steluni-footer__list { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.55rem; font-size: 0.94rem; }
.steluni-footer__contact { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.7rem; font-size: 0.94rem; }
.steluni-footer__contact i { color: var(--steluni-gold); margin-right: 0.55rem; }
.steluni-footer__bottom {
  margin-top: 2.8rem;
  padding-top: 1.6rem;
  border-top: 1px solid rgba(244, 237, 226, 0.14);
  font-size: 0.84rem;
  color: rgba(244, 237, 226, 0.6);
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: space-between;
}
.steluni-footer__social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid rgba(244, 237, 226, 0.28);
  color: var(--steluni-cream);
  margin-right: 0.6rem;
  transition: background-color var(--steluni-transition), color var(--steluni-transition);
}
.steluni-footer__social a:hover { background-color: var(--steluni-gold); color: var(--steluni-ink); border-color: var(--steluni-gold); }

.steluni-backtop {
  position: fixed;
  right: 1.4rem;
  bottom: 1.4rem;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background-color: var(--steluni-terracotta);
  color: var(--steluni-white);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  box-shadow: var(--steluni-shadow-soft);
  opacity: 0;
  pointer-events: none;
  transform: translateY(16px);
  transition: opacity var(--steluni-transition), transform var(--steluni-transition), background-color var(--steluni-transition);
  z-index: 1020;
}
.steluni-backtop--visible { opacity: 1; pointer-events: auto; transform: translateY(0); }
.steluni-backtop:hover { background-color: var(--steluni-terracotta-dark); }

.steluni-cookie {
  position: fixed;
  left: 1.2rem;
  right: 1.2rem;
  bottom: 1.2rem;
  z-index: 1060;
  max-width: 760px;
  margin: 0 auto;
  background-color: #FBF5EA;
  border: 1px solid rgba(30, 26, 22, 0.08);
  border-radius: 22px;
  box-shadow: 0 30px 60px -30px rgba(30, 26, 22, 0.55);
  padding: 1.3rem 1.4rem;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.steluni-cookie--visible { opacity: 1; transform: translateY(0); }
.steluni-cookie__inner {
  display: flex;
  gap: 1.2rem;
  align-items: center;
  flex-wrap: wrap;
}
.steluni-cookie__text {
  flex: 1 1 320px;
  display: flex;
  gap: 1rem;
  align-items: flex-start;
}
.steluni-cookie__badge {
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background-color: var(--steluni-terracotta-soft);
  color: var(--steluni-terracotta-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  flex-shrink: 0;
}
.steluni-cookie__title {
  font-family: var(--steluni-font-display);
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--steluni-ink);
  margin: 0 0 0.25rem;
}
.steluni-cookie__desc {
  font-size: 0.9rem;
  color: var(--steluni-muted);
  margin: 0;
  line-height: 1.55;
}
.steluni-cookie__link {
  color: var(--steluni-terracotta-dark);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.steluni-cookie__link:hover { color: var(--steluni-terracotta); }
.steluni-cookie__actions {
  display: flex;
  gap: 0.6rem;
  flex-wrap: wrap;
  margin-left: auto;
}
.steluni-cookie__btn {
  font-family: var(--steluni-font-body);
  font-size: 0.86rem;
  font-weight: 600;
  padding: 0.65rem 1.2rem;
  border-radius: 999px;
  border: 1px solid transparent;
  cursor: pointer;
  line-height: 1.2;
  transition: background-color var(--steluni-transition), color var(--steluni-transition), border-color var(--steluni-transition), transform var(--steluni-transition);
}
.steluni-cookie__btn:hover { transform: translateY(-1px); }
.steluni-cookie__btn:focus-visible { outline: 3px solid var(--steluni-gold); outline-offset: 2px; }
.steluni-cookie__btn--decline {
  background: transparent;
  color: var(--steluni-ink);
  border-color: rgba(30, 26, 22, 0.22);
}
.steluni-cookie__btn--decline:hover { background-color: rgba(30, 26, 22, 0.06); }
.steluni-cookie__btn--accept {
  background-color: var(--steluni-terracotta);
  color: var(--steluni-white);
}
.steluni-cookie__btn--accept:hover { background-color: var(--steluni-terracotta-dark); color: var(--steluni-white); }

.steluni-cta-panel {
  background: linear-gradient(135deg, var(--steluni-terracotta) 0%, var(--steluni-terracotta-dark) 100%);
  border-radius: var(--steluni-radius);
  padding: clamp(2rem, 5vw, 3.4rem);
  color: var(--steluni-white);
  display: flex;
  flex-wrap: wrap;
  gap: 1.6rem;
  align-items: center;
  justify-content: space-between;
}
.steluni-cta-panel h2 { color: var(--steluni-white); margin-bottom: 0.4rem; }
.steluni-cta-panel p { color: rgba(255, 255, 255, 0.9); margin: 0; max-width: 52ch; }

.steluni-schedule {
  display: grid;
  gap: 0.8rem;
}
.steluni-schedule__row {
  display: grid;
  grid-template-columns: 110px 1fr auto;
  gap: 1rem;
  align-items: center;
  padding: 1rem 1.2rem;
  background-color: var(--steluni-white);
  border-radius: var(--steluni-radius-sm);
  box-shadow: var(--steluni-shadow-soft);
  font-size: 0.95rem;
}
.steluni-schedule__time {
  font-family: var(--steluni-font-display);
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--steluni-terracotta-dark);
}
.steluni-schedule__name { font-weight: 600; color: var(--steluni-ink); }
.steluni-schedule__level { font-size: 0.82rem; color: var(--steluni-muted); }

.steluni-map {
  border-radius: var(--steluni-radius);
  overflow: hidden;
  box-shadow: var(--steluni-shadow-soft);
  aspect-ratio: 16 / 10;
}
.steluni-map iframe { width: 100%; height: 100%; border: 0; display: block; }

.steluni-divider {
  width: 64px;
  height: 3px;
  background-color: var(--steluni-terracotta);
  border-radius: 999px;
  margin: 1.4rem 0;
}
.steluni-section--forest .steluni-divider { background-color: var(--steluni-gold); }

.steluni-img-frame {
  border-radius: var(--steluni-radius);
  overflow: hidden;
  box-shadow: var(--steluni-shadow);
  aspect-ratio: 4 / 5;
  background-color: var(--steluni-cream-deep);
}
.steluni-img-frame img { width: 100%; height: 100%; object-fit: cover; }

.steluni-legal {
  padding: clamp(3rem, 6vw, 5rem) 0;
}
.steluni-legal h1 { font-size: clamp(2.1rem, 4vw, 3.2rem); }
.steluni-legal h2 { font-size: clamp(1.5rem, 2.4vw, 2rem); margin-top: 2rem; }
.steluni-legal h3 { font-size: 1.2rem; margin-top: 1.4rem; }
.steluni-legal p,
.steluni-legal li { color: var(--steluni-ink-soft); font-size: 0.98rem; }
.steluni-legal ul { padding-left: 1.2rem; }

@media (max-width: 991.98px) {
  .steluni-hero { min-height: 78vh; margin-top: 5rem; }
  .steluni-hero .carousel, .steluni-hero .carousel-inner, .steluni-hero .carousel-item { min-height: 78vh; }
  .steluni-header__meta { display: none; }
  .steluni-gallery { grid-template-columns: repeat(2, 1fr); }
  .steluni-gallery__item--wide { grid-column: span 2; }
}

@media (max-width: 767.98px) {
  .steluni-hero__content { padding: 4rem 0 3rem; }
  .steluni-hero__content h1 { font-size: clamp(2rem, 8vw, 2.8rem); }
  .steluni-cookie__actions { width: 100%; justify-content: flex-start; margin-left: 0; }
  .steluni-cookie { padding: 1.1rem 1.1rem; }
  .steluni-gallery { grid-template-columns: 1fr; }
  .steluni-gallery__item--wide { grid-column: auto; }
  .steluni-schedule__row { grid-template-columns: 1fr; gap: 0.3rem; }
  .steluni-footer__bottom { flex-direction: column; }
  .steluni-header .navbar-collapse {
    background-color: var(--steluni-cream);
    margin-top: 0.8rem;
    padding: 1rem;
    border-radius: var(--steluni-radius-sm);
    box-shadow: var(--steluni-shadow-soft);
  }
}
/* --- QA fixes: about page --- */

/* Gold "Open in Maps" button inside footer: footer link colour was overriding button text */
.steluni-footer a.steluni-btn--gold,
.steluni-footer a.steluni-btn--gold:hover,
.steluni-footer a.steluni-btn--gold:focus {
  color: #1E1A16;
}

/* Eyebrow on photo/page heroes sits on a dark image overlay - use light ink */
.steluni-page-hero .steluni-eyebrow,
.steluni-hero .steluni-eyebrow {
  color: #F4EDE2;
}
.steluni-page-hero .steluni-eyebrow::before,
.steluni-hero .steluni-eyebrow::before {
  background: currentColor;
}

/* Fixed header never overlaps the page hero on tablet/mobile */
@media (max-width: 991.98px) {
  .steluni-page-hero {
    margin-top: 9rem;
  }
}
@media (max-width: 575.98px) {
  .steluni-page-hero {
    margin-top: 9.5rem;
  }
}

/* --- QA fixes: contrast + fixed-header spacing --- */

/* Footer gold CTA: footer link colour was overriding the button's dark text */
.steluni-footer a.steluni-btn--gold,
.steluni-footer a.steluni-btn--gold:visited,
.steluni-footer a.steluni-btn--gold:hover,
.steluni-footer a.steluni-btn--gold:focus {
  color: var(--steluni-ink);
}
.steluni-footer a.steluni-btn--gold i {
  color: var(--steluni-ink);
}

/* Eyebrow inside dark photo heroes: terracotta on a dark image was unreadable */
.steluni-page-hero .steluni-eyebrow,
.steluni-hero .steluni-eyebrow {
  color: var(--steluni-cream);
}
.steluni-page-hero .steluni-eyebrow::before,
.steluni-hero .steluni-eyebrow::before {
  background: currentColor;
}

/* The fixed header grows taller than 5.5rem on small screens because the brand
   logo renders larger than its declared height, so the hero needs more clearance. */
@media (max-width: 991.98px) {
  .steluni-page-hero { margin-top: 9rem; }
}
@media (max-width: 767.98px) {
  .steluni-page-hero { margin-top: 9rem; }
}

/* ---- Contacts page fixes: contrast ---- */

/* Eyebrow sits on a dark photo overlay in the page hero — use the cream tone */
.steluni-page-hero .steluni-eyebrow,
.steluni-page-hero .steluni-eyebrow::before {
  color: #F4EDE2;
}

/* The footer link colour was overriding the gold button's dark text */
.steluni-footer a.steluni-btn--gold,
.steluni-footer a.steluni-btn--gold:visited,
.steluni-footer a.steluni-btn--gold:hover,
.steluni-footer a.steluni-btn--gold:focus {
  color: #1E1A16;
}

/* ---- Contacts page fixes: fixed header clearance on small screens ---- */
@media (max-width: 991.98px) {
  .steluni-page-hero {
    margin-top: 9rem;
  }
}

/* ---- Terms & Conditions page: fixed-header clearance on mobile ---- */
/* Margin on the hero can collapse through <main>/<body>, so use padding on the
   page wrapper instead and drop the hero margin on small screens. */
@media (max-width: 991.98px) {
  main {
    padding-top: 9.5rem;
  }
  main > .steluni-page-hero,
  main > .steluni-hero {
    margin-top: 0;
  }
}

/* ---- Privacy page fixes: fixed-header clearance ---- */
/* The hero used a collapsing top margin to clear the fixed header, which is
   unreliable once the header grows taller on small screens. Pad the page flow
   instead so the header can never cover the hero. */
main {
  padding-top: 6.5rem;
}
.steluni-hero,
.steluni-page-hero {
  margin-top: 0;
}

@media (max-width: 991.98px) {
  main {
    padding-top: 10rem;
  }
  .steluni-hero,
  .steluni-page-hero,
  .steluni-page-hero {
    margin-top: 0;
  }
}

/* ---- Testimonial cards (forest section): keep quote text readable ----
   The dark-section paragraph colour rule (.steluni-section--forest p) was
   painting the cream tone on the white card, so the quote faded into the
   card background. Restore dark ink and let the quote flow naturally
   instead of stretching (flex: 1) which created a gap before the author. */
.steluni-section--forest .steluni-testimonial p.steluni-testimonial__quote,
.steluni-testimonial p.steluni-testimonial__quote {
  color: var(--steluni-ink);
  flex: 0 0 auto;
  overflow: visible;
  -webkit-line-clamp: none;
  display: block;
  max-height: none;
}

.steluni-testimonial .steluni-testimonial__quote {
  margin: 0;
}

.steluni-testimonial .steluni-testimonial__person {
  margin-top: 0;
}

/* Cards size to their own content on stacked mobile cards rather than
   stretching to fill an equal-height row, so no blank space appears. */
@media (max-width: 767.98px) {
  .steluni-section--forest .steluni-testimonial {
    height: auto;
    gap: 1rem;
    padding: 1.7rem 1.5rem;
  }
  .steluni-section--forest .steluni-testimonial__quote {
    font-size: 1.1rem;
    line-height: 1.55;
  }
}

/* ---- Testimonials remain readable underneath the fixed overlays ----
   The cookie consent banner (and the fixed header) sit on top of the page
   flow, so cards behind them looked clipped/obscured on small screens.
   Reserve space at the end of the page for the banner and add a scroll
   margin to testimonial cards so neither overlay can cover quote text. */
.steluni-testimonial {
  scroll-margin-top: 8rem;
}

@media (max-width: 767.98px) {
  body {
    padding-bottom: 15rem;
  }
  .steluni-section--forest .steluni-testimonial {
    scroll-margin-top: 9rem;
    scroll-margin-bottom: 14rem;
  }
}

/* ---- Footer on small screens: remove oversized blank strip ----
   The stacked footer columns are unreachable behind the fixed cookie banner,
   and the row without explicit gutters left a tall empty gap between the
   "Open in Maps" button and the "Company details" block. Tighten the vertical
   spacing between the stacked blocks on mobile while leaving desktop intact. */
@media (max-width: 991.98px) {
  .steluni-footer .row.mt-5 {
    margin-top: 1.75rem !important;
  }
  .steluni-footer .steluni-map {
    aspect-ratio: 4 / 3;
  }
}
@media (max-width: 767.98px) {
  .steluni-footer .row.g-5 {
    --bs-gutter-y: 1.5rem;
  }
  .steluni-footer .row.mt-5 {
    margin-top: 1.5rem !important;
  }
  .steluni-footer .row.mt-5 > .col-lg-4 > div.mt-4 {
    margin-top: 1rem !important;
  }
  .steluni-footer .steluni-map {
    aspect-ratio: 16 / 11;
  }
  .steluni-footer .steluni-btn {
    margin-bottom: 0.25rem;
  }
}

/* ---- Feature cards inside dark (forest) sections ----
   The dark-section heading rule (.steluni-section--forest h3) was painting the
   card titles cream on the white card, so they were nearly invisible.
   Restore dark ink for headings and body copy inside the cards. */
.steluni-section--forest .steluni-feature h3,
.steluni-section .steluni-feature h3 {
  color: var(--steluni-ink);
}
.steluni-section--forest .steluni-feature p,
.steluni-section .steluni-feature p {
  color: var(--steluni-muted);
}
.steluni-section--forest .steluni-feature__icon,
.steluni-section .steluni-feature__icon {
  color: var(--steluni-terracotta-dark);
}

/* ---- Service hero headings clipped at the left viewport edge (mobile) ----
   .steluni-hero is a flex container; its direct .container child lost its
   horizontal gutters at narrow widths, so the hero <h1> started flush against
   x=0 and the first glyph was cut off by the viewport. Restore the container
   side padding inside the hero only (desktop gutters are already present, so
   the rule is limited to the small-screen breakpoint). */
@media (max-width: 767.98px) {
  .steluni-hero > .container {
    padding-left: max(1rem, calc((100% - 100vw + 2rem) / 2));
    padding-right: max(1rem, calc((100% - 100vw + 2rem) / 2));
  }
  .steluni-hero .steluni-hero__content {
    max-width: 100%;
  }
  .steluni-hero .steluni-hero__content h1 {
    overflow-wrap: break-word;
    word-break: normal;
  }
}
