@charset "UTF-8";
/* ===============================================
# color
=============================================== */
/* ===============================================
# breakpoint
=============================================== */
/* ===============================================
# z-index
=============================================== */
/* ===============================================
# img pass
=============================================== */
/* ===============================================
# other
=============================================== */
html,
body {
  color: #333333;
  font-family: Noto Sans JP, sans-serif;
  font-size: 100%;
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  scroll-padding-top: 116px;
}

@layer reset;
@layer reset {
  /* resset.dev • v5.0.2 */
  /* # =================================================================
  # Global selectors
  # ================================================================= */
  html {
    box-sizing: border-box;
    -webkit-text-size-adjust: 100%;
    /* Prevent adjustments of font size after orientation changes in iOS */
    word-break: normal;
    -moz-tab-size: 4;
    tab-size: 4;
  }
  *,
  ::before,
  ::after {
    background-repeat: no-repeat;
    /* Set `background-repeat: no-repeat` to all elements and pseudo elements */
    box-sizing: inherit;
  }
  ::before,
  ::after {
    text-decoration: inherit;
    /* Inherit text-decoration and vertical align to ::before and ::after pseudo elements */
    vertical-align: inherit;
  }
  * {
    padding: 0;
    /* Reset `padding` and `margin` of all elements */
    margin: 0;
    box-sizing: border-box;
  }
  /* # =================================================================
  # General elements
  # ================================================================= */
  hr {
    overflow: visible;
    /* Show the overflow in Edge and IE */
    height: 0;
    /* Add the correct box sizing in Firefox */
    color: inherit;
    /* Correct border color in Firefox. */
  }
  details,
  main {
    display: block;
    /* Render the `main` element consistently in IE. */
  }
  summary {
    display: list-item;
    /* Add the correct display in all browsers */
  }
  small {
    font-size: 80%;
    /* Set font-size to 80% in `small` elements */
  }
  [hidden] {
    display: none;
    /* Add the correct display in IE */
  }
  abbr[title] {
    border-bottom: none;
    /* Remove the bottom border in Chrome 57 */
    /* Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari */
    text-decoration: underline;
    text-decoration: underline dotted;
  }
  a {
    background-color: transparent;
    /* Remove the gray background on active links in IE 10 */
  }
  a:active,
  a:hover {
    outline-width: 0;
    /* Remove the outline when hovering in all browsers */
  }
  code,
  kbd,
  pre,
  samp {
    font-family: monospace, monospace;
    /* Specify the font family of code elements */
  }
  pre {
    font-size: 1em;
    /* Correct the odd `em` font sizing in all browsers */
  }
  b,
  strong {
    font-weight: bolder;
    /* Add the correct font weight in Chrome, Edge, and Safari */
  }
  /* https://gist.github.com/unruthless/413930 */
  sub,
  sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }
  sub {
    bottom: -0.25em;
  }
  sup {
    top: -0.5em;
  }
  table {
    border-color: inherit;
    /* Correct border color in all Chrome, Edge, and Safari. */
    text-indent: 0;
    /* Remove text indentation in Chrome, Edge, and Safari */
  }
  iframe {
    border-style: none;
  }
  /* # =================================================================
  # Forms
  # ================================================================= */
  input {
    border-radius: 0;
  }
  [type=number]::-webkit-inner-spin-button,
  [type=number]::-webkit-outer-spin-button {
    height: auto;
    /* Correct the cursor style of increment and decrement buttons in Chrome */
  }
  [type=search] {
    appearance: textfield;
    -webkit-appearance: textfield;
    /* Correct the odd appearance in Chrome and Safari */
    outline-offset: -2px;
    /* Correct the outline style in Safari */
  }
  [type=search]::-webkit-search-decoration {
    -webkit-appearance: none;
    /* Remove the inner padding in Chrome and Safari on macOS */
  }
  textarea {
    overflow: auto;
    /* Internet Explorer 11+ */
    resize: vertical;
    /* Specify textarea resizability */
  }
  button,
  input,
  optgroup,
  select,
  textarea {
    font: inherit;
    /* Specify font inheritance of form elements */
  }
  optgroup {
    font-weight: bold;
    /* Restore the font weight unset by the previous rule */
  }
  button {
    overflow: visible;
    /* Address `overflow` set to `hidden` in IE 8/9/10/11 */
  }
  button,
  select {
    text-transform: none;
    /* Firefox 40+, Internet Explorer 11- */
  }
  /* Apply cursor pointer to button elements */
  button,
  [type=button],
  [type=reset],
  [type=submit],
  [role=button] {
    cursor: pointer;
  }
  /* Remove inner padding and border in Firefox 4+ */
  button::-moz-focus-inner,
  [type=button]::-moz-focus-inner,
  [type=reset]::-moz-focus-inner,
  [type=submit]::-moz-focus-inner {
    border-style: none;
    padding: 0;
  }
  /* Replace focus style removed in the border reset above */
  button:-moz-focusring,
  [type=button]::-moz-focus-inner,
  [type=reset]::-moz-focus-inner,
  [type=submit]::-moz-focus-inner {
    outline: 1px dotted ButtonText;
  }
  button,
  html [type=button],
  [type=reset],
  [type=submit] {
    appearance: button;
    -webkit-appearance: button;
    /* Correct the inability to style clickable types in iOS */
  }
  /* Remove the default button styling in all browsers */
  button,
  input,
  select,
  textarea {
    background-color: transparent;
    border-style: none;
  }
  /* Style select like a standard input */
  select {
    appearance: none;
    -moz-appearance: none;
    /* Firefox 36+ */
    -webkit-appearance: none;
    /* Chrome 41+ */
  }
  select::-ms-expand {
    display: none;
    /* Internet Explorer 11+ */
  }
  select::-ms-value {
    color: currentColor;
    /* Internet Explorer 11+ */
  }
  legend {
    border: 0;
    /* Correct `color` not being inherited in IE 8/9/10/11 */
    color: inherit;
    /* Correct the color inheritance from `fieldset` elements in IE */
    display: table;
    /* Correct the text wrapping in Edge and IE */
    max-width: 100%;
    /* Correct the text wrapping in Edge and IE */
    white-space: normal;
    /* Correct the text wrapping in Edge and IE */
    max-width: 100%;
    /* Correct the text wrapping in Edge 18- and IE */
  }
  ::-webkit-file-upload-button {
    /* Correct the inability to style clickable types in iOS and Safari */
    -webkit-appearance: button;
    color: inherit;
    font: inherit;
    /* Change font properties to `inherit` in Chrome and Safari */
  }
  /* Replace pointer cursor in disabled elements */
  [disabled] {
    cursor: default;
  }
  /* # =================================================================
  # Specify media element style
  # ================================================================= */
  img {
    border-style: none;
    /* Remove border when inside `a` element in IE 8/9/10 */
  }
  /* Add the correct vertical alignment in Chrome, Firefox, and Opera */
  progress {
    vertical-align: baseline;
  }
  /* # =================================================================
  # Accessibility
  # ================================================================= */
  /* Specify the progress cursor of updating elements */
  [aria-busy=true] {
    cursor: progress;
  }
  /* Specify the pointer cursor of trigger elements */
  [aria-controls] {
    cursor: pointer;
  }
  /* Specify the unstyled cursor of disabled, not-editable, or otherwise inoperable elements */
  [aria-disabled=true] {
    cursor: default;
  }
}
.l-footer {
  padding: 64px clamp(20px, -86.6666666667px + 13.8888888889vw, 80px) 24px;
  background-color: #574c64;
}
@media screen and (max-width: 768px) {
  .l-footer {
    padding-block: 48px 98px;
  }
}
.l-footer__contents {
  display: flex;
  justify-content: space-between;
  gap: clamp(48px, 30.1298701299px + 4.1558441558vw, 80px);
  padding-bottom: 40px;
  border-bottom: 1px solid #fff;
}
@media screen and (max-width: 1000px) {
  .l-footer__contents {
    flex-direction: column;
    text-align: center;
  }
}
.l-footer__logo {
  height: 64px;
}
@media screen and (max-width: 768px) {
  .l-footer__logo {
    height: 48px;
  }
}
.l-footer__logo-link {
  display: inline-block;
  width: 100%;
  height: 100%;
}
.l-footer__logo-image {
  width: auto;
  height: 100%;
}
.l-footer__sns {
  margin-top: 40px;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .l-footer__sns {
    margin-top: 32px;
  }
}
.l-footer__sns-comment {
  color: #fff;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
}
.l-footer__sns-comment::before {
  content: "＼";
  margin-right: 4px;
}
.l-footer__sns-comment::after {
  content: "／";
  margin-left: 4px;
}
.l-footer__sns-block {
  display: flex;
  gap: clamp(48px, 39.0649350649px + 2.0779220779vw, 64px);
  max-width: 340px;
  margin: 8px auto 0;
  padding: 16px 32px;
  background-color: #fff;
  border-radius: 10px;
}
.l-footer__sns-text {
  align-self: center;
  color: #574c64;
  font-family: Shippori Mincho, serif;
  font-size: 16px;
  font-size: 1rem;
  line-height: normal;
  letter-spacing: 0.3px;
  font-weight: 600;
}
.l-footer__sns-list {
  display: flex;
  gap: 16px;
  list-style: none;
  margin-left: auto;
}
.l-footer__sns-item {
  width: 32px;
  height: 32px;
}
.l-footer__sns-link {
  display: inline-block;
  width: 100%;
  height: 100%;
  transition: opacity 0.3s;
}
@media (hover: hover) and (pointer: fine) {
  .l-footer__sns-link:hover {
    opacity: 0.7;
  }
}
.l-footer__sns-link img {
  display: block;
  width: 100%;
}
.l-footer__nav {
  flex: 1;
  display: flex;
  justify-content: flex-end;
  gap: clamp(24px, -75.5555555556px + 12.962962963vw, 80px);
}
@media screen and (max-width: 1000px) {
  .l-footer__nav {
    justify-content: center;
  }
}
.l-footer__nav-list {
  display: grid;
  gap: 8px;
  align-content: flex-start;
}
.l-footer__nav-block {
  display: grid;
  gap: 8px;
  align-content: flex-start;
}
.l-footer__nav-link {
  color: #fff;
  text-align: left;
  font-size: 16px;
  font-size: 1rem;
  line-height: 2;
  letter-spacing: 0.3px;
  font-weight: 700;
  text-decoration: none;
  transition: opacity 0.3s;
}
@media screen and (max-width: 768px) {
  .l-footer__nav-link {
    font-size: 13px;
    font-size: 0.8125rem;
    line-height: 2;
    letter-spacing: 0.3px;
    font-weight: 700;
  }
}
@media (hover: hover) and (pointer: fine) {
  .l-footer__nav-link:hover {
    opacity: 0.7;
  }
}
.l-footer__nav-items {
  display: grid;
  align-content: flex-start;
  gap: 4px;
  list-style: none;
}
.l-footer__nav-item {
  display: flex;
  gap: 8px;
}
.l-footer__nav-item::before {
  content: "";
  align-self: center;
  display: flex;
  width: 8px;
  height: 1px;
  background-color: #fff;
}
.l-footer__nav-item-link {
  color: #fff;
  text-decoration: none;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 2;
  letter-spacing: 0.3px;
  font-weight: 400;
  transition: opacity 0.3s;
}
@media screen and (max-width: 768px) {
  .l-footer__nav-item-link {
    font-size: 12px;
    font-size: 0.75rem;
    line-height: 2;
    letter-spacing: 0.3px;
    font-weight: 400;
  }
}
@media (hover: hover) and (pointer: fine) {
  .l-footer__nav-item-link:hover {
    opacity: 0.7;
  }
}
.l-footer__nav-group {
  display: flex;
  gap: clamp(24px, -75.5555555556px + 12.962962963vw, 80px);
}
@media screen and (max-width: 768px) {
  .l-footer__nav-group {
    flex-direction: column;
  }
}
.l-footer__subContents {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  margin-top: 24px;
}
@media screen and (max-width: 1130px) {
  .l-footer__subContents {
    flex-direction: column-reverse;
    justify-content: center;
  }
}
@media screen and (max-width: 1130px) {
  .l-footer__groupLogo {
    text-align: center;
  }
}
.l-footer__groupLogo img {
  display: block;
  width: auto;
  height: 20px;
}
@media screen and (max-width: 1130px) {
  .l-footer__groupLogo img {
    margin: auto;
  }
}
.l-footer__groupLogo-text {
  margin-top: 8px;
  color: #fff;
  font-size: 10px;
  font-size: 0.625rem;
  line-height: 1.6;
  letter-spacing: normal;
  font-weight: 400;
}
.l-footer__subNav {
  align-self: center;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 32px;
  list-style: none;
}
@media screen and (max-width: 768px) {
  .l-footer__subNav {
    gap: 8px 32px;
  }
}
.l-footer__subNav-link {
  color: #fff;
  font-size: 16px;
  font-size: 1rem;
  line-height: 2;
  letter-spacing: 0.3px;
  font-weight: 700;
  text-decoration: none;
  transition: opacity 0.3s;
}
@media screen and (max-width: 768px) {
  .l-footer__subNav-link {
    font-size: 12px;
    font-size: 0.75rem;
    line-height: 2.3333333333;
    letter-spacing: 0.3px;
    font-weight: 700;
  }
}
@media (hover: hover) and (pointer: fine) {
  .l-footer__subNav-link:hover {
    opacity: 0.7;
  }
}
.l-footer__copy {
  margin-top: 32px;
  color: #fff;
  text-align: center;
  font-family: Shippori Mincho, serif;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 1.6666666667;
  letter-spacing: 0.3px;
  font-weight: 500;
}

.l-footerShort {
  margin-top: 80px;
  padding: 40px 80px;
  background-color: #574c64;
}
@media screen and (max-width: 768px) {
  .l-footerShort {
    margin-top: 56px;
    padding: 32px 20px 96px;
  }
}
.l-footerShort__body {
  display: flex;
  justify-content: space-between;
  gap: 16px;
}
@media screen and (max-width: 768px) {
  .l-footerShort__body {
    flex-direction: column;
  }
}
.l-footerShort__logo {
  width: auto;
  height: 40px;
}
.l-footerShort__copy {
  align-self: center;
  color: #fff;
  text-align: center;
  font-family: Shippori Mincho, serif;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 1.6666666667;
  letter-spacing: 0.3px;
  font-weight: 500;
}

.l-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background-color: #fff;
  z-index: 11;
}
.l-header::after {
  content: "";
  position: absolute;
  width: 100%;
  margin-top: 116px;
}
.l-header__inner {
  display: flex;
}
.l-header__logo {
  flex-shrink: 0;
  padding: 24px;
  width: 370px;
  height: auto;
}
@media screen and (max-width: 1050px) {
  .l-header__logo {
    width: 230px;
    padding-inline: 20px;
  }
}
@media screen and (max-width: 768px) {
  .l-header__logo {
    width: 193px;
    padding: 16px;
  }
}
.l-header__logo-link {
  display: flex;
}
.l-header__logo-image {
  width: 100%;
}
.l-header__contents {
  margin-left: auto;
  padding: 24px;
}
@media screen and (max-width: 1050px) {
  .l-header__contents {
    padding: 16px 20px 16px 0;
  }
}
@media screen and (max-width: 768px) {
  .l-header__contents {
    padding: 0;
  }
}
.l-header__auth {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}
@media screen and (max-width: 768px) {
  .l-header__auth {
    gap: 0;
    height: 100%;
  }
}
.l-header__button {
  gap: 8px;
  padding: 3px 24px 3px 16px;
  border: 1px solid var(--c-button__border);
  border-radius: 40px;
  background: var(--c-button__surface);
  color: var(--c-button__content);
  text-decoration: none;
  transition: 0.3s;
  --u-iconText--size: 20px;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: normal;
  letter-spacing: 0.5px;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .l-header__button {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 2px;
    width: 64px;
    padding: 8px 4px;
    border-radius: 0;
    font-size: 10px;
    font-size: 0.625rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 500;
  }
}
@media (hover: hover) and (pointer: fine) {
  .l-header__button:hover {
    background: var(--c-button__surface--active);
    border-color: var(--c-button__border--active);
  }
}
.l-header__button--user {
  --u-iconText--color: #fff;
  --u-iconText--url: url("../img/common/icon-user.svg");
}
.l-header__button--login {
  --u-iconText--color: #695089;
  --u-iconText--url: url("../img/common/icon-login.svg");
}
.l-header__button--logout {
  --u-iconText--color: #695089;
  --u-iconText--url: url("../img/common/icon-logout.svg");
}
.l-header__nav {
  margin-top: 16px;
}
@media screen and (max-width: 1050px) {
  .l-header__nav {
    margin-top: 8px;
  }
}
@media screen and (max-width: 768px) {
  .l-header__nav {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background-color: #fff;
    box-shadow: 0 -2px 4px 0 rgba(0, 0, 0, 0.06);
    z-index: 1;
  }
}
.l-header__nav-list {
  display: flex;
  gap: 24px;
  list-style: none;
}
@media screen and (max-width: 1050px) {
  .l-header__nav-list {
    gap: 12px;
  }
}
@media screen and (max-width: 768px) {
  .l-header__nav-list {
    gap: 0;
  }
}
.l-header__nav-block {
  position: relative;
}
@media screen and (max-width: 768px) {
  .l-header__nav-block {
    width: 100%;
  }
  .l-header__nav-block:nth-child(2n) {
    background-color: #faf9ff;
  }
}
.l-header__nav-link {
  color: #333333;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: normal;
  letter-spacing: 0.3px;
  font-weight: 500;
  text-decoration: none;
  transition: color 0.3s;
}
@media (hover: hover) and (pointer: fine) {
  .l-header__nav-link:hover {
    color: #695089;
  }
}
@media screen and (max-width: 1050px) {
  .l-header__nav-link {
    font-size: 12px;
  }
}
@media screen and (max-width: 768px) {
  .l-header__nav-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    width: 100%;
    height: 100%;
    padding: 8px 4px;
    text-align: center;
    font-size: 11px;
    font-size: 0.6875rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 600;
  }
  .l-header__nav-link::before {
    content: "";
    display: inline-block;
    width: 24px;
    height: 24px;
    background-color: #695089;
    mask-image: var(--c-header-icon);
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: cover;
  }
}
.l-header__nav-link--seminar {
  --c-header-icon: url("../img/common/icon-seminar.svg");
}
.l-header__nav-link--workshop {
  --c-header-icon: url("../img/common/icon-oral.svg");
}
.l-header__nav-link--academy {
  --c-header-icon: url("../img/common/icon-academy.svg");
}
.l-header__nav-link--about {
  --c-header-icon: url("../img/common/icon-about.svg");
}
@media screen and (max-width: 768px) {
  .l-header__nav-link span {
    margin: auto;
  }
}
.l-header__nav-link span span {
  display: inline-block;
}
@media screen and (max-width: 768px) {
  .l-header__nav-link span span {
    display: block;
  }
}
.l-header__nav-link.is-active {
  color: #695089;
}
.l-header__nav-items {
  position: absolute;
  top: 32px;
  left: 50%;
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: max-content;
  padding: 16px 24px;
  background-color: #faf9ff;
  border: 1px solid #695089;
  border-radius: 4px;
  list-style: none;
  z-index: 1;
  transform: translateX(-50%);
  display: none;
}
.l-header__nav-items::before {
  content: "";
  position: absolute;
  top: -8px;
  left: 50%;
  border-bottom: 8px solid #695089;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  transform: translateX(-50%);
}

.l-main {
  margin: 0 clamp(20px, -178.6206896552px + 25.8620689655vw, 80px);
}
.l-main--has-header {
  scroll-margin-top: 116px;
  margin-top: 116px;
}
@media screen and (max-width: 768px) {
  .l-main--has-header {
    scroll-margin-top: 64px;
    margin-top: 64px;
  }
}

.l-wysiwyg {
  word-break: break-all;
  margin-top: 64px;
}
.l-wysiwyg div {
  font-size: 1em;
  margin: 0;
  padding: 0;
}
.l-wysiwyg p {
  font-size: 1em;
  margin-bottom: 20px;
  color: unset;
}
.l-wysiwyg strong {
  font-weight: 700;
  color: unset;
}
.l-wysiwyg u {
  text-decoration: underline;
  color: unset;
}
.l-wysiwyg del {
  text-decoration: line-through;
  color: unset;
}
.l-wysiwyg sub {
  bottom: -0.25em;
}
.l-wysiwyg sup {
  top: -0.5em;
  color: unset;
}
.l-wysiwyg code {
  font-family: monospace;
  color: #666;
  background-color: rgba(27, 31, 35, 0.05);
  border-radius: 6px;
  padding: 0.2em 0.4em;
}
.l-wysiwyg pre {
  display: block;
  color: #666;
  background-color: #f9f9f9;
  padding: 8px;
  border: 1px solid #e1e1e1;
  border-radius: 2px;
  font-family: monospace;
  max-height: 400px;
  overflow: auto;
  scrollbar-width: thin;
  margin: 1em 0;
  white-space: pre-wrap;
  word-wrap: break-word;
}
.l-wysiwyg hr {
  margin-top: 20px;
  margin-bottom: 20px;
}
.l-wysiwyg hr.__se__solid {
  border-style: solid none none;
}
.l-wysiwyg hr.__se__dashed {
  border-style: dashed none none;
}
.l-wysiwyg hr.__se__dotted {
  border-style: dotted none none;
}
.l-wysiwyg h1,
.l-wysiwyg h2,
.l-wysiwyg h3,
.l-wysiwyg h4,
.l-wysiwyg h5,
.l-wysiwyg h6 {
  font-family: inherit;
  font-weight: 700;
  line-height: 1.1;
  color: inherit;
}
.l-wysiwyg h1 {
  font-size: 2em;
  margin-block-start: 0.67em;
  margin-block-end: 0.67em;
}
.l-wysiwyg h2 {
  font-size: 1.5em;
  margin-block-start: 2.5em;
  margin-block-end: 0.5em;
  border-bottom: 1px solid #eee;
  padding: 5px 0 10px;
}
.l-wysiwyg h3 {
  font-size: 1.17em;
  margin-block-start: 1em;
  margin-block-end: 1em;
}
.l-wysiwyg h4 {
  font-size: 1em;
  margin-block-start: 1.33em;
  margin-block-end: 1.33em;
}
.l-wysiwyg h5 {
  font-size: 0.83em;
  margin-block-start: 1.67em;
  margin-block-end: 1.67em;
}
.l-wysiwyg h6 {
  font-size: 0.67em;
  margin-block-start: 2.33em;
  margin-block-end: 2.33em;
}
.l-wysiwyg blockquote {
  display: block;
  font-family: inherit;
  font-size: inherit;
  color: #999;
  margin-block-start: 1em;
  margin-block-end: 1em;
  margin-inline-start: 0;
  margin-inline-end: 0;
  padding: 0 5px 0 20px;
  border: solid #b1b1b1;
  border-width: 0 0 0 5px;
}
.l-wysiwyg img {
  display: block;
  max-width: 100%;
  margin-block: 2.3em;
}
.l-wysiwyg iframe {
  width: 100%;
  max-width: 100%;
  aspect-ratio: 16/9;
}
.l-wysiwyg a {
  text-decoration: none;
  color: rgb(17, 152, 242);
}
.l-wysiwyg a:hover {
  cursor: pointer;
  color: rgb(17, 152, 242);
  text-decoration: underline;
}
.l-wysiwyg ol {
  list-style-position: outside;
  list-style-type: decimal;
  display: block;
  margin-block-start: 1em;
  margin-block-end: 1em;
  margin-inline-start: 0;
  margin-inline-end: 0;
  padding-inline-start: 40px;
}
.l-wysiwyg ol ol {
  list-style-type: lower-alpha;
}
.l-wysiwyg ol ol ol {
  list-style-type: upper-roman;
}
.l-wysiwyg ol ol ul {
  list-style-type: square;
}
.l-wysiwyg ol ul {
  list-style-type: circle;
}
.l-wysiwyg ol ul ul {
  list-style-type: square;
}
.l-wysiwyg ul {
  list-style-type: disc;
  list-style-position: outside;
  display: block;
  margin-block-start: 1em;
  margin-block-end: 1em;
  margin-inline-start: 0;
  margin-inline-end: 0;
  padding-inline-start: 40px;
}
.l-wysiwyg ul ol {
  list-style-type: lower-alpha;
}
.l-wysiwyg ul ol ol {
  list-style-type: upper-roman;
}
.l-wysiwyg ul ul {
  list-style-type: circle;
}
.l-wysiwyg ul ul ul {
  list-style-type: square;
}
.l-wysiwyg li {
  display: list-item;
  text-align: -webkit-match-parent;
  margin-bottom: 5px;
  list-style: inherit;
}
.l-wysiwyg table {
  display: table;
  border: 1px solid #ccc;
  width: 100%;
  max-width: 100%;
  margin: 0 0 10px;
  background-color: transparent;
  border-spacing: 0;
  border-collapse: collapse;
  clear: both;
  text-indent: initial;
}
.l-wysiwyg table td,
.l-wysiwyg table th {
  border: 1px solid #e1e1e1;
  padding: 0.4em;
  background-clip: padding-box;
  display: table-cell;
  text-align: initial;
  width: auto;
}
.l-wysiwyg table th {
  background-color: #f3f3f3;
}
.l-wysiwyg table tr {
  display: table-row;
  border: 1px solid #efefef;
}
.l-wysiwyg table thead {
  border-bottom: 2px solid #333;
}
.l-wysiwyg table.se-table-layout-auto {
  table-layout: auto !important;
}
.l-wysiwyg table.se-table-layout-fixed {
  table-layout: fixed !important;
}
.l-wysiwyg table.se-table-size-auto {
  width: auto !important;
}

.l-top {
  margin-bottom: 80px;
}

.l-container {
  max-width: 1120px;
  margin: 0 auto;
}

.l-section {
  margin-bottom: 80px;
}
@media screen and (max-width: 768px) {
  .l-section {
    margin-bottom: 56px;
  }
}

.c-input {
  border: none;
  width: 100%;
  font-size: 16px;
  font-size: 1rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
.c-input:focus {
  border: none;
}
.c-input--normal {
  --c-input__border: #e5e5e5;
  --c-input__bg: #ffffff;
  --c-input__decoration: #695089;
}
.c-input--normal:focus, .c-input--normal:focus-within {
  --c-input__border: #695089;
  --c-input__decoration: #695089;
}
.c-input--normal:disabled {
  --c-input__border: #e5e5e5;
  --c-input__bg: #f5f5f5;
}
.c-input--error {
  --c-input__border: #c70101;
  --c-input__bg: #f9e6e6;
  --c-input__decoration: #c70101;
}
.c-input--error:focus, .c-input--error:focus-within {
  --c-input__border: #c70101;
  --c-input__bg: #f9e6e6;
  --c-input__decoration: #c70101;
}
.c-input--error:disabled {
  --c-input__border: #e5e5e5;
  --c-input__bg: #f5f5f5;
}
.c-input__box {
  padding: 12px 16px;
  outline: 1px solid var(--c-input__border);
  background: var(--c-input__bg);
  border-radius: 6px;
  color: #333333;
  height: 52px;
}
.c-input__text::placeholder {
  color: #aeaeb2;
}
.c-input__error {
  display: inline-block;
  margin-top: 4px;
  color: #c70101;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
.c-input__hint {
  display: inline-block;
  margin-top: 8px;
  color: #888;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
.c-input__wrapper {
  display: flex;
  width: 100%;
  flex-direction: column;
}
.c-input__selectContainer {
  display: block;
  width: 100%;
  height: 100%;
  position: relative;
}
.c-input__selectContainer::after {
  position: absolute;
  right: 0;
  top: 0;
  content: "";
  display: flex;
  width: 24px;
  height: 100%;
  flex-shrink: 0;
  margin-right: 8px;
  background: var(--c-input__decoration);
  mask-image: url("../img/icon-pulldown.svg");
  mask-position: center center;
  mask-repeat: no-repeat;
}
.c-input__select {
  width: 100%;
  height: 52px;
  padding-right: 40px;
}

.c-textarea__input {
  height: 180px;
  resize: none;
}
.c-textarea__input::placeholder {
  color: #aeaeb2;
}

.c-number__root {
  display: flex;
  flex-direction: row;
}
.c-number__input {
  text-align: right;
  -moz-appearance: textfield;
  flex: 1 1 100%;
}
.c-number__input::-webkit-outer-spin-button, .c-number__input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.c-number__buttonContainer {
  display: flex;
  flex-direction: column;
  width: 16px;
  height: 100%;
  align-items: center;
  justify-content: center;
}
.c-number__button {
  width: 100%;
  height: 16px;
  flex-shrink: 0;
  margin: 0 -8px 0 10px;
  position: relative;
}
.c-number__button::before {
  position: absolute;
  content: "";
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--c-input__decoration);
}
.c-number__button--up::before {
  top: 0;
  mask-image: url("../img/icon-increase.svg");
}
.c-number__button--down::before {
  bottom: 0;
  mask-image: url("../img/icon-decrease.svg");
}

.c-file__root {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: start;
  gap: 8px;
}
.c-file__input {
  opacity: 0;
  position: absolute;
}
.c-file__button {
  display: block;
  width: 99px;
  height: 28px;
  border-radius: 4px;
  background: var(--c-input__decoration);
  padding: 4px 7px;
  color: #FFFFFF;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 400;
}

.c-option--normal {
  --c-option__icon: #e5e5e5;
  --c-option__surface: #ffffff;
  --c-option__border: #e5e5e5;
  --c-option__check: #ffffff;
}
.c-option--normal:has(:checked) {
  --c-option__icon: #ffffff;
  --c-option__surface: #695089;
  --c-option__border: #695089;
  --c-option__check: #ffffff;
}
.c-option--normal:has(:hover) {
  --c-option__check: #e5e5e5;
}
.c-option--normal:has(:hover):has(:checked) {
  --c-option__check: #ffffff;
}
.c-option--error {
  --c-option__icon: #c70101;
  --c-option__surface: #f9e6e6;
  --c-option__border: #c70101;
  --c-option__check: #f9e6e6;
}
.c-option--error:has(:hover) {
  --c-option__check: #c70101;
}
.c-option--error:has(:checked) {
  --c-option__surface: #c70101;
  --c-option__check: #f9e6e6;
}
.c-option__root {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
}
.c-option__radio {
  appearance: none;
  display: block;
  width: 24px;
  height: 24px;
  border-radius: 100%;
  border: 1px solid var(--c-option__border);
  background: var(--c-option__surface);
}
.c-option__radio:hover, .c-option__radio:checked, .c-option__radio:focus-visible {
  background: var(--c-option__border);
}
.c-option__radio {
  box-shadow: inset 0 0 0 4px #ffffff;
}
.c-option__check {
  appearance: none;
  display: block;
  position: relative;
  width: 20px;
  height: 20px;
  border-radius: 2px;
  border: 1px solid var(--c-option__border);
  background: var(--c-option__surface);
}
.c-option__check:focus {
  outline: 1px solid #695089;
  outline-offset: 2px;
}
.c-option__check::before {
  content: "";
  position: absolute;
  background: var(--c-option__check);
  mask-image: url("../img/icon-check.svg");
  mask-repeat: no-repeat;
  mask-position: center center;
  width: 100%;
  height: 100%;
}
.c-option__text {
  color: var(--c-option__text);
  font-size: 16px;
  font-size: 1rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
.c-option__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 16px;
}
@media screen and (max-width: 768px) {
  .c-option__tags {
    gap: 8px;
  }
}
.c-option__tag {
  display: none;
}
.c-option__tag-text {
  padding: 8px 16px;
  background-color: #fff;
  color: #695089;
  border: 1px solid #695089;
  border-radius: 3px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1;
  letter-spacing: normal;
  font-weight: 500;
  cursor: pointer;
}
@media screen and (max-width: 768px) {
  .c-option__tag-text {
    padding: 6px 8px;
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 1;
    letter-spacing: normal;
    font-weight: 500;
  }
}
.c-option__tag-text::before {
  content: "#";
}
.c-option__tag:checked + .c-option__tag-text {
  background-color: #695089;
  color: #fff;
}

.c-button {
  display: inline-flex;
  border-radius: 4px;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-size: 1rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
  font-family: "Noto Sans JP", sans-serif;
  text-decoration: none;
  border: 1px solid var(--c-button__border);
  background: var(--c-button__surface);
  color: var(--c-button__content);
  transition: background 0.3s;
}
.c-button:focus {
  outline: 3px solid #695089;
  outline-offset: 2px;
}
@media (hover: hover) and (pointer: fine) {
  .c-button:hover {
    background: var(--c-button__surface--active);
    border-color: var(--c-button__border--active);
  }
}
.c-button--fill {
  --c-button__border: #695089;
  --c-button__surface: #695089;
  --c-button__content: #ffffff;
  --c-button__surface--active: #806a9b;
  --c-button__border--active: #806a9b;
}
.c-button--line {
  --c-button__border: #695089;
  --c-button__surface: #ffffff;
  --c-button__content: #695089;
  --c-button__surface--active: #edebf9;
  --c-button__border--active: #695089;
}
.c-button--disabled {
  --c-button__border: #aeaeb2;
  --c-button__surface: #aeaeb2;
  --c-button__content: #ffffff;
  pointer-events: none;
}
.c-button--arrow {
  position: relative;
  display: flex;
  justify-content: center;
}
.c-button--arrow::before, .c-button--arrow::after {
  content: "";
  position: absolute;
  right: 16px;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}
.c-button--arrow::before {
  border-radius: 100%;
  background-color: var(--c-button__content);
}
.c-button--arrow::after {
  mask-image: url("../img/icon-arrow.svg");
  mask-position: center center;
  mask-repeat: no-repeat;
  background-color: var(--c-button__surface);
}
.c-button {
  padding: 16px;
  width: 100%;
  max-width: 320px;
}
@media screen and (max-width: 768px) {
  .c-button {
    padding: 14px 16px;
    max-width: 300px;
  }
}
.c-button__group {
  display: flex;
  justify-content: center;
  gap: 16px 32px;
  margin-top: var(--c-button__mt);
}
@media screen and (max-width: 768px) {
  .c-button__group {
    flex-direction: column;
    align-items: center;
  }
}
.c-button__group--left {
  justify-content: flex-start;
}
.c-button__group--sm {
  --c-button__mt: 24px;
}
@media screen and (max-width: 768px) {
  .c-button__group--sm {
    margin-top: 16px;
  }
}
.c-button__group--md {
  --c-button__mt: 40px;
}
@media screen and (max-width: 768px) {
  .c-button__group--md {
    margin-top: 32px;
  }
}
.c-button__group--lg {
  --c-button__mt: 80px;
}
@media screen and (max-width: 768px) {
  .c-button__group--lg {
    margin-top: 56px;
  }
}

.c-link {
  text-decoration: none;
  font-size: 16px;
  font-size: 1rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
  font-family: "Noto Sans JP", sans-serif;
  color: #333333;
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-right: calc(var(--s-icon) + var(--s-gap));
  --s-icon: 20px;
  transition: color 0.3s;
}
@media screen and (max-width: 768px) {
  .c-link {
    --s-icon: 18px;
    font-size: 14px;
    font-size: 0.875rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 500;
  }
}
@media (hover: hover) and (pointer: fine) {
  .c-link:hover {
    color: #695089;
  }
}
.c-link--anchor {
  --s-gap: 24px;
}
.c-link--anchor::after {
  mask-image: url("../img/icon-anchorLink.svg");
}
.c-link--internal {
  --s-gap: 8px;
}
.c-link--internal::after {
  mask-image: url("../img/icon-internalLink.svg");
}
.c-link::before, .c-link::after {
  content: "";
  position: absolute;
  right: calc(-1 * (var(--s-icon) + var(--s-gap)));
  transform: translateY(1px);
  width: var(--s-icon);
  height: var(--s-icon);
  flex-shrink: 0;
}
.c-link::before {
  border-radius: 100%;
  background-color: #695089;
}
.c-link::after {
  background-color: #ffffff;
  mask-repeat: no-repeat;
  mask-position: center;
}

.c-form__root {
  margin: 0 auto;
  width: clamp(362px, 145.3246753247px + 50.3896103896vw, 750px);
}
.c-form__root--boxed {
  padding: 56px clamp(20px, -178.6206896552px + 25.8620689655vw, 80px);
  background-color: #faf9ff;
  border-radius: 4px;
  width: clamp(362px, 55.974025974px + 71.1688311688vw, 910px);
}
@media screen and (max-width: 768px) {
  .c-form__root--boxed {
    padding: 40px 20px;
  }
}
.c-form__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin: 40px 0 48px 0;
}
.c-form__inputSet {
  display: flex;
  flex-direction: column;
  width: 100%;
}
.c-form__inputSet--fields {
  row-gap: 32px;
}
.c-form__inputSet--group {
  row-gap: 16px;
}
.c-form__inputSet--items {
  row-gap: 8px;
}
.c-form__inputSet--rows {
  flex-direction: row;
  column-gap: 24px;
}
@media screen and (max-width: 768px) {
  .c-form__inputSet--rows {
    flex-direction: column;
  }
}
.c-form__optionSet {
  margin-top: 16px;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  row-gap: 8px;
  column-gap: 32px;
}
@media screen and (max-width: 768px) {
  .c-form__optionSet--stackResponsive {
    flex-wrap: nowrap;
    flex-direction: column;
  }
}
.c-form__unit {
  display: flex;
  align-items: start;
  flex-direction: column;
  border: none;
  width: 100%;
}
.c-form__unit--item {
  gap: 4px;
}
.c-form__unit--field {
  gap: 8px;
}
.c-form__unit--output {
  gap: 8px;
}
.c-form__section {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding-bottom: 48px;
  margin-bottom: 48px;
  border-bottom: 1px solid #e5e5e5;
}
.c-form__section--noBorder {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.c-form__heading {
  display: inline-flex;
  gap: 16px;
  align-items: center;
  color: var(--c-form--content);
}
.c-form__heading--item {
  --c-form--content: #333333;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 400;
}
.c-form__heading--field {
  --c-form--content: #333333;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-size: 1rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
}
.c-form__heading--section {
  --c-form--content: #574c64;
  font-family: "Shippori Mincho", serif;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  .c-form__heading--section {
    font-size: 20px;
    font-size: 1.25rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 600;
  }
}
.c-form__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 37px;
  height: 18px;
  padding: 4px 8px;
  font-size: 10px;
  font-size: 0.625rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
  font-family: "Noto Sans JP", sans-serif;
  color: #ffffff;
  border-radius: 2px;
  flex-shrink: 0;
}
.c-form__badge--required {
  background: #c70101;
}
.c-form__badge--optional {
  background: #a6abbd;
}
.c-form__output {
  font-size: 16px;
  font-size: 1rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
  color: #333333;
}
.c-form__errorBox {
  display: flex;
  align-items: center;
  width: clamp(362px, 55.974025974px + 71.1688311688vw, 910px);
  max-width: 100%;
  background-color: #f9e6e6;
  padding: 16px 24px;
  border-radius: 6px;
  margin: 48px auto;
  gap: 8px;
}
.c-form__errorBox::before {
  content: "";
  display: block;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  background-image: url("../img/icon-alertCircle.svg");
  background-position: center;
  background-repeat: no-repeat;
}
.c-form__errorBox + .c-itemCard__root {
  margin-top: 0;
}
.c-form__errorList {
  display: flex;
  flex-direction: column;
  color: #c70101;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
  list-style: none;
}
.c-form__completeMessage {
  display: block;
  margin-bottom: 80px;
}
.c-form__agreeTermsOption {
  display: flex;
  width: 100%;
  justify-content: center;
}
.c-form__pageControls {
  display: flex;
  flex-direction: row;
  gap: 32px;
  justify-content: center;
  margin-top: 40px;
}
@media screen and (max-width: 768px) {
  .c-form__pageControls {
    flex-direction: column-reverse;
    align-items: center;
    gap: 16px;
  }
}
.c-form__inputWrapper {
  position: relative;
}
.c-form__togglePass {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  padding: 4px;
  cursor: pointer;
  color: #888;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s;
}
.c-form__togglePass:hover {
  color: #333333;
}
.c-form__togglePass:focus {
  outline: none;
}
.c-form__eyeIcon {
  display: block;
  pointer-events: none;
  opacity: 0.4;
}

.c-progress--active {
  --c-progress: #695089;
}
.c-progress--inactive {
  --c-progress: #aeaeb2;
}
.c-progress__root {
  --s-size: clamp(48px, 21.5172413793px + 3.4482758621vw, 56px);
  --s-gap: clamp(65px, -117.0689655172px + 23.7068965517vw, 120px);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--s-gap);
  counter-reset: progress-counter;
  position: relative;
  margin: 40px 0;
}
.c-progress__root::before {
  content: "";
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  width: calc(var(--s-gap) * 3);
  top: calc(var(--s-size) / 2);
  border: 1px solid #e5e5e5;
}
.c-progress__checkpoint {
  display: flex;
  flex-direction: column;
  position: relative;
  z-index: 1;
  align-items: center;
  list-style: none;
  counter-increment: progress-counter;
  gap: 8px;
  width: var(--s-size);
  white-space: nowrap;
  font-size: 16px;
  font-size: 1rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
  font-family: "Shippori Mincho", serif;
}
@media screen and (max-width: 768px) {
  .c-progress__checkpoint {
    font-size: 14px;
    font-size: 0.875rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 500;
  }
}
.c-progress__checkpoint {
  color: var(--c-progress);
}
.c-progress__checkpoint::before {
  content: counter(progress-counter, decimal-leading-zero);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
  font-family: "Cormorant Infant", serif;
  background: var(--c-progress);
  border-radius: 100%;
  width: var(--s-size);
  height: var(--s-size);
}

.c-itemCard__root {
  display: flex;
  align-items: center;
  flex-direction: row;
  gap: 24px;
  min-width: clamp(362px, 145.3246753247px + 50.3896103896vw, 750px);
}
.c-itemCard__root--boxed {
  background-color: #faf9ff;
  border-radius: 8px;
  margin-top: 48px;
  padding: 24px;
}
.c-itemCard__thumbnail {
  width: clamp(107px, 12.7777777778px + 12.2685185185vw, 160px);
  max-height: clamp(60px, 6.6666666667px + 6.9444444444vw, 90px);
  object-fit: contain;
}
.c-itemCard__details {
  display: flex;
  flex-direction: column;
  align-items: start;
  gap: 8px;
}
.c-itemCard__title {
  font-size: 16px;
  font-size: 1rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
  font-family: "Noto Sans JP", sans-serif;
  color: #333333;
}
@media screen and (max-width: 768px) {
  .c-itemCard__title {
    font-size: 13px;
    font-size: 0.8125rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 500;
  }
}
.c-itemCard__metaData {
  display: flex;
  gap: 8px;
}
.c-itemCard__metaLabel {
  --u-iconText--size: 20px;
  --u-iconText--color: #695089;
  font-size: 13px;
  font-size: 0.8125rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .c-itemCard__metaLabel {
    font-size: 12px;
    font-size: 0.75rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 500;
  }
}
.c-itemCard__metaLabel {
  font-family: "Noto Sans JP", sans-serif;
  color: #5b5b5b;
}
.c-itemCard__price {
  --u-iconText--url: url("../img/icon-yen.svg");
}
.c-itemCard__date {
  --u-iconText--url: url("../img/icon-date.svg");
}
.c-itemCard__location {
  --u-iconText--url: url("../img/icon-location.svg");
}

.c-breadCrumb__root {
  display: flex;
  overflow-x: auto;
  margin-left: clamp(10px, -238.8888888889px + 32.4074074074vw, 150px);
}
.l-main--has-header > .c-breadCrumb__root:first-child {
  margin-top: 80px;
}

.c-breadCrumb__container {
  list-style: none;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  padding: 0 10px 10px 10px;
}
.c-breadCrumb__index {
  display: block;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
.c-breadCrumb__index:not(:last-of-type)::after {
  content: "/";
  margin: 0 16px;
}
.c-breadCrumb__text {
  color: var(--c-breadCrumb);
  white-space: nowrap;
  overflow-x: auto;
}
.c-breadCrumb__text:visited {
  color: var(--c-breadCrumb);
}
.c-breadCrumb__text--link {
  --c-breadCrumb: #574c64;
  text-decoration: underline;
}
.c-breadCrumb__text--current {
  --c-breadCrumb: #a1a1a1;
  text-decoration: none;
}

.c-innerHero__root {
  display: block;
  height: 280px;
  width: 100%;
  position: relative;
}
@media screen and (max-width: 768px) {
  .c-innerHero__root {
    height: 220px;
  }
}
.c-innerHero__root {
  margin-bottom: 16px;
}
.c-innerHero__background {
  width: 100%;
  height: 100%;
  display: block;
  position: absolute;
  left: 0;
  background: #faf9ff;
}
.c-innerHero__background::before {
  content: "";
  position: absolute;
  left: 0;
  background-image: url("../img/img-heroBanner.png");
  width: 100%;
  height: 100%;
}
.c-innerHero__contents {
  display: flex;
  flex-direction: column;
  position: absolute;
  width: 100%;
  height: 100%;
  justify-content: center;
  margin-left: clamp(20px, -476.5517241379px + 64.6551724138vw, 170px);
}
.c-innerHero__decoration {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
  font-family: "Cormorant Infant", serif;
  color: #695089;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.c-innerHero__decoration::before {
  content: "";
  display: block;
  width: 8px;
  height: 0;
  border-top: 1px solid #695089;
}
.c-innerHero__title {
  font-size: 48px;
  font-size: 3rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 600;
  font-family: "Shippori Mincho", serif;
  color: #574c64;
}
@media screen and (max-width: 768px) {
  .c-innerHero__title {
    font-size: 36px;
    font-size: 2.25rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 600;
  }
}
.c-innerHero__subTitle {
  font-size: 28px;
  font-size: 1.75rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 600;
  font-family: "Shippori Mincho", serif;
  color: #574c64;
}
@media screen and (max-width: 768px) {
  .c-innerHero__subTitle {
    font-size: 21px;
    font-size: 1.3125rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 600;
  }
}
.c-innerHero__seminar {
  position: relative;
  background-color: #faf9ff;
  z-index: 1;
}
.c-innerHero__seminar::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url(../img/seminar-bg-left.svg) no-repeat left top/cover;
  z-index: -1;
}
.c-innerHero__seminar::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  background: url(../img/seminar-bg-right.svg) no-repeat right center/cover;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  .c-innerHero__seminar::after {
    background-position: right 30% center;
  }
}
.c-innerHero__workshop {
  position: relative;
  background-color: #f9fcff;
  z-index: 1;
}
.c-innerHero__workshop::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url(../img/workshop-bg-left.svg) no-repeat left top/cover;
  z-index: -1;
}
.c-innerHero__workshop::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  background: url(../img/workshop-bg-right.svg) no-repeat right center/cover;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  .c-innerHero__workshop::after {
    background-position: right 30% center;
  }
}
.c-innerHero__academy {
  position: relative;
  background-color: #fff9fe;
  z-index: 1;
}
.c-innerHero__academy::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url(../img/academy-bg-left.svg) no-repeat left top/cover;
  z-index: -1;
}
.c-innerHero__academy::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  background: url(../img/academy-bg-right.svg) no-repeat right center/cover;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  .c-innerHero__academy::after {
    background-position: right 30% center;
  }
}

.c-article__root {
  max-width: 1120px;
  margin: 48px auto 0;
}
@media screen and (max-width: 768px) {
  .c-article__root {
    margin-top: 24px;
  }
}
.c-article__root .c-breadCrumb__root {
  margin-left: 0;
}
.c-article__meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  margin-bottom: 8px;
}
.c-article__meta-group {
  display: flex;
  gap: 16px;
}
@media screen and (max-width: 768px) {
  .c-article__meta-group {
    flex-wrap: wrap;
    gap: 8px 16px;
  }
}
.c-article__title {
  margin-bottom: 16px;
  color: #574c64;
  font-family: Shippori Mincho, serif;
  font-size: 36px;
  font-size: 2.25rem;
  line-height: 1.6111111111;
  letter-spacing: 0.3px;
  font-weight: 400;
}
@media screen and (max-width: 768px) {
  .c-article__title {
    font-size: 28px;
    font-size: 1.75rem;
    line-height: 1.5;
    letter-spacing: 0.3px;
    font-weight: 400;
  }
}
.c-article__read {
  margin-top: 40px;
}
@media screen and (max-width: 768px) {
  .c-article__read {
    margin-top: 32px;
  }
}
.c-article__read-title {
  margin-bottom: 16px;
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 2;
  letter-spacing: 0.3px;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .c-article__read-title {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.75;
    letter-spacing: 0.3px;
    font-weight: 500;
  }
}
.c-article__date {
  align-self: center;
  display: flex;
  gap: 2px 8px;
}
.c-article__date-item {
  display: flex;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 400;
}
.c-article__date-item dt::after {
  content: "：";
}
.c-article__thumb {
  display: block;
  margin-block: 64px;
}
@media screen and (max-width: 768px) {
  .c-article__thumb {
    margin-block: 48px;
  }
}
.c-article__thumb img {
  display: block;
  width: 100%;
  max-width: 100%;
}

.c-category {
  align-self: flex-start;
  display: inline-block;
  padding: var(--c-category__space);
  border: 1px solid var(--c-category__border);
  background: var(--c-category__surface);
  color: var(--c-category__content);
  border-radius: 2em;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .c-category {
    padding-inline: 12px;
    font-size: 11px;
    font-size: 0.6875rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 500;
  }
}
.c-category--line {
  --c-category__space: 2px 16px;
  --c-category__border: #695089;
  --c-category__surface: #fff;
  --c-category__content: #695089;
}
.c-category--seminar {
  --c-category__space: 4px 16px;
  --c-category__border: #b4a1e7;
  --c-category__surface: #b4a1e7;
  --c-category__content: #fff;
}
.c-category--workshop {
  --c-category__space: 4px 16px;
  --c-category__border: #e1a6f0;
  --c-category__surface: #e1a6f0;
  --c-category__content: #fff;
}
.c-category--academy {
  --c-category__space: 4px 16px;
  --c-category__border: #95b2e3;
  --c-category__surface: #95b2e3;
  --c-category__content: #fff;
}
.c-category--column {
  --c-category__space: 4px 16px;
  --c-category__border: #e2b0a7;
  --c-category__surface: #e2b0a7;
  --c-category__content: #fff;
}
.c-category--dsacademy01 {
  --c-category__space: 4px 16px;
  --c-category__border: #e15582;
  --c-category__surface: #e15582;
  --c-category__content: #fff;
}
.c-category--dsacademy02 {
  --c-category__space: 4px 16px;
  --c-category__border: #6269ad;
  --c-category__surface: #6269ad;
  --c-category__content: #fff;
}
.c-category--dsacademy03 {
  --c-category__space: 4px 16px;
  --c-category__border: #89cfd8;
  --c-category__surface: #89cfd8;
  --c-category__content: #fff;
}
.c-category--dsacademy04 {
  --c-category__space: 4px 16px;
  --c-category__border: #f5b4b3;
  --c-category__surface: #f5b4b3;
  --c-category__content: #fff;
}

.c-title {
  margin-bottom: var(--c-title--mb);
  color: #574c64;
  font-family: var(--c-title-famiry);
  font-size: 32px;
  font-size: 2rem;
  line-height: normal;
  letter-spacing: 0.3px;
  font-weight: 600;
  font-size: var(--c-title--size);
  line-height: var(--c-title--height);
}
.c-title span {
  display: inline-block;
}
.c-title--primary {
  --c-title--mb: 40px;
  --c-title--size: 32px;
  --c-title--height: 52px;
  --c-title-famiry: Shippori Mincho, serif;
}
@media screen and (max-width: 768px) {
  .c-title--primary {
    --c-title--mb: 16px;
    --c-title--size: 26px;
    --c-title--height: 42px;
  }
}
.c-title--secondary {
  --c-title--mb: 16px;
  --c-title--size: 24px;
  --c-title--height: 38px;
  --c-title-famiry: Shippori Mincho, serif;
}
@media screen and (max-width: 768px) {
  .c-title--secondary {
    --c-title--size: 18px;
    --c-title--height: 32px;
  }
}
.c-title--tertiary {
  --c-title--mb: 16px;
  --c-title--size: 20px;
  --c-title--height: 38px;
  --c-title-famiry: Noto Sans JP, sans-serif;
  color: #333333;
}
@media screen and (max-width: 768px) {
  .c-title--tertiary {
    --c-title--size: 18px;
    --c-title--height: 32px;
  }
}
.c-title--sub {
  --c-title--mb: 24px;
  --c-title--size: 24px;
  --c-title--height: 38px;
  --c-title-famiry: Cormorant Infant, serif;
  padding-bottom: 8px;
  padding-left: 24px;
  background: url(../img/common/icon-tooth.svg) no-repeat left 11px/16px;
  border-bottom: 1px solid #e5e5e5;
  font-weight: 100;
}
@media screen and (max-width: 768px) {
  .c-title--sub {
    --c-title--mb: 16px;
    --c-title--size: 20px;
    --c-title--height: 36px;
    padding-left: 22px;
    background-size: 14px;
  }
}
.c-title--icon {
  padding-left: 32px;
  background: url(../img/common/icon-tooth.svg) no-repeat left 11px/16px;
}
@media screen and (max-width: 768px) {
  .c-title--icon {
    background-position: left 8px;
  }
}

.c-summary__block {
  display: flex;
  gap: clamp(40px, -92.4137931034px + 17.2413793103vw, 80px);
}
@media screen and (max-width: 768px) {
  .c-summary__block {
    flex-direction: column;
    gap: 0;
  }
}
.c-summary__title {
  flex-shrink: 0;
  width: 280px;
}
@media screen and (max-width: 768px) {
  .c-summary__title {
    width: 100%;
  }
}
.c-summary__list {
  flex: 1;
  display: grid;
  gap: 24px;
}
@media screen and (max-width: 768px) {
  .c-summary__list {
    gap: 16px;
  }
}
.c-summary__item {
  display: flex;
  padding-bottom: 16px;
  border-bottom: 1px solid #e5e5e5;
}
@media screen and (max-width: 768px) {
  .c-summary__item {
    flex-direction: column;
  }
}
.c-summary__item dt {
  flex-shrink: 0;
  width: 160px;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .c-summary__item dt {
    width: 100%;
  }
}
.c-summary__item dd {
  flex: 1;
}
.c-summary__map {
  position: relative;
  width: 100%;
  height: 180px;
  margin-top: 16px;
}
.c-summary__map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.c-summary__button {
  justify-content: flex-start;
  max-width: 190px;
  padding: 8px 16px;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
}
.c-summary__button::before, .c-summary__button::after {
  width: 16px;
  height: 16px;
  mask-size: 5px;
}

.c-footerCta {
  margin-top: 80px;
  padding: 40px 48px;
  background-color: #faf9ff;
}
.c-footerCta__inner {
  display: flex;
  gap: 24px;
}
@media screen and (max-width: 768px) {
  .c-footerCta__inner {
    flex-direction: column;
  }
}
.c-footerCta__item {
  width: 100%;
  text-align: center;
}

.c-share {
  position: relative;
}
.c-share__inner {
  display: flex;
  justify-content: center;
  gap: 40px;
  margin-top: 80px;
}
@media screen and (max-width: 768px) {
  .c-share__inner {
    gap: 32px;
    margin-top: 56px;
  }
}
.c-share__title {
  align-self: center;
  color: #574c64;
  font-size: 16px;
  font-size: 1rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .c-share__title {
    font-size: 14px;
  }
}
.c-share__list {
  display: flex;
  gap: 32px;
  list-style: none;
}
@media screen and (max-width: 768px) {
  .c-share__list {
    gap: 24px;
  }
}
.c-share__link {
  display: block;
  width: 40px;
  height: 40px;
}
@media screen and (max-width: 768px) {
  .c-share__link {
    width: 32px;
    height: 32px;
  }
}
.c-share__link img {
  width: 100%;
  height: 100%;
}
.c-share__copySuccess {
  display: none;
  position: absolute;
  bottom: -32px;
  left: 0;
  right: 0;
  margin: auto;
  text-align: center;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
}

.c-modal__contents {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 90%;
  max-width: 800px;
  height: 86vh;
  margin: auto;
  padding: 40px;
  background-color: #fff;
  border: none;
  border-radius: 10px;
}
.c-modal__contents::backdrop {
  background-color: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.c-modal__contents:modal {
  animation: fadeIn 0.3s ease;
}
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
.c-modal__inner iframe {
  margin-inline: auto !important;
  min-width: auto !important;
}
.c-modal__button {
  position: fixed;
  top: calc(7vh + 20px);
  right: calc(50vw - 380px);
  width: 40px;
  height: 40px;
}
@media screen and (max-width: 888px) {
  .c-modal__button {
    right: 6%;
  }
}
@media screen and (max-width: 768px) {
  .c-modal__button {
    top: calc(7vh + 8px);
    width: 32px;
    height: 32px;
  }
}
.c-modal__button::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 32px;
  height: 1px;
  margin: auto;
  background-color: #333333;
  transform: rotate(35deg);
}
@media screen and (max-width: 768px) {
  .c-modal__button::before {
    width: 24px;
  }
}
.c-modal__button::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 32px;
  height: 1px;
  margin: auto;
  background-color: #333333;
  transform: rotate(-35deg);
}
@media screen and (max-width: 768px) {
  .c-modal__button::after {
    width: 24px;
  }
}

.c-status {
  padding: 3px 16px;
  color: #fff;
  background-color: var(--c-status--surface);
  border-radius: 2px;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: normal;
  letter-spacing: 0.5px;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .c-status {
    padding-inline: 12px;
  }
}
.c-status--active {
  --c-status--surface: #695089;
}
.c-status--closed {
  --c-status--surface: #a1a1a1;
}

.c-mediaCard__result {
  margin-block: 48px 16px;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 2;
  letter-spacing: normal;
  font-weight: 400;
}
.c-mediaCard__result span {
  font-size: 18px;
  font-weight: 700;
}
.c-mediaCard__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
@media screen and (max-width: 1000px) {
  .c-mediaCard__list {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width: 768px) {
  .c-mediaCard__list {
    grid-template-columns: repeat(1, 1fr);
  }
}
.c-mediaCard__item {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  padding: 24px;
  border: 1px solid #e5e5e5;
  border-right: none;
}
.c-mediaCard__item:nth-child(3n) {
  border-right: 1px solid #e5e5e5;
}
.c-mediaCard__item:nth-child(n+4) {
  border-top: none;
}
.c-mediaCard__item:last-child {
  border-right: 1px solid #e5e5e5;
}
@media screen and (max-width: 1000px) {
  .c-mediaCard__item:nth-child(3n) {
    border-right: none;
  }
  .c-mediaCard__item:nth-child(2n) {
    border-right: 1px solid #e5e5e5;
  }
  .c-mediaCard__item:nth-child(n+3) {
    border-top: none;
  }
}
@media screen and (max-width: 768px) {
  .c-mediaCard__item {
    border-right: 1px solid #e5e5e5;
  }
  .c-mediaCard__item:nth-child(3n) {
    border-right: 1px solid #e5e5e5;
  }
  .c-mediaCard__item:nth-child(n+2) {
    border-top: none;
  }
}
.c-mediaCard__item::before {
  content: "";
  position: absolute;
  top: -1px;
  left: -1px;
  right: -1px;
  bottom: -1px;
  width: calc(100% + 2px);
  height: calc(100% + 2px);
  background-image: linear-gradient(#fff, #fff), linear-gradient(#fff, #fff), linear-gradient(#fff, #fff), linear-gradient(#fff, #fff);
  background-size: 3px 3px;
  background-repeat: no-repeat;
  background-position: left top, right top, left bottom, right bottom;
  pointer-events: none;
}
.c-mediaCard__thumb {
  display: block;
  width: 100%;
  margin-bottom: 16px;
  aspect-ratio: 16/9;
  object-fit: cover;
}
.c-mediaCard__meta {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
}
@media screen and (max-width: 768px) {
  .c-mediaCard__meta {
    margin-bottom: 8px;
  }
}
.c-mediaCard__title {
  display: -webkit-box;
  height: 3.6em;
  margin-bottom: 16px;
  color: #333333;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.75;
  letter-spacing: 0.5px;
  font-weight: 500;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .c-mediaCard__title {
    height: auto;
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 1.7142857143;
    letter-spacing: normal;
    font-weight: 500;
  }
}
.c-mediaCard__title--min {
  height: auto;
}
.c-mediaCard__title--free {
  display: inline-block;
  margin-right: 8px;
  padding: 3px 8px;
  color: #464b7a;
  border: 1px solid #464b7a;
  border-radius: 2px;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 1;
  letter-spacing: normal;
  font-weight: 500;
  vertical-align: text-bottom;
}
.c-mediaCard__tags {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
  list-style: none;
  margin-bottom: 24px;
  padding-left: 20px;
}
.c-mediaCard__tags::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 16px;
  height: 16px;
  background: url(../img/icon-tag.svg) no-repeat center/cover;
}
.c-mediaCard__tag a {
  display: block;
  text-decoration: none;
  color: #a1a1a1;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 1.3333333333;
  letter-spacing: 0.5px;
  font-weight: 500;
  transition: opacity 0.3s;
}
@media (hover: hover) and (pointer: fine) {
  .c-mediaCard__tag a:hover {
    opacity: 0.7;
  }
}
.c-mediaCard__tag a::before {
  content: "#";
}
.c-mediaCard__buttons {
  display: flex;
  gap: 8px;
  justify-content: center;
  margin-top: auto;
}
.c-mediaCard__link {
  display: block;
  width: 100%;
  max-width: 320px;
  text-decoration: none;
}
@media screen and (max-width: 768px) {
  .c-mediaCard__link {
    max-width: 300px;
  }
}
@media (hover: hover) and (pointer: fine) {
  .c-mediaCard__link:hover .c-button {
    background: var(--c-button__surface--active);
  }
}
.c-mediaCard__favo {
  flex-shrink: 0;
  position: relative;
  display: block;
  width: 55px;
  background-color: var(--c-metaFavo--surface);
  border-radius: 3px;
}
.c-mediaCard__favo--default {
  --c-metaFavo--surface: #ccc;
}
.c-mediaCard__favo--active {
  --c-metaFavo--surface: #e15582;
}
.c-mediaCard__favo::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 27px;
  height: 27px;
  background: url(../img/common/icon-favo.svg) no-repeat center/cover;
}
.c-mediaCard__infos {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}
.c-mediaCard__info {
  position: relative;
  padding-left: 20px;
  color: #5b5b5b;
  font-size: 13px;
  font-size: 0.8125rem;
  line-height: 1.8461538462;
  letter-spacing: normal;
  font-weight: 500;
}
.c-mediaCard__info::before {
  content: "";
  position: absolute;
  top: 2px;
  left: 0;
  width: 20px;
  height: 20px;
  background-color: #695089;
  mask-image: var(--c-info--icon);
  mask-repeat: no-repeat;
  mask-size: cover;
  mask-position: center center;
}
.c-mediaCard__info--date {
  --c-info--icon: url(../img/icon-date.svg);
}
.c-mediaCard__info--location {
  --c-info--icon: url(../img/icon-location.svg);
}
.c-mediaCard__info--capacity {
  --c-info--icon: url(../img/icon-capacity.svg);
}

.c-tab {
  margin-bottom: 48px;
}
.c-tab__list {
  display: flex;
  gap: 2px;
  list-style: none;
}
.c-tab__item {
  position: relative;
  width: 100%;
}
.c-tab__item + .c-tab__item::before {
  content: "";
  position: absolute;
  left: -4px;
  bottom: 0;
  width: 4px;
  height: 2px;
  background-color: #695089;
  pointer-events: none;
}
.c-tab__link {
  display: block;
  height: 100%;
  padding: 16px;
  text-align: center;
  background-color: #f6f6f6;
  color: #ababab;
  border-bottom: 2px solid #695089;
  text-decoration: none;
  font-size: 20px;
  font-size: 1.25rem;
  line-height: normal;
  letter-spacing: 0.3px;
  font-weight: 500;
  border-radius: 10px 10px 0 0;
}
@media screen and (max-width: 768px) {
  .c-tab__link {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 58px;
    padding: 4px;
    font-size: 14px;
  }
}
.c-tab__link--active {
  border: 2px solid #695089;
  border-bottom: 2px solid #faf9ff;
  background-color: #faf9ff;
  color: #695089;
}
.c-tab__link span span {
  display: inline-block;
}

.c-search {
  margin-top: 48px;
}
.c-search__button {
  position: relative;
  padding-inline: 48px 80px;
  background: url(../img/common/icon-search.svg) no-repeat left center/40px;
}
@media screen and (max-width: 768px) {
  .c-search__button {
    padding-inline: 40px 64px;
    background-size: 32px;
  }
}
.c-search__button::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 24px;
  height: 24px;
  margin: auto;
  background-color: #695089;
  border-radius: 24px;
}
@media screen and (max-width: 768px) {
  .c-search__button::after {
    width: 20px;
    height: 20px;
  }
}
.c-search__button-text {
  position: relative;
  color: #574c64;
  font-family: Shippori Mincho, serif;
  font-size: 20px;
  font-size: 1.25rem;
  line-height: normal;
  letter-spacing: 0.3px;
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  .c-search__button-text {
    font-size: 18px;
  }
}
.c-search__button-text::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: -74px;
  width: 12px;
  height: 2px;
  margin: auto;
  background-color: #fff;
  border-radius: 2px;
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .c-search__button-text::before {
    right: -59px;
    width: 10px;
    height: 1px;
  }
}
.c-search__button-text::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: -69px;
  width: 2px;
  height: 12px;
  margin: auto;
  background-color: #fff;
  border-radius: 2px;
  z-index: 1;
  transition: rotate 0.3s;
}
@media screen and (max-width: 768px) {
  .c-search__button-text::after {
    right: -54px;
    width: 1px;
    height: 10px;
  }
}
.is-open .c-search__button-text::after {
  rotate: 90deg;
}

.c-search__block {
  display: none;
  margin-top: 16px;
  padding: 40px 56px;
  background-color: #faf9ff;
  border-radius: 10px;
}
@media screen and (max-width: 768px) {
  .c-search__block {
    padding: 24px;
  }
}
.c-search__heading {
  color: #574c64;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.7777777778;
  letter-spacing: 0.3px;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .c-search__heading {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.75;
    letter-spacing: 0.3px;
    font-weight: 700;
  }
}
.c-search__column {
  display: flex;
  gap: 56px;
}
@media screen and (max-width: 768px) {
  .c-search__column {
    flex-direction: column;
    gap: 32px;
  }
}
.c-search__input-wrapper {
  margin-top: 8px;
}
@media screen and (max-width: 768px) {
  .c-search__input-wrapper {
    margin-top: 0;
  }
}
.c-search__control {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-top: 24px;
}
.c-search__result {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 400;
}
.c-search__result span {
  font-size: 18px;
  font-weight: 700;
}

.c-pager {
  margin-top: 40px;
}
.c-pager__list {
  display: flex;
  justify-content: center;
  gap: 8px;
  list-style: none;
}
.c-pager__arrow {
  position: relative;
  display: block;
  width: 30px;
  height: 30px;
  text-align: center;
  background-color: #fff;
  color: #695089;
  border: 1px solid #695089;
  cursor: pointer;
  border-radius: 30px;
  font-family: Shippori Mincho, serif;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.625;
  letter-spacing: normal;
  font-weight: 600;
}
.c-pager__arrow::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 20px;
  height: 20px;
  margin: auto;
  mask-image: url("../img/icon-arrow.svg");
  mask-position: center center;
  mask-repeat: no-repeat;
  background-color: #695089;
}
.c-pager__arrow--prev {
  margin-right: 8px;
}
.c-pager__arrow--prev::after {
  rotate: -180deg;
}
.c-pager__arrow--next {
  margin-left: 8px;
}
.c-pager__number {
  display: block;
  width: 30px;
  height: 30px;
  text-align: center;
  background-color: #fff;
  color: #695089;
  border: 1px solid #695089;
  cursor: pointer;
  border-radius: 30px;
  font-family: Shippori Mincho, serif;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.625;
  letter-spacing: normal;
  font-weight: 600;
}
.c-pager__number--current {
  background-color: #695089;
  color: #fff;
}

.c-slideCard__body {
  position: relative;
}
.c-slideCard__body::before, .c-slideCard__body::after {
  content: "";
  position: absolute;
  top: 0;
  width: clamp(40px, -31.1111111111px + 9.2592592593vw, 80px);
  height: 100%;
  z-index: 2;
  pointer-events: none;
}
@media screen and (max-width: 768px) {
  .c-slideCard__body::before, .c-slideCard__body::after {
    width: 32px;
  }
}
.c-slideCard__body::before {
  left: calc(50% - 50vw);
  background-image: linear-gradient(90deg, #fff, transparent);
}
.c-slideCard__body::after {
  right: calc(50% - 50vw);
  background-image: linear-gradient(90deg, transparent, #fff);
}
.c-slideCard__body.swiper {
  overflow: visible;
}
.c-slideCard__body--left-aligned.swiper {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-left: 80px;
}
@media screen and (max-width: 768px) {
  .c-slideCard__body--left-aligned.swiper {
    padding-left: 20px;
  }
}
.c-slideCard__item {
  width: clamp(356px, 277.7777777778px + 10.1851851852vw, 400px) !important;
}
@media screen and (max-width: 768px) {
  .c-slideCard__item {
    width: clamp(300px, 80vw, 356px) !important;
  }
}
.c-slideCard__link {
  display: flex;
  flex-direction: column;
  gap: 8px;
  height: 100%;
  text-decoration: none;
  color: #333333;
}
.c-slideCard__link .c-mediaCard__infos,
.c-slideCard__link .c-mediaCard__tags {
  margin-bottom: 0;
}
.c-slideCard__link + .c-mediaCard__tags {
  margin-top: 8px;
  margin-bottom: 0;
}
.c-slideCard__thumb {
  aspect-ratio: 16/9;
}
.c-slideCard__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 16/9;
}
.c-slideCard__meta {
  display: flex;
  justify-content: space-between;
  gap: 16px;
}
.c-slideCard__text {
  align-self: center;
  color: #585858;
  font-size: 13px;
  font-size: 0.8125rem;
  line-height: 1.6923076923;
  letter-spacing: normal;
  font-weight: 500;
}
.c-slideCard__tag {
  align-self: center;
  display: inline-block;
  padding: 3px 8px;
  color: #464b7a;
  border: 1px solid #464b7a;
  border-radius: 2px;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 1;
  letter-spacing: normal;
  font-weight: 500;
  vertical-align: text-bottom;
}
.c-slideCard__title {
  display: -webkit-box;
  height: 3.6em;
  color: #333333;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.75;
  letter-spacing: 0.5px;
  font-weight: 500;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .c-slideCard__title {
    height: auto;
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 1.7142857143;
    letter-spacing: normal;
    font-weight: 500;
  }
}
.c-slideCard__title--free {
  display: inline-block;
  margin-right: 8px;
  padding: 3px 8px;
  color: #464b7a;
  border: 1px solid #464b7a;
  border-radius: 2px;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 1;
  letter-spacing: normal;
  font-weight: 500;
  vertical-align: text-bottom;
}
.c-slideCard__navi {
  align-self: center;
  display: flex;
  gap: 24px;
  margin-left: auto;
}
@media screen and (max-width: 768px) {
  .c-slideCard__navi {
    gap: 16px;
  }
}
.c-slideCard__navi .swiper-button-prev,
.c-slideCard__navi .swiper-button-next {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 60px;
  height: 60px;
  border: 1px solid #695089;
  border-radius: 60px;
  cursor: pointer;
}
@media screen and (max-width: 768px) {
  .c-slideCard__navi .swiper-button-prev,
  .c-slideCard__navi .swiper-button-next {
    width: 40px;
    height: 40px;
  }
}
@media screen and (max-width: 768px) {
  .c-slideCard__navi .swiper-button-prev svg,
  .c-slideCard__navi .swiper-button-next svg {
    width: 8px;
    height: 16px;
  }
}
.c-slideCard__navi .swiper-button-prev svg path,
.c-slideCard__navi .swiper-button-next svg path {
  fill: #695089;
}
.c-slideCard__navi .swiper-button-prev {
  rotate: -180deg;
}
.c-slideCard__navi .swiper-button-lock {
  opacity: 0;
}

.c-heading__contents {
  display: flex;
  margin-bottom: 32px;
}
.c-heading__group--sub {
  padding-left: 24px;
  background: url(../img/common/icon-tooth.svg) no-repeat left top 1px/16px;
  font-family: Shippori Mincho, serif;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
  letter-spacing: normal;
  font-weight: 400;
}
@media screen and (max-width: 768px) {
  .c-heading__group--sub {
    padding-left: 20px;
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 1.1428571429;
    letter-spacing: normal;
    font-weight: 400;
    background-size: 12px;
  }
}
.c-heading__group--main {
  color: #574c64;
  font-family: Cormorant Infant, serif;
  font-size: 50px;
  font-size: 3.125rem;
  line-height: 1.64;
  letter-spacing: normal;
  font-weight: 300;
}
@media screen and (max-width: 768px) {
  .c-heading__group--main {
    font-size: 32px;
    font-size: 2rem;
    line-height: 1.46875;
    letter-spacing: normal;
    font-weight: 300;
  }
}

.c-pageNav__list {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 24px;
  list-style: none;
}
@media screen and (max-width: 768px) {
  .c-pageNav__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px 24px;
  }
}
.c-pageNav__item + .c-pageNav__item {
  padding-left: 32px;
  border-left: 1px solid #e5e5e5;
}
@media screen and (max-width: 768px) {
  .c-pageNav__item + .c-pageNav__item {
    padding-left: 0;
    border-left: none;
  }
}
@media screen and (max-width: 768px) {
  .c-pageNav__item {
    display: flex;
    flex-direction: column;
  }
  .c-pageNav__item:nth-child(even) {
    padding-left: 24px;
    border-left: 1px solid #e5e5e5;
  }
}
.c-pageNav__link {
  position: relative;
  display: block;
  padding-right: 40px;
  text-decoration: none;
  color: #333333;
  font-size: 16px;
  font-size: 1rem;
  line-height: 2;
  letter-spacing: normal;
  font-weight: 500;
  transition: color 0.3s;
}
@media screen and (max-width: 768px) {
  .c-pageNav__link {
    padding-right: 32px;
    margin-block: auto;
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 2;
    letter-spacing: normal;
    font-weight: 500;
  }
}
@media (hover: hover) and (pointer: fine) {
  .c-pageNav__link:hover {
    color: #695089;
  }
}
.c-pageNav__link::before, .c-pageNav__link::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 20px;
  height: 20px;
  margin: auto;
}
.c-pageNav__link::before {
  border-radius: 100%;
  background-color: #695089;
}
.c-pageNav__link::after {
  right: 3.5px;
  width: 12px;
  height: 13px;
  mask-image: url("../img/icon-pulldown.svg");
  mask-position: center center;
  mask-repeat: no-repeat;
  mask-size: contain;
  background-color: #fff;
}
@media screen and (max-width: 768px) {
  .c-pageNav__link span {
    display: none;
  }
}

.c-orderCard__list {
  display: grid;
  gap: 24px;
}
.c-orderCard__item {
  display: grid;
  grid-template-areas: "area-thumb .           area-buttons" "area-thumb area-header area-buttons" "area-thumb area-body   area-buttons" "area-thumb .           area-buttons";
  grid-template-columns: 220px 1fr 180px;
  grid-template-rows: 1fr auto auto 1fr;
  padding-bottom: 24px;
  border-bottom: 1px solid #e5e5e5;
}
@media screen and (max-width: 768px) {
  .c-orderCard__item {
    grid-template-areas: "area-thumb area-header" "area-body area-body" "area-buttons area-buttons";
    grid-template-columns: min(240px, 30vw) 1fr;
    grid-template-rows: auto;
  }
}
.c-orderCard__thumb {
  grid-area: area-thumb;
  aspect-ratio: 16/9;
}
.c-orderCard__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.c-orderCard__header {
  grid-area: area-header;
  margin: 0 24px 8px min(48px, 7%);
}
@media screen and (max-width: 768px) {
  .c-orderCard__header {
    align-content: center;
    margin: 0 0 0 16px;
  }
}
.c-orderCard__infos {
  display: flex;
  flex-wrap: wrap;
  gap: 0 8px;
  margin-top: 8px;
}
.c-orderCard__info {
  position: relative;
  padding-left: 20px;
  color: #5b5b5b;
  font-size: 13px;
  font-size: 0.8125rem;
  line-height: 1.8461538462;
  letter-spacing: normal;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .c-orderCard__info {
    font-size: 12px;
    font-size: 0.75rem;
    line-height: 1.8333333333;
    letter-spacing: normal;
    font-weight: 500;
  }
}
.c-orderCard__info::before {
  content: "";
  position: absolute;
  top: 2px;
  left: 0;
  width: 20px;
  height: 20px;
  background-color: #695089;
  mask-image: var(--c-info--icon);
  mask-repeat: no-repeat;
  mask-size: cover;
  mask-position: center center;
}
.c-orderCard__info--date {
  --c-info--icon: url(../img/icon-date.svg);
}
.c-orderCard__info--location {
  --c-info--icon: url(../img/icon-location.svg);
}
.c-orderCard__info--capacity {
  --c-info--icon: url(../img/icon-capacity.svg);
}
.c-orderCard__body {
  grid-area: area-body;
  margin-inline: min(48px, 7%) 24px;
}
@media screen and (max-width: 768px) {
  .c-orderCard__body {
    margin: 8px 0 16px;
  }
}
.c-orderCard__title {
  margin-bottom: 8px;
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 1.6;
  letter-spacing: normal;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .c-orderCard__title {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.375;
    letter-spacing: normal;
    font-weight: 500;
  }
}
.c-orderCard__payment {
  display: flex;
  flex-wrap: wrap;
}
.c-orderCard__payment-item {
  display: flex;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 1.6666666667;
  letter-spacing: normal;
  font-weight: 400;
}
@media screen and (max-width: 768px) {
  .c-orderCard__payment-item {
    font-size: 11px;
    font-size: 0.6875rem;
    line-height: 1.4545454545;
    letter-spacing: normal;
    font-weight: 400;
  }
}
.c-orderCard__payment-item + .c-orderCard__payment-item::before {
  content: "／";
  margin-inline: 8px;
}
.c-orderCard__payment-item dt::after {
  content: "：";
}
.c-orderCard__buttons {
  grid-area: area-buttons;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 8px;
}
@media screen and (max-width: 768px) {
  .c-orderCard__buttons {
    flex-direction: row;
  }
}
.c-orderCard__button {
  padding: 12px 8px;
}
@media screen and (max-width: 768px) {
  .c-orderCard__button {
    max-width: 150px;
    padding: 10px 8px;
    font-size: 14px;
    font-size: 0.875rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 500;
  }
}
.c-orderCard__text {
  margin-bottom: 48px;
}

.c-articleCard__list {
  display: grid;
  gap: 24px;
  margin-top: 48px;
}
.c-articleCard__item {
  padding-bottom: 24px;
  border-bottom: 1px solid #e5e5e5;
}
.c-articleCard__item {
  display: grid;
  grid-template-areas: "area-thumb .          " "area-thumb area-header" "area-thumb area-title " "area-thumb area-tags  " "area-thumb .          ";
  grid-template-columns: 28% 1fr;
  grid-template-rows: 1fr auto auto auto 1fr;
  position: relative;
  min-width: 0;
  text-decoration: none;
}
@media screen and (max-width: 768px) {
  .c-articleCard__item {
    grid-template-areas: "area-thumb area-header" "area-title area-title" "area-tags area-tags";
    grid-template-columns: min(240px, 38vw) 1fr;
    grid-template-rows: auto;
  }
}
.c-articleCard__item:not(:has(.c-articleCard__thumb)) {
  grid-template-areas: "." "area-header" "area-title" ".";
  grid-template-columns: 1fr; /* 1列にして左端から100%広げる */
}
.c-articleCard__item:not(:has(.c-articleCard__thumb)) .c-articleCard__header {
  justify-content: flex-start;
  flex-direction: row;
  margin-left: 0;
}
@media screen and (max-width: 768px) {
  .c-articleCard__item:not(:has(.c-articleCard__thumb)) .c-articleCard__header {
    gap: 16px;
  }
}
.c-articleCard__item:not(:has(.c-articleCard__thumb)) .c-articleCard__title {
  margin-left: 0;
}
.c-articleCard__item:not(:has(.c-articleCard__tags)) {
  grid-template-areas: "area-thumb .          " "area-thumb area-header" "area-thumb area-title " "area-thumb .          ";
  grid-template-rows: 1fr auto auto 1fr;
}
@media screen and (max-width: 768px) {
  .c-articleCard__item:not(:has(.c-articleCard__tags)) {
    grid-template-areas: "area-thumb area-header" "area-title area-title" "area-tags area-tags";
    grid-template-columns: min(240px, 38vw) 1fr;
    grid-template-rows: auto;
  }
}
.c-articleCard__item:not(:has(.c-articleCard__thumb)):not(:has(.c-articleCard__tags)) {
  grid-template-areas: "." "area-header" "area-title" ".";
  grid-template-columns: 1fr;
  grid-template-rows: 1fr auto auto 1fr;
}
@media (hover: hover) and (pointer: fine) {
  .c-articleCard__item {
    transition: opacity 0.3s;
  }
  .c-articleCard__item:has(.c-articleCard__link:hover) {
    opacity: 0.7;
  }
}
.c-articleCard__thumb {
  grid-area: area-thumb;
  align-self: flex-start;
  aspect-ratio: 16/9;
}
@media screen and (max-width: 768px) {
  .c-articleCard__thumb {
    margin-right: 0;
  }
}
.c-articleCard__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.c-articleCard__header {
  grid-area: area-header;
  display: flex;
  gap: 8px 24px;
  margin-left: 48px;
}
@media screen and (max-width: 768px) {
  .c-articleCard__header {
    justify-content: center;
    flex-direction: column;
    margin-left: 16px;
  }
}
.c-articleCard__date {
  color: #585858;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.7142857143;
  letter-spacing: 0.5px;
  font-weight: 400;
}
.c-articleCard__title {
  grid-area: area-title;
  margin-top: 16px;
  margin-left: 48px;
  color: #333333;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.75;
  letter-spacing: 0.5px;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .c-articleCard__title {
    margin-top: 8px;
    margin-left: 0;
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 1.7142857143;
    letter-spacing: 0.5px;
    font-weight: 500;
  }
}
.c-articleCard__title--blank::after {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  margin-left: 8px;
  background: url(../img/icon-blank.svg) no-repeat center/cover;
  vertical-align: bottom;
}
.c-articleCard__link {
  text-decoration: none;
  color: #333333;
}
.c-articleCard__link::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}
.c-articleCard__tags {
  grid-area: area-tags;
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
  list-style: none;
  margin-top: 16px;
  margin-left: 48px;
  padding-left: 20px;
}
@media screen and (max-width: 768px) {
  .c-articleCard__tags {
    margin-top: 8px;
    margin-left: 0;
  }
}
.c-articleCard__tags::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 16px;
  height: 16px;
  background: url(../img/icon-tag.svg) no-repeat center/cover;
}
.c-articleCard__tag {
  position: relative;
  z-index: 2;
}
.c-articleCard__tag a {
  display: block;
  text-decoration: none;
  color: #a1a1a1;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 1.3333333333;
  letter-spacing: 0.5px;
  font-weight: 500;
  transition: opacity 0.3s;
}
@media (hover: hover) and (pointer: fine) {
  .c-articleCard__tag a:hover {
    opacity: 0.7;
  }
}
.c-articleCard__tag a::before {
  content: "#";
}

.c-registerCta {
  background-color: #967bb8;
}
.c-registerCta__block {
  display: flex;
  gap: 80px;
}
@media screen and (max-width: 768px) {
  .c-registerCta__block {
    flex-direction: column-reverse;
    gap: 0;
  }
}
.c-registerCta__body {
  flex-shrink: 0;
  width: 50%;
  padding-block: 40px;
  margin: auto;
}
@media screen and (max-width: 768px) {
  .c-registerCta__body {
    width: 100%;
  }
}
.c-registerCta__image {
  flex: 1;
  margin-right: calc(50% - 50vw);
  height: stretch;
}
@media screen and (max-width: 768px) {
  .c-registerCta__image {
    width: calc(100% + 40px);
    margin-left: -20px;
    aspect-ratio: 16/9;
  }
}
.c-registerCta__image img {
  display: block;
  width: 100%;
  height: 100%;
  max-height: 540px;
  object-fit: cover;
}
.c-registerCta__read {
  margin-bottom: 8px;
  color: #fff;
  font-family: Shippori Mincho, serif;
  font-size: 20px;
  font-size: 1.25rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .c-registerCta__read {
    text-align: center;
    font-size: 18px;
    font-size: 1.125rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 500;
  }
}
.c-registerCta__copy {
  margin-bottom: 40px;
  color: #fff;
  font-family: Shippori Mincho, serif;
  font-size: 32px;
  font-size: 2rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  .c-registerCta__copy {
    margin-bottom: 24px;
    text-align: center;
    font-size: 28px;
    font-size: 1.75rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 600;
  }
}
.c-registerCta__copy span {
  display: inline-block;
}
.c-registerCta__list {
  display: grid;
  gap: 8px;
  list-style: none;
}
@media screen and (max-width: 768px) {
  .c-registerCta__list {
    width: fit-content;
    margin: auto;
  }
}
.c-registerCta__item {
  position: relative;
  padding-left: 32px;
  color: #fff;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .c-registerCta__item {
    padding-left: 24px;
    font-size: 16px;
    font-size: 1rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 700;
  }
}
.c-registerCta__item::before {
  content: "";
  position: absolute;
  top: 2px;
  left: 0;
  width: 24px;
  height: 24px;
  border-radius: 24px;
  background-color: #fff;
}
@media screen and (max-width: 768px) {
  .c-registerCta__item::before {
    width: 20px;
    height: 20px;
  }
}
.c-registerCta__item::after {
  content: "";
  position: absolute;
  top: 10px;
  left: 6px;
  width: 12px;
  height: 10px;
  background-color: #695089;
  mask-image: url(../img/icon-check.svg);
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: cover;
}
@media screen and (max-width: 768px) {
  .c-registerCta__item::after {
    top: 8px;
    left: 4px;
  }
}

.c-term__block {
  display: grid;
  gap: 40px;
}
@media screen and (max-width: 768px) {
  .c-term__block {
    gap: 32px;
  }
}
.c-term__title {
  margin-bottom: 16px;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.7777777778;
  letter-spacing: normal;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .c-term__title {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.5;
    letter-spacing: normal;
    font-weight: 700;
  }
}
.c-term__text {
  margin-top: 1em;
}
.c-term__list {
  margin-top: 1em;
  list-style: none;
}

.p-purchase__headingCustomer {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.p-purchase__couponInputWrapper {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.p-purchase__couponApplyButton {
  display: block;
  padding: 12px 16px;
  border-radius: 6px;
  background: #695089;
  color: #ffffff;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
  font-family: "Noto Sans JP", sans-serif;
  white-space: nowrap;
  height: 52px;
}
.p-purchase__priceContainer {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 36px 0 0 auto;
  width: clamp(362px, 10px + 45.8333333333vw, 560px);
}
.p-purchase__amountOuter {
  display: flex;
  justify-content: center;
}
.p-purchase__amountContainer {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  max-width: 566px;
  height: 220px;
  background: #faf9ff;
  padding: 0 56px;
  border-radius: 10px;
  margin: 32px 0 0 0;
  gap: 16px;
}
@media screen and (max-width: 768px) {
  .p-purchase__amountContainer {
    padding: 0 32px;
  }
}
.p-purchase__amount {
  display: flex;
  width: 100%;
  align-items: baseline;
  justify-content: space-between;
  font-size: 16px;
  font-size: 1rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
  color: #333333;
}
.p-purchase__couponLabel {
  display: block;
  width: 100%;
  margin-top: 8px;
  padding: 8px;
  background-color: #e15582;
  color: #fff;
  border-radius: 2px;
  text-align: center;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .p-purchase__couponLabel {
    font-size: 12px;
    font-size: 0.75rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 500;
  }
}
.p-purchase__price {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-size: 1rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
  color: #333333;
}
.p-purchase__price--discount {
  color: #c70101;
}
.p-purchase__price--total {
  font-size: 24px;
  font-size: 1.5rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
}
.p-purchase__tax {
  display: block;
  text-align: right;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 400;
}
.p-purchase__couponCode {
  display: block;
  font-size: 10px;
  font-size: 0.625rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 400;
  color: #888;
}
.p-purchase__expAndCvcContainer {
  display: flex;
  flex-direction: row;
  gap: 24px;
}
.p-purchase__exp, .p-purchase__cvc {
  width: 100px;
  white-space: nowrap;
}
.p-purchase__amountHr {
  border: 1px solid #e5e5e5;
  margin-bottom: 8px;
}

.p-login__form {
  margin: 80px auto;
}
@media screen and (max-width: 768px) {
  .p-login__form {
    margin: 56px auto;
  }
}
.p-login__remainedLink {
  display: flex;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
  font-family: "Noto Sans JP", sans-serif;
  color: #333333;
  text-decoration-line: none;
  justify-content: center;
  margin-top: 24px;
}
.p-login__notice {
  font-size: 13px;
  font-size: 0.8125rem;
  line-height: 2;
  letter-spacing: normal;
  font-weight: 500;
  font-family: "Noto Sans JP", sans-serif;
  color: #888;
  text-align: center;
  margin-top: 36px;
}

.p-userProfile__form {
  margin-bottom: 80px;
}
@media screen and (max-width: 768px) {
  .p-userProfile__form {
    margin-bottom: 56px;
  }
}
.p-userProfile__cluster {
  display: flex;
  flex-direction: row;
  gap: 16px;
}
@media screen and (max-width: 768px) {
  .p-userProfile__cluster {
    flex-direction: column;
  }
}
.p-userProfile__halfSizeInput {
  display: grid;
  width: 100%;
  grid-template-columns: 1fr 1fr;
}
@media screen and (max-width: 768px) {
  .p-userProfile__halfSizeInput {
    grid-template-columns: 1fr;
  }
}
.p-userProfile__postalNumberContainer {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
}
.p-userProfile__postalNumberInput {
  width: 95px;
  min-width: 95px;
}
.p-userProfile__prefecture {
  width: 200px;
  min-width: 200px;
}
.p-userProfile__yearOfBirthContainer {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
}
.p-userProfile__yearOfBirthInput {
  width: 68px;
  min-width: 68px;
}

.p-deactivate__form {
  width: min(850px, 100vw);
  padding: 20px;
}
.p-deactivate__attentionBox {
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: #faf9ff;
  box-sizing: content-box;
  border-radius: 2px;
  padding: 24px 40px;
  margin: 32px 0;
}
.p-deactivate__attention {
  list-style: none;
  display: flex;
  align-items: baseline;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
  gap: 8px;
}
.p-deactivate__attention::before {
  content: "";
  display: block;
  width: 8px;
  height: 8px;
  border-radius: 100%;
  background: #695089;
  min-width: 8px;
}

.p-contact__heroContainer {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: center;
}
.p-contact__heroBox {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 40px 56px;
  background: #faf9ff;
  border-radius: 10px;
  margin: 0 20px;
  width: 100%;
  max-width: 1120px;
}
@media screen and (max-width: 768px) {
  .p-contact__heroBox {
    padding: 32px 24px;
  }
}
.p-contact__heroTitle {
  display: block;
  margin-bottom: 24px;
  font-size: 28px;
  font-size: 1.75rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 600;
  font-family: "Shippori Mincho", serif;
  color: #574c64;
}
@media screen and (max-width: 768px) {
  .p-contact__heroTitle {
    font-size: 21px;
    font-size: 1.3125rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 600;
  }
}
.p-contact__appealPointBox {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background-color: #ffffff;
  width: 100%;
  margin: 16px 56px;
  padding: 24px 24px;
}
.p-contact__appealPointContainer {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
@media screen and (max-width: 768px) {
  .p-contact__appealPointContainer {
    grid-template-columns: 1fr;
  }
}
.p-contact__appealPointContainer--col4 {
  grid-template-columns: repeat(4, 1fr);
}
@media screen and (max-width: 768px) {
  .p-contact__appealPointContainer--col4 {
    grid-template-columns: repeat(2, 1fr);
  }
}
.p-contact__introduceBox {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 40px 56px;
  background: #faf9ff;
  border-radius: 10px;
  margin: 57px 20px 0 20px;
  width: 100%;
  max-width: 1120px;
}
@media screen and (max-width: 768px) {
  .p-contact__introduceBox {
    align-items: center;
    padding: 32px 24px;
  }
}
.p-contact__introduceContent {
  display: flex;
  flex-direction: column;
  width: clamp(380px, -11.1111111111px + 50.9259259259vw, 600px);
}
@media screen and (max-width: 768px) {
  .p-contact__introduceContent {
    width: 300px;
  }
}
.p-contact__introduceButton {
  display: flex;
}
@media screen and (max-width: 768px) {
  .p-contact__introduceButton {
    justify-content: center;
  }
}
.p-contact__introduceText {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  margin-bottom: 24px;
  align-items: start;
}
.p-contact__introduceImg {
  position: absolute;
  right: clamp(40px, -185px + 22.5vw, 85px);
  bottom: 0;
  width: clamp(240px, 41.3793103448px + 25.8620689655vw, 300px);
}
@media screen and (max-width: 768px) {
  .p-contact__introduceImg {
    position: static;
    margin-top: 32px;
    margin-bottom: -32px;
  }
}
.p-contact__formSection {
  margin-bottom: 80px;
}
.p-contact__halfSizeInput {
  display: grid;
  width: 100%;
  grid-template-columns: 1fr 1fr;
}
@media screen and (max-width: 768px) {
  .p-contact__halfSizeInput {
    grid-template-columns: 1fr;
  }
}
.p-contact__postalNumberContainer {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
}
.p-contact__postalNumberInput {
  width: 95px;
  min-width: 95px;
}
.p-contact__prefecture {
  width: 200px;
  min-width: 200px;
}

.p-details__favorite {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #fff;
  padding: 5px 8px;
  font-size: 10px;
  font-size: 0.625rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
  background-color: var(--c-favorite--surface);
  border-radius: 2px;
}
.p-details__favorite::after {
  content: "";
  width: 12px;
  height: 12px;
  background-color: #fff;
  mask-image: url(../img/common/icon-favo.svg);
  mask-position: center;
  mask-repeat: no-repeat;
}
.p-details__favorite--active {
  --c-favorite--surface: #e15582;
}
.p-details__favorite--default {
  --c-favorite--surface: #574c64;
}
.p-details__contents {
  display: flex;
  gap: 56px;
  margin-top: 64px;
}
@media screen and (max-width: 768px) {
  .p-details__contents {
    flex-direction: column;
    gap: 16px;
    margin-top: 40px;
  }
}
.p-details__thumbnail {
  width: 59%;
}
@media screen and (max-width: 768px) {
  .p-details__thumbnail {
    width: 100%;
  }
}
.p-details__thumbnail img {
  display: block;
  width: 100%;
}
.p-details__auth {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px;
  background-color: #faf9ff;
}
@media screen and (max-width: 768px) {
  .p-details__auth {
    padding: 24px;
  }
}
.p-details__auth-text {
  color: #574c64;
  text-align: center;
  font-family: Shippori Mincho, serif;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .p-details__auth-text {
    font-size: 18px;
  }
}
.p-details__auth-text span {
  display: inline-block;
}
.p-details__auth-buttons {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  flex-wrap: nowrap;
  gap: 24px;
  width: 100%;
  margin-top: 40px;
}
@media screen and (max-width: 768px) {
  .p-details__auth-buttons {
    gap: 16px;
    margin-top: 16px;
  }
}
.p-details__vimeo {
  width: 100%;
  aspect-ratio: 16/9;
}
.p-details__vimeo iframe {
  width: 100%;
  height: 100%;
}
.p-details__sample {
  max-width: 100%;
  gap: 16px;
  margin-top: 16px;
  --c-button__border: #c1b2d5;
  --c-button__surface: #c1b2d5;
  --c-button__content: #fff;
  --c-button__surface--active: #ac9dc0;
  --c-button__border--active: #ac9dc0;
}
@media screen and (max-width: 768px) {
  .p-details__sample {
    padding: 8px;
  }
}
.p-details__sample::after {
  content: "";
  width: 32px;
  height: 32px;
  background-color: #fff;
  mask-image: url(../img/icon-play.svg);
  mask-position: center;
  mask-repeat: no-repeat;
}
.p-details__download {
  max-width: 100%;
  gap: 16px;
  margin-top: 16px;
  --c-button__border: #e15582;
  --c-button__surface: #e15582;
  --c-button__content: #fff;
  --c-button__surface--active: #ec87a6;
  --c-button__border--active: #ec87a6;
}
@media screen and (max-width: 768px) {
  .p-details__download {
    padding: 8px;
  }
}
.p-details__download::after {
  content: "";
  width: 32px;
  height: 32px;
  background-color: #fff;
  mask-image: url(../img/common/icon-pdf.svg);
  mask-position: center;
  mask-repeat: no-repeat;
}
.p-details__lesson-name {
  margin-bottom: 2px;
  align-self: center;
  font-size: 16px;
  font-size: 1rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
}
.p-details__nav-buttons {
  display: flex;
  justify-content: space-between;
  gap: 40px;
  margin-top: 24px;
}
.p-details__nav-button {
  position: relative;
  color: #333333;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: normal;
  letter-spacing: 0.3px;
  font-weight: 500;
  text-decoration: none;
}
@media screen and (max-width: 768px) {
  .p-details__nav-button {
    font-size: 14px;
    font-size: 0.875rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 500;
  }
}
.p-details__nav-button::before, .p-details__nav-button::after {
  content: "";
  position: absolute;
  top: 2px;
  bottom: 0;
  width: 20px;
  height: 20px;
  margin: auto;
  flex-shrink: 0;
}
@media screen and (max-width: 768px) {
  .p-details__nav-button::before, .p-details__nav-button::after {
    width: 16px;
    height: 16px;
  }
}
.p-details__nav-button::before {
  border-radius: 100%;
  background-color: #695089;
}
.p-details__nav-button::after {
  mask-position: center center;
  mask-repeat: no-repeat;
  background-color: #fff;
  mask-image: url(../img/icon-arrow.svg);
}
.p-details__nav-button--prev {
  padding-left: 32px;
}
@media screen and (max-width: 768px) {
  .p-details__nav-button--prev {
    padding-left: 24px;
  }
}
.p-details__nav-button--prev::before {
  left: 0;
}
.p-details__nav-button--prev::after {
  left: 0;
  rotate: 180deg;
}
.p-details__nav-button--next {
  padding-right: 32px;
}
@media screen and (max-width: 768px) {
  .p-details__nav-button--next {
    padding-right: 24px;
  }
}
.p-details__nav-button--next::before {
  right: 0;
}
.p-details__nav-button--next::after {
  right: 0;
}
.p-details__deadline {
  align-self: center;
  color: #ababab;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: normal;
  letter-spacing: 0.3px;
  font-weight: 400;
}
.p-details__schedule {
  margin-block: 16px 4px;
  color: #574c64;
  font-family: Shippori Mincho, serif;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 400;
}
.p-details__results {
  text-align: center;
  font-size: 20px;
  font-size: 1.25rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .p-details__results {
    font-size: 16px;
    font-size: 1rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 500;
  }
}

.p-lessonList__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  margin-top: 48px;
}
@media screen and (max-width: 768px) {
  .p-lessonList__list {
    grid-template-columns: repeat(1, 1fr);
  }
}
.p-lessonList__item {
  position: relative;
  border: 1px solid #e5e5e5;
}
.p-lessonList__item:nth-child(even) {
  border-left: none;
}
@media screen and (max-width: 768px) {
  .p-lessonList__item:nth-child(even) {
    border-left: 1px solid #e5e5e5;
  }
}
.p-lessonList__item:nth-child(n+3) {
  border-top: none;
}
@media screen and (max-width: 768px) {
  .p-lessonList__item:nth-child(n+2) {
    border-top: none;
  }
}
.p-lessonList__item::before {
  content: "";
  position: absolute;
  top: -1px;
  left: -1px;
  right: -1px;
  bottom: -1px;
  width: calc(100% + 2px);
  height: calc(100% + 2px);
  background-image: linear-gradient(#fff, #fff), linear-gradient(#fff, #fff), linear-gradient(#fff, #fff), linear-gradient(#fff, #fff);
  background-size: 3px 3px;
  background-repeat: no-repeat;
  background-position: left top, right top, left bottom, right bottom;
  pointer-events: none;
}
.p-lessonList__link {
  display: flex;
  gap: 16px;
  height: 100%;
  padding: clamp(16px, 1.7777777778px + 1.8518518519vw, 24px);
  text-decoration: none;
  color: #333333;
  transition: background 0.3s;
}
@media (hover: hover) and (pointer: fine) {
  .p-lessonList__link:hover {
    background-color: #faf9ff;
  }
}
.p-lessonList__thumb {
  align-self: flex-start;
  width: 35.099%;
  aspect-ratio: 16/9;
}
.p-lessonList__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-lessonList__body {
  flex: 1;
  position: relative;
  padding-right: 36px;
}
.p-lessonList__body::before, .p-lessonList__body::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 20px;
  height: 20px;
  margin: auto;
}
.p-lessonList__body::before {
  border-radius: 100%;
  background-color: #695089;
}
.p-lessonList__body::after {
  mask-image: url("../img/icon-arrow.svg");
  mask-position: center center;
  mask-repeat: no-repeat;
  background-color: #fff;
}
.p-lessonList__meta {
  display: flex;
  gap: 16px;
  margin-bottom: 16px;
}
@media screen and (max-width: 768px) {
  .p-lessonList__meta {
    margin-bottom: 8px;
  }
}
.p-lessonList__number {
  align-self: center;
  color: #585858;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
}
.p-lessonList__title {
  margin-bottom: 8px;
  font-size: 16px;
  font-size: 1rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .p-lessonList__title {
    font-size: 15px;
    font-size: 0.9375rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 500;
  }
}
.p-lessonList__text {
  display: -webkit-box;
  color: #585858;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 1.8333333333;
  letter-spacing: normal;
  font-weight: 500;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.p-lessonCategory__heading {
  margin-block: 8px 56px;
  background-color: #faf9ff;
}
.p-lessonCategory__contents {
  display: flex;
  padding-block: 40px;
  gap: 56px;
}
@media screen and (max-width: 768px) {
  .p-lessonCategory__contents {
    flex-direction: column;
    gap: 32px;
    padding-block: 24px;
  }
}
.p-lessonCategory__thumb {
  align-self: flex-start;
  width: 40.179%;
  aspect-ratio: 16/9;
}
@media screen and (max-width: 768px) {
  .p-lessonCategory__thumb {
    width: 100%;
  }
}
.p-lessonCategory__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-lessonCategory__body {
  flex: 1;
}
.p-lessonCategory__meta {
  display: flex;
  gap: 16px;
  margin-bottom: 16px;
}
@media screen and (max-width: 768px) {
  .p-lessonCategory__meta {
    margin-bottom: 8px;
  }
}
.p-lessonCategory__number {
  color: #585858;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 400;
}
.p-lessonCategory__title {
  margin-bottom: 32px;
  color: #574c64;
  font-family: Shippori Mincho, serif;
  font-size: 36px;
  font-size: 2.25rem;
  line-height: 1.6111111111;
  letter-spacing: 0.5px;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .p-lessonCategory__title {
    margin-bottom: 24px;
    font-size: 26px;
    font-size: 1.625rem;
    line-height: 1.7692307692;
    letter-spacing: 0.5px;
    font-weight: 500;
  }
}
.p-lessonCategory__text {
  color: #585858;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.75;
  letter-spacing: normal;
  font-weight: 400;
}
@media screen and (max-width: 768px) {
  .p-lessonCategory__text {
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 1.7142857143;
    letter-spacing: normal;
    font-weight: 400;
  }
}

.p-academyCta {
  display: flex;
  gap: 56px;
  padding: 40px 56px;
  background-color: #faf9ff;
  border-radius: 10px;
}
@media screen and (max-width: 768px) {
  .p-academyCta {
    flex-direction: column;
    gap: 0;
    padding: 32px 24px;
  }
}
.p-academyCta__body {
  flex: 1;
  align-self: center;
}
.p-academyCta__title {
  margin-bottom: 24px;
  color: #574c64;
  font-family: Shippori Mincho, serif;
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 1.5;
  letter-spacing: normal;
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  .p-academyCta__title {
    margin-bottom: 16px;
    font-size: 22px;
    font-size: 1.375rem;
    line-height: 1.5909090909;
    letter-spacing: normal;
    font-weight: 600;
  }
}
.p-academyCta__image {
  flex-shrink: 0;
  width: 37.897%;
}
@media screen and (max-width: 768px) {
  .p-academyCta__image {
    width: 90%;
    margin: 16px auto 0;
  }
}

.p-academyList__title {
  position: relative;
  margin-bottom: 24px;
  padding-left: 32px;
  background: url(../img/common/icon-tooth.svg) no-repeat left top 19px/16px;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .p-academyList__title {
    margin-bottom: 16px;
    padding-left: 24px;
    background-position: left top 12px;
  }
}
.p-academyList__title::after {
  content: "";
  position: absolute;
  left: 32px;
  top: 26px;
  width: 100%;
  height: 2px;
  background-color: var(--academy--surface);
  z-index: -1;
}
@media screen and (max-width: 768px) {
  .p-academyList__title::after {
    top: 20px;
    left: 24px;
  }
}
.p-academyList__title--course01 {
  --academy--surface: #e15582;
}
.p-academyList__title--course02 {
  --academy--surface: #6269ad;
}
.p-academyList__title--course03 {
  --academy--surface: #89cfd8;
}
.p-academyList__title--course04 {
  --academy--surface: #f5b4b3;
}
.p-academyList__title span {
  padding-right: 24px;
  color: #574c64;
  background-color: #fff;
  font-family: Shippori Mincho, serif;
  font-size: 32px;
  font-size: 2rem;
  line-height: 1.625;
  letter-spacing: normal;
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  .p-academyList__title span {
    padding-right: 16px;
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.5833333333;
    letter-spacing: normal;
    font-weight: 600;
  }
}
.p-academyList__heading {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-block: 56px 16px;
}
@media screen and (max-width: 768px) {
  .p-academyList__heading {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    margin-top: 40px;
  }
}
.p-academyList__course {
  margin-bottom: 0;
  align-self: flex-start;
}
.p-academyList__text {
  padding-left: 24px;
  border-left: 1px solid #e5e5e5;
}
@media screen and (max-width: 768px) {
  .p-academyList__text {
    padding-left: 0;
    border: none;
  }
}

.p-mypageNav__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  list-style: none;
}
@media screen and (max-width: 768px) {
  .p-mypageNav__list {
    grid-template-columns: repeat(2, 1fr);
  }
}
.p-mypageNav__item {
  position: relative;
  border: 1px solid #e5e5e5;
}
.p-mypageNav__item + .p-mypageNav__item {
  border-left: none;
}
@media screen and (max-width: 768px) {
  .p-mypageNav__item:nth-child(odd) {
    border-left: 1px solid #e5e5e5;
  }
  .p-mypageNav__item:nth-child(n+3) {
    border-top: none;
  }
}
.p-mypageNav__item::before {
  content: "";
  position: absolute;
  top: -1px;
  left: -1px;
  right: -1px;
  bottom: -1px;
  width: calc(100% + 2px);
  height: calc(100% + 2px);
  background-image: linear-gradient(#fff, #fff), linear-gradient(#fff, #fff), linear-gradient(#fff, #fff), linear-gradient(#fff, #fff);
  background-size: 3px 3px;
  background-repeat: no-repeat;
  background-position: left top, right top, left bottom, right bottom;
  pointer-events: none;
}
.p-mypageNav__link {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 32px 8px;
  color: #574c64;
  text-align: center;
  text-decoration: none;
  transition: background 0.3s;
  z-index: 10;
}
@media screen and (max-width: 768px) {
  .p-mypageNav__link {
    justify-content: center;
    padding: 8px;
    min-height: 134px;
  }
}
@media (hover: hover) and (pointer: fine) {
  .p-mypageNav__link:hover {
    background-color: #edebf9;
  }
}
.p-mypageNav__link span {
  margin-block: auto;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 2.1111111111;
  letter-spacing: normal;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .p-mypageNav__link span {
    margin-block: 0;
    font-size: 16px;
    font-size: 1rem;
    line-height: 2;
    letter-spacing: normal;
    font-weight: 500;
  }
}
.p-mypageNav__link span span {
  display: block;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 1;
  letter-spacing: normal;
  font-weight: 500;
}
.p-mypageNav__link::before {
  content: "";
  display: block;
  width: 48px;
  height: 48px;
  margin-inline: auto;
  background-color: #574c64;
  mask-image: var(--mypage__icon);
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: cover;
}
.p-mypageNav__link--registrations {
  --mypage__icon: url(../img/icon-registrations.svg);
}
.p-mypageNav__link--purchases {
  --mypage__icon: url(../img/icon-purchases.svg);
}
.p-mypageNav__link--history {
  --mypage__icon: url(../img/icon-history.svg);
}
.p-mypageNav__link--favorite {
  --mypage__icon: url(../img/icon-favorite.svg);
}

.p-mypageEntry__label {
  position: relative;
  padding: 16px 88px 16px 32px;
  background-color: #695089;
  color: #fff;
  cursor: pointer;
}
@media screen and (max-width: 768px) {
  .p-mypageEntry__label {
    padding: 8px 56px 8px 16px;
  }
}
.p-mypageEntry__label::after {
  content: "";
  position: absolute;
  right: 32px;
  top: 0;
  bottom: 0;
  width: 32px;
  height: 32px;
  margin: auto;
  background-color: #fff;
  border-radius: 32px;
}
@media screen and (max-width: 768px) {
  .p-mypageEntry__label::after {
    right: 16px;
    width: 24px;
    height: 24px;
  }
}
.p-mypageEntry__label span {
  font-family: Shippori Mincho, serif;
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 1.5714285714;
  letter-spacing: normal;
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  .p-mypageEntry__label span {
    font-size: 20px;
    font-size: 1.25rem;
    line-height: 1.6;
    letter-spacing: normal;
    font-weight: 600;
  }
}
.p-mypageEntry__label span::before, .p-mypageEntry__label span::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  background-color: #695089;
  z-index: 1;
}
.p-mypageEntry__label span::before {
  right: 42px;
  width: 12px;
  height: 2px;
}
@media screen and (max-width: 768px) {
  .p-mypageEntry__label span::before {
    right: 22px;
    height: 1px;
  }
}
.p-mypageEntry__label span::after {
  right: 47px;
  width: 2px;
  height: 12px;
  transition: rotate 0.3s;
}
@media screen and (max-width: 768px) {
  .p-mypageEntry__label span::after {
    right: 27.5px;
    width: 1px;
  }
}
.p-mypageEntry__label.is-open span::after {
  rotate: 90deg;
}
.p-mypageEntry__block {
  display: none;
  padding-top: 24px;
}
.p-mypageEntry__loading {
  padding-block: 40px;
  text-align: center;
}
.p-mypageEntry__spinner {
  display: inline-block;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 4px solid #e5e5e5;
  border-top-color: #695089;
  animation: spin 1s ease-in-out infinite;
}
.p-mypageEntry__card {
  padding: 48px;
  background-color: #faf9ff;
}
@media screen and (max-width: 768px) {
  .p-mypageEntry__card {
    padding: 32px 24px;
  }
}
.p-mypageEntry__list {
  display: grid;
  gap: 16px;
  list-style: none;
}
.p-mypageEntry__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  padding: 40px 56px;
  color: var(--mypageEntry__text);
  background-color: var(--mypageEntry__surface);
  border-radius: 8px;
  text-decoration: none;
}
@media screen and (max-width: 768px) {
  .p-mypageEntry__link {
    flex-direction: column;
    gap: 24px;
    padding: 24px;
  }
}
.p-mypageEntry__link--disabled {
  --mypageEntry__text: #aeaeb2;
  --mypageEntry__surface: #f4f4f4;
  pointer-events: none;
}
.p-mypageEntry__link--unqualified {
  --mypageEntry__text: #5b5b5b;
  --mypageEntry__surface: transparent;
  border: 1px solid #e5e5e5;
  pointer-events: none;
}
.p-mypageEntry__link--course01 {
  --mypageEntry__text: #fff;
  --mypageEntry__surface: #e15582;
}
.p-mypageEntry__link--course02 {
  --mypageEntry__text: #fff;
  --mypageEntry__surface: #6269ad;
}
.p-mypageEntry__link--course03 {
  --mypageEntry__text: #fff;
  --mypageEntry__surface: #89cfd8;
}
.p-mypageEntry__link--course04 {
  --mypageEntry__text: #fff;
  --mypageEntry__surface: #f5b4b3;
}
@media (hover: hover) and (pointer: fine) {
  .p-mypageEntry__link:hover .c-button {
    background-color: #edebf9;
  }
}
.p-mypageEntry__body {
  flex: 1;
}
@media screen and (max-width: 768px) {
  .p-mypageEntry__body {
    width: 100%;
  }
}
.p-mypageEntry__title {
  color: var(--mypageEntry__text);
}
.p-mypageEntry__title span {
  display: inline-block;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
.p-mypageCertification__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  list-style: none;
}
@media screen and (max-width: 768px) {
  .p-mypageCertification__list {
    grid-template-columns: repeat(1, 1fr);
    gap: 8px;
  }
}
.p-mypageCertification__item {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 24px 24px 24px 144px;
  border: 1px solid var(--certification__border);
  background-color: var(--certification__surface);
  border-radius: 4px;
  font-family: Shippori Mincho, serif;
}
@media screen and (max-width: 768px) {
  .p-mypageCertification__item {
    padding: 16px 16px 16px 96px;
  }
}
.p-mypageCertification__item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 24px;
  bottom: 0;
  width: 87px;
  height: 80px;
  margin-block: auto;
  background: var(--certification__icon) no-repeat center/cover;
}
@media screen and (max-width: 768px) {
  .p-mypageCertification__item::before {
    left: 16px;
    width: 66px;
    height: 60px;
  }
}
.p-mypageCertification__item--disabled {
  --certification__border: #f4f4f4;
  --certification__surface: #f4f4f4;
  --certification__text: #aeaeb2;
  --certification__icon: url(../img/icon-certification--disabled.svg);
}
.p-mypageCertification__item--active {
  --certification__border: #695089;
  --certification__surface: #faf9ff;
  --certification__text: #574c64;
  --certification__icon: url(../img/icon-certification--active.svg);
}
.p-mypageCertification__date {
  color: var(--certification__text);
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 2;
  letter-spacing: normal;
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  .p-mypageCertification__date {
    font-size: 13px;
    font-size: 0.8125rem;
    line-height: 2;
    letter-spacing: normal;
    font-weight: 600;
  }
}
.p-mypageCertification__title {
  color: var(--certification__text);
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.8888888889;
  letter-spacing: normal;
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  .p-mypageCertification__title {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.75;
    letter-spacing: normal;
    font-weight: 600;
  }
}

.p-mypageMenu__body {
  display: flex;
  justify-content: space-between;
  gap: 80px;
}
@media screen and (max-width: 768px) {
  .p-mypageMenu__body {
    flex-direction: column;
    gap: 0;
  }
}
.p-mypageMenu__list {
  flex: 1;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px 32px;
  max-width: 672px;
}
@media screen and (max-width: 768px) {
  .p-mypageMenu__list {
    gap: 16px;
    width: 100%;
    max-width: 616px;
    margin: auto;
  }
}
@media screen and (max-width: 430px) {
  .p-mypageMenu__list {
    grid-template-columns: repeat(1, 1fr);
    justify-items: center;
  }
}
.p-mypageMenu__links {
  margin-top: 48px;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .p-mypageMenu__links {
    margin-top: 32px;
  }
}
.p-mypageMenu__link {
  color: #888;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
}

.p-receipt__text {
  margin-block: 16px 80px;
  text-align: center;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 400;
}
@media screen and (max-width: 768px) {
  .p-receipt__text {
    margin-bottom: 56px;
    font-size: 12px;
    font-size: 0.75rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 400;
  }
}
.p-receipt__container {
  max-width: 842px;
  margin: auto;
  padding: 40px;
  border: 1px solid #e5e5e5;
  font-family: Shippori Mincho, serif;
}
@media screen and (max-width: 768px) {
  .p-receipt__container {
    padding: min(40px, 7vw);
  }
}
.p-receipt__header {
  display: flex;
  justify-content: space-between;
}
.p-receipt__title {
  font-size: 32px;
  font-size: 2rem;
  line-height: 1.625;
  letter-spacing: normal;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .p-receipt__title {
    font-size: 28px;
    font-size: 1.75rem;
    line-height: 1.5714285714;
    letter-spacing: normal;
    font-weight: 500;
  }
}
.p-receipt__meta {
  align-self: center;
  text-align: right;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.5714285714;
  letter-spacing: normal;
  font-weight: 400;
}
@media screen and (max-width: 768px) {
  .p-receipt__meta {
    font-size: 13px;
    font-size: 0.8125rem;
    line-height: 1.5384615385;
    letter-spacing: normal;
    font-weight: 400;
  }
}
.p-receipt__body {
  max-width: 400px;
  margin: 40px auto;
}
.p-receipt__name {
  display: flex;
  justify-content: space-between;
  margin-bottom: 24px;
  padding-bottom: 8px;
  border-bottom: 1px solid #e5e5e5;
}
.p-receipt__name span {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 400;
}
.p-receipt__price {
  margin-bottom: 16px;
  padding: 24px 16px 16px;
  background-color: #f4f4f4;
  text-align: center;
}
.p-receipt__price--main {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
}
@media screen and (max-width: 768px) {
  .p-receipt__price--main {
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 1;
    letter-spacing: normal;
    font-weight: 400;
  }
}
.p-receipt__price--main span {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
  font-size: 40px;
  font-size: 2.5rem;
  line-height: 1;
  letter-spacing: 0.5px;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .p-receipt__price--main span {
    font-size: 32px;
    font-size: 2rem;
    line-height: 1;
    letter-spacing: 0.5px;
    font-weight: 500;
  }
}
.p-receipt__price--main span::after {
  content: "";
  display: inline-block;
  width: 16px;
  height: 1px;
  margin-top: 4px;
  background-color: #333333;
}
.p-receipt__price--attr {
  margin-top: 8px;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: normal;
  letter-spacing: 0.5px;
  font-weight: 400;
}
.p-receipt__data {
  margin-bottom: 24px;
  font-size: 13px;
  font-size: 0.8125rem;
  line-height: normal;
  letter-spacing: 0.5px;
  font-weight: 400;
}
@media screen and (max-width: 768px) {
  .p-receipt__data {
    font-size: 12px;
    font-size: 0.75rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 400;
  }
}
.p-receipt__attr {
  color: #929292;
  text-align: center;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: normal;
  letter-spacing: 0.5px;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .p-receipt__attr {
    font-size: 11px;
    font-size: 0.6875rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 400;
  }
}
.p-receipt__info {
  display: flex;
  justify-content: flex-end;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 1.6;
  letter-spacing: 0.5px;
  font-weight: 400;
}
@media screen and (max-width: 768px) {
  .p-receipt__info {
    font-size: 11px;
    font-size: 0.6875rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 400;
  }
}

.p-faq__list {
  display: grid;
  gap: 16px;
  margin-top: 32px;
}
@media screen and (max-width: 768px) {
  .p-faq__list {
    gap: 8px;
    margin-top: 16px;
  }
}
.p-faq__item {
  padding: 24px 32px;
  background-color: #faf9ff;
}
@media screen and (max-width: 768px) {
  .p-faq__item {
    padding: 16px;
  }
}
.p-faq__title {
  position: relative;
  padding-right: 40px;
  cursor: pointer;
}
.p-faq__title span {
  display: flex;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.7777777778;
  letter-spacing: 0.3px;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .p-faq__title span {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.75;
    letter-spacing: 0.3px;
    font-weight: 500;
  }
}
.p-faq__title span::before {
  content: "Q.";
  flex-shrink: 0;
  margin-top: -3px;
  margin-right: 8px;
  color: #695089;
  font-family: Cormorant Infant, serif;
  font-size: 28px;
  font-size: 1.75rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  .p-faq__title span::before {
    margin-top: -2px;
    font-size: 24px;
    font-size: 1.5rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 600;
  }
}
.p-faq__title span::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 24px;
  height: 24px;
  margin: auto;
  background-color: #695089;
  border-radius: 24px;
}
.p-faq__title::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 6px;
  width: 12px;
  height: 2px;
  margin: auto;
  background-color: #fff;
  border-radius: 2px;
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .p-faq__title::before {
    right: 7px;
    width: 10px;
    height: 1px;
  }
}
.p-faq__title::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 11px;
  width: 2px;
  height: 12px;
  margin: auto;
  background-color: #fff;
  border-radius: 2px;
  z-index: 1;
  transition: rotate 0.3s;
}
@media screen and (max-width: 768px) {
  .p-faq__title::after {
    right: 11.5px;
    width: 1px;
    height: 10px;
  }
}
.p-faq__title.is-open::after {
  rotate: 90deg;
}
.p-faq__answer {
  display: none;
}
.p-faq__answer--text {
  display: flex;
  margin-top: 16px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.75;
  letter-spacing: 0.3px;
  font-weight: 400;
}
@media screen and (max-width: 768px) {
  .p-faq__answer--text {
    margin-top: 8px;
  }
}
.p-faq__answer--text::before {
  content: "A.";
  flex-shrink: 0;
  margin-top: -3px;
  margin-right: 8px;
  color: #695089;
  font-family: Cormorant Infant, serif;
  font-size: 28px;
  font-size: 1.75rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  .p-faq__answer--text::before {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 600;
  }
}

.p-programOverview__block {
  display: flex;
}
@media screen and (max-width: 768px) {
  .p-programOverview__block {
    flex-direction: column;
  }
}
.p-programOverview__image {
  flex: 1;
  margin-left: calc(50% - 50vw);
  border-radius: 0 10px 10px 0;
  overflow: hidden;
}
.p-programOverview__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: left;
}
.p-programOverview__body {
  width: 43%;
  margin: auto 0 auto 80px;
  padding-block: 40px;
}
@media screen and (max-width: 768px) {
  .p-programOverview__body {
    width: 100%;
    margin-left: 0;
  }
}

.p-programList {
  padding-block: 80px;
  background-color: #faf9ff;
}
@media screen and (max-width: 768px) {
  .p-programList {
    padding-block: 56px;
  }
}
.p-programList__item + .p-programList__item {
  margin-top: 32px;
}
.p-programList__label {
  position: relative;
  padding: 16px 88px 16px 32px;
  background-color: #695089;
  color: #fff;
  cursor: pointer;
}
@media screen and (max-width: 768px) {
  .p-programList__label {
    padding: 8px 56px 8px 16px;
  }
}
.p-programList__label::after {
  content: "";
  position: absolute;
  right: 32px;
  top: 0;
  bottom: 0;
  width: 32px;
  height: 32px;
  margin: auto;
  background-color: #fff;
  border-radius: 32px;
}
@media screen and (max-width: 768px) {
  .p-programList__label::after {
    right: 16px;
    width: 24px;
    height: 24px;
  }
}
.p-programList__label span {
  font-family: Shippori Mincho, serif;
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 1.5714285714;
  letter-spacing: normal;
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  .p-programList__label span {
    font-size: 20px;
    font-size: 1.25rem;
    line-height: 1.6;
    letter-spacing: normal;
    font-weight: 600;
  }
}
.p-programList__label span::before, .p-programList__label span::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  background-color: #695089;
  z-index: 1;
}
.p-programList__label span::before {
  right: 42px;
  width: 12px;
  height: 2px;
}
@media screen and (max-width: 768px) {
  .p-programList__label span::before {
    right: 22px;
    height: 1px;
  }
}
.p-programList__label span::after {
  right: 47px;
  width: 2px;
  height: 12px;
  transition: rotate 0.3s;
}
@media screen and (max-width: 768px) {
  .p-programList__label span::after {
    right: 27.5px;
    width: 1px;
  }
}
.p-programList__label.is-open span::after {
  rotate: 90deg;
}
.p-programList__body {
  display: none;
  margin-top: 16px;
  padding-bottom: 32px;
}
.p-programList__block {
  margin-top: 40px;
  padding: 40px 48px;
  background-color: #fff;
}
@media screen and (max-width: 768px) {
  .p-programList__block {
    margin-top: 24px;
    padding: 24px;
  }
}
.p-programList__block + .p-programList__block {
  margin-top: 32px;
}
.p-programList__step {
  display: grid;
  grid-template-columns: var(--stepGrid);
  gap: 0 40px;
  margin-top: 24px;
  list-style: none;
}
.p-programList__step--col2 {
  --stepGrid: repeat(2, 1fr);
}
@media screen and (max-width: 768px) {
  .p-programList__step--col2 {
    --stepGrid: repeat(1, 1fr);
  }
}
.p-programList__step--col3 {
  --stepGrid: repeat(3, 1fr);
}
@media screen and (max-width: 768px) {
  .p-programList__step--col3 {
    --stepGrid: repeat(1, 1fr);
  }
}
.p-programList__step-item {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 3;
}
@media screen and (max-width: 768px) {
  .p-programList__step-item {
    position: relative;
  }
}
@media screen and (max-width: 768px) {
  .p-programList__step-item::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -32px;
    border-top: 16px solid #c1b2d5;
    border-left: 24px solid transparent;
    border-right: 24px solid transparent;
    transform: translateX(-50%);
  }
}
@media screen and (max-width: 768px) {
  .p-programList__step-item:last-child::after {
    content: none;
  }
}
@media screen and (max-width: 768px) {
  .p-programList__step-item + .p-programList__step-item {
    margin-top: 40px;
  }
}
.p-programList__step-label {
  position: relative;
  margin-bottom: 16px;
  padding-inline: 16px;
  color: #fff;
  background-color: #c1b2d5;
  border-radius: 2px 0 0 2px;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 2;
  letter-spacing: normal;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .p-programList__step-label {
    border-radius: 2px;
  }
}
.p-programList__step-label::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: -16px;
  width: 16px;
  height: 100%;
  background-color: #c1b2d5;
  clip-path: polygon(0% 0%, 0% 100%, 100% 50%);
}
@media screen and (max-width: 768px) {
  .p-programList__step-label::after {
    content: none;
  }
}
.p-programList__step-item:last-child .p-programList__step-label {
  border-radius: 2px;
}
.p-programList__step-item:last-child .p-programList__step-label::after {
  content: none;
}

.p-programList__step-text {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 2;
  letter-spacing: 0.3px;
  font-weight: 400;
}
.p-programList__curriculum {
  margin-top: 16px;
  padding: 16px;
  background-color: #faf9ff;
}
.p-programList__curriculum-title {
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 2;
  letter-spacing: normal;
  font-weight: 500;
}
.p-programList__curriculum-list {
  margin-left: 1em;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 2;
  letter-spacing: normal;
  font-weight: 400;
}

.p-programExam__block {
  margin-top: 56px;
  padding: 40px 64px;
  background-color: #faf9ff;
}
@media screen and (max-width: 768px) {
  .p-programExam__block {
    margin-top: 32px;
    padding: 24px;
  }
}
.p-programExam__block + .p-programExam__block {
  margin-top: 40px;
}
@media screen and (max-width: 768px) {
  .p-programExam__block + .p-programExam__block {
    margin-top: 24px;
  }
}
.p-programExam__step {
  display: flex;
  gap: 40px;
}
@media screen and (max-width: 768px) {
  .p-programExam__step {
    flex-direction: column;
    gap: 16px;
  }
}
.p-programExam__step-label {
  display: flex;
  justify-content: center;
  padding: 32px;
  background-color: #695089;
  color: #fff;
  border-radius: 4px;
  writing-mode: vertical-rl;
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 1;
  letter-spacing: 5px;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .p-programExam__step-label {
    padding: 8px 16px;
    writing-mode: horizontal-tb;
    font-size: 20px;
    font-size: 1.25rem;
    line-height: 1.4;
    letter-spacing: normal;
    font-weight: 700;
  }
}
.p-programExam__step-list {
  flex: 1;
  display: grid;
  gap: 32px;
  list-style: none;
}
.p-programExam__step-item {
  position: relative;
  padding: 32px;
  background-color: #fff;
  border: 2px solid #695089;
  border-radius: 4px;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .p-programExam__step-item {
    padding: 16px;
  }
}
.p-programExam__step-item + .p-programExam__step-item::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -24px;
  transform: translateX(-50%);
  border-top: 16px solid #695089;
  border-left: 24px solid transparent;
  border-right: 24px solid transparent;
}
.p-programExam__step-title {
  color: #574c64;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1.4166666667;
  letter-spacing: normal;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .p-programExam__step-title {
    font-size: 18px;
    font-size: 1.125rem;
    line-height: 1.7777777778;
    letter-spacing: normal;
    font-weight: 700;
  }
}
.p-programExam__step-title + .u-text {
  margin-top: 16px;
}
@media screen and (max-width: 768px) {
  .p-programExam__step-title + .u-text {
    margin-top: 8px;
  }
}
.p-programExam__step-course {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px 16px;
  list-style: none;
  margin-block: 24px 16px;
}
@media screen and (max-width: 768px) {
  .p-programExam__step-course {
    gap: 4px;
    grid-template-columns: repeat(1, 1fr);
    margin-block: 8px;
  }
}
.p-programExam__step-course li {
  padding: 12px;
  color: #fff;
  background-color: var(--program-course);
  border-radius: 4px;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .p-programExam__step-course li {
    font-size: 16px;
    font-size: 1rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 700;
  }
}
.p-programExam__step-course--course01 {
  --program-course: #e15582;
}
.p-programExam__step-course--course02 {
  --program-course: #6269ad;
}
.p-programExam__step-course--course03 {
  --program-course: #89cfd8;
}
.p-programExam__step-course--course04 {
  --program-course: #f5b4b3;
}
@media screen and (max-width: 768px) {
  .p-programExam__step-text {
    display: flex;
    justify-content: center;
    text-align: left;
  }
}
.p-programExam__cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px 48px;
}
@media screen and (max-width: 768px) {
  .p-programExam__cards {
    gap: 16px;
  }
}
@media screen and (max-width: 430px) {
  .p-programExam__cards {
    grid-template-columns: repeat(1, 1fr);
  }
}
.p-programExam__card figcaption {
  margin-bottom: 8px;
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 2;
  letter-spacing: normal;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .p-programExam__card figcaption {
    font-size: 16px;
    font-size: 1rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 500;
  }
}
.p-programExam__card img {
  display: block;
  width: 100%;
}

.p-programVoice__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
@media screen and (max-width: 768px) {
  .p-programVoice__list {
    grid-template-columns: repeat(2, 1fr);
    gap: 0 8px;
  }
}
.p-programVoice__item {
  display: flex;
  flex-direction: column;
}
.p-programVoice__icon {
  display: block;
  width: 187px;
  max-width: 100%;
  margin-inline: auto;
}
@media screen and (max-width: 768px) {
  .p-programVoice__icon {
    width: 80%;
    max-width: 187px;
  }
}
.p-programVoice__body {
  height: 100%;
  padding: 24px;
  background-color: #faf9ff;
  border-radius: 4px;
}
@media screen and (max-width: 768px) {
  .p-programVoice__body {
    padding: 16px;
  }
}
.p-programVoice__read {
  text-align: center;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.5555555556;
  letter-spacing: normal;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .p-programVoice__read {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.5;
    letter-spacing: normal;
    font-weight: 700;
  }
}
.p-programVoice__read span {
  display: inline-block;
}
.p-programVoice__text {
  margin-top: 8px;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 2;
  letter-spacing: normal;
  font-weight: 400;
}
@media screen and (max-width: 768px) {
  .p-programVoice__text {
    font-size: 13px;
    font-size: 0.8125rem;
    line-height: 1.8461538462;
    letter-spacing: normal;
    font-weight: 400;
  }
}

.p-about__block {
  display: flex;
  gap: clamp(40px, -31.1111111111px + 9.2592592593vw, 80px);
}
@media screen and (max-width: 768px) {
  .p-about__block {
    flex-direction: column;
    gap: 0;
  }
}
.p-about__block + .p-about__block {
  margin-top: 64px;
}
@media screen and (max-width: 768px) {
  .p-about__block + .p-about__block {
    margin-top: 40px;
  }
}
.p-about__block-item {
  width: 100%;
}
@media screen and (max-width: 768px) {
  .p-about__block-item + .p-about__block-item {
    margin-top: 40px;
  }
}
.p-about__title {
  flex-shrink: 0;
  width: 400px;
}
@media screen and (max-width: 768px) {
  .p-about__title {
    width: 100%;
    text-align: center;
  }
}
.p-about__title-border {
  position: relative;
}
.p-about__title-border::before {
  content: "";
  position: absolute;
  top: 1.25rem;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #e5e5e5;
}
@media screen and (max-width: 768px) {
  .p-about__title-border::before {
    top: 1rem;
  }
}
.p-about__title-border span {
  position: relative;
  padding-right: 16px;
  background-color: #faf9ff;
}
.p-about__list {
  display: grid;
  gap: 8px;
}

.p-aboutMission__list {
  font-size: 1.125rem !important;
  line-height: 2 !important;
}
@media screen and (max-width: 768px) {
  .p-aboutMission__list {
    font-size: 1rem !important;
  }
}
.p-aboutMission__list::before {
  margin-top: 15px !important;
}
@media screen and (max-width: 768px) {
  .p-aboutMission__list::before {
    margin-top: 14px;
  }
}

.p-aboutVision__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  list-style: none;
}
@media screen and (max-width: 768px) {
  .p-aboutVision__list {
    gap: 16px;
  }
}
@media screen and (max-width: 430px) {
  .p-aboutVision__list {
    gap: 8px;
    grid-template-columns: repeat(1, 1fr);
  }
}
.p-aboutVision__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 32px;
  background-color: #faf9ff;
  border-radius: 5px;
  text-align: center;
  color: #574c64;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.7777777778;
  letter-spacing: normal;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .p-aboutVision__item {
    padding: 24px;
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.75;
    letter-spacing: normal;
    font-weight: 500;
  }
}
.p-aboutVision__item span {
  display: inline-block;
}

.p-aboutGoal__block {
  display: flex;
}
@media screen and (max-width: 768px) {
  .p-aboutGoal__block {
    flex-direction: column;
  }
}
.p-aboutGoal__image {
  flex: 1;
  max-height: 43rem;
  margin-left: calc(50% - 50vw);
  margin-right: clamp(48px, -8.8888888889px + 7.4074074074vw, 80px);
  border-radius: 0 20px 20px 0;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .p-aboutGoal__image {
    width: calc(100% + 40px);
    margin-left: -20px;
    margin-right: 0;
    border-radius: 0;
  }
}
.p-aboutGoal__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-aboutGoal__body {
  width: 43%;
  margin-block: auto;
  padding-block: 40px;
}
@media screen and (max-width: 768px) {
  .p-aboutGoal__body {
    width: 100%;
    padding-block: 0;
    margin-top: 24px;
  }
}

.p-aboutMessage {
  padding-block: 80px;
  background-color: #faf9ff;
}
@media screen and (max-width: 768px) {
  .p-aboutMessage {
    padding-block: 56px;
  }
}
.p-aboutMessage__block {
  display: flex;
  gap: clamp(48px, -8.8888888889px + 7.4074074074vw, 80px);
}
@media screen and (max-width: 768px) {
  .p-aboutMessage__block {
    flex-direction: column;
    gap: 24px;
  }
}
@media screen and (max-width: 768px) {
  .p-aboutMessage__image {
    width: 80%;
    margin-inline: auto;
  }
}
.p-aboutMessage__image img {
  display: block;
  width: 260px;
  height: 240px;
  object-fit: cover;
  object-position: 0 -25px;
}
.p-aboutMessage__image figcaption {
  margin-top: 8px;
  text-align: center;
  font-size: 16px;
  font-size: 1rem;
  line-height: 2;
  letter-spacing: normal;
  font-weight: 500;
}
.p-aboutMessage__prof {
  margin-block: 40px 80px;
  padding: 32px 40px;
  background-color: #fff;
  border-radius: 10px;
}
@media screen and (max-width: 768px) {
  .p-aboutMessage__prof {
    margin-block: 32px 56px;
    padding: 24px;
  }
}
.p-aboutMessage__prof-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0 40px;
}
.p-aboutMessage__prof-name {
  color: #574c64;
  font-family: Shippori Mincho, serif;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: normal;
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  .p-aboutMessage__prof-name {
    font-size: 22px;
    font-size: 1.375rem;
    line-height: 1.8181818182;
    letter-spacing: normal;
    font-weight: 600;
  }
}
.p-aboutMessage__prof-name span {
  font-size: 16px;
  font-size: 1rem;
  line-height: 2;
  letter-spacing: normal;
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  .p-aboutMessage__prof-name span {
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 1.7142857143;
    letter-spacing: normal;
    font-weight: 600;
  }
}
.p-aboutMessage__prof-position {
  align-self: center;
  color: #574c64;
  font-family: Shippori Mincho, serif;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.75;
  letter-spacing: normal;
  font-weight: 500;
}
.p-aboutMessage__prof-position span {
  display: inline-block;
}
.p-aboutMessage__prof-text {
  margin-top: 8px;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 2;
  letter-spacing: normal;
  font-weight: 400;
}
@media screen and (max-width: 768px) {
  .p-aboutMessage__prof-text {
    margin-top: 16px;
    font-size: 12px;
    font-size: 0.75rem;
    line-height: 2;
    letter-spacing: normal;
    font-weight: 400;
  }
}

.p-aboutHistory__item {
  display: flex;
  gap: 16px;
}
.p-aboutHistory__item dt {
  flex-shrink: 0;
  color: #695089;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.7142857143;
  letter-spacing: normal;
  font-weight: 500;
}
.p-aboutHistory__item dd {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.7142857143;
  letter-spacing: normal;
  font-weight: 400;
}

.p-topHero .swiper-slide-next .p-topHero__read img {
  clip-path: inset(0 100% 0 0);
}
.p-topHero .swiper-slide-next .p-topHero__text {
  clip-path: inset(0 100% 0 0);
}
.p-topHero .swiper-slide-active .p-topHero__read img {
  clip-path: inset(0 0 0 0);
}
.p-topHero .swiper-slide-active .p-topHero__text {
  clip-path: inset(0 0 0 0);
}
.p-topHero__item {
  display: flex;
  gap: 4.444444vw;
}
@media screen and (max-width: 768px) {
  .p-topHero__item {
    flex-direction: column;
    gap: 24px;
  }
}
.p-topHero__image {
  flex-shrink: 0;
  display: block;
  width: 43.3333333%;
  aspect-ratio: 156/175;
}
@media screen and (max-width: 768px) {
  .p-topHero__image {
    width: calc(100% - 20px);
  }
}
.p-topHero__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  mask-image: url(../img/top-kv-mask.svg);
  mask-repeat: no-repeat;
  mask-position: top;
  mask-size: cover;
}
.p-topHero__body {
  flex: 1;
  align-self: center;
  padding-block: 40px;
}
@media screen and (max-width: 768px) {
  .p-topHero__body {
    padding: 0;
  }
}
.p-topHero__read {
  margin-bottom: 5.555555vw;
}
.p-topHero__read img {
  display: block;
  width: 44.444444vw;
  transition: clip-path 1s 1s ease-in-out;
}
@media screen and (max-width: 768px) {
  .p-topHero__read img {
    width: calc(100% - 40px);
    margin: auto;
  }
}
.p-topHero__text {
  color: #574c64;
  font-size: max(10px, 1.18055556vw);
  line-height: 2;
  transition: clip-path 1s 1s ease-in-out;
}
@media screen and (max-width: 768px) {
  .p-topHero__text {
    padding-inline: 20px;
    font-size: 3.73134328vw;
  }
}

.p-topAbout {
  position: relative;
  padding-block: 160px 80px;
  background-color: #faf9ff;
  mask-image: url(../img/top-tooth-mask.svg);
  mask-repeat: no-repeat;
  mask-position: top;
  mask-size: cover;
}
@media screen and (max-width: 768px) {
  .p-topAbout {
    mask-image: url(../img/top-tooth-mask-sp.svg);
    padding-top: 80px;
  }
}
.p-topAbout::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 40px;
  background: linear-gradient(#faf9ff, #fff);
}
.p-topAbout__read {
  text-align: center;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 2;
  letter-spacing: normal;
  font-weight: 400;
}
@media screen and (max-width: 768px) {
  .p-topAbout__read {
    font-size: 16px;
    font-size: 1rem;
    line-height: 2;
    letter-spacing: normal;
    font-weight: 400;
  }
}
.p-topAbout__read span {
  display: inline-block;
}
.p-topAbout__body {
  margin-top: 64px;
  padding: 40px;
  background-color: #fff;
}
@media screen and (max-width: 768px) {
  .p-topAbout__body {
    margin-top: 40px;
    padding: 24px;
  }
}
.p-topAbout__worry-heading {
  color: #574c64;
  text-align: center;
  font-size: 26px;
  font-size: 1.625rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .p-topAbout__worry-heading {
    font-size: 22px;
    font-size: 1.375rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 700;
  }
}
.p-topAbout__worry-list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 56px;
  list-style: none;
}
@media screen and (max-width: 768px) {
  .p-topAbout__worry-list {
    grid-template-columns: repeat(2, 1fr);
    gap: 32px 8px;
    margin-top: 40px;
  }
}
.p-topAbout__worry-item {
  position: relative;
  display: flex;
  align-items: center;
  flex-direction: column;
  padding: 44px 8px 24px;
  text-align: center;
  background-color: #faf9ff;
  border: 2px solid #695089;
  border-radius: 2px;
}
@media screen and (max-width: 768px) {
  .p-topAbout__worry-item {
    padding: 32px 8px 24px;
  }
}
.p-topAbout__worry-item::before {
  content: "";
  position: absolute;
  top: -28px;
  left: 0;
  right: 0;
  width: 56px;
  height: 56px;
  margin: auto;
  border-radius: 56px;
  background-color: #695089;
}
@media screen and (max-width: 768px) {
  .p-topAbout__worry-item::before {
    top: -24px;
    width: 48px;
    height: 48px;
  }
}
.p-topAbout__worry-item::after {
  content: "";
  position: absolute;
  top: -16px;
  left: 0;
  right: 0;
  width: 32px;
  height: 32px;
  margin: auto;
  background-color: #fff;
  mask-image: var(--topWorry-icon);
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: cover;
}
@media screen and (max-width: 768px) {
  .p-topAbout__worry-item::after {
    top: -14px;
    width: 28px;
    height: 28px;
  }
}
.p-topAbout__worry-item--hesitate {
  --topWorry-icon: url(../img/icon-hesitate.svg);
}
.p-topAbout__worry-item--skill {
  --topWorry-icon: url(../img/icon-skill.svg);
}
.p-topAbout__worry-item--work {
  --topWorry-icon: url(../img/icon-work.svg);
}
.p-topAbout__worry-item--worry {
  --topWorry-icon: url(../img/icon-worry.svg);
}
.p-topAbout__worry-item .c-link {
  width: fit-content;
  margin-top: auto;
}
.p-topAbout__worry-title {
  margin-bottom: 8px;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.7777777778;
  letter-spacing: normal;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .p-topAbout__worry-title {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.75;
    letter-spacing: normal;
    font-weight: 500;
  }
}
.p-topAbout__worry-title span {
  display: inline-block;
}

.p-topSystem {
  padding-block: 80px;
  background-color: #faf9ff;
  border-left: 40px solid #fff;
  border-right: 40px solid #fff;
}
@media screen and (max-width: 768px) {
  .p-topSystem {
    padding-block: 56px;
    border-left-width: 20px;
    border-right-width: 20px;
  }
}
.p-topSystem__read {
  text-align: center;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 2;
  letter-spacing: normal;
  font-weight: 400;
}
@media screen and (max-width: 768px) {
  .p-topSystem__read {
    font-size: 16px;
    font-size: 1rem;
    line-height: 2;
    letter-spacing: normal;
    font-weight: 400;
  }
}
.p-topSystem__read span {
  display: inline-block;
}
.p-topSystem__list {
  display: flex;
  gap: 40px;
  margin-top: 48px;
}
@media screen and (max-width: 768px) {
  .p-topSystem__list {
    flex-direction: column;
    gap: 24px;
  }
}
.p-topSystem__item {
  width: 100%;
  padding: 48px;
  background-color: #fff;
  border-top: 4px solid var(--topCourse--border);
}
@media screen and (max-width: 768px) {
  .p-topSystem__item {
    padding: 24px 24px 32px;
  }
}
.p-topSystem__item--course01 {
  --topCourse--border: #e15582;
}
.p-topSystem__item--course02 {
  --topCourse--border: #6269ad;
}
.p-topSystem__item--course03 {
  --topCourse--border: #89cfd8;
}
.p-topSystem__item--course04 {
  --topCourse--border: #f5b4b3;
}
.p-topSystem__thumb {
  display: block;
  width: 100%;
  aspect-ratio: 16/9;
}
@media screen and (max-width: 768px) {
  .p-topSystem__thumb {
    max-width: 540px;
    margin-inline: auto;
  }
}
.p-topSystem__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: cover;
}
.p-topSystem__balloon {
  margin-block: 32px 8px;
  color: #574c64;
  text-align: center;
  font-size: 16px;
  font-size: 1rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .p-topSystem__balloon {
    margin-block: 16px 8px;
    font-size: 14px;
    font-size: 0.875rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 500;
  }
}
.p-topSystem__balloon::before {
  content: "＼";
  margin-right: 16px;
}
.p-topSystem__balloon::after {
  content: "／";
  margin-left: 16px;
}

.p-topArticle__body {
  display: flex;
}
@media screen and (max-width: 768px) {
  .p-topArticle__body {
    flex-direction: column;
    gap: 32px;
  }
}
.p-topArticle__body .c-heading__group {
  flex-shrink: 0;
  width: 285px;
}
.p-topArticle__body .c-articleCard__list {
  flex: 1;
  margin-top: 0;
}

.p-worryHero {
  margin-bottom: 16px;
  background-color: #faf9ff;
}
.p-worryHero__block {
  display: flex;
}
@media screen and (max-width: 768px) {
  .p-worryHero__block {
    flex-direction: column;
  }
}
.p-worryHero__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex-shrink: 0;
  position: relative;
  width: clamp(450px, 112.2222222222px + 43.9814814815vw, 640px);
  padding-block: 40px;
}
@media screen and (max-width: 768px) {
  .p-worryHero__body {
    width: 100%;
    padding-block: 32px;
  }
}
.p-worryHero__body::after {
  content: "";
  position: absolute;
  top: 0;
  right: -80px;
  width: 80px;
  height: 100%;
  background: linear-gradient(to right, #faf9ff, transparent);
}
@media screen and (max-width: 768px) {
  .p-worryHero__body::after {
    top: auto;
    right: -20px;
    bottom: -80px;
    width: calc(100% + 40px);
    height: 80px;
    background: linear-gradient(to bottom, #faf9ff, transparent);
  }
}
.p-worryHero__title {
  margin-bottom: 24px;
  color: #574c64;
  font-family: Shippori Mincho, serif;
  font-size: 48px;
  font-size: 3rem;
  line-height: 1.5833333333;
  letter-spacing: normal;
  font-weight: 600;
}
@media screen and (max-width: 1000px) {
  .p-worryHero__title {
    font-size: 40px;
    font-size: 2.5rem;
    line-height: 1.6;
    letter-spacing: normal;
    font-weight: 600;
  }
}
@media screen and (max-width: 768px) {
  .p-worryHero__title {
    margin-bottom: 16px;
    font-size: 32px;
    font-size: 2rem;
    line-height: 1.5;
    letter-spacing: normal;
    font-weight: 600;
  }
}
.p-worryHero__read {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.7777777778;
  letter-spacing: normal;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .p-worryHero__read {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.625;
    letter-spacing: normal;
    font-weight: 500;
  }
}
.p-worryHero__read span {
  display: inline-block;
}
.p-worryHero__image {
  flex: 1;
  display: block;
  margin-right: calc(50% - 50vw);
}
@media screen and (max-width: 768px) {
  .p-worryHero__image {
    margin-left: -20px;
  }
}
.p-worryHero__image img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-worryList__list {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  justify-content: center;
  gap: 80px 32px;
  margin-top: 100px;
}
@media (max-width: 590px) {
  .p-worryList__list {
    flex-direction: column;
    gap: 30px;
    max-width: 400px;
    margin-top: 64px;
    margin-inline: auto;
  }
}
.p-worryList__item {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 256px;
  height: 140px;
  padding: 24px;
  background: url(../img/worry/balloon.svg) no-repeat center/cover;
}
@media (max-width: 590px) {
  .p-worryList__item {
    width: 201px;
    height: 110px;
    padding: 16px;
  }
}
.p-worryList__item::before {
  content: "";
  position: absolute;
  top: -73px;
  left: 0;
  right: 0;
  width: 100px;
  height: 100px;
  margin: auto;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}
@media (max-width: 590px) {
  .p-worryList__item::before {
    top: -53px;
    width: 80px;
    height: 80px;
  }
}
.p-worryList__item:nth-child(1)::before {
  background-image: url(../img/worry/icon01.png);
}
.p-worryList__item:nth-child(2)::before {
  background-image: url(../img/worry/icon02.png);
}
.p-worryList__item:nth-child(3)::before {
  background-image: url(../img/worry/icon03.png);
}
.p-worryList__item:nth-child(4)::before {
  background-image: url(../img/worry/icon04.png);
}
@media (max-width: 590px) {
  .p-worryList__item:nth-child(odd) {
    margin-right: auto;
  }
}
@media (max-width: 590px) {
  .p-worryList__item:nth-child(3) {
    margin-top: min(-30px, -10vw);
  }
}
@media (max-width: 590px) {
  .p-worryList__item:nth-child(even) {
    margin-left: auto;
    margin-top: min(-30px, -10vw);
  }
}
.p-worryList__text {
  text-align: center;
  font-size: 16px;
  font-size: 1rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 500;
}
@media (max-width: 590px) {
  .p-worryList__text {
    font-size: 13px;
    font-size: 0.8125rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 450;
  }
}
.p-worryList__text span {
  display: inline-block;
}

.p-worryLearn {
  margin-top: 120px;
  padding-block: 80px;
  background-color: #faf9ff;
  border-left: 40px solid #fff;
  border-right: 40px solid #fff;
}
@media screen and (max-width: 768px) {
  .p-worryLearn {
    margin-top: 80px;
    border-width: 20px;
    padding-block: 80px 56px;
  }
}
.p-worryLearn__title {
  position: relative;
  width: fit-content;
  text-align: center;
  margin: -7.5rem auto 40px;
  padding: 16px 64px;
  background-color: #967bb8;
  color: #fff;
  border-radius: 10px;
}
@media screen and (max-width: 768px) {
  .p-worryLearn__title {
    margin-top: -6.75rem;
    padding: 8px 40px;
  }
}
.p-worryLearn__title::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -16px;
  border-top: 16px solid #967bb8;
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  transform: translateX(-50%);
}
.p-worryLearn__read {
  text-align: center;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 2;
  letter-spacing: normal;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .p-worryLearn__read {
    font-size: 16px;
    font-size: 1rem;
    line-height: 2;
    letter-spacing: normal;
    font-weight: 700;
  }
}
.p-worryLearn__read span {
  display: inline-block;
}
.p-worryLearn__text {
  text-align: center;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 2;
  letter-spacing: normal;
  font-weight: 400;
}
@media screen and (max-width: 768px) {
  .p-worryLearn__text {
    font-size: 16px;
    font-size: 1rem;
    line-height: 2;
    letter-spacing: normal;
    font-weight: 400;
  }
}
.p-worryLearn__text span {
  display: inline-block;
}
.p-worryLearn__step-list {
  display: flex;
  gap: 40px;
  margin-top: 64px;
  list-style: none;
}
@media screen and (max-width: 768px) {
  .p-worryLearn__step-list {
    flex-direction: column;
    gap: 48px;
    margin-top: 56px;
  }
}
.p-worryLearn__step-item {
  position: relative;
  width: 100%;
  padding: 32px 16px;
  text-align: center;
  background-color: #fff;
}
@media screen and (max-width: 768px) {
  .p-worryLearn__step-item {
    padding: 24px 16px;
  }
}
.p-worryLearn__step-item::after {
  content: "";
  position: absolute;
  top: 0;
  right: -28px;
  bottom: 0;
  width: 16px;
  height: 16px;
  margin: auto;
  background-color: #695089;
  mask-image: url("../img/icon-arrow.svg");
  mask-position: center;
  mask-size: contain;
  mask-repeat: no-repeat;
}
@media screen and (max-width: 768px) {
  .p-worryLearn__step-item::after {
    top: auto;
    left: 0;
    right: 0;
    bottom: -24px;
    rotate: 90deg;
  }
}
.p-worryLearn__step-item:last-child::after {
  content: none;
}
.p-worryLearn__step-num {
  position: absolute;
  top: -1rem;
  left: 0;
  right: 0;
  width: fit-content;
  margin: auto;
  padding: 0 16px;
  background-color: #967bb8;
  color: #fff;
  border-radius: 2px;
  font-family: Shippori Mincho, serif;
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 1.6;
  letter-spacing: normal;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .p-worryLearn__step-num {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.75;
    letter-spacing: normal;
    font-weight: 500;
  }
}
.p-worryLearn__step-title {
  margin-bottom: 8px;
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 1.6;
  letter-spacing: normal;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .p-worryLearn__step-title {
    font-size: 18px;
    font-size: 1.125rem;
    line-height: 1.5555555556;
    letter-spacing: normal;
    font-weight: 500;
  }
}
.p-worryLearn__step-text {
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.75;
  letter-spacing: normal;
  font-weight: 400;
}
@media screen and (max-width: 768px) {
  .p-worryLearn__step-text {
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 1.7142857143;
    letter-spacing: normal;
    font-weight: 400;
  }
}
.p-worryLearn__step-text span {
  display: inline-block;
}

.p-worryLesson__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
@media screen and (max-width: 768px) {
  .p-worryLesson__list {
    grid-template-columns: repeat(1, 1fr);
  }
}
.p-worryLesson__item:nth-child(3n) {
  border-right: none;
}
@media screen and (max-width: 768px) {
  .p-worryLesson__item:nth-child(3n) {
    border-right: 1px solid #e5e5e5;
  }
}
.p-worryLesson__item:nth-child(even) {
  border-right: 1px solid #e5e5e5;
}
.p-worryLesson__item:nth-child(n+3) {
  border-top: none;
}
.p-worryLesson__title {
  margin-bottom: 8px;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.7777777778;
  letter-spacing: normal;
  font-weight: 500;
}
.p-worryLesson__text {
  margin-bottom: 24px;
  color: #5b5b5b;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.75;
  letter-spacing: normal;
  font-weight: 400;
}

.p-worryOther__heading {
  color: #574c64;
  text-align: center;
  font-size: 26px;
  font-size: 1.625rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .p-worryOther__heading {
    font-size: 22px;
    font-size: 1.375rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 700;
  }
}
.p-worryOther__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  margin-top: 56px;
  list-style: none;
}
@media screen and (max-width: 768px) {
  .p-worryOther__list {
    grid-template-columns: repeat(1, 1fr);
    gap: 32px 8px;
    margin-top: 40px;
  }
}
.p-worryOther__item {
  position: relative;
  display: flex;
  align-items: center;
  flex-direction: column;
  padding: 44px 8px 24px;
  text-align: center;
  background-color: #faf9ff;
  border: 2px solid #695089;
  border-radius: 2px;
}
@media screen and (max-width: 768px) {
  .p-worryOther__item {
    padding: 32px 8px 24px;
  }
}
.p-worryOther__item::before {
  content: "";
  position: absolute;
  top: -28px;
  left: 0;
  right: 0;
  width: 56px;
  height: 56px;
  margin: auto;
  border-radius: 56px;
  background-color: #695089;
}
@media screen and (max-width: 768px) {
  .p-worryOther__item::before {
    top: -24px;
    width: 48px;
    height: 48px;
  }
}
.p-worryOther__item::after {
  content: "";
  position: absolute;
  top: -16px;
  left: 0;
  right: 0;
  width: 32px;
  height: 32px;
  margin: auto;
  background-color: #fff;
  mask-image: var(--topWorry-icon);
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: cover;
}
@media screen and (max-width: 768px) {
  .p-worryOther__item::after {
    top: -14px;
    width: 28px;
    height: 28px;
  }
}
.p-worryOther__item--hesitate {
  --topWorry-icon: url(../img/icon-hesitate.svg);
}
.p-worryOther__item--skill {
  --topWorry-icon: url(../img/icon-skill.svg);
}
.p-worryOther__item--work {
  --topWorry-icon: url(../img/icon-work.svg);
}
.p-worryOther__item--worry {
  --topWorry-icon: url(../img/icon-worry.svg);
}
.p-worryOther__item .c-link {
  width: fit-content;
  margin-top: auto;
}
.p-worryOther__title {
  margin-bottom: 8px;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.7777777778;
  letter-spacing: normal;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .p-worryOther__title {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.75;
    letter-spacing: normal;
    font-weight: 500;
  }
}
.p-worryOther__title span {
  display: inline-block;
}

.p-worryMessage {
  padding-block: 80px;
  background-color: #faf9ff;
  border-left: 40px solid #fff;
  border-right: 40px solid #fff;
}
@media screen and (max-width: 768px) {
  .p-worryMessage {
    border-width: 20px;
    padding-block: 56px;
  }
}

.p-worryContent__block {
  display: flex;
  gap: 80px;
}
@media screen and (max-width: 768px) {
  .p-worryContent__block {
    flex-direction: column;
    gap: 32px;
  }
}
.p-worryContent__image {
  align-self: flex-start;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .p-worryContent__image {
    order: 0;
  }
}
.p-worryContent__image img {
  display: block;
  max-width: 100%;
}
.p-worryContent__body {
  align-self: center;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .p-worryContent__body {
    order: 1;
  }
}

.p-worryLearning {
  padding-block: 80px;
  background-color: #faf9ff;
}
@media screen and (max-width: 768px) {
  .p-worryLearning {
    padding-block: 56px;
  }
}
.p-worryLearning__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-top: 48px;
  list-style: none;
}
@media screen and (max-width: 768px) {
  .p-worryLearning__list {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}
.p-worryLearning__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  height: 100%;
  padding: 40px 24px;
  background-color: #fff;
  color: #333333;
  border: 2px solid #695089;
  border-radius: 4px;
  text-decoration: none;
  transition: 0.3s;
}
@media screen and (max-width: 768px) {
  .p-worryLearning__link {
    gap: 8px;
    padding: 24px 16px;
  }
}
@media (hover: hover) and (pointer: fine) {
  .p-worryLearning__link:hover {
    background-color: #faf9ff;
  }
  .p-worryLearning__link:hover .c-link {
    color: #695089;
  }
}
.p-worryLearning__title {
  text-align: center;
  color: #695089;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .p-worryLearning__title {
    font-size: 16px;
    font-size: 1rem;
    line-height: normal;
    letter-spacing: normal;
    font-weight: 700;
  }
}

.u-visually-hidden {
  position: absolute;
  white-space: nowrap;
  width: 1px;
  height: 1px;
  overflow: hidden;
  border: 0;
  padding: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  margin: -1px;
}

.u-iconText {
  display: inline-flex;
  align-items: center;
}
.u-iconText--before::before, .u-iconText--after::after {
  content: "";
  display: block;
  background-color: var(--u-iconText--color);
  width: var(--u-iconText--size);
  height: var(--u-iconText--size);
  flex-shrink: 0;
  mask-image: var(--u-iconText--url);
  mask-position: center;
  mask-repeat: no-repeat;
}

.u-iconText--__test__ {
  --u-iconText--url: url("../img/icon-decrease.svg");
  --u-iconText--size: 10px;
  --u-iconText--color: blue;
  gap: 8px;
  color: green;
}

.u-text {
  font-size: 16px;
  font-size: 1rem;
  line-height: 2;
  letter-spacing: normal;
  font-weight: 400;
}
@media screen and (max-width: 768px) {
  .u-text {
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 2;
    letter-spacing: normal;
    font-weight: 400;
  }
}
.u-text--normal {
  color: #333333;
}
.u-text--cluster {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  justify-content: center;
}
.u-text--link {
  color: #695089;
  text-decoration: underline;
}
.u-text--title {
  font-family: "Shippori Mincho", serif;
  color: #574c64;
  font-size: 32px;
  font-size: 2rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 600;
}
.u-text--listItem {
  list-style: none;
  display: flex;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: normal;
  letter-spacing: normal;
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
  margin-left: 8px;
  gap: 8px;
}
.u-text--listItem::before {
  content: "";
  display: block;
  width: 8px;
  height: 8px;
  margin-top: 7px;
  border-radius: 100%;
  background: #695089;
  min-width: 8px;
}
.u-text--list {
  margin-left: 1em;
}
.u-text--numList {
  margin-left: 1.5em;
}
.u-text--numCounter li {
  display: flex;
  list-style-type: none;
  counter-increment: number;
}
.u-text--numCounter li::before {
  flex-shrink: 0;
  content: "（" counter(number) "）";
}
.u-text--attrList {
  list-style: none;
}
.u-text--attrList li {
  display: flex;
}
.u-text--attrList li::before {
  content: "※";
  flex-shrink: 0;
}
.u-text--center {
  text-align: center;
}
.u-text--right {
  text-align: right;
}
.u-text--bold {
  font-weight: bold;
}

.u-pc {
  display: block;
}
@media screen and (max-width: 768px) {
  .u-pc {
    display: none;
  }
}

.u-sp {
  display: none;
}
@media screen and (max-width: 768px) {
  .u-sp {
    display: block;
  }
}

/*# sourceMappingURL=style.css.map */
