.voices-page {
  --voice-ink: #241d20;
  --voice-muted: #71656b;
  --voice-wine: #8f2147;
  --voice-pink: #c83c70;
  --voice-gold: #b38a43;
  --voice-line: #eadde2;
  --voice-cream: #fbf7f4;
  color: var(--voice-ink);
  background: #fff;
}

.voice-eyebrow {
  margin: 0 0 10px;
  color: var(--voice-wine);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .18em;
}

.voice-hero {
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid rgba(143, 33, 71, .1);
  background:
    radial-gradient(circle at 88% 18%, rgba(209, 172, 185, .24), transparent 28%),
    linear-gradient(125deg, #fff 0%, #fcf8f7 48%, #f4e9e8 100%);
}

.voice-hero::before,
.voice-hero::after {
  position: absolute;
  border: 1px solid rgba(179, 138, 67, .18);
  border-radius: 50%;
  content: "";
  pointer-events: none;
}

.voice-hero::before {
  top: -210px;
  right: -60px;
  width: 430px;
  height: 430px;
}

.voice-hero::after {
  right: 220px;
  bottom: -240px;
  width: 360px;
  height: 360px;
}

.voice-hero__inner {
  position: relative;
  z-index: 1;
  padding-top: 54px;
  padding-bottom: 76px;
}

.voice-hero .breadcrumbs { margin-bottom: 48px; }

.voice-hero__copy { max-width: 820px; }

.voice-hero h1 {
  max-width: 820px;
  margin: 0;
  font-size: clamp(39px, 6.2vw, 68px);
  font-weight: 680;
  line-height: 1.34;
  letter-spacing: -.045em;
}

.voice-hero h1 span { color: var(--voice-wine); }

.voice-hero__copy > p:last-child {
  max-width: 680px;
  margin: 24px 0 0;
  color: var(--voice-muted);
  font-size: 16px;
  line-height: 1.95;
}

.voice-disclosure {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 18px;
  max-width: 920px;
  margin-top: 38px;
  padding: 19px 22px;
  border: 1px solid rgba(143, 33, 71, .15);
  border-radius: 16px;
  background: rgba(255, 255, 255, .76);
  box-shadow: 0 14px 36px rgba(74, 33, 47, .05);
  backdrop-filter: blur(8px);
}

.voice-disclosure strong {
  color: var(--voice-wine);
  font-size: 11px;
  letter-spacing: .03em;
}

.voice-disclosure p {
  margin: 0;
  color: #665960;
  font-size: 12px;
  line-height: 1.85;
}

.voice-intro { padding: 62px 0; background: #fff; }

.voice-intro__inner {
  display: grid;
  grid-template-columns: minmax(280px, .75fr) minmax(0, 1.25fr);
  align-items: end;
  gap: 70px;
}

.voice-intro h2 {
  margin: 0;
  font-size: clamp(27px, 3.5vw, 40px);
  line-height: 1.48;
  letter-spacing: -.025em;
}

.voice-intro__inner > p {
  margin: 0;
  color: var(--voice-muted);
  font-size: 14px;
  line-height: 2;
}

.voice-list {
  padding: 82px 0 104px;
  background: linear-gradient(180deg, #fbf8f7 0%, #fff 16%, #fff 100%);
}

.voice-section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 34px;
}

.voice-section-heading h2 {
  margin: 0;
  font-size: clamp(30px, 4vw, 46px);
  letter-spacing: -.03em;
}

.voice-section-heading > span {
  flex: none;
  padding: 6px 12px;
  border: 1px solid var(--voice-line);
  border-radius: 999px;
  color: var(--voice-wine);
  background: #fff;
  font-size: 11px;
  font-weight: 800;
}

.voice-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 30px;
}

.voice-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--voice-line);
  border-radius: 26px;
  background: #fff;
  box-shadow: 0 18px 52px rgba(73, 28, 44, .075);
}

.voice-card__visual {
  position: relative;
  margin: 0;
  background: #f2e4e8;
}

.voice-card__visual picture { display: block; aspect-ratio: 320 / 213; overflow: hidden; }

.voice-card__visual img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.voice-card__visual figcaption {
  position: absolute;
  right: 12px;
  bottom: 10px;
  max-width: calc(100% - 24px);
  padding: 5px 8px;
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 999px;
  color: #51464b;
  background: rgba(255, 255, 255, .9);
  box-shadow: 0 5px 18px rgba(37, 19, 25, .08);
  font-size: 11px;
  line-height: 1.35;
}

.voice-card__placeholder {
  position: relative;
  display: grid;
  min-height: 318px;
  place-content: center;
  overflow: hidden;
  isolation: isolate;
  text-align: center;
}

.voice-card__placeholder::before,
.voice-card__placeholder::after {
  position: absolute;
  z-index: -1;
  border-radius: 50%;
  content: "";
}

.voice-card__placeholder::before {
  top: -100px;
  right: -58px;
  width: 260px;
  height: 260px;
  border: 1px solid rgba(255, 255, 255, .55);
  background: rgba(255, 255, 255, .2);
}

.voice-card__placeholder::after {
  bottom: -130px;
  left: -60px;
  width: 240px;
  height: 240px;
  border: 1px solid rgba(91, 37, 56, .12);
}

.voice-card__placeholder span {
  margin-bottom: 13px;
  color: rgba(73, 39, 50, .68);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .17em;
}

.voice-card__placeholder strong {
  color: #4b2b36;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 37px;
  font-weight: 600;
  letter-spacing: .08em;
}

.voice-card__placeholder small {
  margin-top: 14px;
  color: rgba(73, 39, 50, .55);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .14em;
}

.voice-card--tone-1 .voice-card__placeholder { background: linear-gradient(140deg, #f7e8ec, #e8d4d8); }
.voice-card--tone-2 .voice-card__placeholder { background: linear-gradient(140deg, #f4ede6, #e5d9cc); }
.voice-card--tone-3 .voice-card__placeholder { background: linear-gradient(140deg, #edf0e9, #d7ded5); }
.voice-card--tone-4 .voice-card__placeholder { background: linear-gradient(140deg, #f0e8e4, #dfd0cc); }
.voice-card--tone-5 .voice-card__placeholder { background: linear-gradient(140deg, #eee8ed, #dbd1dc); }

.voice-card__body { padding: 28px 30px 31px; }

.voice-card__topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 14px;
}

.voice-card__topline > span {
  padding: 6px 10px;
  border: 1px solid #e7c4d0;
  border-radius: 999px;
  color: var(--voice-wine);
  background: #fff8fa;
  font-size: 11px;
  font-weight: 850;
}

.voice-card__topline small {
  color: #9a8b91;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .12em;
}

.voice-card__meta {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0 0 8px;
  color: #7e6e75;
  font-size: 11px;
  font-weight: 700;
}

.voice-card h2 {
  margin: 0;
  font-size: clamp(22px, 2.5vw, 29px);
  line-height: 1.5;
  letter-spacing: -.02em;
}

.voice-card__quote {
  position: relative;
  margin: 20px 0 0;
  padding: 17px 19px 17px 38px;
  border-left: 2px solid var(--voice-gold);
  color: #503c44;
  background: var(--voice-cream);
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 15px;
  line-height: 1.85;
}

.voice-card__quote::before {
  position: absolute;
  top: 8px;
  left: 13px;
  color: rgba(143, 33, 71, .33);
  content: "“";
  font-size: 28px;
}

.voice-card__concern { margin-top: 25px; }

.voice-card__concern h3,
.voice-card__lists h3,
.voice-card__next h3 {
  margin: 0 0 8px;
  color: var(--voice-wine);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .03em;
}

.voice-card__concern p,
.voice-card__next p {
  margin: 0;
  color: #62555b;
  font-size: 13px;
  line-height: 1.9;
}

.voice-card__lists {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 23px;
}

.voice-card__lists section {
  min-width: 0;
  padding: 18px;
  border: 1px solid #eee4e7;
  border-radius: 15px;
  background: #fffdfd;
}

.voice-card__lists ul {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.voice-card__lists li {
  position: relative;
  padding-left: 13px;
  color: #62575b;
  font-size: 11px;
  line-height: 1.7;
}

.voice-card__lists li::before {
  position: absolute;
  top: .73em;
  left: 0;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--voice-gold);
  content: "";
}

.voice-card__next {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--voice-line);
}

.voice-empty {
  padding: 64px 28px;
  border: 1px solid var(--voice-line);
  border-radius: 22px;
  background: #fff;
  text-align: center;
}

.voice-empty h2 { margin: 0 0 8px; }
.voice-empty p { margin: 0 0 22px; color: var(--voice-muted); }

.voice-action { padding: 0 0 105px; background: #fff; }

.voice-action__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 46px;
  padding: 44px 48px;
  border-radius: 25px;
  color: #fff;
  background: linear-gradient(130deg, #391b28 0%, #70233f 58%, #9a2a51 100%);
  box-shadow: 0 24px 64px rgba(74, 25, 43, .2);
}

.voice-action .voice-eyebrow { color: #e8c997; }

.voice-action h2 {
  margin: 0 0 10px;
  font-size: clamp(26px, 3.4vw, 39px);
  letter-spacing: -.025em;
}

.voice-action__inner > div:first-child > p:last-child {
  max-width: 680px;
  margin: 0;
  color: #eadce1;
  font-size: 13px;
  line-height: 1.9;
}

.voice-action__links { display: grid; min-width: 180px; gap: 9px; }

.voice-action__links .btn--primary {
  border-color: #fff;
  color: var(--voice-wine);
  background: #fff;
}

.voice-action__links .btn--ghost {
  border-color: rgba(255, 255, 255, .45);
  color: #fff;
  background: transparent;
}

@media (max-width: 980px) {
  .voice-grid { gap: 22px; }
  .voice-card__body { padding: 24px; }
  .voice-card__lists { grid-template-columns: 1fr; }
  .voice-intro__inner { gap: 38px; }
}

@media (max-width: 800px) {
  .voice-hero__inner { padding-top: 40px; padding-bottom: 58px; }
  .voice-hero .breadcrumbs { margin-bottom: 34px; }
  .voice-disclosure { grid-template-columns: 1fr; gap: 7px; }
  .voice-intro { padding: 52px 0; }
  .voice-intro__inner { grid-template-columns: 1fr; gap: 18px; }
  .voice-list { padding: 66px 0 80px; }
  .voice-grid { grid-template-columns: 1fr; }
  .voice-card__placeholder { min-height: 360px; }
  .voice-action { padding-bottom: 80px; }
  .voice-action__inner { grid-template-columns: 1fr; padding: 36px; }
  .voice-action__links { width: min(100%, 340px); }
}

@media (max-width: 560px) {
  .voice-hero h1 { font-size: 36px; line-height: 1.43; }
  .voice-hero__copy > p:last-child { font-size: 14px; }
  .voice-disclosure { margin-top: 28px; padding: 17px; }
  .voice-section-heading { align-items: flex-start; flex-direction: column; gap: 12px; }
  .voice-card { border-radius: 20px; }
  .voice-card__placeholder { min-height: 270px; }
  .voice-card__visual figcaption { font-size: 11px; }
  .voice-card__body { padding: 22px 20px 24px; }
  .voice-card h2 { font-size: 23px; }
  .voice-card__quote { padding-right: 15px; font-size: 14px; }
  .voice-card__lists section { padding: 16px; }
  .voice-action__inner { padding: 30px 23px; border-radius: 20px; }
  .voice-action__links { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .voice-card,
  .voice-card * { scroll-behavior: auto; transition: none; }
}
