:root {
  --ink: #070b1c;
  --ink-2: #0d1430;
  --paper: #f3f0f8;
  --muted: #aaa9bc;
  --line: rgba(214, 214, 235, 0.18);
  --violet: #8f77db;
  --lilac: #c6b4ff;
  --blue: #6e9be8;
  --glow: #e6ddff;
  --font-sans: "Noto Sans JP", sans-serif;
  --font-latin: "Montserrat", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  overflow-x: hidden;
  background: var(--ink);
  color: var(--paper);
  font-family: var(--font-sans);
  line-height: 1.8;
  letter-spacing: 0.03em;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, select { font: inherit; }

.tarot-progress {
  position: fixed;
  inset: 0 0 auto;
  z-index: 100;
  height: 2px;
  background: rgba(255,255,255,.05);
}
.tarot-progress span {
  display: block;
  width: 100%;
  height: 100%;
  transform: scaleX(0);
  transform-origin: left;
  background: linear-gradient(90deg, var(--blue), var(--lilac), #fff);
  box-shadow: 0 0 16px var(--lilac);
}

.tarot-sky { position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.tarot-sky::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 13%, rgba(67, 95, 173, .16), transparent 24%),
    radial-gradient(circle at 82% 62%, rgba(102, 70, 164, .14), transparent 27%),
    linear-gradient(180deg, #080d24 0%, #080b19 52%, #090918 100%);
}
.tarot-sky i {
  position: absolute;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 10px 2px rgba(198, 180, 255, .7);
  animation: tarotTwinkle 4s ease-in-out infinite;
}
.tarot-sky i:nth-child(1) { left: 8%; top: 15%; animation-delay: -1s; }
.tarot-sky i:nth-child(2) { left: 23%; top: 72%; animation-delay: -2.7s; }
.tarot-sky i:nth-child(3) { left: 42%; top: 28%; animation-delay: -.4s; }
.tarot-sky i:nth-child(4) { left: 58%; top: 85%; animation-delay: -3.4s; }
.tarot-sky i:nth-child(5) { left: 70%; top: 18%; animation-delay: -2s; }
.tarot-sky i:nth-child(6) { left: 86%; top: 46%; animation-delay: -.8s; }
.tarot-sky i:nth-child(7) { left: 93%; top: 78%; animation-delay: -2.2s; }
.tarot-sky i:nth-child(8) { left: 35%; top: 52%; animation-delay: -3.1s; }
@keyframes tarotTwinkle { 0%, 100% { opacity: .18; transform: scale(.65); } 50% { opacity: .95; transform: scale(1.35); } }

.tarot-header {
  position: sticky;
  top: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 74px;
  padding: 12px clamp(20px, 4vw, 64px);
  border-bottom: 1px solid var(--line);
  background: rgba(7, 11, 28, .82);
  backdrop-filter: blur(18px);
}
.tarot-brand img { width: 172px; height: auto; }
.tarot-header nav { display: flex; align-items: center; gap: 28px; }
.tarot-header nav a { color: #c7c7d8; font-size: .72rem; font-weight: 600; }
.tarot-header .tarot-header-cta { padding: 9px 16px; border: 1px solid rgba(198,180,255,.55); color: #fff; }

.tarot-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(400px, .76fr);
  align-items: center;
  gap: clamp(44px, 7vw, 110px);
  width: min(1280px, calc(100% - 48px));
  min-height: calc(100svh - 74px);
  margin: 0 auto;
  padding: clamp(70px, 8vw, 118px) 0 100px;
}
.tarot-hero::before {
  content: "";
  position: absolute;
  left: -16vw;
  top: 6%;
  width: 42vw;
  aspect-ratio: 1;
  border: 1px solid rgba(144, 136, 200, .16);
  border-radius: 50%;
  box-shadow: 0 0 0 42px rgba(144,136,200,.025), 0 0 0 96px rgba(144,136,200,.018);
}
.tarot-hero-copy { position: relative; z-index: 2; }
.tarot-kicker {
  margin: 0 0 22px;
  color: var(--lilac);
  font-family: var(--font-latin);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .28em;
}
.tarot-date { display: flex; align-items: flex-end; gap: 20px; margin: 0 0 34px; }
.tarot-date time { font-family: var(--font-latin); font-size: clamp(1.05rem, 2vw, 1.35rem); letter-spacing: .08em; }
.tarot-date time b { color: var(--lilac); font-size: .65em; }
.tarot-date > span { padding-left: 20px; border-left: 1px solid var(--line); color: #afb5cd; font-family: var(--font-latin); font-size: .75rem; }
.tarot-hero h1 {
  margin: 0;
  font-size: clamp(2.5rem, 5vw, 5.2rem);
  font-weight: 500;
  line-height: 1.38;
  letter-spacing: .04em;
}
.tarot-hero h1 em, .tarot-section-head h2 em, .tarot-reserve-intro h2 em {
  background: linear-gradient(102deg, #fff 4%, #d8cfff 44%, #779ee6 100%);
  background-clip: text;
  color: transparent;
  font-style: normal;
}
.tarot-hero-lead { margin: 30px 0 0; color: #c5c5d3; font-size: .98rem; line-height: 2.15; }
.tarot-hero-points { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 30px; }
.tarot-hero-points span { padding: 8px 13px; border: 1px solid var(--line); color: #b9b9cc; font-size: .68rem; }
.tarot-primary-cta {
  display: inline-grid;
  grid-template-columns: auto auto;
  align-items: center;
  column-gap: 28px;
  margin-top: 34px;
  min-width: 320px;
  padding: 18px 21px;
  border: 1px solid rgba(219,211,255,.66);
  background: linear-gradient(110deg, rgba(111, 105, 197, .85), rgba(66, 93, 159, .74));
  box-shadow: 0 12px 40px rgba(74,79,171,.22), inset 0 0 24px rgba(255,255,255,.05);
  font-weight: 700;
  transition: transform .25s ease, box-shadow .25s ease;
}
.tarot-primary-cta span { grid-column: 1; color: #d8d5e6; font-size: .57rem; font-weight: 500; }
.tarot-primary-cta b { grid-column: 2; grid-row: 1 / 3; font-size: 1.3rem; }
.tarot-primary-cta:hover { transform: translateY(-3px); box-shadow: 0 18px 54px rgba(92,90,191,.34); }
.tarot-private-note { margin: 9px 0 0; color: #808296; font-size: .63rem; }

.tarot-poster-stage { position: relative; z-index: 2; width: min(100%, 500px); justify-self: end; }
.tarot-poster {
  position: relative;
  z-index: 3;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(225,220,255,.32);
  background: #101735;
  box-shadow: 0 40px 90px rgba(0,0,0,.55), 0 0 50px rgba(95,101,194,.15);
  transform: rotate(1.2deg);
}
.tarot-poster::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 35%, rgba(255,255,255,.15) 47%, transparent 59%);
  transform: translateX(-140%);
  animation: tarotShine 8s ease-in-out infinite;
}
.tarot-poster img { width: 100%; height: auto; }
.tarot-card-back {
  position: absolute;
  z-index: 1;
  display: grid;
  place-items: end center;
  width: 46%;
  aspect-ratio: .69;
  border: 1px solid rgba(182,171,234,.28);
  background: repeating-radial-gradient(circle at 50% 38%, rgba(163,148,224,.13) 0 2px, transparent 3px 16px), #0a1029;
  box-shadow: 0 24px 60px rgba(0,0,0,.38);
}
.tarot-card-back span { margin-bottom: 18px; color: rgba(215,207,245,.35); font-family: var(--font-latin); font-size: .48rem; letter-spacing: .22em; }
.tarot-card-back-a { left: -14%; bottom: -5%; transform: rotate(-12deg); }
.tarot-card-back-b { right: -9%; top: 3%; transform: rotate(10deg); }
.tarot-poster-caption { display: block; margin-top: 18px; color: #777b94; font-family: var(--font-latin); font-size: .55rem; letter-spacing: .18em; text-align: right; }
@keyframes tarotShine { 0%, 58% { transform: translateX(-140%); } 80%, 100% { transform: translateX(140%); } }

.tarot-marquee { overflow: hidden; border-block: 1px solid var(--line); background: rgba(15,20,47,.74); }
.tarot-marquee div { display: flex; width: max-content; padding: 13px 0; animation: tarotMarquee 25s linear infinite; }
.tarot-marquee span, .tarot-marquee i { margin-right: 38px; color: #8c8da5; font-family: var(--font-latin); font-size: .62rem; font-style: normal; letter-spacing: .22em; }
.tarot-marquee i { color: var(--lilac); }
@keyframes tarotMarquee { to { transform: translateX(-50%); } }

.tarot-section { position: relative; padding: clamp(88px, 12vw, 160px) 0; }
.tarot-shell { width: min(1120px, calc(100% - 48px)); margin: 0 auto; }
.tarot-section-head { max-width: 720px; }
.tarot-section-head > p, .tarot-bookings-head p { margin: 0 0 18px; color: var(--lilac); font-family: var(--font-latin); font-size: .63rem; font-weight: 700; letter-spacing: .26em; }
.tarot-section-head h2, .tarot-reserve-intro h2 {
  margin: 0;
  font-size: clamp(2rem, 4.1vw, 4rem);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .04em;
}
.tarot-section-head > span { display: block; max-width: 620px; margin-top: 24px; color: #aeb0c3; font-size: .86rem; line-height: 2; }
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.8,.2,1); }
.reveal.is-visible { opacity: 1; transform: none; }

.tarot-experience { background: linear-gradient(180deg, rgba(14,20,46,.6), rgba(8,11,28,.2)); }
.tarot-topic-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 66px; border: 1px solid var(--line); }
.tarot-topic { position: relative; min-height: 320px; padding: 30px 26px; border-right: 1px solid var(--line); background: rgba(16,21,46,.72); }
.tarot-topic:last-child { border-right: 0; }
.tarot-topic b { color: #656a87; font-family: var(--font-latin); font-size: .65rem; }
.tarot-topic > span { display: block; margin-top: 52px; color: var(--lilac); font-family: var(--font-latin); font-size: .56rem; letter-spacing: .18em; }
.tarot-topic h3 { margin: 8px 0 18px; font-size: 1.25rem; font-weight: 600; }
.tarot-topic p { margin: 0; color: #9fa1b4; font-size: .76rem; line-height: 1.9; }
.tarot-topic::after { content: ""; position: absolute; right: 24px; top: 27px; width: 24px; height: 24px; border: 1px solid rgba(198,180,255,.35); transform: rotate(45deg); }
/* 占い師プロフィール */
.tarot-reader { display: flex; align-items: center; gap: 26px; padding: 32px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.tarot-reader-photo { width: 92px; height: 92px; flex-shrink: 0; border-radius: 50%; object-fit: cover; border: 1px solid rgba(198,180,255,.4); box-shadow: 0 0 22px rgba(143,119,219,.35); }
.tarot-reader-main { display: grid; gap: 4px; flex-shrink: 0; }
.tarot-reader-text { margin-left: auto; }
.tarot-reader-label { margin: 0; color: var(--lilac); font-family: var(--font-latin); font-size: .55rem; letter-spacing: .18em; }
.tarot-reader-name { margin: 0; font-size: 1.9rem; font-weight: 600; letter-spacing: .06em; line-height: 1.2; }
.tarot-reader-name span { margin-left: 6px; font-size: .9rem; font-weight: 400; color: var(--muted); }
.tarot-reader-roman { margin: 0; color: var(--lilac); font-family: var(--font-latin); font-size: .72rem; font-style: italic; letter-spacing: .1em; }
.tarot-reader-sns { display: inline-flex; align-items: center; gap: 7px; margin-top: 8px; padding: 7px 14px; border: 1px solid var(--line); border-radius: 999px; color: var(--paper); font-family: var(--font-latin); font-size: .72rem; text-decoration: none; transition: border-color .25s, color .25s; }
.tarot-reader-sns svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.tarot-reader-sns:hover { border-color: var(--lilac); color: var(--lilac); }
.tarot-reader-text { margin: 0; color: #9da0b5; font-size: .82rem; line-height: 1.95; max-width: 34ch; }

/* イベントの特徴3点 */
.tarot-features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 34px 0 0; padding: 0; list-style: none; }
.tarot-features li { display: grid; justify-items: center; gap: 10px; padding: 26px 18px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.03); text-align: center; }
.tarot-features svg { width: 30px; height: 30px; fill: none; stroke: var(--lilac); stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.tarot-features strong { font-size: .95rem; font-weight: 600; line-height: 1.6; }
.tarot-features span { color: #9096ad; font-size: .72rem; line-height: 1.8; }

.tarot-price { overflow: hidden; }
.tarot-price::before { content: ""; position: absolute; right: -10vw; top: 15%; width: 38vw; aspect-ratio: 1; border: 1px solid rgba(133,147,211,.13); border-radius: 50%; }
.tarot-price-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 62px; }
.tarot-price-card { position: relative; overflow: hidden; padding: 38px; border: 1px solid var(--line); background: rgba(14,18,40,.8); }
.tarot-price-card > p { margin: 0 0 12px; color: #8f92aa; font-family: var(--font-latin); font-size: .58rem; letter-spacing: .19em; }
.tarot-price-card > p span { margin-left: 8px; color: var(--lilac); }
.tarot-price-card h3 { margin: 0 0 28px; font-size: 1.25rem; font-weight: 600; }
.tarot-price-card dl { margin: 0; }
.tarot-price-card dl > div { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding: 20px 0; border-top: 1px solid var(--line); }
.tarot-price-card dt { color: #a5a7ba; font-size: .78rem; }
.tarot-price-card dd { margin: 0; }
.tarot-price-card dd strong { margin-right: 5px; font-family: var(--font-latin); font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 500; letter-spacing: 0; }
.tarot-price-card-women { border-color: rgba(198,180,255,.45); background: linear-gradient(140deg, rgba(69,63,121,.55), rgba(13,18,42,.88)); }
.tarot-price-card-women dd strong { color: var(--glow); text-shadow: 0 0 22px rgba(198,180,255,.2); }
.tarot-price-card > small { display: inline-block; padding: 6px 10px; background: var(--lilac); color: #16142c; font-size: .65rem; font-weight: 700; }
.tarot-price-note { margin: 18px 0 0; color: #777a8f; font-size: .68rem; }

.tarot-reserve { border-block: 1px solid var(--line); background: rgba(12,17,39,.84); }
.tarot-reserve-shell { display: grid; grid-template-columns: minmax(0,.78fr) minmax(480px,1fr); gap: clamp(54px, 8vw, 100px); align-items: start; }
.tarot-reserve-intro > p:not(.tarot-kicker) { margin: 28px 0 0; color: #adafc1; font-size: .82rem; line-height: 2; }
.tarot-reserve-intro ol { display: grid; gap: 0; margin: 38px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.tarot-reserve-intro li { display: flex; align-items: center; gap: 18px; padding: 17px 0; border-bottom: 1px solid var(--line); color: #c7c8d4; font-size: .76rem; }
.tarot-reserve-intro li b { color: var(--lilac); font-family: var(--font-latin); }
.tarot-form-wrap { padding: 36px; border: 1px solid rgba(198,180,255,.28); background: rgba(6,9,24,.78); box-shadow: 0 30px 70px rgba(0,0,0,.28); }
.tarot-form-heading { margin-bottom: 30px; }
.tarot-form-heading > span { color: var(--lilac); font-family: var(--font-latin); font-size: .55rem; letter-spacing: .18em; }
.tarot-form-heading h3 { margin: 6px 0 3px; font-size: 1.45rem; }
.tarot-form-heading p { margin: 0; color: #8d91a8; font-family: var(--font-latin); font-size: .7rem; }
.tarot-field, .tarot-fieldset { display: grid; gap: 9px; margin: 0 0 22px; padding: 0; border: 0; }
.tarot-field > span, .tarot-fieldset legend { color: #c8c9d5; font-size: .72rem; font-weight: 600; }
.tarot-field b, .tarot-fieldset b { color: var(--lilac); font-size: .58rem; }
.tarot-field input, .tarot-field select {
  width: 100%;
  min-height: 50px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 0;
  outline: 0;
  background: #0d1229;
  color: #fff;
  font-size: .78rem;
}
.tarot-field input:focus, .tarot-field select:focus { border-color: var(--lilac); box-shadow: 0 0 0 3px rgba(198,180,255,.08); }
.tarot-options { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; }
.tarot-options label { position: relative; }
.tarot-options input { position: absolute; opacity: 0; }
.tarot-options span { display: grid; place-items: center; min-height: 46px; border: 1px solid var(--line); color: #a5a7b9; font-size: .7rem; cursor: pointer; }
.tarot-options input:checked + span { border-color: var(--lilac); background: rgba(112,95,174,.25); color: #fff; }
.tarot-form-row { display: grid; grid-template-columns: .65fr 1.35fr; gap: 12px; }
.tarot-consent { display: flex; align-items: flex-start; gap: 10px; color: #a5a6b6; font-size: .66rem; line-height: 1.7; cursor: pointer; }
.tarot-consent input { width: 17px; height: 17px; margin-top: 2px; accent-color: var(--violet); }
.tarot-form-note { margin: 12px 0 0; color: #777b91; font-size: .62rem; }
.tarot-submit { width: 100%; margin-top: 22px; padding: 17px; border: 1px solid rgba(222,215,255,.58); background: linear-gradient(105deg, #6259a5, #435d9e); color: #fff; font-weight: 700; cursor: pointer; transition: filter .2s ease, transform .2s ease; }
.tarot-submit:hover { filter: brightness(1.15); transform: translateY(-2px); }
.tarot-submit:disabled { cursor: wait; opacity: .55; }
.tarot-form-message { min-height: 1.7em; margin: 12px 0 0; font-size: .7rem; }
.tarot-form-message[data-state="success"] { color: #b8e0d1; }
.tarot-form-message[data-state="error"] { color: #f2a9b8; }
.tarot-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.tarot-bookings { padding: 80px 0 100px; }
.tarot-bookings-head { display: flex; align-items: end; justify-content: space-between; gap: 30px; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.tarot-bookings-head p { margin-bottom: 6px; }
.tarot-bookings-head h2 { margin: 0; font-size: 1.6rem; font-weight: 600; }
.tarot-bookings-head > span { color: var(--lilac); font-family: var(--font-latin); font-size: .8rem; }
.tarot-booking-list { display: grid; }
.tarot-booking-item { display: grid; grid-template-columns: 52px 1fr .8fr 60px; align-items: center; gap: 20px; min-height: 82px; border-bottom: 1px solid var(--line); }
.tarot-booking-number { color: #61657f; font-family: var(--font-latin); font-size: .65rem; }
.tarot-booking-item div { display: flex; align-items: baseline; gap: 12px; }
.tarot-booking-item strong { font-size: .88rem; }
.tarot-booking-item small { color: #85889f; font-size: .58rem; }
.tarot-booking-item p, .tarot-booking-item > span:last-child { margin: 0; color: #a9aabd; font-size: .7rem; }
.tarot-booking-empty { padding: 30px 0; border-bottom: 1px solid var(--line); color: #85889d; font-size: .76rem; }
.tarot-bookings-privacy { margin: 15px 0 0; color: #676b82; font-size: .6rem; }

.tarot-final { padding: 110px 0 126px; border-top: 1px solid var(--line); text-align: center; }
.tarot-final p { color: var(--lilac); font-family: var(--font-latin); font-size: .62rem; letter-spacing: .2em; }
.tarot-final h2 { margin: 22px 0 35px; font-size: clamp(1.7rem,3.5vw,3.3rem); font-weight: 500; line-height: 1.65; }
.tarot-final a { display: inline-flex; align-items: center; gap: 50px; min-width: 330px; justify-content: space-between; padding: 17px 20px; border: 1px solid var(--lilac); background: rgba(100,88,167,.18); font-size: .78rem; font-weight: 700; }

.tarot-footer { display: grid; place-items: center; gap: 12px; padding: 60px 20px 96px; border-top: 1px solid var(--line); background: #050817; text-align: center; }
.tarot-footer img { width: 210px; height: auto; }
.tarot-footer p { margin: 4px 0 0; color: #777a8e; font-size: .68rem; }
.tarot-footer small { color: #4f5267; font-family: var(--font-latin); font-size: .54rem; }
.tarot-mobile-cta { display: none; }

@media (max-width: 900px) {
  .tarot-header nav a:not(.tarot-header-cta) { display: none; }
  .tarot-hero { grid-template-columns: 1fr; width: min(680px, calc(100% - 36px)); padding-top: 58px; }
  .tarot-hero-copy { order: 1; }
  .tarot-poster-stage { order: 2; justify-self: center; width: min(84%, 430px); margin-top: 20px; }
  .tarot-topic-grid { grid-template-columns: 1fr 1fr; }
  .tarot-topic:nth-child(2) { border-right: 0; }
  .tarot-topic:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .tarot-reserve-shell { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  body { padding-bottom: 72px; }
  .tarot-header { min-height: 64px; padding: 10px 18px; }
  .tarot-brand img { width: 148px; }
  .tarot-header .tarot-header-cta { padding: 8px 12px; font-size: .65rem; }
  .tarot-hero { width: calc(100% - 36px); min-height: auto; gap: 48px; padding: 56px 0 80px; }
  .tarot-date { align-items: center; gap: 13px; margin-bottom: 26px; }
  .tarot-date time { font-size: .95rem; }
  .tarot-date > span { padding-left: 13px; font-size: .62rem; }
  .tarot-hero h1 { font-size: 2.35rem; line-height: 1.48; }
  .tarot-hero-lead { margin-top: 24px; font-size: .82rem; }
  .tarot-primary-cta { width: 100%; min-width: 0; }
  .tarot-poster-stage { width: 86%; }
  .tarot-card-back { width: 45%; }
  .tarot-section { padding: 90px 0; }
  .tarot-shell { width: calc(100% - 36px); }
  .tarot-section-head h2, .tarot-reserve-intro h2 { font-size: 1.85rem; }
  .tarot-section-head > span { font-size: .77rem; }
  .tarot-topic-grid { grid-template-columns: 1fr; margin-top: 44px; }
  .tarot-topic { min-height: 240px; border-right: 0; border-bottom: 1px solid var(--line); }
  .tarot-topic:last-child { border-bottom: 0; }
  .tarot-topic > span { margin-top: 30px; }
  .tarot-reader { align-items: center; flex-wrap: wrap; gap: 16px 18px; }
  .tarot-reader-photo { width: 70px; height: 70px; }
  .tarot-reader-text { margin-left: 0; max-width: none; flex-basis: 100%; }
  .tarot-features { grid-template-columns: 1fr; gap: 12px; }
  .tarot-features li { grid-template-columns: 30px 1fr; justify-items: start; gap: 6px 16px; padding: 20px 18px; text-align: left; }
  .tarot-features svg { grid-row: span 2; align-self: center; }
  .tarot-price-grid { grid-template-columns: 1fr; margin-top: 42px; }
  .tarot-price-card { padding: 27px 23px; }
  .tarot-form-wrap { padding: 27px 20px; }
  .tarot-options { grid-template-columns: 1fr; }
  .tarot-options span { justify-content: start; padding-left: 14px; }
  .tarot-form-row { grid-template-columns: 1fr; }
  .tarot-booking-item { grid-template-columns: 36px 1fr auto; gap: 10px; padding: 15px 0; }
  .tarot-booking-item p { grid-column: 2; }
  .tarot-booking-item > span:last-child { grid-column: 3; grid-row: 1; }
  .tarot-final { padding: 88px 0 96px; }
  .tarot-final a { min-width: 0; width: 100%; }
  .tarot-mobile-cta {
    position: fixed;
    inset: auto 0 0;
    z-index: 60;
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    padding: 12px 22px calc(12px + env(safe-area-inset-bottom));
    border-top: 1px solid rgba(216,207,255,.45);
    background: rgba(24,25,61,.94);
    backdrop-filter: blur(16px);
  }
  .tarot-mobile-cta span { color: #aaaabd; font-size: .52rem; }
  .tarot-mobile-cta strong { grid-column: 1; font-size: .82rem; }
  .tarot-mobile-cta b { grid-column: 2; grid-row: 1 / 3; color: var(--lilac); }
}

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