@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,100..900;1,100..900&family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap");
#header, .pageTitle, .headerLay02, .globalNavi, .mainImgArea, #sidebar, #breadcrumb, #scrolltop, #footer, .footerLay01, .follow_banner, .pc-switcher {
  display: none; }

#wrap {
  min-width: 100%; }

#container {
  width: auto;
  margin: auto; }

#mainContent.floatLeft {
  width: 100% !important;
  float: none; }

#content, .pagewrap, #SPtop {
  margin: 0; }

/* --- Base Styles & Reset --- */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0; }

html {
  font-size: 50%; }
  @media screen and (min-width: 380px) {
    html {
      font-size: 62.5%; } }
  @media screen and (min-width: 800px) {
    html {
      font-size: 73%; } }

body {
  font-family: "Jost", "Zen Kaku Gothic New", Meiryo, sans-serif;
  font-weight: 600;
  color: #000000;
  font-size: 1.6rem;
  line-height: 1.4;
  letter-spacing: 0;
  background-color: #FFF9F9;
  overflow-x: hidden;
  /* Prevent horizontal scroll */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background: rgba(246, 233, 225, 0.6) url(https://hari-kosei.com/wp-content/uploads/2025/06/lpninkatsushinkyu_bg-texture.png) no-repeat center/cover fixed;
  background-blend-mode: soft-light; }

h1, h2, h3, h4, h5, h6 {
  font-weight: 600; }

header {
  font-size: 1.6rem; }
  header h1, header h2, header h3, header h4, header h5, header h6 {
    font-weight: 600; }

img {
  max-width: 100%;
  height: auto;
  display: block; }

a {
  text-decoration: none;
  color: inherit; }

ul {
  list-style: none; }

section {
  text-align: center;
  position: relative;
  z-index: 1;
  /* Ensure content is above any background patterns */
  background: #ffffff;
  padding: 0 0 1px;
  width: 100%; }

#LPWrap {
  max-width: 800px;
  margin: auto; }

/* Common Section Titles */
.section-title {
  margin-bottom: 4rem;
  padding: 1.8rem 2rem 1.6rem;
  background: #F5AAA7;
  font-size: 2.4rem;
  color: #ffffff;
  position: relative;
  z-index: 10; }
  .section-title::after {
    content: '';
    position: absolute;
    background-color: #F5AAA7;
    display: block;
    margin: auto;
    bottom: -1.2rem;
    left: -100%;
    right: -100%;
    height: 2.6rem;
    width: 2.6rem;
    transform: rotate(45deg); }
  .section-title .big {
    font-size: 1.16em; }

.w-slim {
  max-width: 680px;
  margin: 0 auto;
  padding: 0 min(3.8%, 25px); }

/* Common CTA Button */
.cta-block {
  padding: 2.6rem 0.5rem;
  margin: 0 auto -1px;
  background: #00B406;
  text-align: center;
  font-size: 1.6rem; }
  @media screen and (min-width: 800px) {
    .cta-block {
      font-size: 1.8rem; } }
  .cta-block .cta-text {
    color: #ffffff;
    margin: 0 auto 0.6em; }
    .cta-block .cta-text span {
      font-size: 1.25em; }
    .cta-block .cta-text::before, .cta-block .cta-text::after {
      content: "";
      display: inline-block;
      height: 1.1em;
      width: 1px;
      margin: auto 0.5em -0.2em auto;
      background: #ffffff;
      transform: rotate(-45deg); }
    .cta-block .cta-text::after {
      margin: auto auto -0.2em 0.5em;
      transform: rotate(45deg); }
  .cta-block .line-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    color: #00B406;
    font-size: 1.13em;
    font-weight: bold;
    padding: 1em 1.6em 0.85em;
    border-radius: 3em;
    text-decoration: none;
    box-shadow: 0 0 4px rgba(0, 0, 0, 0.25);
    transition: background-color 0.3s ease;
    white-space: nowrap;
    /* Prevent button text from wrapping */
    max-width: 90%;
    /* For responsiveness */ }
    .cta-block .line-button::after {
      content: "";
      display: inline-block;
      width: 0.5em;
      height: 0.5em;
      margin: -0.12em 0 0 0.5em;
      border-top: 0.2em solid #00B406;
      border-right: 0.2em solid #00B406;
      transform: rotate(45deg); }

/* hled Text Styles */
.hl {
  background: #E83830;
  color: #ffffff;
  font-weight: bold;
  white-space: nowrap; }

.hl-red {
  color: #E83830; }

.hl-pink {
  color: #F5AAA7; }

.hl-gray {
  color: #5D6884; }

.hl-yellow {
  color: #FFB354; }

.hl-underline {
  text-decoration: underline wavy 0.04rem;
  text-underline-offset: 10%; }

.hl-edge {
  color: #ffffff;
  text-shadow: 1px 1px 1px #594739, -1px 1px 1px #594739, 1px -1px 1px #594739, -1px -1px 1px #594739, 1px 0px 1px #594739, 0px 1px 1px #594739, -1px 0px 1px #594739, 0px -1px 1px #594739; }

/* --- Specific Sections --- */
/* Hero Section */
.hero-section .top-info {
  background: #6A4707;
  color: #ffffff;
  font-size: 1.4rem;
  padding: 0.6em 0.5em 0.5em;
  text-align: center;
  letter-spacing: -0.02em;
  position: relative;
  z-index: 10; }
.hero-section .hero-block {
  padding-top: 1px;
  background: url("https://hari-kosei.com/wp-content/uploads/2025/06/lpninkatsushinkyu_hero-img-bg.jpg") no-repeat top center/auto 120%; }
  .hero-section .hero-block .point {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    margin: 1.5rem auto 1.7rem; }
    .hero-section .hero-block .point > p {
      background: #DCC182;
      color: #ffffff;
      padding: 0.55rem 0.5rem 0.4rem;
      border-radius: 0.5rem;
      font-size: 1.5rem;
      line-height: 1.0;
      white-space: nowrap;
      flex: auto;
      text-align: center; }
  .hero-section .hero-block .approach-icons {
    display: flex;
    justify-content: flex-start;
    gap: 0.42em; }
    .hero-section .hero-block .approach-icons > span {
      color: #E83830;
      flex: 2 1 auto;
      text-align: center;
      font-size: 1.5em;
      line-height: 1; }
      .hero-section .hero-block .approach-icons > span.hl {
        font-size: 1.8rem;
        color: #ffffff;
        padding: 0.55rem 1.45rem 0.4rem;
        border-radius: 2em; }
      .hero-section .hero-block .approach-icons > span:not([class]) {
        font-size: 2.5rem;
        font-weight: 400; }
  .hero-section .hero-block .main {
    color: #594739;
    font-size: 2.96rem;
    margin: 1.2rem auto -0.4em;
    line-height: 1.2;
    letter-spacing: -0.02em; }
    @media screen and (min-width: 800px) {
      .hero-section .hero-block .main {
        font-size: 3.8rem; } }
    .hero-section .hero-block .main .hl {
      font-size: 0.9em;
      border-radius: 0.5rem;
      padding: 0.09em 0.2em 0.05em;
      margin: 0.2em 0.25em 2.8rem 0;
      display: inline-block; }
    .hero-section .hero-block .main .small {
      font-size: 0.8em; }
    .hero-section .hero-block .main .big1 {
      font-size: 1.48em;
      display: inline-block; }
      .hero-section .hero-block .main .big1 .hl-red {
        background-image: radial-gradient(circle at center, #E83830 22%, transparent 22%);
        background-position: top right;
        background-repeat: repeat-x;
        background-size: 1em 0.3em;
        padding-top: 0.15em; }
    .hero-section .hero-block .main .big2 {
      font-size: 1.86em; }
      .hero-section .hero-block .main .big2 .small {
        font-size: 0.58em; }
      .hero-section .hero-block .main .big2 .hl-pink {
        text-shadow: 1px 1px 1px #ffffff, -1px 1px 1px #ffffff, 1px -1px 1px #ffffff, -1px -1px 1px #ffffff, 1px 0px 1px #ffffff, 0px 1px 1px #ffffff, -1px 0px 1px #ffffff, 0px -1px 1px #ffffff; }
        .hero-section .hero-block .main .big2 .hl-pink:last-of-type {
          font-size: 0.76em; }
.hero-section .hero-img {
  margin: -0.9em -3% 0 0; }
  .hero-section .hero-img img {
    object-fit: cover;
    height: 91.5vw;
    width: 70vw;
    object-position: top center;
    margin: auto;
    max-width: 330px;
    max-height: 440px; }
.hero-section .stat-item-block {
  display: flex;
  justify-content: center;
  gap: 2%;
  margin: max(-23vw, -119px) 1.8% max(-4vw, -31px);
  position: relative;
  z-index: 10; }
.hero-section .stat-item {
  width: 27vw;
  height: 27vw;
  max-width: 150px;
  max-height: 150px;
  background: #F5AAA7;
  border-radius: 50%;
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 1.0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  text-align: center;
  white-space: nowrap; }
  .hero-section .stat-item p {
    color: #ffffff; }
    .hero-section .stat-item p .number {
      font-size: 3.2rem; }
    .hero-section .stat-item p:nth-of-type(2) {
      font-size: 1.5rem;
      margin: 0.4em auto 0.3em;
      padding: 0 0 0 0.1em; }
    .hero-section .stat-item p:nth-of-type(3) {
      font-size: 1.6rem;
      margin: 0 auto -0.4em; }
    .hero-section .stat-item p.note {
      font-size: 0.6rem;
      margin: 1.5em auto -2em; }
.hero-section .cta-block {
  background: #ffffff;
  padding: 1.9em 0 1.3em; }
  .hero-section .cta-block .cta-text {
    color: #594739; }
    .hero-section .cta-block .cta-text span {
      color: #E83830; }
    .hero-section .cta-block .cta-text::before, .hero-section .cta-block .cta-text::after {
      background: #594739; }
  .hero-section .cta-block .line-button {
    background: #00B406;
    color: #ffffff;
    width: 94%;
    max-width: 580px; }
    .hero-section .cta-block .line-button::after {
      border-color: #ffffff; }

/* Testimonials Section */
.testimonials-section {
  background-color: #F6E9E1; }
  .testimonials-section .section-title {
    background: #594739;
    font-size: 2.0rem;
    padding: 2.35rem 2rem 2.15rem; }
    .testimonials-section .section-title::after {
      background-color: #594739; }
  .testimonials-section .chat-img-block {
    padding: 0.4em 6.5%; }
  .testimonials-section .chat-img {
    overflow: hidden;
    border-radius: 3rem;
    margin: 0 1rem 10%; }

/* Problem Section */
.problems-section {
  background: #EFF0F6;
  z-index: 99; }
  .problems-section .title {
    color: #594739;
    font-size: 3.2rem;
    font-weight: 500;
    line-height: 1.2;
    padding: 1.5em 0 0;
    position: relative;
    z-index: 1; }
    @media screen and (min-width: 800px) {
      .problems-section .title {
        font-size: 4rem;
        line-height: 1.2; } }
    .problems-section .title .small {
      font-size: 0.75em; }
    .problems-section .title .hl-edge {
      font-size: 1.5em;
      font-weight: 700;
      text-shadow: 1px 1px 1px #98a1b7, -1px 1px 1px #98a1b7, 1px -1px 1px #98a1b7, -1px -1px 1px #98a1b7, 1px 0px 1px #98a1b7, 0px 1px 1px #98a1b7, -1px 0px 1px #98a1b7, 0px -1px 1px #98a1b7; }
    .problems-section .title::after {
      content: "";
      background: url("https://hari-kosei.com/wp-content/uploads/2025/06/lpninkatsushinkyu_problem-icon.png") no-repeat center/contain;
      display: block;
      width: 5.5rem;
      height: 5.5rem;
      position: absolute;
      top: 1.3em;
      left: calc(50% + 12rem);
      z-index: -1; }
  .problems-section .problem-bubbles {
    display: flex;
    justify-content: center;
    flex-wrap: wrap; }
    .problems-section .problem-bubbles [class^="problem-item"] {
      color: #ffffff;
      font-size: min(4.25vw, 2.1rem);
      line-height: 1.3;
      letter-spacing: -0.02em; }
      @media screen and (min-width: 800px) {
        .problems-section .problem-bubbles [class^="problem-item"] {
          font-size: 1.8rem; } }
    .problems-section .problem-bubbles .problem-item01 {
      background: url("https://hari-kosei.com/wp-content/uploads/2025/06/lpninkatsushinkyu_balloon-problem01.png") no-repeat center/contain;
      z-index: 1;
      margin: 0  max(-10%, -2em) 0 -13%;
      width: 65%;
      max-width: 277px;
      padding: min(20.5%, 86px) 0 min(13%, 56px) min(4%, 17px); }
      .problems-section .problem-bubbles .problem-item01 p {
        transform: rotate(-2.73deg); }
    .problems-section .problem-bubbles .problem-item02 {
      background: url("https://hari-kosei.com/wp-content/uploads/2025/06/lpninkatsushinkyu_balloon-problem02.png") no-repeat center/contain;
      z-index: 10;
      margin: 2.3em -18% 0 -2%;
      width: 69%;
      max-width: 291px;
      padding: min(17%, 73px) 1% min(20%, 86px) 0; }
      .problems-section .problem-bubbles .problem-item02 p {
        transform: rotate(3.44deg); }
    .problems-section .problem-bubbles .problem-item03 {
      background: url("https://hari-kosei.com/wp-content/uploads/2025/06/lpninkatsushinkyu_balloon-problem03.png") no-repeat center/contain;
      z-index: 20;
      margin: -2.8em 15% -2em 16%;
      width: 68%;
      max-width: 281px;
      padding: min(12%, 47px) 0 min(14%, 65px) 0; }
      .problems-section .problem-bubbles .problem-item03 p {
        transform: rotate(-2.21deg); }
  .problems-section .problem-img {
    margin: 0 auto max(-21.5%,-6em);
    width: 100%;
    height: auto;
    max-width: 680px; }
  .problems-section .proposal-text {
    display: inline-flex;
    flex-direction: column;
    margin: 0 auto -3rem;
    letter-spacing: -0.04em;
    position: relative;
    z-index: 10; }
    .problems-section .proposal-text p {
      font-size: 3.2rem;
      color: #594739;
      line-height: 1.12; }
      .problems-section .proposal-text p .hl-pink {
        text-shadow: 1px 1px 1px #ffffff, -1px 1px 1px #ffffff, 1px -1px 1px #ffffff, -1px -1px 1px #ffffff, 1px 0px 1px #ffffff, 0px 1px 1px #ffffff, -1px 0px 1px #ffffff, 0px -1px 1px #ffffff;
        text-align: left;
        margin: 0 0 0.3em; }
      .problems-section .proposal-text p .point {
        font-size: 1.3em;
        background-image: radial-gradient(circle at center, #F5AAA7 22%, #ffffff 22%, #ffffff 26%, transparent 26%);
        background-position: top right;
        background-repeat: repeat-x;
        background-size: 1em 0.3em;
        padding-top: 0.3em; }
      .problems-section .proposal-text p .small {
        font-size: 0.76em; }
    .problems-section .proposal-text .hl-underline {
      transform: rotate(-2.37deg);
      text-align: left;
      margin: 0 0 0.55em;
      font-weight: 500;
      text-decoration-thickness: 0.2rem; }
  .problems-section .bg-arrow {
    width: 0;
    height: 0;
    border-left: 50vw solid transparent;
    border-right: 50vw solid transparent;
    border-top: 6.8rem solid #EFF0F6;
    margin: 0 auto -6.8rem; }
    @media screen and (min-width: 800px) {
      .problems-section .bg-arrow {
        border-left-width: 400px;
        border-right-width: 400px;
        border-top-width: 9rem;
        margin: 0 auto -9rem; } }

/* Solution Introduction Section */
.solution-intro-section {
  background: #F6E9E1 url("https://hari-kosei.com/wp-content/uploads/2025/06/lpninkatsushinkyu_bg-texture.png") no-repeat center/cover;
  padding: 10.5rem 0 0; }
  @media screen and (min-width: 800px) {
    .solution-intro-section {
      padding: 13rem 0 0; } }
  .solution-intro-section .clinic-banner {
    background: #E83830;
    display: inline-block;
    padding: 0.15em 0.5em 0.1em;
    margin-bottom: 30px;
    border-radius: 1rem;
    font-size: 2.4rem;
    letter-spacing: -0.04em;
    color: #ffffff; }
  .solution-intro-section .approach-icons {
    display: flex;
    justify-content: space-around;
    align-items: center;
    font-size: 2.1rem;
    color: #594739;
    width: 94%;
    max-width: 500px;
    margin: auto;
    padding: 0 20px; }
    .solution-intro-section .approach-icons .hl {
      display: flex;
      align-items: center;
      justify-content: center;
      height: 22vw;
      width: 22vw;
      min-height: 8rem;
      min-width: 8rem;
      max-height: 11rem;
      max-width: 11rem;
      border-radius: 35%;
      color: #ffffff;
      line-height: 1.0;
      background: #F5AAA7; }
      .solution-intro-section .approach-icons .hl:nth-of-type(2) {
        background: #DCC182;
        font-size: 0.85em; }
      .solution-intro-section .approach-icons .hl:nth-of-type(3) {
        background: #6FC4DD; }
    .solution-intro-section .approach-icons span {
      white-space: nowrap;
      display: inline-block; }
    .solution-intro-section .approach-icons > span:not([class]) {
      font-weight: 500;
      font-size: 1.3em; }
  .solution-intro-section .solution-approach-text {
    font-size: 3.6rem;
    letter-spacing: -0.02em;
    color: #594739;
    margin: 0.4em auto 0.3em; }
    .solution-intro-section .solution-approach-text .small {
      font-size: 0.78em; }
    .solution-intro-section .solution-approach-text .hl-effline {
      font-size: 0.89em;
      display: inline-block;
      line-height: 0.8; }
      .solution-intro-section .solution-approach-text .hl-effline::before, .solution-intro-section .solution-approach-text .hl-effline::after {
        content: "";
        display: inline-block;
        height: 1.6em;
        width: 4px;
        margin: auto 0.5em -0.3em auto;
        background: #594739;
        transform: rotate(-27deg); }
      .solution-intro-section .solution-approach-text .hl-effline::after {
        margin: auto auto -0.3em 0.5em;
        transform: rotate(27deg); }
      .solution-intro-section .solution-approach-text .hl-effline .hl-pink {
        font-size: 2.0em;
        text-shadow: 1px 1px 1px #ffffff, -1px 1px 1px #ffffff, 1px -1px 1px #ffffff, -1px -1px 1px #ffffff, 1px 0px 1px #ffffff, 0px 1px 1px #ffffff, -1px 0px 1px #ffffff, 0px -1px 1px #ffffff;
        display: inline-block;
        padding: 0.3em 0 0; }
    .solution-intro-section .solution-approach-text .hl-edge {
      font-size: 1.5em; }
      .solution-intro-section .solution-approach-text .hl-edge .small {
        font-size: 0.69em; }
  .solution-intro-section .solution-body-img {
    overflow: hidden; }
    .solution-intro-section .solution-body-img figure {
      width: 120%;
      margin: 0 -10% 1.5em; }
      @media screen and (min-width: 800px) {
        .solution-intro-section .solution-body-img figure {
          width: 100%;
          margin: 0 auto 3em; } }
    .solution-intro-section .solution-body-img img {
      width: 100%;
      max-width: 437px;
      margin: auto; }

.must-section .must-container {
  position: relative;
  z-index: 10;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0 16%;
  padding: 0.8em 0 min(11.5%, 5em); }
.must-section .must-item {
  background: #F5AAA7;
  width: 34vw;
  height: 34vw;
  max-width: 150px;
  max-height: 150px;
  border-radius: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #ffffff;
  font-size: 1.8rem; }
  .must-section .must-item:first-child {
    margin: 0 30% -4%; }
.must-section .must-item-image {
  position: absolute;
  z-index: 10;
  bottom: 0;
  right: -50%;
  left: -50%;
  margin: auto;
  width: 23.5vw;
  max-width: 110px; }
.must-section .summary-text {
  padding: 1.8em 0;
  color: #594739; }
  .must-section .summary-text .intro {
    font-size: 2.0rem;
    margin: 0 auto 0.6em; }
  .must-section .summary-text .main {
    font-size: 2.8rem;
    font-weight: 500;
    line-height: 1.5; }
    .must-section .summary-text .main .hl-pink {
      font-size: 1.28em;
      font-weight: 700; }
    .must-section .summary-text .main .small {
      font-size: 0.85em; }

/* Inherits dotted background from .has-dotted-background */
/* IVF Stats Section */
.ivf-stats-section {
  background: #FFF9F9;
  padding: 1.95em 0;
  color: #594739; }
  .ivf-stats-section .title {
    font-size: 2.4rem;
    line-height: 1.8; }
    .ivf-stats-section .title .hl-edge {
      font-size: 1.66em;
      line-height: 1.15;
      display: inline-block;
      padding: 0.1em 0 0; }
  .ivf-stats-section .ivf-stats-img {
    margin: max(-20%, -86px) auto 1em;
    max-width: 26em; }
    .ivf-stats-section .ivf-stats-img figure {
      width: 18%;
      max-width: 74px;
      height: auto;
      margin: 0 2% 0 auto; }
  .ivf-stats-section .stats-image-container {
    background: #ffffff;
    color: #594739;
    margin: 0 auto;
    padding: 1.85em 1.4em 1.6em;
    width: 86%;
    max-width: 460px;
    border-radius: 2rem; }
    .ivf-stats-section .stats-image-container .hl-underline {
      font-size: 2.4rem;
      margin: 0 0 0.9em; }
    .ivf-stats-section .stats-image-container .stats-image-graph {
      position: relative; }
    .ivf-stats-section .stats-image-container .balloon {
      position: absolute;
      top: 12.5%;
      right: 0.5%;
      z-index: 1;
      width: 11.9rem;
      height: 11.9rem;
      background: #E83830;
      border-radius: 100%;
      display: flex;
      justify-content: center;
      align-items: center;
      color: #ffffff;
      font-size: 2.3rem;
      line-height: 1.2; }
      .ivf-stats-section .stats-image-container .balloon::before {
        content: "";
        display: block;
        width: 0;
        height: 0;
        border-left: 1.5rem solid transparent;
        border-right: 1.5rem solid transparent;
        border-bottom: 3.6rem solid #E83830;
        position: absolute;
        top: -2.6rem;
        right: 20%;
        transform: rotate(18deg); }
      .ivf-stats-section .stats-image-container .balloon.lowest {
        width: 9rem;
        height: 9rem;
        top: auto;
        bottom: 15%;
        right: 0%;
        font-size: 2rem; }
        .ivf-stats-section .stats-image-container .balloon.lowest::before {
          border-left: 1rem solid transparent;
          border-right: 1rem solid transparent;
          border-top: 3.4rem solid #E83830;
          border-bottom: none;
          top: auto;
          bottom: 1%;
          right: auto;
          left: -0.8rem;
          transform: rotate(70deg); }
  .ivf-stats-section .ivf-stats-text {
    font-size: 2.4rem;
    margin: 1.9em auto 1em; }
    .ivf-stats-section .ivf-stats-text .hl-gray {
      font-size: 1.16em; }
    .ivf-stats-section .ivf-stats-text .hl-gray.hl-underline {
      font-size: 1.66em;
      text-decoration-thickness: 0.06em; }
    .ivf-stats-section .ivf-stats-text + .hl-underline {
      font-size: 2.2rem; }
  .ivf-stats-section .chart-description {
    font-size: 1.8rem;
    line-height: 1.6;
    margin: 1.5em auto 1em; }
  .ivf-stats-section .medical-level-info {
    font-size: 1.8rem;
    text-align: left;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    z-index: 10;
    width: 85%;
    max-width: 500px;
    margin: auto; }
    .ivf-stats-section .medical-level-info p {
      line-height: 1.7;
      white-space: nowrap;
      padding: 0 0 0.8em; }
      .ivf-stats-section .medical-level-info p .big {
        font-size: 2.0em; }
    .ivf-stats-section .medical-level-info .medical-level-img {
      width: 70%;
      max-width: 220px;
      margin: 0 -4% -5% -2%; }
  .ivf-stats-section .bg-arrow {
    width: 0;
    height: 0;
    background: #ffffff;
    border-left: 50vw solid transparent;
    border-right: 50vw solid transparent;
    border-top: 4.2rem solid #FFF9F9;
    margin: -0.6em auto 0;
    position: relative;
    z-index: 1; }
    @media screen and (min-width: 800px) {
      .ivf-stats-section .bg-arrow {
        border-left-width: 400px;
        border-right-width: 400px;
        border-top-width: 9rem;
        margin: -3em auto 0; } }
  .ivf-stats-section .answer-intro {
    background: #ffffff;
    padding: 1.95em 0 0;
    line-height: 1.55; }
    .ivf-stats-section .answer-intro p:first-of-type {
      font-size: 2.4rem; }
    .ivf-stats-section .answer-intro p:nth-of-type(2) {
      font-size: 2.0rem;
      color: #000000;
      margin: 0.85em auto 0;
      line-height: 1.25; }
    .ivf-stats-section .answer-intro .hl-edge {
      font-size: 1.5em; }
    .ivf-stats-section .answer-intro .hl-red {
      font-size: 2.6em; }
      .ivf-stats-section .answer-intro .hl-red .small {
        font-size: 0.46em;
        margin: 0 -1em 0 -0.4em; }
  .ivf-stats-section .explanation-box {
    background: #ffffff;
    padding: min(9%, 4em) 7.5%; }
  .ivf-stats-section .explanation-inner {
    background: #FFF9F9;
    border-radius: 2rem;
    text-align: justify;
    padding: 1.3em 1em 1em;
    margin: auto;
    max-width: 700px; }
    .ivf-stats-section .explanation-inner p {
      font-weight: 500;
      color: #000000; }
      .ivf-stats-section .explanation-inner p + p {
        margin-top: 1.2em; }
  .ivf-stats-section [class^="conclusion"] {
    font-size: 1.4rem;
    line-height: 1.65; }
    .ivf-stats-section [class^="conclusion"] .hl-red {
      font-size: 1.7em;
      line-height: 1.8; }
    .ivf-stats-section [class^="conclusion"] .mid {
      font-size: 1.15em; }
  .ivf-stats-section .conclusion-text {
    margin: 3em auto 0.4em; }
  .ivf-stats-section .conclusion-subtext {
    margin: 0 auto 3.8em; }
  .ivf-stats-section .transition-text {
    font-size: 2.4rem; }
    .ivf-stats-section .transition-text .hl-yellow {
      font-size: 3.0em;
      display: inline-block;
      margin: 0 0 -0.1em; }

/* Approaches Section (Detailed) */
.approaches-section {
  background: #F9F5F0;
  color: #594739; }
  .approaches-section .section-title {
    margin-bottom: 3.1rem; }
  .approaches-section .approach-subtitle {
    font-size: 2.08rem;
    line-height: 1.5; }
  .approaches-section .director-img {
    margin: 1.5em auto 1.8em;
    width: 92%; }
  .approaches-section .approach-main {
    font-size: 3.34rem;
    text-underline-offset: 20%; }
  .approaches-section .arrow-down {
    width: 0;
    height: 0;
    border-left: 2.6rem solid transparent;
    border-right: 2.6rem solid transparent;
    border-top: 2rem solid #594739;
    margin: 1.4em auto 4em; }
  .approaches-section .approach-card {
    margin: 0 auto 3.8em;
    width: 86%;
    max-width: 540px; }
  .approaches-section .card-img {
    position: relative;
    margin: 2.2em auto;
    width: 92%;
    max-width: 400px; }
    .approaches-section .card-img .number {
      position: absolute;
      z-index: 1;
      top: -3%;
      left: 3%;
      display: flex;
      justify-content: center;
      align-items: center;
      padding: 0.05em 0.1em 0 0;
      width: 5.6rem;
      height: 6.0rem;
      background: #F5AAA7;
      font-size: 4.47rem;
      color: #ffffff;
      font-style: italic;
      font-weight: 500;
      border-radius: 2.8em; }
  .approaches-section .card-title {
    font-size: 4.0rem; }
  .approaches-section .card-subtitle-box {
    margin: 0.9em auto 1.5em; }
    .approaches-section .card-subtitle-box p {
      font-size: 2.0rem;
      color: #ffffff;
      background: #594739;
      display: inline-block;
      border-radius: 2em;
      line-height: 1.2;
      padding: 0.3em 1em 0.2em; }
  .approaches-section .card-text {
    font-weight: 500;
    line-height: 1.9;
    margin: 1em auto 2.3em;
    text-align: justify; }
  .approaches-section .service-note {
    font-size: 2.4rem;
    text-decoration: underline 0.12em;
    text-underline-offset: 12%;
    text-decoration-color: #F5AAA7;
    margin: -1em auto 1.7em; }
  .approaches-section .chart-box {
    font-size: 2.4rem;
    color: #000000; }
    .approaches-section .chart-box .chart-img {
      margin: 1em auto;
      width: 92%;
      max-width: 400px; }
  .approaches-section .stat-box {
    line-height: 1.2;
    color: #000000;
    margin: 0 auto 0.7em; }
    .approaches-section .stat-box h5 {
      background: #E83830;
      display: inline-block;
      border-radius: 2em;
      padding: 0.35em 1em 0.2em;
      font-size: 2.0rem;
      color: #ffffff;
      margin: 0.5em auto 1.2em; }
    .approaches-section .stat-box .text {
      font-size: 2.08rem; }
      .approaches-section .stat-box .text .small {
        font-size: 0.62em; }
    .approaches-section .stat-box h5 + .text {
      font-size: 2.4rem;
      font-weight: 500; }
    .approaches-section .stat-box .strong {
      font-size: 7.2rem;
      font-weight: 500;
      letter-spacing: -0.06em;
      display: inline-block;
      margin: 0.11em 0;
      position: relative; }
      .approaches-section .stat-box .strong .small {
        font-size: 0.6em;
        letter-spacing: 0;
        padding: 0 0 0 0.1em; }
      .approaches-section .stat-box .strong.attention::before {
        content: "※";
        position: absolute;
        top: 1em;
        right: 0.6rem;
        font-size: 1rem; }
      .approaches-section .stat-box .strong.hl-red .small {
        font-weight: 700; }
    .approaches-section .stat-box .stat-note {
      font-size: 0.73rem; }
  .approaches-section .bg-arrow {
    width: 0;
    height: 0;
    background: #ffffff;
    border-left: 50vw solid transparent;
    border-right: 50vw solid transparent;
    border-top: 5.7rem solid #F9F5F0;
    margin: -3.5em auto 0;
    position: relative;
    z-index: 1; }
    @media screen and (min-width: 800px) {
      .approaches-section .bg-arrow {
        border-left-width: 400px;
        border-right-width: 400px;
        border-top-width: 9rem; } }
  .approaches-section .solution-summary {
    background: #ffffff;
    font-size: 3.2rem;
    line-height: 1.32;
    padding: 0.35em 0 0.7em; }
    .approaches-section .solution-summary > p {
      margin: 0.5em auto;
      line-height: 1.3; }
      .approaches-section .solution-summary > p + p {
        margin-top: 1.1em; }
    .approaches-section .solution-summary .hl-pink {
      font-size: 2.0em; }
    .approaches-section .solution-summary .hl-edge {
      font-size: 1.56em; }
      .approaches-section .solution-summary .hl-edge .small {
        font-size: 0.72em; }
    .approaches-section .solution-summary .hl-underline {
      line-height: 1.48; }
    .approaches-section .solution-summary .hl-bg {
      font-size: 1.03em;
      display: inline-block;
      background: #F5AAA7;
      color: #ffffff;
      padding: 0.4em 0.3em 0.25em;
      line-height: 1.0;
      border-radius: 1rem;
      margin: 0.7em auto; }

/* Director Message Section */
.director-message-section {
  padding: 0.2em 0 2em; }
  .director-message-section .section-title {
    background: transparent;
    font-size: 4.0rem;
    margin: 0 auto;
    padding: 1.15em 0 0; }
    .director-message-section .section-title::after {
      content: none; }
  .director-message-section .director-profile {
    width: 92%;
    margin: 0.75em auto; }
    .director-message-section .director-profile figcaption {
      font-size: 1.5rem;
      font-weight: 500;
      color: #594739;
      padding: 1.65em 0 1em; }
      .director-message-section .director-profile figcaption .strong {
        font-size: 1.2em;
        padding: 0 0 0 0.6em;
        font-weight: 700; }
  .director-message-section .hl-red.hl-underline {
    font-size: 2.0rem;
    line-height: 1.8; }
  .director-message-section .message-content {
    width: 86%;
    max-width: 700px;
    margin: 1em auto;
    font-weight: 400;
    text-align: justify;
    line-height: 1.9;
    letter-spacing: -0.02em; }
    .director-message-section .message-content p + p {
      margin: 1.6em auto 0; }

/* Case Studies Section */
.case-studies-section .section-title {
  margin-bottom: 4.5rem; }
.case-studies-section .case-study {
  background: #FFF9F9;
  color: #594739;
  font-size: 1.3rem;
  line-height: 1.6;
  padding: 0 0 2rem;
  width: 84%;
  margin: 2em auto; }
  .case-studies-section .case-study figure {
    width: 100%; }
    .case-studies-section .case-study figure img {
      width: 100%;
      height: auto; }
  .case-studies-section .case-study h3 {
    width: 100%;
    background: #F6E9E1;
    font-size: 1.53em;
    padding: 0.5em 0.5em 0.32em;
    margin: 0 auto 2rem; }
  .case-studies-section .case-study p {
    padding: 0 1.5em;
    text-align: justify;
    font-weight: 500; }
    .case-studies-section .case-study p + p {
      padding-top: 0.3em; }

/* Pricing Section */
.pricing-section .section-title {
  margin-bottom: 4.3rem; }
.pricing-section .pricing-card {
  font-size: 1.8rem;
  border-radius: 2.0rem;
  overflow: hidden;
  background: #FFF9F9;
  width: 84%;
  max-width: 480px;
  margin: 1.5em auto 1.75em; }
.pricing-section .card-category {
  color: #594739;
  font-size: 1.1em;
  background: #F6E9E1;
  padding: 0.6em 0.5em 0.4em; }
.pricing-section .price-value {
  padding: 3.6rem 1rem 3.4rem;
  line-height: 1.2; }
  .pricing-section .price-value.hl-red {
    font-size: 2.7em; }
    .pricing-section .price-value.hl-red .small {
      font-size: 0.64em; }
  .pricing-section .price-value.list {
    display: inline-flex;
    flex-direction: column;
    font-weight: 500;
    gap: 0.65em;
    line-height: 1.6; }
  .pricing-section .price-value li {
    text-align: left;
    display: inline-block; }
    .pricing-section .price-value li::before {
      content: "・"; }
    .pricing-section .price-value li .small {
      font-size: 0.83em; }
  .pricing-section .price-value .course-title {
    background: #F5AAA7;
    border-radius: 2em;
    color: white;
    font-size: 1.1em;
    padding: 0.3em 0.5em 0.2em; }
  .pricing-section .price-value .course-details {
    color: #211715;
    font-weight: 600; }
    .pricing-section .price-value .course-details ul {
      display: inline-flex;
      flex-direction: column;
      margin: 0.2em auto 0.7em;
      line-height: 1.5; }
    .pricing-section .price-value .course-details + .course-title {
      margin-top: 0.9em; }
  .pricing-section .price-value .regular-price {
    font-size: 1.6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.6em; }
    .pricing-section .price-value .regular-price > p {
      background: linear-gradient(-10deg, transparent 48%, #211715 50%, #211715 52%, transparent 52%); }
    .pricing-section .price-value .regular-price .strong {
      font-size: 1.5em; }
    .pricing-section .price-value .regular-price .offprice {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 4.2em;
      height: 4.2em;
      padding: 0.2em 0 0;
      background: #E83830;
      border-radius: 100%;
      color: #ffffff;
      font-size: 1.26rem;
      line-height: 0.95; }
  .pricing-section .price-value .arrow-down {
    width: 0;
    height: 0;
    border-left: 0.6rem solid transparent;
    border-right: 0.6rem solid transparent;
    border-top: 0.6rem solid #211715;
    margin: 0 auto; }
  .pricing-section .price-value .monthly-price {
    font-size: 1.6rem;
    font-weight: 600; }
    .pricing-section .price-value .monthly-price .strong {
      font-size: 2.5em;
      letter-spacing: -0.05em; }
.pricing-section .recommend-banner p {
  display: inline-block;
  background: #E83830;
  color: #ffffff;
  font-size: 1.8rem;
  border-radius: 0.6rem;
  position: relative;
  padding: 0.9em 0.5em 0.75em;
  width: 92%;
  line-height: 1.2; }
  .pricing-section .recommend-banner p::after {
    content: "";
    border-left: 0.7rem solid transparent;
    border-right: 0.7rem solid transparent;
    border-top: 1.7rem solid #E83830;
    display: block;
    width: 0;
    height: 0;
    margin: auto;
    position: absolute;
    bottom: -1.2rem;
    left: -50%;
    right: -50%;
    transform: rotate(24deg); }

/* FAQ Section */
.faq-section .faq-container {
  text-align: justify;
  width: 84%;
  max-width: 700px;
  margin: 1em auto 1.8em;
  font-weight: 500;
  letter-spacing: -0.05em; }
.faq-section .faq-item {
  border-bottom: 1px solid #E2E3E5; }
  .faq-section .faq-item .faq-question, .faq-section .faq-item .faq-answer {
    display: flex;
    justify-content: flex-start;
    align-items: self-start;
    letter-spacing: -0.05em;
    gap: 0.6em; }
  .faq-section .faq-item .faq-question {
    padding: 1.3em 0.85em;
    line-height: 2rem; }
    .faq-section .faq-item .faq-question > p {
      width: calc(100% - 3.2em);
      flex: 1 10 auto; }
  .faq-section .faq-item .faq-answer {
    height: 0px;
    padding: 0;
    overflow: hidden; }
  .faq-section .faq-item .question-label, .faq-section .faq-item .toggle-icon {
    width: 0.85em;
    flex: 0 0 0.85em;
    line-height: 1.8rem;
    font-size: 2.2rem;
    text-align: center; }
  .faq-section .faq-item .toggle-icon {
    font-size: 2.7rem;
    font-weight: 400; }
  .faq-section .faq-item.active .faq-answer {
    transition: max-height 0.5s ease-out;
    height: auto;
    padding: 0.8em;
    border-top: 1px solid #E2E3E5; }

/* Access Section */
.access-section .map-container {
  width: 84%;
  max-width: 700px;
  margin: auto; }
  .access-section .map-container iframe {
    width: 100%;
    height: 250px;
    border: none; }
.access-section .shop-info {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 1em 0;
  width: 84%;
  max-width: 700px;
  margin: 1.4em auto 3em;
  font-weight: 500;
  text-align: left; }
  .access-section .shop-info h3 {
    width: 6.5em;
    font-size: 1.6rem;
    margin: 0 0 0 -0.5em; }
  .access-section .shop-info p {
    width: calc(100% - 6em); }
    .access-section .shop-info p.w100 {
      width: 100%; }

/* Final Message Section */
.final-message-section .main-concept {
  font-size: 2.4rem;
  margin: 2.2em auto 0.8em; }
  .final-message-section .main-concept .hl-bg {
    font-size: 2.0em;
    color: #ffffff;
    background: #F5AAA7;
    border-radius: 1rem;
    padding: 0.25em 0.41em 0.1em;
    margin: 0.2em auto 0.35em;
    line-height: 1.0;
    display: inline-block; }
.final-message-section .concept-explanation {
  width: 92%;
  margin: 0 auto 2em;
  text-align: justify;
  font-weight: 500;
  line-height: 2; }

/*# sourceMappingURL=style.css.map */
