:root {
  --pink: #ffcfcc;
  --deep: #545454;
  --ink: #454545;
  --muted: #777;
  --line: #e9dedb;
  --cloud: #f8fbff;
  --accent: #636363;
  --white: #fff;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  color: var(--ink);
  font-family: "Open Sans", Arial, sans-serif;
  font-size: 15px;
  line-height: 1.7;
  background: #fff;
}

a {
  color: #5e6067;
  text-decoration: none;
}

a:hover {
  color: #111;
}

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

.topbar {
  background: #636363;
  color: #fff;
  font-size: 13px;
}

.topbar-inner,
.nav-inner,
.section-inner {
  width: min(1120px, calc(100% - 32px));
  margin: 0 auto;
}

.topbar-inner {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 7px 0;
}

.topbar a {
  color: #fff;
}

.main-header {
  position: sticky;
  top: 0;
  z-index: 20;
  background: var(--pink);
  box-shadow: 0 1px 0 rgba(0, 0, 0, .08);
}

.nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 76px;
  gap: 24px;
}

.brand {
  display: inline-flex;
  align-items: center;
}

.brand img {
  width: 260px;
  max-height: 64px;
  object-fit: contain;
}

.brand-fallback {
  font-family: Georgia, serif;
  font-size: 32px;
  color: var(--deep);
}

.menu {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 6px 18px;
  margin: 0;
  padding: 0;
  list-style: none;
  text-transform: uppercase;
  font-size: 13px;
  letter-spacing: .02em;
}

.menu a {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  color: var(--deep);
  border-bottom: 2px solid transparent;
}

.menu a.active,
.menu a:hover {
  border-bottom-color: var(--deep);
}

.hero {
  min-height: 620px;
  background: #eaf6ff url("/assets/img/slider-clouds-bg.png") center top / cover no-repeat;
  display: grid;
  align-items: center;
  overflow: hidden;
}

.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(280px, .95fr);
  align-items: end;
  gap: 24px;
  padding: 72px 0 0;
}

.hero-copy {
  align-self: center;
  padding-bottom: 70px;
  text-align: center;
}

.hero h1 {
  margin: 0 0 16px;
  color: #4d4d4d;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(34px, 5vw, 58px);
  font-style: italic;
  font-weight: 700;
  line-height: 1.15;
}

.hero p {
  max-width: 650px;
  margin: 0 auto 22px;
  font-size: 20px;
  color: #555;
}

.hero-art {
  position: relative;
  min-height: 520px;
}

.hero-art .kim {
  position: absolute;
  right: 96px;
  bottom: 0;
  width: min(54vw, 460px);
}

.hero-art .book {
  position: absolute;
  right: 0;
  bottom: 62px;
  width: 190px;
  filter: drop-shadow(0 14px 20px rgba(0, 0, 0, .18));
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 20px;
  background: var(--accent);
  color: #fff;
  font-weight: 700;
  border: 0;
  border-radius: 2px;
  cursor: pointer;
}

.button:hover {
  color: #fff;
  background: #454545;
}

.section {
  padding: 72px 0;
}

.section.clouds {
  background: #f8fbff url("/assets/img/clouds-bg_section1920x700.png") center / cover no-repeat;
}

.section.paper {
  background: #faf8f6;
}

.section.photo {
  color: #fff;
  background: linear-gradient(rgba(55, 47, 46, .75), rgba(55, 47, 46, .75)), url("/assets/img/home_writer_footer_bg.jpg") center / cover no-repeat;
}

.section.narrow .section-inner {
  max-width: 880px;
}

.eyebrow {
  margin: 0 0 8px;
  color: #767676;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: 12px;
  font-weight: 700;
}

h2,
h3,
h4 {
  color: #333;
  font-weight: 500;
  line-height: 1.2;
}

h2 {
  margin: 0 0 22px;
  font-size: clamp(28px, 4vw, 44px);
}

h3 {
  margin: 0 0 12px;
  font-size: 24px;
}

h4 {
  margin: 0 0 8px;
  font-size: 18px;
}

.lead {
  font-size: 20px;
  color: #555;
}

.split {
  display: grid;
  grid-template-columns: minmax(240px, .82fr) minmax(0, 1.18fr);
  gap: 46px;
  align-items: center;
}

.split.reverse {
  grid-template-columns: minmax(0, 1.18fr) minmax(240px, .82fr);
}

.portrait {
  margin-inline: auto;
  max-height: 620px;
}

.sep {
  height: 2px;
  width: min(343px, 100%);
  margin: 24px 0;
  background: url("/assets/img/home_writer_sep1.png") center / 100% 2px no-repeat;
}

.quote-grid,
.article-grid,
.product-grid,
.media-grid,
.famous-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
}

.quote-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 8px 20px rgba(0, 0, 0, .04);
}

.card-body {
  padding: 20px;
}

.card img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  background: #eee;
}

.quote-grid img {
  aspect-ratio: 39 / 55;
}

.famous-grid img {
  aspect-ratio: 16 / 9;
}

.famous-grid .card img {
  object-position: center;
}

.article-image {
  margin: 24px auto;
  max-width: 940px;
  border: 1px solid var(--line);
  box-shadow: 0 12px 28px rgba(0, 0, 0, .08);
}

.soft-list {
  display: grid;
  gap: 12px;
  padding: 0;
  list-style: none;
}

.soft-list li {
  padding: 14px 16px;
  background: #fff;
  border-left: 4px solid var(--pink);
}

.testimonial {
  max-width: 820px;
  margin: 0 auto 18px;
  padding: 24px;
  background: rgba(255, 255, 255, .92);
  border: 1px solid var(--line);
}

.testimonial strong {
  display: block;
  margin-top: 10px;
}

.contact-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, .8fr);
  gap: 32px;
  align-items: start;
}

.form {
  display: grid;
  gap: 12px;
}

.form input,
.form textarea,
.form select {
  width: 100%;
  min-height: 42px;
  padding: 10px 12px;
  border: 1px solid #cfcaca;
  font: inherit;
}

.form textarea {
  min-height: 130px;
  resize: vertical;
}

.footer {
  color: #fff;
  background: #3f3f3f;
}

.footer .section-inner {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 30px;
  padding: 44px 0;
}

.footer a {
  color: #fff;
}

.footer-bottom {
  padding: 16px;
  text-align: center;
  color: #ddd;
  background: #333;
  font-size: 13px;
}

.charities {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  align-items: center;
}

.charity {
  min-height: 84px;
  display: grid;
  place-items: center;
  padding: 16px;
  text-align: center;
  background: #fff;
  border: 1px solid var(--line);
}

.audio-row {
  display: grid;
  gap: 10px;
}

.embed-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.video-frame {
  aspect-ratio: 16 / 9;
  width: 100%;
  border: 0;
  background: #111;
}

.route-note {
  margin-top: 24px;
  padding: 14px 16px;
  border: 1px solid #eadbd8;
  background: #fff8f7;
  color: #6a5753;
}

@media (max-width: 900px) {
  .topbar-inner,
  .nav-inner {
    align-items: flex-start;
    flex-direction: column;
  }

  .menu {
    justify-content: flex-start;
  }

  .hero-grid,
  .split,
  .split.reverse,
  .contact-panel,
  .footer .section-inner {
    grid-template-columns: 1fr;
  }

  .hero {
    min-height: 0;
  }

  .hero-copy {
    padding-bottom: 0;
  }

  .hero-art {
    min-height: 390px;
  }

  .hero-art .kim {
    right: 22%;
    width: min(76vw, 380px);
  }

  .hero-art .book {
    right: 10%;
    width: 145px;
  }

  .quote-grid,
  .article-grid,
  .product-grid,
  .media-grid,
  .famous-grid,
  .charities,
  .embed-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .brand img {
    width: 220px;
  }

  .section {
    padding: 48px 0;
  }

  .quote-grid,
  .article-grid,
  .product-grid,
  .media-grid,
  .famous-grid,
  .charities,
  .embed-grid {
    grid-template-columns: 1fr;
  }

  .hero-art {
    min-height: 310px;
  }

  .hero-art .kim {
    right: 12%;
  }
}

/* Modern pastel refresh */
:root {
  --pink: #ffd9df;
  --peach: #ffd8c6;
  --lavender: #d9d1ff;
  --mint: #cdeee7;
  --sky: #d9efff;
  --cream: #fffaf3;
  --deep: #463f57;
  --ink: #514a5f;
  --muted: #7d748d;
  --line: rgba(93, 79, 112, .14);
  --cloud: #fff9fb;
  --accent: #8e6fbd;
  --accent-2: #5eaaa8;
  --white: #fff;
  --shadow: 0 18px 45px rgba(91, 72, 118, .12);
}

body {
  color: var(--ink);
  background:
    linear-gradient(135deg, rgba(255, 217, 223, .28), rgba(205, 238, 231, .2) 34%, rgba(217, 239, 255, .24) 67%, rgba(255, 250, 243, .55)),
    #fff;
  font-size: 16px;
}

a {
  color: #6f5baa;
}

.topbar {
  color: var(--deep);
  background: linear-gradient(90deg, #fff3f5, #edf9ff);
  border-bottom: 1px solid var(--line);
}

.topbar a {
  color: var(--deep);
}

.main-header {
  background: rgba(255, 255, 255, .82);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 10px 30px rgba(91, 72, 118, .08);
  backdrop-filter: blur(18px);
}

.nav-inner {
  min-height: 84px;
}

.brand img {
  width: 245px;
}

.menu {
  gap: 8px;
  text-transform: none;
  font-size: 14px;
  letter-spacing: 0;
}

.menu a {
  min-height: 38px;
  padding: 7px 12px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: var(--deep);
}

.menu a.active,
.menu a:hover {
  color: #58429b;
  background: #f6f0ff;
  border-color: rgba(142, 111, 189, .22);
}

.hero {
  min-height: 680px;
  background:
    linear-gradient(90deg, rgba(255, 250, 243, .92), rgba(255, 250, 243, .62) 48%, rgba(255, 250, 243, .28)),
    url("/assets/img/pastel-hero.png") center / cover no-repeat;
}

.hero-grid {
  grid-template-columns: minmax(0, .95fr) minmax(320px, .9fr);
  align-items: center;
  padding: 66px 0;
}

.hero-copy {
  padding: 0;
  text-align: left;
  transform: translateY(10%);
}

.hero h1 {
  color: var(--deep);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(42px, 5.5vw, 76px);
  font-style: normal;
  letter-spacing: 0;
}

.hero p {
  margin-left: 0;
  color: var(--ink);
  font-size: 21px;
}

.hero-art {
  min-height: 500px;
}

.hero-visual {
  width: min(42vw, 520px);
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border: 10px solid rgba(255, 255, 255, .78);
  border-radius: 8px;
  box-shadow: var(--shadow);
}

.hero-art .book {
  right: 34px;
  bottom: 34px;
  width: 170px;
  border-radius: 8px;
}

.button,
.icon-button,
.slot,
.day {
  border-radius: 8px;
}

.button {
  min-height: 46px;
  padding: 11px 20px;
  background: linear-gradient(135deg, var(--accent), #bb82b9);
  box-shadow: 0 12px 26px rgba(142, 111, 189, .24);
}

.button:hover {
  background: linear-gradient(135deg, #7356a7, #a867a5);
}

.button.ghost {
  color: var(--deep);
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: none;
}

.button.ghost:hover {
  color: #58429b;
  background: #fff7fb;
}

.button-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.section {
  padding: 86px 0;
}

.section.clouds {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .78), rgba(255, 247, 251, .9)),
    url("/assets/img/pastel-aura.png") center / cover no-repeat;
}

.section.paper {
  background: linear-gradient(135deg, #fff9fb, #f0fbf8);
}

.section.photo {
  color: var(--deep);
  background:
    linear-gradient(135deg, rgba(255, 249, 251, .88), rgba(241, 249, 255, .82)),
    url("/assets/img/pastel-guidance.png") center / cover no-repeat;
}

.eyebrow {
  color: #8a76ae;
}

h2,
h3,
h4 {
  color: var(--deep);
}

.lead {
  color: var(--ink);
}

.card,
.testimonial,
.charity,
.booking-card,
.booking-summary,
.route-note {
  border-color: var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow);
}

.card {
  background: rgba(255, 255, 255, .9);
}

.card img {
  background: #f6f0ff;
}

.product-grid .card img,
.media-grid .card img,
.famous-grid .card img {
  filter: saturate(1.04);
}

.soft-list li {
  background: rgba(255, 255, 255, .86);
  border-left-color: var(--lavender);
  border-radius: 8px;
}

.testimonial {
  color: var(--ink);
  background: rgba(255, 255, 255, .86);
}

.form input,
.form textarea,
.form select {
  min-height: 48px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 255, 255, .9);
  color: var(--ink);
}

.form label {
  display: block;
  margin: 0 0 8px;
  font-weight: 700;
  color: var(--deep);
}

.charities-band {
  background:
    linear-gradient(135deg, rgba(255, 249, 252, .96), rgba(235, 250, 247, .92)),
    url("/assets/img/pastel-aura.png") center / cover no-repeat;
}

.charities-band .lead {
  margin-top: -10px;
  margin-bottom: 28px;
}

.footer {
  position: relative;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 18% 20%, rgba(218, 177, 255, .42), transparent 30%),
    radial-gradient(circle at 84% 18%, rgba(94, 218, 226, .28), transparent 31%),
    linear-gradient(135deg, #2e2541, #493773 48%, #1f6874);
  border-top: 1px solid rgba(255, 255, 255, .18);
}

.footer::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    repeating-radial-gradient(ellipse at 18% 50%, rgba(255, 255, 255, .18) 0 1px, transparent 2px 68px),
    linear-gradient(115deg, transparent, rgba(255, 255, 255, .09), transparent);
  opacity: .72;
}

.footer .section-inner {
  position: relative;
  z-index: 1;
}

.footer .footer-wrap {
  display: grid;
  grid-template-columns: minmax(300px, .95fr) minmax(0, 1.25fr);
  gap: 42px;
  align-items: stretch;
  padding: 64px 0 48px;
}

.footer-callout {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 34px;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 10px;
  background: rgba(255, 255, 255, .12);
  box-shadow: 0 24px 64px rgba(21, 15, 38, .24);
  backdrop-filter: blur(16px);
}

.footer h2,
.footer h3,
.footer .eyebrow,
.footer p,
.footer a {
  color: #fff;
}

.footer-callout h2 {
  margin-bottom: 16px;
  font-size: clamp(34px, 4vw, 58px);
}

.footer-callout p {
  max-width: 560px;
  font-weight: 600;
}

.footer .button.ghost {
  color: #fff;
  background: rgba(255, 255, 255, .12);
  border-color: rgba(255, 255, 255, .3);
}

.footer .footer-columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.footer-columns > div {
  padding: 26px;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 10px;
  background: rgba(255, 255, 255, .1);
  backdrop-filter: blur(12px);
}

.footer-columns h3 {
  margin-bottom: 18px;
  font-size: 20px;
}

.footer-columns p {
  margin: 0;
  line-height: 2;
}

.footer-columns a {
  font-weight: 750;
  opacity: .9;
}

.footer-columns a:hover {
  opacity: 1;
  color: #fff8cf;
}

.footer-bottom {
  position: relative;
  z-index: 1;
  padding: 18px 16px;
  text-align: center;
  color: rgba(255, 255, 255, .78);
  background: rgba(20, 15, 32, .24);
  font-size: 13px;
  font-weight: 700;
}

.charity {
  background: rgba(255, 255, 255, .9);
}

.route-note {
  background: #fff9fb;
  color: var(--ink);
}

.booking-hero {
  padding: 64px 0;
  background:
    linear-gradient(90deg, rgba(255, 250, 243, .95), rgba(255, 244, 249, .7)),
    url("/assets/img/pastel-hero.png") center / cover no-repeat;
}

.booking-hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 34px;
  align-items: center;
}

.booking-hero img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border: 10px solid rgba(255, 255, 255, .78);
  border-radius: 8px;
  box-shadow: var(--shadow);
}

.booking-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 28px;
  align-items: start;
}

.booking-card,
.booking-summary {
  padding: 24px;
  background: rgba(255, 255, 255, .92);
}

.booking-summary {
  position: sticky;
  top: 110px;
}

.booking-summary dl {
  display: grid;
  gap: 12px;
  margin: 20px 0;
}

.booking-summary dl div {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}

.booking-summary dt {
  color: var(--muted);
}

.booking-summary dd {
  margin: 0;
  text-align: right;
  color: var(--deep);
  font-weight: 700;
}

.calendar {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fffafd;
}

.calendar-head,
.calendar-weekdays,
.calendar-days {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
}

.calendar-head {
  grid-template-columns: 42px 1fr 42px;
  align-items: center;
  margin-bottom: 12px;
  text-align: center;
}

.calendar-weekdays {
  margin-bottom: 8px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  text-align: center;
}

.icon-button,
.day,
.slot {
  min-height: 42px;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--deep);
  font: inherit;
  cursor: pointer;
}

.day:hover,
.slot:hover,
.icon-button:hover {
  background: #f5f0ff;
}

.day:disabled,
.slot:disabled {
  cursor: not-allowed;
  color: #c1b9ca;
  background: #f6f1f5;
}

.day.selected,
.slot.selected {
  color: #fff;
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
}

.slot-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.paypal-panel {
  padding-top: 12px;
}

.payment-message,
.fine-print {
  color: var(--muted);
  font-size: 13px;
}

.fine-print code {
  padding: 2px 5px;
  border-radius: 6px;
  background: #f5f0ff;
}

@media (max-width: 900px) {
  .hero-grid,
  .booking-hero-inner,
  .booking-layout,
  .footer .footer-wrap,
  .footer .footer-columns {
    grid-template-columns: 1fr;
  }

  .hero-copy {
    text-align: center;
    transform: translateY(4%);
  }

  .hero p {
    margin-left: auto;
  }

  .hero-art {
    min-height: 0;
  }

  .hero-visual {
    width: min(100%, 520px);
    margin: 0 auto;
  }

  .hero-art .book {
    right: calc(50% - 210px);
  }

  .booking-summary {
    position: static;
  }
}

@media (max-width: 560px) {
  .slot-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .calendar {
    padding: 10px;
  }

  .calendar-head,
  .calendar-weekdays,
  .calendar-days {
    gap: 5px;
  }

  .footer-callout,
  .footer-columns > div {
    padding: 22px;
  }
}

/* Stronger psychic-energy refresh */
.menu a,
.button,
h1,
h2,
h3,
h4 {
  font-weight: 800;
  letter-spacing: 0;
}

.hero {
  position: relative;
  background:
    linear-gradient(90deg, rgba(255, 250, 243, .92), rgba(255, 239, 248, .62) 44%, rgba(221, 245, 255, .4)),
    url("/assets/img/pastel-hero.png") center / cover no-repeat;
}

.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    repeating-radial-gradient(ellipse at 78% 50%, rgba(142, 111, 189, .22) 0 2px, transparent 3px 72px),
    repeating-radial-gradient(ellipse at 74% 50%, rgba(94, 170, 168, .14) 0 2px, transparent 3px 98px);
  opacity: .9;
}

.hero .section-inner {
  position: relative;
  z-index: 1;
}

.hero h1 {
  max-width: 760px;
  color: #2e2541;
  font-weight: 900;
  text-shadow: 0 3px 18px rgba(255, 255, 255, .72);
}

.hero p {
  max-width: 700px;
  font-weight: 600;
}

.hero-kim-visual,
.energy-portrait {
  filter: saturate(1.16) contrast(1.06);
}

.hero-kim-visual {
  position: relative;
  width: min(43vw, 540px);
  border-color: rgba(255, 255, 255, .86);
  box-shadow:
    0 28px 70px rgba(67, 42, 120, .28),
    0 0 60px rgba(104, 218, 232, .22);
}

.energy-portrait {
  overflow: hidden;
  border: 10px solid rgba(255, 255, 255, .86);
  border-radius: 10px;
  box-shadow:
    0 26px 70px rgba(67, 42, 120, .24),
    0 0 52px rgba(191, 111, 208, .2);
}

h2 {
  font-size: clamp(32px, 4.4vw, 52px);
  font-weight: 900;
}

h3 {
  font-weight: 850;
}

.energy-section {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(46, 37, 65, .96), rgba(78, 58, 134, .92) 46%, rgba(34, 112, 126, .9));
  color: #fff;
}

.energy-section::before {
  content: "";
  position: absolute;
  inset: -18% -8%;
  background:
    repeating-linear-gradient(115deg, transparent 0 42px, rgba(255, 255, 255, .1) 43px 45px, transparent 46px 96px);
  opacity: .58;
}

.energy-section .section-inner {
  position: relative;
  z-index: 1;
}

.energy-section h2,
.energy-section h3,
.energy-section .eyebrow,
.energy-section p {
  color: #fff;
}

.energy-section h2 {
  max-width: 920px;
}

.energy-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin-top: 28px;
}

.energy-card {
  min-height: 280px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 18px;
  padding: 24px;
  border: 1px solid rgba(255, 255, 255, .26);
  border-radius: 8px;
  background: rgba(255, 255, 255, .13);
  box-shadow: 0 24px 52px rgba(23, 16, 42, .2);
  backdrop-filter: blur(12px);
}

.energy-card span {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, .2);
  color: #fff;
  font-weight: 900;
}

.energy-card h3 {
  margin-top: auto;
  font-size: 28px;
}

.energy-card p {
  margin: 0;
  font-weight: 600;
}

.energy-card.feature {
  background: rgba(255, 255, 255, .2);
}

.media-card {
  display: block;
  color: inherit;
  transition: transform .18s ease, box-shadow .18s ease;
}

.media-card:hover {
  transform: translateY(-4px);
  color: inherit;
  box-shadow: 0 28px 60px rgba(91, 72, 118, .18);
}

.text-link {
  display: inline-flex;
  margin-top: 8px;
  color: #58429b;
  font-weight: 800;
}

.article-more {
  margin-top: 52px;
}

.article-more > h3 {
  margin-bottom: 18px;
  font-size: 28px;
}

.article-scan-card img,
.compact-article-grid img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: top center;
}

.article-scan-card {
  display: block;
  color: inherit;
  transition: transform .18s ease, box-shadow .18s ease;
}

.article-scan-card:hover {
  transform: translateY(-4px);
  color: inherit;
  box-shadow: 0 28px 60px rgba(91, 72, 118, .18);
}

.media-card img {
  object-fit: contain;
  padding: 14px;
}

.scan-hero .section-inner {
  max-width: 920px;
}

.scan-note {
  display: inline-flex;
  margin: 10px 0 0;
  padding: 10px 14px;
  border: 1px solid rgba(142, 119, 177, .22);
  border-radius: 8px;
  background: rgba(255, 255, 255, .74);
  color: #594b6c;
  font-size: 14px;
  font-weight: 700;
}

.scan-jump-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}

.scan-jump {
  display: inline-grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  min-width: 150px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 255, 255, .84);
  color: var(--ink);
  font-weight: 800;
  box-shadow: 0 12px 26px rgba(91, 72, 118, .08);
}

.scan-jump img {
  width: 48px;
  height: 60px;
  border-radius: 4px;
  object-fit: cover;
  object-position: top center;
}

.scan-reader {
  display: grid;
  gap: 34px;
}

.scan-page {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 320px);
  gap: 30px;
  align-items: start;
  padding: clamp(22px, 4vw, 42px);
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 255, 255, .94);
  box-shadow: var(--shadow);
}

.scan-page-copy h3 {
  margin-top: 4px;
  font-size: clamp(24px, 3vw, 32px);
}

.scan-transcript {
  max-width: 790px;
  font-family: Georgia, "Times New Roman", serif;
  color: #2f2938;
  font-size: clamp(17px, 1.6vw, 19px);
  line-height: 1.72;
}

.scan-transcript p {
  margin: 0 0 1.05em;
}

.scan-transcript p:first-child {
  font-weight: 700;
}

.scan-original {
  position: sticky;
  top: 96px;
}

.scan-original a {
  display: block;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: linear-gradient(180deg, rgba(250, 247, 255, .96), rgba(255, 255, 255, .96));
  color: #58429b;
  font-weight: 900;
  text-align: center;
  box-shadow: 0 18px 34px rgba(91, 72, 118, .12);
}

.scan-original img {
  width: 100%;
  max-height: 430px;
  border-radius: 6px;
  object-fit: contain;
  object-position: top center;
  background: #f7f1ff;
}

.scan-original span {
  display: block;
  margin-top: 10px;
}

@media (max-width: 900px) {
  .energy-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .scan-page {
    grid-template-columns: 1fr;
  }

  .scan-original {
    position: static;
  }

  .scan-original img {
    max-height: 520px;
  }
}

@media (max-width: 560px) {
  .energy-grid {
    grid-template-columns: 1fr;
  }

  .hero h1 {
    font-size: clamp(40px, 13vw, 58px);
  }

  .scan-page {
    padding: 20px;
  }

  .scan-jump {
    width: 100%;
  }
}

/* Smaller, calmer header navigation */
.nav-inner {
  min-height: 76px;
}

.menu {
  font-size: 13px;
}

.menu a {
  min-height: 34px;
  padding: 5px 10px;
  font-weight: 650;
}

/* Kim admin calendar */
.admin-section {
  min-height: 680px;
}

.admin-login {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 420px);
  gap: 34px;
  align-items: center;
}

.admin-login-card,
.admin-calendar-panel,
.admin-list-panel,
.admin-booking-card,
.admin-empty {
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(255, 255, 255, .92);
  box-shadow: var(--shadow);
}

.admin-login-card {
  padding: 26px;
}

.admin-dashboard-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: end;
  margin-bottom: 24px;
}

.admin-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 24px;
}

.admin-filter {
  min-height: 48px;
  padding: 10px 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--deep);
  font: inherit;
  font-weight: 850;
  cursor: pointer;
}

.admin-filter.active,
.admin-filter:hover {
  color: #fff;
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
}

.admin-layout {
  display: grid;
  grid-template-columns: 350px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}

.admin-calendar-panel,
.admin-list-panel {
  padding: 20px;
}

.admin-calendar-panel {
  position: sticky;
  top: 96px;
}

.admin-calendar-head,
.admin-calendar-days {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 7px;
}

.admin-calendar-head {
  grid-template-columns: 42px 1fr 42px;
  align-items: center;
  margin-bottom: 12px;
  text-align: center;
}

.admin-calendar-days {
  margin-top: 8px;
}

.admin-day {
  min-height: 48px;
  display: grid;
  place-items: center;
  gap: 2px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--deep);
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

.admin-day small {
  min-width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #f0e8ff;
  color: #58429b;
  font-size: 12px;
}

.admin-day.has-bookings {
  border-color: rgba(142, 111, 189, .38);
  background: #fbf7ff;
}

.admin-day.selected {
  color: #fff;
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
}

.admin-day.selected small {
  background: rgba(255, 255, 255, .22);
  color: #fff;
}

.admin-clear-date {
  width: 100%;
  margin-top: 14px;
}

.admin-status-line {
  margin-bottom: 16px;
  font-weight: 850;
  color: var(--deep);
}

.admin-booking-list {
  display: grid;
  gap: 18px;
}

.admin-booking-card {
  padding: 22px;
  border-left-width: 8px;
}

.admin-booking-card.status-review {
  border-left-color: #bb82b9;
}

.admin-booking-card.status-approved {
  border-left-color: #5eaaa8;
}

.admin-booking-card.status-declined {
  border-left-color: #c46b76;
}

.admin-booking-card.status-complete {
  border-left-color: #6f82c7;
}

.admin-booking-top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(170px, auto);
  gap: 16px;
  align-items: start;
}

.status-pill {
  display: inline-flex;
  margin: 0 0 10px;
  padding: 6px 10px;
  border-radius: 999px;
  background: #f2ebff;
  color: #58429b;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.admin-service {
  margin: 0;
  color: var(--muted);
  font-weight: 750;
}

.admin-date-box {
  padding: 14px;
  border-radius: 8px;
  background: #fff7fb;
  text-align: right;
}

.admin-date-box strong,
.admin-date-box span {
  display: block;
}

.admin-date-box span {
  color: var(--muted);
  font-weight: 850;
}

.customer-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 20px 0;
}

.customer-details div {
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.customer-details strong,
.customer-details span,
.customer-details a {
  display: block;
}

.customer-details strong {
  color: var(--muted);
  font-size: 12px;
  text-transform: uppercase;
}

.customer-details a,
.customer-details span {
  color: var(--deep);
  font-weight: 850;
  overflow-wrap: anywhere;
}

.admin-actions,
.admin-move-form {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: end;
}

.admin-move-form {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}

.admin-move-form label {
  display: grid;
  gap: 6px;
  color: var(--deep);
  font-weight: 850;
}

.admin-move-form input,
.admin-move-form select {
  min-height: 46px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--deep);
  font: inherit;
}

.admin-empty {
  padding: 28px;
}

@media (max-width: 900px) {
  .admin-login,
  .admin-dashboard-head,
  .admin-layout,
  .admin-booking-top,
  .customer-details {
    grid-template-columns: 1fr;
  }

  .admin-calendar-panel {
    position: static;
  }

  .admin-date-box {
    text-align: left;
  }
}

@media (max-width: 560px) {
  .menu {
    font-size: 12px;
  }

  .menu a {
    padding: 4px 8px;
  }

  .admin-filter {
    width: 100%;
  }

  .admin-actions .button,
  .admin-move-form .button {
    width: 100%;
  }
}

/* Project-local hero image refresh */
.hero {
  min-height: 760px;
  background:
    linear-gradient(90deg, rgba(255, 250, 255, .94) 0%, rgba(255, 246, 253, .84) 31%, rgba(255, 246, 253, .34) 57%, rgba(255, 246, 253, .08) 100%),
    url("/assets/img/hero-kim-energy-wide.png") center right / cover no-repeat;
}

.hero::before {
  background:
    radial-gradient(circle at 20% 42%, rgba(255, 255, 255, .72), transparent 0 42%),
    repeating-radial-gradient(ellipse at 70% 48%, rgba(255, 255, 255, .16) 0 1px, transparent 2px 86px);
  opacity: .78;
}

.hero-grid {
  min-height: 680px;
  grid-template-columns: minmax(0, 720px);
  align-items: center;
  padding: clamp(86px, 11vw, 138px) 0 clamp(82px, 9vw, 118px);
}

.hero-copy {
  max-width: 720px;
  text-align: left;
  transform: translateY(10%);
}

.hero h1,
.hero p {
  text-shadow: 0 3px 22px rgba(255, 255, 255, .92);
}

.hero h1 {
  font-size: clamp(30px, 3.2vw, 44px);
  line-height: 1.12;
}

.hero p {
  max-width: 650px;
}

.reading-heroes {
  background: linear-gradient(180deg, #fffafd 0%, #f3fbff 100%);
}

.reading-hero-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin-top: 30px;
}

.reading-hero-panel {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 255, 255, .9);
  box-shadow: var(--shadow);
}

.reading-hero-panel img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.reading-hero-panel div {
  padding: 24px;
}

.reading-hero-panel h3 {
  margin: 0 0 10px;
  font-size: clamp(24px, 3vw, 34px);
}

.reading-hero-panel p {
  margin: 0;
}

.product-grid .card img {
  aspect-ratio: 16 / 9;
}

.booking-hero {
  background:
    linear-gradient(90deg, rgba(255, 250, 255, .93), rgba(247, 239, 255, .64)),
    url("/assets/img/psychic-reading-energy-1.png") center / cover no-repeat;
}

.booking-hero img {
  display: none;
}

@media (max-width: 900px) {
  .hero {
    min-height: 720px;
    background:
      linear-gradient(180deg, rgba(255, 250, 255, .96) 0%, rgba(255, 246, 253, .74) 45%, rgba(255, 246, 253, .1) 100%),
      url("/assets/img/hero-kim-energy-wide.png") 68% center / cover no-repeat;
  }

  .hero-grid {
    min-height: 660px;
    grid-template-columns: 1fr;
  }

  .hero-copy {
    max-width: 640px;
    text-align: left;
    transform: translateY(4%);
  }

  .hero p {
    margin-left: 0;
  }

  .reading-hero-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .hero {
    min-height: 700px;
    background:
      linear-gradient(180deg, rgba(255, 250, 255, .98) 0%, rgba(255, 246, 253, .8) 48%, rgba(255, 246, 253, .18) 100%),
      url("/assets/img/hero-kim-energy-wide.png") 66% center / cover no-repeat;
  }

  .hero h1 {
    font-size: clamp(27px, 6.7vw, 34px);
  }

  .hero p {
    font-size: 16px;
  }

  .brand img {
    width: min(225px, 62vw);
  }
}

.brand img {
  width: min(336px, 46vw);
  max-height: 76px;
}

@media (max-width: 900px) {
  .brand img {
    width: min(300px, 70vw);
  }
}

@media (max-width: 560px) {
  .brand img {
    width: min(250px, 66vw);
  }
}

/* Reworked About page */
.about-hero {
  min-height: 680px;
  display: grid;
  align-items: center;
  background:
    linear-gradient(90deg, rgba(255, 250, 255, .96) 0%, rgba(255, 246, 253, .76) 38%, rgba(255, 246, 253, .18) 70%),
    url("/assets/img/hero-kim-energy-wide.png") center right / cover no-repeat;
}

.about-hero-inner {
  min-height: 600px;
  display: grid;
  align-items: center;
}

.about-hero-copy {
  max-width: 660px;
}

.about-hero h1 {
  margin: 0 0 18px;
  color: #211833;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(34px, 4.1vw, 54px);
  line-height: 1.08;
  text-shadow: 0 3px 22px rgba(255, 255, 255, .88);
}

.about-hero p:not(.eyebrow) {
  max-width: 620px;
  color: #3a3148;
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 700;
}

.about-intro {
  background: linear-gradient(180deg, #fff 0%, #fff7fd 100%);
}

.about-story-grid,
.about-belief-grid {
  display: grid;
  grid-template-columns: minmax(280px, .9fr) minmax(0, 1.1fr);
  gap: clamp(28px, 5vw, 58px);
  align-items: center;
}

.about-kim-photo {
  position: relative;
}

.about-kim-photo::before {
  content: "";
  position: absolute;
  inset: 8% -6% -6% 10%;
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(192, 108, 226, .28), rgba(95, 210, 223, .28));
}

.about-kim-photo img,
.about-reading-card img {
  position: relative;
  width: 100%;
  border-radius: 8px;
  object-fit: cover;
  box-shadow: 0 28px 70px rgba(67, 42, 120, .2);
}

.about-kim-photo img {
  aspect-ratio: 4 / 5;
}

.about-story-copy {
  max-width: 720px;
}

.about-story-copy .lead {
  font-weight: 750;
}

.about-timeline-band {
  position: relative;
  overflow: hidden;
  color: #fff;
  background:
    linear-gradient(135deg, rgba(31, 22, 45, .98), rgba(77, 49, 124, .94) 52%, rgba(23, 114, 128, .9));
}

.about-timeline-band::before {
  content: "";
  position: absolute;
  inset: -18% -8%;
  background:
    radial-gradient(circle at 18% 30%, rgba(255, 255, 255, .16), transparent 0 24%),
    repeating-linear-gradient(115deg, transparent 0 48px, rgba(255, 255, 255, .1) 49px 51px, transparent 52px 108px);
}

.about-timeline-band .section-inner {
  position: relative;
  z-index: 1;
}

.about-timeline-band h2,
.about-timeline-band h3,
.about-timeline-band p,
.about-timeline-band .eyebrow {
  color: #fff;
}

.about-timeline {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin-top: 30px;
}

.about-timeline article {
  min-height: 270px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 24px;
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 8px;
  background: rgba(255, 255, 255, .13);
  box-shadow: 0 24px 52px rgba(23, 16, 42, .2);
  backdrop-filter: blur(12px);
}

.about-timeline span {
  width: 64px;
  height: 64px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(255, 255, 255, .24), rgba(255, 255, 255, .08));
  color: #fff;
  font-weight: 950;
}

.about-timeline h3 {
  margin: auto 0 0;
  font-size: 25px;
}

.about-timeline p {
  margin: 0;
  font-weight: 600;
}

.about-belief {
  background: linear-gradient(180deg, #fffafd 0%, #f3fbff 100%);
}

.about-belief-grid {
  grid-template-columns: minmax(0, 1.02fr) minmax(290px, .98fr);
}

.about-quote {
  margin: 28px 0 0;
  padding: 22px 24px;
  border-left: 5px solid #9a74c9;
  border-radius: 8px;
  background: rgba(255, 255, 255, .78);
  color: #211833;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(23px, 3vw, 34px);
  font-weight: 850;
  line-height: 1.22;
  box-shadow: 0 18px 44px rgba(67, 42, 120, .1);
}

.about-reading-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 255, 255, .9);
  box-shadow: var(--shadow);
}

.about-reading-card img {
  border-radius: 8px 8px 0 0;
  aspect-ratio: 16 / 10;
  box-shadow: none;
}

.about-reading-card div {
  padding: 24px;
}

.about-reading-card h3 {
  margin-top: 0;
}

.about-reading-card ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.about-reading-card li {
  padding: 12px 14px;
  border: 1px solid rgba(142, 111, 189, .18);
  border-radius: 8px;
  background: #fbf7ff;
  color: #342a43;
  font-weight: 800;
}

.about-final-cta {
  text-align: center;
  background:
    linear-gradient(rgba(34, 25, 48, .74), rgba(34, 25, 48, .74)),
    url("/assets/img/psychic-reading-energy-2.png") center / cover no-repeat;
}

.about-final-cta h2,
.about-final-cta p,
.about-final-cta .eyebrow {
  color: #fff;
}

.about-final-cta .section-inner {
  max-width: 860px;
}

.about-final-cta p {
  max-width: 720px;
  margin-inline: auto;
  font-size: 19px;
  font-weight: 650;
}

@media (max-width: 900px) {
  .about-hero {
    min-height: 620px;
    background:
      linear-gradient(180deg, rgba(255, 250, 255, .98) 0%, rgba(255, 246, 253, .8) 48%, rgba(255, 246, 253, .18) 100%),
      url("/assets/img/hero-kim-energy-wide.png") 66% center / cover no-repeat;
  }

  .about-hero-inner {
    min-height: 560px;
  }

  .about-story-grid,
  .about-belief-grid {
    grid-template-columns: 1fr;
  }

  .about-kim-photo {
    max-width: 520px;
    margin-inline: auto;
  }

  .about-timeline {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .about-hero h1 {
    font-size: clamp(30px, 8vw, 40px);
  }

  .about-hero p:not(.eyebrow) {
    font-size: 17px;
  }

  .about-timeline {
    grid-template-columns: 1fr;
  }

  .about-timeline article {
    min-height: 230px;
  }
}

/* Header booking CTA and distinct About opening */
.primary-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 18px;
  flex: 1;
}

.header-booking-button {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  padding: 12px 22px;
  border: 0;
  border-radius: 8px;
  color: #fff;
  background: linear-gradient(135deg, #5b3f93, #9e65c8 55%, #1a8f9a);
  box-shadow: 0 16px 34px rgba(91, 63, 147, .24);
  font-size: 14px;
  font-weight: 950;
  letter-spacing: .04em;
}

.header-booking-button.active,
.header-booking-button:hover {
  color: #fff;
  background: linear-gradient(135deg, #442b75, #8d56bc 55%, #137a86);
  transform: translateY(-1px);
}

.about-hero {
  min-height: auto;
  padding: clamp(54px, 8vw, 88px) 0;
  background:
    radial-gradient(circle at 12% 18%, rgba(255, 224, 238, .84), transparent 0 30%),
    radial-gradient(circle at 92% 18%, rgba(200, 244, 250, .76), transparent 0 32%),
    linear-gradient(135deg, #fffafd 0%, #f6f0ff 48%, #eefcff 100%);
}

.about-hero-inner {
  min-height: auto;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(280px, .75fr);
  gap: clamp(28px, 5vw, 58px);
  align-items: center;
}

.about-hero-copy {
  max-width: 760px;
}

.about-hero h1 {
  max-width: 760px;
  font-size: clamp(36px, 4.4vw, 58px);
  text-shadow: none;
}

.about-profile-card {
  overflow: hidden;
  border: 1px solid rgba(142, 111, 189, .24);
  border-radius: 8px;
  background: rgba(255, 255, 255, .86);
  box-shadow: 0 28px 70px rgba(67, 42, 120, .18);
}

.about-profile-card img {
  width: 100%;
  aspect-ratio: 4 / 4.65;
  object-fit: cover;
  object-position: center top;
}

.about-profile-card div {
  padding: 22px;
}

.about-profile-card h3 {
  margin: 0 0 8px;
  font-size: 30px;
}

.about-profile-card p:last-child {
  margin-bottom: 0;
  font-weight: 650;
}

@media (max-width: 900px) {
  .nav-inner {
    align-items: flex-start;
  }

  .primary-nav {
    flex-wrap: wrap;
  }

  .header-booking-button {
    min-height: 44px;
    padding: 10px 18px;
  }

  .about-hero {
    background:
      radial-gradient(circle at 14% 12%, rgba(255, 224, 238, .86), transparent 0 34%),
      linear-gradient(135deg, #fffafd 0%, #f6f0ff 52%, #eefcff 100%);
  }

  .about-hero-inner {
    grid-template-columns: 1fr;
  }

  .about-profile-card {
    max-width: 460px;
  }
}

@media (max-width: 560px) {
  .primary-nav {
    width: 100%;
    justify-content: flex-start;
  }

  .header-booking-button {
    width: 100%;
    justify-content: center;
    margin-top: 4px;
  }

  .about-hero h1 {
    font-size: clamp(31px, 8vw, 42px);
  }
}

/* Final interaction, mobile menu, and polish pass */
body {
  overflow-x: hidden;
}

a,
button,
.button,
.card,
.charity,
.reading-hero-panel,
.energy-card,
.about-profile-card,
.about-reading-card,
.about-timeline article,
.scan-page,
.scan-jump,
.scan-original a,
.booking-card,
.booking-summary,
.admin-filter,
.admin-booking-card,
.footer-callout,
.footer-columns > nav,
.footer-columns > address,
.portrait,
.article-image {
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    border-color .22s ease,
    background .22s ease,
    color .22s ease,
    filter .22s ease,
    opacity .22s ease;
}

.card,
.reading-hero-panel,
.about-profile-card,
.about-reading-card {
  overflow: hidden;
}

.card img,
.reading-hero-panel img,
.about-profile-card img,
.about-reading-card img,
.article-scan-card img,
.compact-article-grid img,
.media-card img {
  transition: transform .28s ease, filter .28s ease;
}

.button:hover,
.button:focus-visible,
.header-booking-button:hover,
.header-booking-button:focus-visible,
.charity:hover,
.charity:focus-visible,
.scan-jump:hover,
.scan-jump:focus-visible,
.scan-original a:hover,
.scan-original a:focus-visible,
.admin-filter:hover,
.admin-filter:focus-visible {
  transform: translateY(-3px);
}

.card:hover,
.card:focus-within,
.reading-hero-panel:hover,
.energy-card:hover,
.about-profile-card:hover,
.about-reading-card:hover,
.about-timeline article:hover,
.scan-page:hover,
.booking-card:hover,
.booking-summary:hover,
.admin-booking-card:hover,
.footer-callout:hover,
.footer-columns > nav:hover,
.footer-columns > address:hover {
  transform: translateY(-5px);
  box-shadow: 0 30px 70px rgba(67, 42, 120, .18);
}

.card:hover img,
.reading-hero-panel:hover img,
.about-profile-card:hover img,
.about-reading-card:hover img,
.article-scan-card:hover img,
.media-card:hover img {
  transform: scale(1.035);
  filter: saturate(1.08) contrast(1.04);
}

.day:not(:disabled):hover,
.slot:not(:disabled):hover,
.icon-button:hover,
.admin-day:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 26px rgba(91, 72, 118, .12);
}

.menu {
  gap: 8px 18px;
  font-size: 15px;
}

.menu a {
  min-height: 42px;
  padding: 8px 12px;
  font-weight: 850;
}

.menu a:hover,
.menu a:focus-visible {
  transform: translateY(-2px);
}

.header-booking-button {
  min-height: 52px;
  padding: 13px 24px;
  font-size: 15px;
}

.menu-toggle {
  position: relative;
  display: none;
  width: 48px;
  height: 48px;
  place-items: center;
  border: 1px solid rgba(91, 63, 147, .24);
  border-radius: 8px;
  background: rgba(255, 255, 255, .74);
  box-shadow: 0 12px 26px rgba(91, 72, 118, .1);
  cursor: pointer;
}

.menu-toggle span {
  position: absolute;
  left: 12px;
  top: 50%;
  width: 23px;
  height: 3px;
  display: block;
  border-radius: 999px;
  background: #3f315c;
  transition: transform .2s ease, opacity .2s ease;
}

.menu-toggle span:nth-child(1) {
  transform: translateY(-8px);
}

.menu-toggle span:nth-child(2) {
  transform: translateY(0);
}

.menu-toggle span:nth-child(3) {
  transform: translateY(8px);
}

body.menu-open .menu-toggle span:nth-child(1) {
  transform: rotate(45deg);
}

body.menu-open .menu-toggle span:nth-child(2) {
  opacity: 0;
}

body.menu-open .menu-toggle span:nth-child(3) {
  transform: rotate(-45deg);
}

.hero::before {
  content: none !important;
}

.about-kim-photo img {
  object-position: left center;
}

.energy-portrait {
  object-position: left center;
}

.footer-columns > nav,
.footer-columns > address {
  min-width: 0;
  padding: 26px;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 10px;
  background: rgba(255, 255, 255, .1);
  font-style: normal;
  backdrop-filter: blur(12px);
}

.footer-columns ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-columns li,
.footer-columns a,
.footer-bottom span {
  overflow-wrap: anywhere;
}

.footer-columns a {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
}

.footer-columns a:hover,
.footer-columns a:focus-visible,
.footer-bottom a:hover,
.footer-bottom a:focus-visible {
  transform: translateX(3px);
  color: #fff8cf;
}

.footer-bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 18px;
}

.footer-bottom a {
  color: rgba(255, 255, 255, .86);
}

h1,
h2,
h3,
h4,
p,
li,
dd,
dt,
label,
input,
select,
textarea,
button,
a {
  overflow-wrap: anywhere;
}

input,
select,
textarea,
iframe {
  max-width: 100%;
}

@media (max-width: 900px) {
  .nav-inner {
    position: relative;
    min-height: 74px;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
  }

  .menu-toggle {
    display: inline-grid;
    margin-left: auto;
  }

  .primary-nav {
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    right: 0;
    display: grid;
    gap: 12px;
    width: 100%;
    padding: 16px;
    border: 1px solid rgba(142, 111, 189, .24);
    border-radius: 8px;
    background: rgba(255, 248, 253, .98);
    box-shadow: 0 26px 60px rgba(67, 42, 120, .2);
    opacity: 0;
    pointer-events: none;
    transform: translateY(-8px);
    visibility: hidden;
    z-index: 30;
  }

  body.menu-open .primary-nav {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
    visibility: visible;
  }

  .menu {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    font-size: 16px;
  }

  .menu li {
    width: 100%;
  }

  .menu a {
    width: 100%;
    min-height: 48px;
    justify-content: center;
    border: 1px solid rgba(142, 111, 189, .16);
    border-radius: 8px;
    background: rgba(255, 255, 255, .76);
  }

  .menu a.active,
  .menu a:hover,
  .menu a:focus-visible {
    border-color: rgba(91, 63, 147, .35);
    background: #f5efff;
  }

  .header-booking-button {
    width: 100%;
    min-height: 52px;
    margin-top: 0;
  }

  .footer-columns > nav,
  .footer-columns > address {
    padding: 22px;
  }
}

@media (max-width: 560px) {
  .brand img {
    width: min(204px, 56vw);
  }

  .menu {
    font-size: 16px;
  }
}

/* Compact footer and mobile logo refinement */
.footer .footer-wrap {
  grid-template-columns: minmax(270px, .72fr) minmax(0, 1.38fr);
  gap: 24px;
  align-items: start;
  padding: 38px 0 26px;
}

.footer-callout {
  padding: 24px;
  justify-content: flex-start;
}

.footer-callout h2 {
  margin-bottom: 10px;
  font-size: clamp(25px, 2.8vw, 38px);
  line-height: 1.02;
}

.footer-callout .eyebrow {
  margin-bottom: 8px;
  font-size: 12px;
}

.footer-callout p {
  max-width: 460px;
  margin-bottom: 18px;
  font-size: 14px;
  line-height: 1.55;
}

.footer .button-row {
  gap: 10px;
}

.footer .button {
  min-height: 42px;
  padding: 10px 16px;
  font-size: 13px;
}

.footer .footer-columns {
  gap: 12px;
}

.footer-columns > nav,
.footer-columns > address {
  padding: 18px;
}

.footer-columns h3 {
  margin-bottom: 10px;
  font-size: 15px;
}

.footer-columns ul {
  gap: 5px;
}

.footer-columns a {
  min-height: 24px;
  font-size: 13px;
  line-height: 1.28;
}

.footer-bottom {
  padding: 10px 16px;
  font-size: 11px;
  gap: 5px 14px;
}

@media (max-width: 900px) {
  .footer .footer-wrap {
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 30px 0 22px;
  }

  .footer .footer-columns {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .footer-callout,
  .footer-columns > nav,
  .footer-columns > address {
    padding: 18px;
  }
}

@media (max-width: 640px) {
  .footer .footer-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .footer-callout h2 {
    font-size: 26px;
  }

  .footer-callout,
  .footer-columns > nav,
  .footer-columns > address {
    padding: 14px;
  }

  .footer-columns > address {
    grid-column: 1 / -1;
  }

  .footer-columns > address ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px 12px;
  }

  .footer-columns h3 {
    margin-bottom: 8px;
    font-size: 14px;
  }

  .footer-columns a {
    min-height: 22px;
    font-size: 12px;
  }

  .footer-bottom {
    padding: 9px 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* Home hero and intro image composition tune */
.home-intro .split {
  grid-template-columns: minmax(0, 1.12fr) minmax(330px, .88fr);
  align-items: stretch;
}

.home-intro .split > div {
  align-self: center;
}

.home-intro .energy-portrait {
  width: 100%;
  height: 100%;
  min-height: 520px;
  max-height: none;
  object-fit: cover;
  object-position: left center;
}

@media (max-width: 900px) {
  .hero {
    background:
      radial-gradient(circle at 12% 16%, rgba(174, 108, 211, .28), transparent 0 34%),
      linear-gradient(180deg, rgba(74, 52, 111, .12) 0%, rgba(255, 235, 248, .48) 36%, rgba(255, 246, 253, .24) 100%),
      linear-gradient(90deg, rgba(255, 248, 253, .78) 0%, rgba(255, 248, 253, .28) 54%, rgba(255, 248, 253, .06) 100%),
      url("/assets/img/hero-kim-energy-wide.png") 70% center / cover no-repeat;
  }

  .home-intro .split {
    grid-template-columns: 1fr;
    align-items: center;
  }

  .home-intro .energy-portrait {
    min-height: 420px;
    height: auto;
    aspect-ratio: 16 / 10;
  }
}

@media (max-width: 560px) {
  .hero {
    min-height: 690px;
    background:
      radial-gradient(circle at 12% 18%, rgba(163, 94, 205, .34), transparent 0 38%),
      linear-gradient(180deg, rgba(58, 42, 91, .18) 0%, rgba(255, 232, 247, .38) 30%, rgba(246, 229, 255, .34) 62%, rgba(248, 239, 255, .18) 100%),
      linear-gradient(90deg, rgba(255, 247, 252, .74) 0%, rgba(255, 247, 252, .22) 58%, rgba(255, 247, 252, .06) 100%),
      url("/assets/img/hero-kim-energy-wide.png") 74% center / cover no-repeat;
  }

  .hero-grid {
    min-height: 610px;
    align-items: end;
    padding: 92px 0 46px;
  }

  .hero-copy {
    align-self: end;
    transform: none;
  }

  .hero h1,
  .hero p {
    text-shadow: 0 3px 18px rgba(255, 255, 255, .78);
  }

  .home-intro .energy-portrait {
    min-height: 0;
    aspect-ratio: 4 / 3;
    object-position: left center;
  }
}
