:root {
  --nora-ink: #402552;
  --nora-plum: #6f397f;
  --nora-pink: #d51b86;
  --nora-rose: #f3d8df;
  --nora-blush: #fbf4f2;
  --nora-gold: #b89456;
  --nora-line: rgba(64, 37, 82, .16);
  --nora-shadow: 0 24px 70px rgba(64, 37, 82, .10);
}

html { scroll-behavior: smooth; }

body {
  color: #332d35;
  background: #fffdfa;
}

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

.section-space {
  padding-block: clamp(4rem, 8vw, 7rem);
}

.section-kicker {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  margin-bottom: 1rem;
  color: var(--nora-gold);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.section-kicker::before {
  content: "";
  width: 2rem;
  height: 1px;
  background: currentColor;
}

.section-title {
  color: var(--nora-ink);
  font-size: clamp(2rem, 5vw, 4.4rem);
  line-height: .98;
  letter-spacing: -.045em;
}

.section-copy {
  max-width: 42rem;
  font-size: 1.05rem;
  line-height: 1.8;
}

.navbar {
  min-height: 84px;
  border-bottom: 1px solid rgba(64, 37, 82, .08);
  background: rgba(255, 253, 250, .88);
  backdrop-filter: blur(16px);
}

.navbar-brand img {
  width: 145px;
}

.nav-link {
  position: relative;
  color: #4d4650;
  font-size: .92rem;
  font-weight: 600;
}

.nav-link::after {
  content: "";
  position: absolute;
  left: .5rem;
  right: .5rem;
  bottom: .2rem;
  height: 1px;
  transform: scaleX(0);
  background: var(--nora-pink);
  transition: transform .25s ease;
}

.nav-link:hover::after,
.nav-link:focus::after {
  transform: scaleX(1);
}

.hero {
  position: relative;
  min-height: calc(100vh - 84px);
  display: grid;
  align-items: center;
  overflow: hidden;
  background:
    radial-gradient(circle at 78% 18%, rgba(244, 211, 214, .92), transparent 36%),
    radial-gradient(circle at 20% 80%, rgba(190, 190, 208, .45), transparent 34%),
    linear-gradient(135deg, #fff 0%, #fbf3f1 45%, #f1d8de 100%);
}

.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .18;
  pointer-events: none;
  background: url("./assets/img/pattern.svg") center/cover no-repeat;
}

.hero-copy {
  position: relative;
  z-index: 2;
  padding-block: clamp(4rem, 10vw, 8rem);
}

.hero-title {
  max-width: 13ch;
  margin-bottom: 1.4rem;
  color: var(--nora-ink);
  font-size: clamp(3rem, 7vw, 6.8rem);
  line-height: .9;
  letter-spacing: -.055em;
}

.hero-lead {
  max-width: 36rem;
  margin-bottom: 2rem;
  font-size: clamp(1.05rem, 1.6vw, 1.35rem);
  line-height: 1.6;
}

.hero-portrait {
  position: relative;
  z-index: 2;
  min-height: 560px;
  display: flex;
  align-items: end;
  justify-content: center;
}

.hero-portrait img {
  width: min(100%, 520px);
  max-height: 680px;
  object-fit: contain;
  object-position: bottom center;
  filter: drop-shadow(0 30px 35px rgba(64, 37, 82, .16));
}

.hero-orbit {
  position: absolute;
  inset: 12% 0 auto auto;
  width: 24rem;
  aspect-ratio: 1;
  border: 1px solid rgba(111, 57, 127, .15);
  border-radius: 50%;
}

.btn-nora {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--nora-pink);
  --bs-btn-border-color: var(--nora-pink);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #b81272;
  --bs-btn-hover-border-color: #b81272;
  padding: .9rem 1.5rem;
  border-radius: 999px;
  font-weight: 700;
  box-shadow: 0 12px 26px rgba(213, 27, 134, .22);
}

.btn-outline-nora {
  --bs-btn-color: var(--nora-ink);
  --bs-btn-border-color: rgba(64, 37, 82, .35);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--nora-ink);
  --bs-btn-hover-border-color: var(--nora-ink);
  padding: .9rem 1.5rem;
  border-radius: 999px;
  font-weight: 700;
}

.hero-micro {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 2rem;
  margin-top: 2.5rem;
  color: #615863;
  font-size: .9rem;
}

.hero-micro span {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
}

.hero-micro span::before {
  content: "✦";
  color: var(--nora-gold);
}

.feature-strip {
  position: relative;
  z-index: 4;
  margin-top: -2.25rem;
}

.feature-card {
  height: 100%;
  padding: 1.5rem;
  border: 1px solid rgba(64, 37, 82, .08);
  border-radius: 1.4rem;
  background: rgba(255, 255, 255, .92);
  box-shadow: var(--nora-shadow);
}

.feature-card strong {
  display: block;
  margin-bottom: .35rem;
  color: var(--nora-ink);
}

.course-visual,
.about-visual {
  position: relative;
  overflow: hidden;
  border-radius: 2rem;
  box-shadow: var(--nora-shadow);
}

.course-visual img,
.about-visual img {
  width: 100%;
  height: 100%;
  min-height: 520px;
  object-fit: cover;
}

.course-card {
  padding: clamp(1.8rem, 4vw, 3.5rem);
  border: 1px solid var(--nora-line);
  border-radius: 2rem;
  background: #fff;
  box-shadow: var(--nora-shadow);
}

.course-list {
  display: grid;
  gap: 1rem;
  margin: 2rem 0;
  padding: 0;
  list-style: none;
}

.course-list li {
  display: flex;
  gap: .8rem;
  align-items: flex-start;
}

.course-list li::before {
  content: "✦";
  color: var(--nora-pink);
  font-size: 1.1rem;
}

.about {
  background:
    linear-gradient(120deg, rgba(244, 211, 214, .55), rgba(190, 190, 208, .25)),
    #fff;
}

.about-note {
  margin-top: 2rem;
  padding: 1.2rem 1.4rem;
  border-left: 3px solid var(--nora-gold);
  color: var(--nora-ink);
  background: rgba(255, 255, 255, .58);
  font-size: 1.1rem;
  font-style: italic;
}

.cosmic-banner {
  position: relative;
  min-height: 420px;
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #fff;
  text-align: center;
  background: #160d2c;
}

.cosmic-banner video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .72;
}

.cosmic-banner::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(18, 8, 36, .75), rgba(18, 8, 36, .28), rgba(18, 8, 36, .72));
}

.cosmic-banner .content {
  position: relative;
  z-index: 2;
  max-width: 50rem;
  padding: 2rem;
}

.cosmic-banner h2 {
  font-size: clamp(2.2rem, 5vw, 4.8rem);
  line-height: 1;
  letter-spacing: -.04em;
}

.books {
  background: var(--nora-blush);
}

.books-stage {
  position: relative;
  min-height: 520px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 2rem;
  background:
    radial-gradient(circle at 30% 35%, rgba(255,255,255,.95), transparent 35%),
    linear-gradient(145deg, #f7dee4, #ead8df 55%, #d9d2e4);
}

.books-stage img {
  width: min(84%, 600px);
  transform: rotate(-2deg);
  filter: drop-shadow(0 34px 28px rgba(64, 37, 82, .22));
}

.books-stage::before,
.books-stage::after {
  content: "";
  position: absolute;
  border: 1px solid rgba(111, 57, 127, .16);
  border-radius: 50%;
}

.books-stage::before {
  width: 22rem;
  aspect-ratio: 1;
  top: -5rem;
  right: -5rem;
}

.books-stage::after {
  width: 12rem;
  aspect-ratio: 1;
  bottom: -3rem;
  left: -2rem;
}

.workshops {
  background: #fff;
}

.workshop-card {
  height: 100%;
  overflow: hidden;
  border: 1px solid rgba(64, 37, 82, .10);
  border-radius: 1.4rem;
  background: #fff;
  box-shadow: 0 15px 45px rgba(64, 37, 82, .08);
  transition: transform .25s ease, box-shadow .25s ease;
}

.workshop-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 60px rgba(64, 37, 82, .14);
}

.workshop-card img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  object-position: center;
}

.workshop-card .card-body {
  display: flex;
  min-height: 250px;
  flex-direction: column;
  padding: 1.35rem;
}

.workshop-card h3 {
  color: var(--nora-ink);
  font-size: 1.25rem;
}

.workshop-card p {
  flex: 1;
  color: #625a64;
  line-height: 1.6;
}

.faq-testimonials {
  background:
    linear-gradient(180deg, rgba(244, 211, 214, .3), rgba(255,255,255,1));
}

.accordion-item {
  overflow: hidden;
  margin-bottom: .7rem;
  border: 1px solid rgba(64, 37, 82, .10);
  border-radius: 1rem !important;
  background: rgba(255,255,255,.8);
}

.accordion-button {
  color: var(--nora-ink);
  font-weight: 700;
  background: transparent;
}

.accordion-button:not(.collapsed) {
  color: var(--nora-ink);
  background: #fff;
  box-shadow: none;
}

.testimonial-card {
  height: 100%;
  padding: 2rem;
  border: 1px solid rgba(64, 37, 82, .1);
  border-radius: 1.4rem;
  background: rgba(255,255,255,.88);
  box-shadow: 0 18px 50px rgba(64, 37, 82, .08);
}

.testimonial-card img {
  width: 68px;
  height: 68px;
  object-fit: cover;
}

.testimonial-card blockquote {
  margin: 1.4rem 0;
  color: #514954;
  line-height: 1.75;
}

.contact-band {
  position: relative;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 20% 20%, rgba(255,255,255,.16), transparent 28%),
    linear-gradient(135deg, #2b173c, #704181 55%, #3f2258);
}

.contact-band::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .12;
  background: url("./assets/img/pattern.svg") center/cover no-repeat;
}

.contact-band .container {
  position: relative;
  z-index: 2;
}

.contact-link {
  color: #fff;
  text-decoration: none;
}

.contact-link:hover {
  color: #f5d8e7;
}

.wa {
  position: fixed;
  right: 1.2rem;
  bottom: 1.2rem;
  z-index: 1000;
  width: 58px;
  filter: drop-shadow(0 8px 18px rgba(0,0,0,.2));
}

@media (max-width: 991.98px) {
  .hero {
    min-height: auto;
  }

  .hero-copy {
    padding-bottom: 1rem;
    text-align: center;
  }

  .hero-title,
  .hero-lead {
    margin-inline: auto;
  }

  .hero-portrait {
    min-height: 420px;
  }

  .hero-micro {
    justify-content: center;
  }
}

@media (max-width: 767.98px) {
  .section-space {
    padding-block: 4rem;
  }

  .hero-title {
    font-size: clamp(2.8rem, 14vw, 4.4rem);
  }

  .course-visual img,
  .about-visual img {
    min-height: 380px;
  }

  .books-stage {
    min-height: 380px;
  }

  .cosmic-banner {
    min-height: 340px;
  }
}
