/* =========================================================
   Medical Magic Japan — style.css
   Background full-width; content max-width 1280px centered.
   ========================================================= */

/* ===== Design tokens ===== */
:root {

  --c-brand: #009aa5; /* BDカラー */
  --c-brand-dark: #006979;
  --c-brand-light: #d8ebec;
  --c-accent: #e3345a; /* badge "必須" */
  --c-text: #000000;
  --c-gray: #a0a0a0;
  --c-white: #ffffff;

  /* Layout */
  --content-max: 1280px;
  --content-inner: 1120px;
  --gutter-pc: 80px;
  --gutter-sp: 24px;
  --header-h: 73px;

  --font-jp: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans",
    "Yu Gothic", "YuGothic", "Meiryo", sans-serif;
}

/* ===== Base ===== */
html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-jp);
  color: var(--c-text);
  background: var(--c-white);
  line-height: 1.7;
  font-feature-settings: "palt";
  /* clip instead of hidden: blocks horizontal overflow without breaking position:sticky */
  overflow-x: clip;
}

img {
  width: 100%;
  height: auto;
}


.container {
  width: 100%;
  max-width: var(--content-max);
  margin-inline: auto;
  padding-inline: var(--gutter-sp);
}

@media (min-width: 768px) {
  .container {
    padding-inline: var(--gutter-pc);
  }
}

/* Screen-reader only */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}


.sp-menu {
  display: none;
}

/* ===== Buttons ===== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: opacity 0.25s, transform 0.25s;
  border: 0;
  font-family: inherit;
  appearance: none;
  -webkit-appearance: none;
}

.btn:hover {
  opacity: 0.85;
}

.btn--pill {
  position: relative;
  border-radius: 70px;
  padding: 15px 56px 15px 32px;
}

.btn--dark {
  position: relative;
  overflow: hidden;
  background: var(--c-text);
  color: var(--c-white);
  font-size: 18px;
}


.btn--dark::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 394px;
  height: 394px;
  border-radius: 50%;
  background: var(--c-brand);
  transform: translate(-50%, -50%) scale(0);
  transition: transform 0.3s ease;
  z-index: 0;
}

.btn--dark:hover {
  opacity: 1;
}
.btn--dark:hover::before {
  transform: translate(-50%, -50%) scale(1);
}


.btn--dark > span {
  position: relative;
  z-index: 1;
}


.btn--pill .btn__arrow {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 39px;
  height: 39px;
  border-radius: 50%;
  background: var(--c-brand);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.btn--pill .btn__arrow img {
  width: 7px;
  height: 10px;
}


.header {
  position: relative;
  z-index: 100;
  background: var(--c-white);
  box-shadow: 0 4px 2px rgba(0, 0, 0, 0.06);
}

.header__inner {
  display: flex;
  align-items: center;
  min-height: var(--header-h);
  max-width: var(--content-max);
  margin-inline: auto;

  padding-left: min(6.25vw, 80px);
  gap: min(3.75vw, 48px);
}

.header__logo {
  display: inline-flex;
  align-items: center;
  gap: 13px;
  flex-shrink: 0;
  transition: opacity 0.3s;
}


.header__logo:hover {
  opacity: 0.5;
}

.header__logo-mark {
  width: 43px;
  height: 43px;
}


.header__logo-text {
  width: 170px;
  height: 18px;
}

.gnav__list {
  display: flex;
  align-items: center;
}

.gnav__list a {
  display: flex;
  align-items: center;
  height: var(--header-h);
  padding: 10px 15px;
  font-size: 16px;
  white-space: nowrap;
  transition: background-color 0.3s, color 0.3s;
}


.gnav__list a:hover {
  background: var(--c-brand-light);
  color: var(--c-brand);
}


.header__right {
  margin-left: auto;
  align-self: stretch;
  display: flex;
  align-items: center;

  gap: 32px;
  flex-shrink: 0;
}


.header__tel {
  text-align: left;
  flex-shrink: 0;
}

.header__tel-num {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: "Roboto", var(--font-jp);
  font-weight: 700;
  font-size: 22px;
  line-height: 1.3;
}

.header__tel-icon {
  width: 18px;
  height: 18px;
}

.header__tel-time {
  font-size: 14px;
}

.header__contact {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  align-self: stretch;
  padding: 0 24px;
  background: var(--c-brand);
  color: var(--c-white);
  font-size: 14px;
  font-weight: 500;
  flex-shrink: 0;
}


.header__contact::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 188px;
  height: 188px;
  border-radius: 50%;
  background: #00515d;
  transform: translate(-50%, -50%) scale(0);
  transition: transform 0.3s ease;
  z-index: 0;
}

.header__contact:hover::before {
  transform: translate(-50%, -50%) scale(1);
}


.header__contact > * {
  position: relative;
  z-index: 1;
}


.header__contact-icon {
  width: 18px;
  height: 13.2px;
}

/* Hamburger (SP) */
.gnav__toggle {
  display: none;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  background: none;
  border: 0;
  cursor: pointer;
  padding: 0;
  margin-left: auto;
  width: 40px;
}

.gnav__toggle-bars {
  display: block;
  width: 40px;
  height: 18px;
}

.gnav__toggle-label {
  display: block;
  width: 37.563px;
  height: 10.09px;
}


.hero {
  position: relative;
  background: var(--c-white);
  overflow: hidden;
}

.hero__inner {
  position: relative;
  width: 100%;
  max-width: var(--content-max);
  margin-inline: auto;
  height: 759px;
}


.hero__bg {
  position: absolute;
  pointer-events: none;
  z-index: 0;

  width: auto;
  max-width: none;
  height: auto;
}

.hero__bg--pc {
  width: 1266px;
  max-width: none;
  height: 1142px;
  left: 249px;
  top: -129px;
}

.hero__bg--sp {
  display: none;
}


.hero__figure {
  display: contents;
}

.hero__ellipse-wrap {
  display: contents;
}

.hero__person-wrap {
  display: contents;
}


.hero__vtext--sp {
  display: none;
}


.hero__ellipse {
  position: absolute;
  left: 657px;
  top: 257px;
  width: 450px;
  height: 450px;
  border-radius: 50%;
  background: var(--c-brand);
  transform: skewX(-13deg) scaleY(0.97);
  z-index: 1;
}


.hero__person {
  position: absolute;
  left: 688px;
  top: 91px;
  width: 389px;
  height: 729px;
  object-fit: cover;
  object-position: bottom;
  z-index: 2;

  clip-path: path(
    "M423.058 320.605C425.661 342.738 424.368 366.459 418.672 391.132C390.719 512.211 267.322 610.365 143.058 610.365C25.5152 610.365 -50.6994 522.542 -34.9423 410.566L-34.9423 -106L423.058 -106L423.058 320.605Z"
  );
}


.hero__vtext {
  position: absolute;
  width: auto;
  z-index: 3;
}

.hero__vtext--1 {
  right: 97px;
  top: 43px;
  width: 48px;
  height: 263px;
}
.hero__vtext--2 {
  right: 152px;
  top: 106px;
  width: 51px;
  height: 266px;
}

.hero__body {
  position: absolute;
  left: var(--gutter-pc);
  top: 153px;
  width: 542px;
  z-index: 4;
}

.hero__lead {
  font-size: 20px;
  font-weight: 500;
  letter-spacing: 1.4px;
  line-height: 1.86;
  margin-bottom: 20px;
}

.hero__title {
  font-family: "Roboto Condensed", var(--font-jp);
  font-weight: 700;
  font-size: 104.6px;
  line-height: 1.1;
  letter-spacing: 0;
}


.hero__cta {
  margin-top: 64px;
  width: 326px;
  height: 55px;
  justify-content: flex-start;

  padding: 0 0 0 48px;
}


.hero__dock {
  display: none;
}


.footer {
  background: #000;
  color: var(--c-white);
}

.footer__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  padding-block: 45px 46px;
}

.footer__logo {
  width: 382px;
  max-width: 100%;
  height: auto;
  margin-bottom: 42px;
}

.footer__company {
  display: flex;
  flex-direction: column;
  gap: 22px;
}


.footer__company-group {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.footer__company-name {
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 1.6px;
  line-height: 1.6;
}

.footer__company-name small {
  font-size: 14px;
  font-weight: 400;
}

.footer__address {
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 1.6px;
  line-height: 1.6;
  font-feature-settings: "palt" 0;
}
.footer__contact-label {
  font-feature-settings: "palt" 0;
}
.footer__address-line {
  display: block;
}

.footer__address-postal,
.footer__address-street {
  display: inline;
}

.footer__address--sp {
  display: none;
}

.footer__tel {
  font-family: "Roboto", var(--font-jp);
  font-weight: 500;
  font-size: 26px;
  letter-spacing: 2.6px;
  line-height: 1.7;
  
}

.footer__tel span {
  color: var(--c-brand);
}
.footer__tel .footer__contact-tel-small{
  font-size: 14px;
  color: var(--c-white);
}

.footer__right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 64px;
}

.footer__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 64px;
}


.footer__logo--sp,
.footer__nav-chevron,
.footer__contact-label--sp,
.footer__contact-icon-img--sp,
.footer__copy-divider {
  display: none;
}

.footer__nav {
  display: flex;
  gap: 51px;
}

.footer__nav ul {
  display: flex;
  flex-direction: column;
  gap: 25px;
}

.footer__nav a {
  font-size: 16px;
  letter-spacing: 1.6px;
  line-height: 1.5;
  transition: color 0.2s;
}

.footer__nav a:hover {
  color: var(--c-brand);
}

.footer__contact {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  width: 326px;
  max-width: 100%;
  height: 55px;
  padding-left: 7px;
  border: 1px solid var(--c-white);
  border-radius: 70px;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.6;
}


.footer__contact::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 334px;
  height: 334px;
  border-radius: 50%;
  background: #00515d;
  transform: translate(-50%, -50%) scale(0);

  transition: transform 0.45s cubic-bezier(0.22, 1.15, 0.32, 1);
  z-index: 0;
}
.footer__contact:hover::before {
  transform: translate(-50%, -50%) scale(1);
}
.footer__contact > * {
  position: relative;
  z-index: 1;
}

.footer__contact-icon {
  flex-shrink: 0;
  width: 39px;
  height: 39px;
  border-radius: 50%;
  background: var(--c-white);
  display: flex;
  align-items: center;
  justify-content: center;
}

.footer__contact-icon-img--pc {
  width: 22px;
  height: auto;
}


.footer__contact-label--pc {
  width: 234px;
  text-align: center;
}


.footer__contact.footer__contact--tel {
  display: none;
}

.footer__copy {
  position: relative;
  max-width: var(--content-max);
  margin-inline: auto;
  padding: 22px var(--gutter-pc) 23px;
  text-align: center;
  font-size: 14px;
  letter-spacing: 0.56px;
  line-height: 1.8;
}


.footer__copy::before {
  content: "";
  position: absolute;
  top: 0;
  left: var(--gutter-pc);
  right: var(--gutter-pc);
  border-top: 1px solid rgba(255, 255, 255, 1);
}


.pagetop {
  position: fixed;

  right: 22px;
  top: 735px;
  z-index: 90;
  width: 78px;
  height: 78px;
  border-radius: 50%;
  background: var(--c-white);
  border: 1px solid var(--c-text);
  color: var(--c-text);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  transition: background 0.2s, color 0.2s;
}

.pagetop:hover {
  background: rgba(0, 0, 0, 0.6);
  color: var(--c-white);
}


.pagetop__arrow {
  position: relative;
  width: 20px;
  height: 18px;
}

.pagetop__arrow::before,
.pagetop__arrow::after {
  content: "";
  position: absolute;
  left: 50%;
  width: 11px;
  height: 11px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: translateX(-50%) rotate(-45deg);
  transition: top 0.25s ease, opacity 0.25s ease;
}


.pagetop__arrow::after {
  top: 4px;
}

.pagetop__arrow::before {
  top: 4px;
  opacity: 0;
}


.pagetop:hover .pagetop__arrow::before {
  top: 0;
  opacity: 1;
}

.pagetop:hover .pagetop__arrow::after {
  top: 8px;
}

.pagetop__label {
  font-family: "Roboto Condensed", var(--font-jp);
  font-weight: 700;
  font-size: 20px;
  letter-spacing: 3px;
  line-height: 1.1;

  text-indent: 3px;
}


.sec-head {
  display: flex;
  align-items: flex-start;
  gap: 30px;
}


.sec-head__line {
  width: 7px;
  height: 84px;
  flex-shrink: 0;
  background: linear-gradient(
    180deg,
    var(--c-brand) 0%,
    var(--c-brand-dark) 100%
  );
}

.sec-head__labels {
  display: flex;
  flex-direction: column;
}

.sec-head__en {
  font-family: "Roboto Condensed", var(--font-jp);
  font-weight: 700;
  font-size: 25px;
  font-style: normal;
  letter-spacing: 3.75px;
  line-height: 1.1;
  margin-bottom: -7px;
  text-transform: uppercase;
}

.sec-head__jp {
  font-family: var(--font-jp);
  font-size: 41px;
  font-weight: 500;
  font-style: normal;
  letter-spacing: 2.87px;
  line-height: 1.86;
}


.sec-head--light {
  color: var(--c-white);
}
.sec-head--light .sec-head__en {
  color: #c9fbff;
}
.sec-head--light .sec-head__jp {
  color: var(--c-white);
}


.sec-head--brand .sec-head__en {
  color: var(--c-brand);
}
.sec-head--brand .sec-head__jp {
  color: var(--c-text);
}


.sec-head__line-h {
  display: none;
}


.news__ellipse-top,
.news__wave-bottom--sp {
  display: none;
}


.news {
  position: relative;
  background: var(--c-white);
  overflow: hidden;

  --news-wave: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201280%20832'%20preserveAspectRatio='none'%3E%3Cpath%20d='M1280%20832%20H0%20V0%20C161.006%2042.4232%20388.209%2068.8604%20640%2068.8604%20C891.791%2068.8604%201118.99%2042.4232%201280%200%20V832%20Z'%20fill='%23fff'/%3E%3C/svg%3E");
}

/* ----- Background stack ----- */
.news__bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}


.news__bg-core {
  position: absolute;
  inset: 0;
  max-width: var(--content-max);
  margin-inline: auto;
}


.news__bg-core::before {
  content: "";
  position: absolute;
  top: 69px;
  bottom: 321px;
  left: calc(50% - 50vw);
  width: 100vw;
  background: #99d7db;
  z-index: 0;
}


.news__subtract {
  position: absolute;
  left: 249px;
  top: -888px;
  width: 1266px;
  max-width: none;
  height: auto;
  z-index: 0;
}


.news__mask {
  position: absolute;
  top: 0;
  height: 832px;
  left: calc(50% - 50vw);
  width: 100vw;
  z-index: 1;
  -webkit-mask: var(--news-wave) 0 0 / 100% 100% no-repeat;
  mask: var(--news-wave) 0 0 / 100% 100% no-repeat;
}


.news__mask-fill {
  position: absolute;
  inset: 0;
  background: #99d7db;
}


.news__texture-layer {
  position: absolute;
  top: 0;
  height: 832px;
  left: calc(50% - 50vw);
  width: 100vw;
  z-index: 1;
  pointer-events: none;
  -webkit-mask: var(--news-wave) 0 0 / 100% 100% no-repeat;
  mask: var(--news-wave) 0 0 / 100% 100% no-repeat;
}


.news__texture {
  position: absolute;
  max-width: none;
  height: auto;
  pointer-events: none;
  transform-origin: center center;
  will-change: transform, opacity;

  animation: contactBreathe var(--tex-dur, 8s) ease-in-out infinite;
  animation-delay: var(--tex-delay, 0s);
}


.news__texture--10 {
  left: calc(50% - 1448px);
  top: -690px;
  width: 1861.89px;
  mix-blend-mode: multiply;
  --tex-op: 1;
  --tex-delay: 0s;
}


.news__texture--11 {
  left: calc(50% - 285.89px);
  top: -46px;
  width: 1419.89px;
  --tex-op: 1;
  --tex-delay: -4s;
}


.news__texture--12 {
  left: calc(50% - 712px);
  top: -582px;
  width: 1419.89px;
  --tex-op: 1;
  --tex-delay: -4s;
}


@media (prefers-reduced-motion: reduce) {
  .news__texture {
    animation: none;
    transform: scale(0.9);
    opacity: var(--tex-op, 1);
  }
}


.news__wave-bottom {
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 100%;
  min-width: 1284px;
  height: 321px;
  max-width: none;
  transform: translateX(-50%);
  z-index: 2;
}

.news__inner {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: flex-start;
  gap: 54px;
  padding-block: 139px 93px;
}

.news__head {
  flex-shrink: 0;
  width: 378px;
  padding-top: 199px;
}

.news__list {
  flex: 0 0 688px;
  width: 688px;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.news-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  width: 100%;
  background: rgba(255, 255, 255, 0.6);
  backdrop-filter: blur(2.5px);
  -webkit-backdrop-filter: blur(2.5px);
  border: 2px solid var(--c-white);
  border-radius: 15px;
  padding: 20px;
  color: var(--c-text);
}

.news-card__meta {
  display: flex;
  align-items: flex-start;
  gap: 13px;
}


.news-card__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: var(--c-brand);
  color: var(--c-white);
  border: none;
  font-family: "Roboto", var(--font-jp);
  font-weight: 700;
  font-size: 14px;
  line-height: 1.1;
  padding: 6px 10px;
  border-radius: 30px;
}


.news-card__meta time {
  font-family: var(--font-jp);
  font-size: 16px;
  font-weight: 350;
  font-style: normal;
  line-height: 1.5;
  color: var(--c-text);
}


.news-card__title {
  align-self: stretch;
  width: 100%;
  min-width: 100%;
  max-width: 100%;
  font-family: var(--font-jp);
  font-size: 16px;
  font-weight: 500;
  font-style: normal;
  line-height: 1.5;
  color: var(--c-text);
  word-break: break-word;
  overflow-wrap: break-word;
}

.news-card__title-link {
  color: inherit;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.news-card__title-link:hover,
.news-card__title-link:focus-visible {
  text-decoration: underline;
  opacity: 0.7;
}


.stack-section {
  position: sticky;
  top: 0;
  min-height: 100vh;
  min-height: 100dvh;
  box-shadow: 0 -12px 40px rgba(0, 0, 0, 0.12);
}

/* =========================================================
   お悩み / Worries
   ========================================================= */
.worry {
  background: var(--c-white);
}


.worry.stack-section {
  /* JS sets --stack-stick-top (≤ 0) when content taller than viewport */
  top: var(--stack-stick-top, 0px);
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  box-shadow: none;
}

.worry__inner {
  padding-block: 96px 126px;
  text-align: center;
}

.worry__head {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.worry__title {
  font-size: 40px;
  font-weight: 500;
  letter-spacing: 2.8px;
  line-height: 1.86;
}

.worry__title-em {
  color: var(--c-brand);
  font-size: 50px;
}
.worry__title-br{
  display: none;
}

.worry__underline {
  display: block;
  width: 847px;
  max-width: 80%;
  height: 29px;
  margin: 0 auto;
}

.worry__underline--sp {
  display: none;
}

.worry__list {
  position: relative;
  width: 100%;
  max-width: 1120px;
  height: 329px;
  margin: 35px auto 0;
  padding: 0;
  list-style: none;
}

.worry-item {
  position: absolute;
  top: 0;
  width: 204px;
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
}

.worry-item:nth-child(1) {
  left: 0;
}
.worry-item:nth-child(2) {
  left: 229px;
  top: 80px;
}
.worry-item:nth-child(3) {
  left: 458px;
}
.worry-item:nth-child(4) {
  left: 687px;
  top: 80px;
}
.worry-item:nth-child(5) {
  left: 916px;
}


@keyframes worryPop {
  0% {
    opacity: 0;
    transform: translateY(48px) scale(0.85);
  }
  60% {
    opacity: 1;
    transform: translateY(-10px) scale(1.04);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.worry__list.is-anim .worry-item {
  opacity: 0;
}

.worry__list.is-anim.is-visible .worry-item {
  animation: worryPop 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

.worry__list.is-anim.is-visible .worry-item:nth-child(1) {
  animation-delay: 0s;
}
.worry__list.is-anim.is-visible .worry-item:nth-child(2) {
  animation-delay: 0.12s;
}
.worry__list.is-anim.is-visible .worry-item:nth-child(3) {
  animation-delay: 0.24s;
}
.worry__list.is-anim.is-visible .worry-item:nth-child(4) {
  animation-delay: 0.36s;
}
.worry__list.is-anim.is-visible .worry-item:nth-child(5) {
  animation-delay: 0.48s;
}

@media (prefers-reduced-motion: reduce) {
  .worry__list.is-anim .worry-item,
  .worry__list.is-anim.is-visible .worry-item {
    opacity: 1;
    animation: none;
  }
}

.worry-item__icon {
  display: block;
  width: 204px;
  height: 204px;
  flex-shrink: 0;
}

.worry-item__icon-img--sp {
  display: none;
}

.worry-item__icon-img--pc {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}

.worry-item__text {
  width: 204px;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
}

.worry-item__text p {
  margin: 0;
  line-height: 1.5;
}


.worry-item__break--sp {
  display: none;
}

.worry__tagline {
  margin: 75px auto 0;
  font-family: var(--font-jp);
  font-size: 26px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.14em;
  text-align: center;
  color: var(--c-brand);
}

.worry__tagline-br {
  display: none;
}

.worry__dots {
  display: block;
  width: 10px;
  height: 76px;
  margin: 32px auto 0;
}

/* =========================================================
   サービス / Service
   ========================================================= */
.service {
  position: relative;
  background: var(--c-brand-light);
  border-radius: 50px;
  overflow: hidden;
}

.service__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.service__bg-blob--pc {
  position: absolute;
  left: -327px;
  top: -126px;
  width: 1790px;
  max-width: none;
}


.service__bg-deco--sp {
  display: none;
}

.service__inner {
  position: relative;
  z-index: 1;
  padding-block: 100px;
}

.service__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);

  gap: 30px 24px;
  margin-top: 40px;
}


.service__jp-br {
  display: none;
}

.svc-card {
  display: flex;
  flex-direction: column;
  align-items: center;

  font-feature-settings: "palt" 0;
}


.svc-card__ribbon {
  position: relative;
  z-index: 2;
  width: 258px;
  max-width: 100%;
  min-height: 58px;
  margin-bottom: -30px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--c-white);
  padding: 8px 16px;
}


.svc-card__ribbon::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: var(--c-brand);
  transform: skewX(-16deg);
}


.svc-card__ribbon::after {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  right: -16px;
  width: 30px;
  height: 28px;
  background: var(--c-brand-dark);
  clip-path: polygon(80% 0, 100% 100%, 0 100%, 10% 0);
}

.svc-card__ribbon > span {
  position: relative;
  z-index: 2;
  display: block;
  max-width: 208px;
}

.svc-card__ribbon b {
  display: block;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.25;
}


.svc-card:nth-child(1) .svc-card__ribbon b,
.svc-card:nth-child(6) .svc-card__ribbon b {
  line-height: 1.45;
}

.svc-card__ribbon small {
  display: block;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.45;
}

.svc-card__body {
  position: relative;
  z-index: 1;
  width: 100%;
  background: var(--c-white);
  border-radius: 15px;

  padding: 56px 20px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 15px;
  flex: 1;
}

.svc-card__icon {
  width: 136px;
  height: 136px;
  border-radius: 50%;
  background: var(--c-brand-light);
  display: flex;
  align-items: center;
  justify-content: center;
}


.svc-card__icon img {
  width: auto;
  height: auto;
  max-width: none;
}

.svc-card__desc {
  width: 100%;
  max-width: 320px;
  margin-inline: auto;
  font-family: var(--font-jp);
  font-size: 14px;
  font-weight: 400;
  font-style: normal;
  line-height: 1.5;
  color: var(--c-text);
  word-break: break-word;
  overflow-wrap: break-word;
  font-feature-settings: "palt";
  letter-spacing: 0.03em;
}


.profile {
  position: relative;
  background: var(--c-brand-light);
  overflow: hidden;
}


.profile.stack-section {
  margin-top: -90px;
  padding-top: 60px;
}


.service.stack-section {
  z-index: 1;
}


.profile__shell {
  position: relative;
  width: 100%;
  max-width: var(--content-max);
  margin-inline: auto;

  min-height: 1499px;
}


.profile__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: visible;
  pointer-events: none;
}


.profile__radial {
  position: absolute;
  top: -35px;
  left: -44px;
  width: 1408px;
  height: 1626px;
  max-width: none;
  display: block;
  object-fit: fill;
}


.profile__circle {
  position: absolute;
  top: 34px;
  left: -425px;
  width: 1053px;
  height: 1054px;
  max-width: none;
  display: block;
  object-fit: fill;
}


.profile__glass {
  position: absolute;
  top: -20px;
  left: -73px;
  width: 1409px;

  bottom: -8px;
  backdrop-filter: blur(27px);
  -webkit-backdrop-filter: blur(27px);
  background: linear-gradient(
    143.971deg,
    rgba(255, 255, 255, 0.4) 6.1385%,
    rgba(38, 66, 68, 0.4) 25.425%
  );
}


@media (min-width: 1281px) {
  .profile__bg::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: calc(50% - 50vw);
    width: 100vw;
    background: var(--c-brand-dark);
    z-index: -1;
  }

  .profile__radial {
    left: 50%;
    width: max(1408px, 100vw);
    transform: translateX(-50%);
  }

  .profile__glass {
    left: 50%;
    width: max(1409px, 100vw);
    transform: translateX(-50%);
  }
}


.profile__stage {
  position: relative;
  min-height: 1045px;
}


.profile__head {
  position: absolute;
  top: 189px;
  left: 80px;
  z-index: 9;
  margin: 0;
}


.profile__vlabel {
  position: absolute;
  background: var(--c-white);
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}


.profile__vlabel--company {
  top: 373px;
  left: 137px;
  z-index: 11;
  width: 28px;
  height: 274.455px;
  padding: 12.727px 6.5px;
  box-sizing: border-box;
  box-shadow: 1.273px 2.545px 2.545px rgba(0, 0, 0, 0.25);
}

.profile__vlabel--company img {
  display: block;
  width: 15px;
  height: 249px;
}


.profile__vlabel--rep {
  top: 449px;
  left: 80px;
  z-index: 10;
  width: 38.649px;
  height: 263px;
  padding: 17.568px 6.943px;
  box-sizing: border-box;
  box-shadow: 1.757px 3.514px 3.514px rgba(0, 0, 0, 0.25);
}

.profile__vlabel--rep img {
  display: block;
  width: 24.763px;
  height: 227.864px;
}


.profile__photo {
  position: absolute;
  top: 266px;
  left: 10px;
  z-index: 5;
  width: 677.971px;
  height: 913.221px;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.profile__photo-inner {
  width: 625.767px;
  height: 876.759px;
  transform: rotate(-3.49deg);
  transform-origin: center center;
}

.profile__photo-img--pc {
  display: block;
  width: 100%;
  height: 100%;

  object-fit: fill;
}

.profile__photo picture {
  display: block;
  width: 100%;
  height: 100%;
}


.profile__hero,
.profile__content {
  display: contents;
}

.profile__radial--sp,
.profile__circle--sp,
.profile__hero-fade,
.profile__message-fade,
.profile__message-more {
  display: none;
}


.profile__message-card {
  display: contents;
}


.profile__creds {
  position: absolute;
  top: 778px;
  left: 80px;
  z-index: 8;
  display: flex;
  gap: 10px;
  align-items: flex-start;
  width: 484px;
  color: var(--c-white);
  filter: drop-shadow(0 0 2px rgba(0, 0, 0, 0.45));
}

.profile__creds-bullets {
  flex-shrink: 0;
  font-size: 11px;
  font-weight: 500;
  line-height: 2.31;
  white-space: nowrap;
}

.profile__creds-bullets span {
  display: block;
}

.profile__creds-text {
  flex: 1;
  min-width: 0;
  font-weight: 700;
  font-size: 18px;
  line-height: 1.4;
}

.profile__creds-text p {
  margin: 0;
}


.profile__message {
  position: absolute;
  top: 219px;
  left: 527px;
  z-index: 4;
  width: 673px;
  backdrop-filter: blur(2.5px);
  -webkit-backdrop-filter: blur(2.5px);

  box-shadow: inset 0 0 0 2px var(--c-white);
  border-radius: 15px;
  padding: 40px;
  color: var(--c-white);
}

.profile__message-en {
  font-family: "Roboto Condensed", var(--font-jp);
  font-weight: 700;
  font-size: 26px;

  line-height: 1.1;
  letter-spacing: 3.9px;
  text-transform: uppercase;
  margin-bottom: 24px;
}

.profile__message-body p {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.9;
  font-feature-settings: "palt" 0;
  text-spacing-trim: space-all;

  text-box-trim: trim-both;
  text-box-edge: text;

  margin-bottom: 30px;

  text-decoration-line: underline;
  text-decoration-style: dotted;
  text-decoration-color: #60adb9;
  text-decoration-thickness: 1.8px;
  text-underline-offset: 4px;
  text-decoration-skip-ink: none;
}

.profile__message-body p:last-child {
  margin-bottom: 0;
}


.profile__stage .stats {
  position: absolute;
  top: 894px;
  left: 80px;
  z-index: 6;
  width: 1120px;
  display: flex;
  gap: 20px;
  align-items: center;
}

.stat {
  position: relative;
  flex-shrink: 0;
  width: 265px;
  height: auto;
}

.stat__art {
  display: block;
  width: 100%;
  height: auto;
  max-width: none;
}

.stat__art--pc {
  display: block;
}

.stat__art--sp {
  display: none;
}

/* =========================================================
   CTA band (まずはお気軽にご相談ください)
   ========================================================= */
.cta {
  position: relative;
  z-index: 1;
  padding-bottom: 70px;
}

.cta__panel {
  position: relative;
  background: var(--c-white);
  border-radius: 20px;
  padding: 56px 40px;
  text-align: center;
  overflow: hidden;

  max-width: 1204px;
}


.cta__watermark--pc {
  display: block;
}

.cta__watermark--sp {
  display: none;
}


.cta__watermark {
  position: absolute;
  top: 38px;
  left: 50%;
  transform: translateX(-50%);
  width: 920.273px;
  max-width: none;
  height: auto;
  pointer-events: none;
}

.cta__title {
  position: relative;
  font-size: 34px;
  font-weight: 500;
  letter-spacing: 2.38px;
  line-height: 1.86;
}

.cta__btns {
  position: relative;
  display: flex;
  justify-content: center;
  gap: 30px;
  margin-top: 32px;
  flex-wrap: wrap;
}

.cta__btn {
  display: inline-flex;
  align-items: center;
  gap: 17px;
  height: 89px;
  width: 484px;
  max-width: 100%;
  border-radius: 70px;
  padding-left: 13px;
  transition: opacity 0.25s;
  font-feature-settings: "palt" 0;
}

.cta__btn-icon {
  flex-shrink: 0;
  width: 63px;
  height: 63px;
  border-radius: 50%;
  background: var(--c-white);
  display: flex;
  align-items: center;
  justify-content: center;
}

.cta__btn-icon img {
  width: 30px;
  height: 30px;
}

.cta__btn--mail {
  position: relative;
  overflow: hidden;
  background: var(--c-brand);
  color: var(--c-white);
  font-size: 24px;
  font-weight: 500;
  justify-content: flex-start;
  padding-left: 13px;

  gap: 28px;
}


.cta__btn--mail::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 520px;
  height: 520px;
  border-radius: 50%;
  background: var(--c-brand-dark);
  transform: translate(-50%, -50%) scale(0);
  transition: transform 0.3s ease;
  z-index: 0;
}

.cta__btn--mail:hover::before {
  transform: translate(-50%, -50%) scale(1);
}


.cta__btn--mail > * {
  position: relative;
  z-index: 1;
}

.cta__btn--tel {
  background: #c7c7c7;
  color: var(--c-text);
}


.cta__tel-text {
  display: flex;
  align-items: center;
  gap: 10px;
}

.cta__tel-num {
  font-family: "Roboto", var(--font-jp);
  font-weight: 700;
  font-size: 35px;
  line-height: 1.3;
  white-space: nowrap;
}

.cta__tel-time {
  font-size: 14px;
  white-space: nowrap;
}


#profile .profile__shell > .profile__cta {
  position: absolute;
  top: 1055px;
  left: 0;
  width: 100%;
  z-index: 7;
  padding-bottom: 0;
}


#profile .profile__shell > .profile__cta .cta__panel {
  width: 100%;
  max-width: 100%;
  margin-inline: auto;
  min-height: 444px;
  padding: 74px 40px 38px;
  box-sizing: border-box;

  border-radius: 0;
}


#profile .profile__shell > .profile__cta .cta__panel.is-reveal {
  width: 1204px;
  max-width: calc(100% - 76px);
  min-height: 350px;
  border-radius: 20px;
  transition: none;
}

#profile .profile__shell > .profile__cta .cta__panel.is-reveal.is-visible {
  width: 100%;
  max-width: 100%;
  min-height: 444px;
  border-radius: 0;
  transition: width 0.7s cubic-bezier(0.22, 1, 0.36, 1),
    max-width 0.7s cubic-bezier(0.22, 1, 0.36, 1),
    min-height 0.7s cubic-bezier(0.22, 1, 0.36, 1),
    border-radius 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}


@media (min-width: 1281px) {
  #profile
    .profile__shell
    > .profile__cta:has(.cta__panel.is-reveal.is-visible) {
    left: 50%;
    width: 100vw;
    transform: translateX(-50%);
    transition: width 0.7s cubic-bezier(0.22, 1, 0.36, 1),
      left 0.7s cubic-bezier(0.22, 1, 0.36, 1),
      transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
  }


  #profile .profile__shell > .profile__cta:not(:has(.cta__panel.is-reveal)) {
    left: 50%;
    width: 100vw;
    transform: translateX(-50%);
  }
}


#profile .profile__shell > .profile__cta .cta__btns {
  margin-top: 86px;
}

/* =========================================================
   講演会/セミナー / Lecture & Seminar
   ========================================================= */
.seminar {
  position: relative;
  background: var(--c-brand-light);

  overflow: hidden;
}


.seminar__dots {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%) scaleY(-1);
  width: 100%;
  height: auto;
  pointer-events: none;
  user-select: none;
  z-index: 0;
}

.seminar__inner {
  position: relative;
  z-index: 1;

  padding-block: 110px 73px;
}

.seminar__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 40px;
}

.seminar-card {
  background: var(--c-white);
  border-radius: 20px;
  overflow: hidden;
  display: flex;
  flex-direction: column;

}

.seminar-card__thumb {
  height: 221px;
  overflow: hidden;
}

.seminar-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.seminar-card__body {
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}


.seminar-card__head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 9px;
}

.seminar-card__badge {
  align-self: flex-start;
  background: var(--c-brand);
  color: var(--c-white);
  font-family: "Roboto", var(--font-jp);
  font-weight: 700;
  font-size: 14px;
  line-height: 1.1;
  padding: 6px 10px;
  border-radius: 30px;
}

.seminar-card__title {
  color: var(--c-brand-dark);
  font-weight: 700;
  font-size: 18px;
  line-height: 1.4;
}


.seminar-card__line {
  border: 0;
  border-top: 3px solid var(--c-brand-light);
  margin: 0;
}

.seminar-card__desc {
  font-size: 16px;
  line-height: 1.5;
}

.seminar-card__desc > *:first-child {
  margin-top: 0;
}

.seminar-card__desc > *:last-child {
  margin-bottom: 0;
}

.seminar-card__desc p {
  margin: 0 0 0.5em;
}

.seminar-card__desc p:last-child {
  margin-bottom: 0;
}

.seminar-card__desc ul,
.seminar-card__desc ol {
  margin: 0.25em 0 0.5em;
  padding-left: 1.25em;
}

.seminar-card__desc li {
  margin: 0.15em 0;
}

.seminar-card__desc li + li {
  margin-top: 0.15em;
}

.seminar-card__desc a {
  color: var(--c-brand-dark);
  text-decoration: underline;
}

.seminar-card__info {
  background: var(--c-brand-light);
  border-radius: 11px;
  padding: 6px 10px;
  font-size: 14px;
  line-height: 1.3;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.seminar-card__info > div {
  display: flex;
  align-items: baseline;
  gap: 0;
}

.seminar-card__info dt {
  font-weight: 600;
  white-space: nowrap;
}

.seminar-card__info dd {
  margin: 0;
}
.seminar-card__desc ul {
  margin: 0.25em 0 0.5em;
  padding-left: 0;
  list-style: none;
}

.seminar-card__desc ul li {
  position: relative;
  padding-left: 1em;
}

.seminar-card__desc ul li::before {
  content: "・";
  position: absolute;
  left: 0;
}

/* =========================================================
   お問い合わせ / Contact
   ========================================================= */
.contact {
  position: relative;
  background: #99d7db;
  overflow: hidden;
}


.contact.stack-section {
  box-shadow: none;
}


.contact__bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}


.contact__bg-core {
  position: absolute;
  inset: 0;
  max-width: var(--content-max);
  margin-inline: auto;
}

.contact__texture {
  position: absolute;
  max-width: none;
  height: auto;
  pointer-events: none;
  transform-origin: center center;
  will-change: transform, opacity;

  animation: contactBreathe var(--tex-dur, 8s) ease-in-out infinite;
  animation-delay: var(--tex-delay, 0s);
}


.contact__texture--10 {
  left: -808px;
  top: -647px;
  width: 1861.89px;
  mix-blend-mode: multiply;
  --tex-op: 1;
  --tex-delay: 0s;
}


.contact__texture--11 {
  left: 390px;
  top: -223px;
  width: 1419.888px;
  --tex-op: 1;
  --tex-delay: -4s;
}


.contact__texture--12 {
  left: -118px;
  top: 342px;
  width: 1419.888px;
  --tex-op: 1;
  --tex-delay: -4s;
}


@keyframes contactBreathe {
  0%,
  100% {
    transform: scale(var(--tex-scale-min, 0.77));
    opacity: calc(var(--tex-op, 1) * var(--tex-op-min, 0.5));
  }
  50% {
    transform: scale(1);
    opacity: var(--tex-op, 1);
  }
}


@media (prefers-reduced-motion: reduce) {
  .contact__texture {
    animation: none;
    transform: scale(0.9);
    opacity: var(--tex-op, 1);
  }
}


.contact__arc {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  max-width: none;
  pointer-events: none;
}

.contact__arc--pc {
  top: -225px;
  width: 120%;
  min-width: 1516px;
  height: 302px;
}


.contact__arc--sp {
  display: none;
}


.contact__texture--13 {
  display: none;
}

.contact__inner {
  position: relative;
  z-index: 1;

  padding-block: 154px 113px;
}

.contact__card {
  margin-top: 40px;
  background: rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
  border: 2px solid var(--c-white);
  border-radius: 30px;
  padding: 60px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.contact__intro {
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 1.26px;
  line-height: 1.5;
  text-align: center;
}

/* ----- Form ----- */

.form {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 60px;
}


.form__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
}


.form__fields {
  width: 746px;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  gap: 30px;
}


.form-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 100%;
}

.form-row {
  display: flex;
  gap: 20px;
  align-items: center;
  width: 100%;
}

.form-row--top {
  align-items: flex-start;
}

.form-row__label {
  flex-shrink: 0;
  width: 176px;
  min-height: 53px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.req {
  flex-shrink: 0;
  background: var(--c-accent);
  color: var(--c-white);
  font-weight: 600;
  font-size: 10px;
  letter-spacing: 0.5px;
  line-height: 1.2;
  padding: 2px 4px;
  border-radius: 2px;
}

.form-row__label label {
  font-weight: 600;
  font-size: 16px;
  letter-spacing: 0.8px;
  line-height: 0.8;
}

.form-row__field {
  flex-shrink: 0;
  width: 552px;
  max-width: calc(100% - 196px);
}


.form-row__control {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 10px;
  width: 100%;
}

.form-row__field input,
.form-row__field select,
.form-row__field textarea {
  box-sizing: border-box;
  width: 478px;
  max-width: 100%;
  background: var(--c-white);
  border: 1px solid var(--c-text);
  border-radius: 6px;
  padding: 13px 15px;
  font-size: 16px;
  letter-spacing: 0.8px;
  line-height: 1.7;
  color: var(--c-text);
}


.form-row__field input {
  /* 53 = border 2 + padding 26 + line-box 25 */
  line-height: 25px;
}


.form-row__field select {
  height: 53px;
  line-height: 25px;
}


.form-row__field textarea {
  line-height: 1.7;
  min-height: calc(1.7em * 4 + 26px + 2px);
  resize: vertical;
}

.form-row__field input::placeholder,
.form-row__field textarea::placeholder {
  color: var(--c-gray);
}


.form-row__field input:focus,
.form-row__field select:focus,
.form-row__field textarea:focus {
  outline: none;
  border-color: var(--c-brand);
  box-shadow: 0 0 0 1px var(--c-brand);
}


.form-row__field .form-select {
  appearance: none;
  -webkit-appearance: none;
  color: var(--c-text);

  background-image: url("../assets/images/icon-chevron.svg");
  background-position: right 14px center;
  background-size: 15px auto;
  background-repeat: no-repeat;
  padding-right: 40px;
}

.form-select:invalid {
  color: var(--c-gray);
}


.form-row--error .form-row__field input,
.form-row--error .form-row__field select,
.form-row--error .form-row__field textarea {
  border-color: var(--c-accent);
}

.form-row__note {
  width: 354px;
  max-width: 100%;
  margin-left: 196px;
  font-size: 12px;
  letter-spacing: 0.24px;
  line-height: 1.7;
  color: var(--c-accent);
}


.form-row__status {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.form-row__status img {
  display: block;
}
.form-row__status--ok {
  background: var(--c-brand);
}
.form-row__status--ok img {
  width: 10px;
  height: auto;
}
.form-row__status--error {
  background: var(--c-accent);
}
.form-row__status--error img {
  width: 8.5px;
  height: 8.5px;
}


.form-row__status--placeholder {
  visibility: hidden;
}

.form__submit {
  font-size: 18px;
  width: 326px;
  height: 55px;
  padding: 0 56px 0 32px;
}


.privacy-page {
  background: var(--c-brand-light);
}


.privacy-hero {
  position: relative;
  overflow: hidden;
  height: 590px;
  padding-bottom: 290px;
  margin-bottom: -290px;
}

.privacy-hero__bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}


.privacy-hero__bg-inner {
  position: absolute;
  left: 50%;
  top: -73px;
  width: var(--content-max);
  height: 663px;
  transform: translateX(-50%);
}

.privacy-deco {
  position: absolute;
  pointer-events: none;
}

.privacy-deco img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
}

.privacy-deco__spin {
  width: 100%;
  height: 100%;
}

.privacy-deco__spin--neg145 {
  transform: rotate(-145.3deg);
}

.privacy-deco__spin--pos51 {
  transform: rotate(51.16deg);
}

.privacy-deco__spin--pos35 {
  transform: rotate(35.27deg);
}

.privacy-deco__spin--neg127 {
  transform: rotate(-127.18deg);
}


.privacy-deco--sp-vec,
.privacy-deco--sp-e19,
.privacy-deco--sp-e27,
.privacy-deco--sp-e23,
.privacy-deco--sp-e30 {
  display: none;
}


.privacy-deco--e27 {
  left: -8px;
  top: -53px;
  width: 480.612px;
  height: 480.612px;
  display: grid;
  place-items: center;
}

.privacy-deco--e27 .privacy-deco__spin {
  width: 345.412px;
  height: 345.412px;
}

.privacy-deco--v2 {
  top: 41.03%;
  right: 82.81%;
  bottom: 3.02%;
  left: -11.8%;
}

.privacy-deco--v3 {
  top: 73px;
  right: -255px;
  width: 492px;
  height: 492px;
}

.privacy-deco--e19 {
  left: 382px;
  top: -35px;
  width: 639.748px;
  height: 639.748px;
  display: grid;
  place-items: center;
}

.privacy-deco--e19 .privacy-deco__spin {
  width: 455px;
  height: 455px;
}

.privacy-deco--e21 {
  left: 886px;
  top: 237px;
  width: 361.786px;
  height: 361.786px;
  display: grid;
  place-items: center;
}

.privacy-deco--e21 .privacy-deco__spin {
  width: 260.012px;
  height: 260.012px;
}

.privacy-deco--e22 {
  left: 781px;
  top: -210px;
  width: 728.006px;
  height: 728.006px;
  display: grid;
  place-items: center;
}

.privacy-deco--e22 .privacy-deco__spin {
  width: 523.211px;
  height: 523.211px;
}

.privacy-deco--e23 {
  left: -255px;
  top: 116px;
  width: 517.391px;
  height: 517.391px;
  display: grid;
  place-items: center;
}

.privacy-deco--e23 .privacy-deco__spin {
  width: 371.844px;
  height: 371.844px;
}

.privacy-deco--e26 {
  left: 285px;
  top: -115px;
  width: 355px;
  height: 355px;
}

.privacy-deco--e24 {
  left: 774px;
  top: 265px;
  width: 110px;
  height: 110px;
}

.privacy-hero__content {
  position: relative;
  z-index: 1;
  height: 590px;
}


.breadcrumb {
  padding-top: 20px;
  padding-bottom: 10px;
}

.breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 22px;
}

.breadcrumb__item {
  font-size: 12px;
  line-height: 16px;
  height: 16px;
}

.breadcrumb__item--link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 16px;
  padding-bottom: 5px;
  border-bottom: 0.5px solid var(--c-text);
}

.breadcrumb__item--current {
  display: inline-flex;
  align-items: center;
  height: 16px;
  padding-bottom: 5px;
}

.breadcrumb__chevron {
  width: 6px;
  height: 9px;
  flex-shrink: 0;
}

.breadcrumb__link {
  transition: opacity 0.25s;
}

.breadcrumb__link:hover {
  opacity: 0.6;
}


.privacy-hero__head {
  margin-top: 56px;
}


.privacy-body {
  position: relative;
  z-index: 2;
}

.privacy-body__inner {
  background: var(--c-white);
  border-radius: 50px 50px 0 0;
  padding: 70px var(--gutter-sp);
}

@media (min-width: 768px) {
  .privacy-body__inner {
    padding-inline: var(--gutter-pc);
  }
}

.privacy-prose {
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-width: var(--content-inner);
}

.privacy-prose__lead,
.privacy-block p,
.privacy-list {
  font-size: 16px;
  line-height: 1.7;
}

.privacy-block {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.privacy-block__title {
  font-size: 20px;
  font-weight: 600;
  line-height: 1.7;
}

.privacy-list {
  list-style: none;
  padding: 0;
}

.privacy-list li {
  position: relative;
  padding-left: 1.1em;
}

.privacy-list li::before {
  content: "・";
  position: absolute;
  left: 0;
}

.privacy-contact {
  font-style: normal;
  font-size: 16px;
  line-height: 1.7;
}

.privacy-contact__name {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 0;
}

.privacy-contact a {
  color: #006fff;
  text-decoration: underline;
  text-underline-position: from-font;
}

.privacy-contact a[href^="tel:"] {
  color: inherit;
  text-decoration: none;
}

.error-page {
  background: var(--c-white);
}


.error-hero {
  position: relative;
  overflow: hidden;
  height: 759px;
  background: var(--c-white);
}

.error-hero__bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}


.error-hero__bg::before {
  content: "";
  position: absolute;
  inset: 0;
  left: calc(50% - 50vw);
  width: 100vw;
  background: #99d7db;
  z-index: 0;
}

.error-hero__bg-inner {
  position: absolute;
  left: 50%;
  top: -73px;
  width: var(--content-max);
  height: 832px;
  transform: translateX(-50%);
  z-index: 1;
}

.error-hero__fill {
  position: absolute;
  left: -30px;
  top: -60px;
  width: 1325px;
  height: 1612px;
  background: #99d7db;
}


.error-hero__texture-layer {
  position: absolute;
  top: -73px;
  height: 832px;
  left: calc(50% - 50vw);
  width: 100vw;
  z-index: 1;
  pointer-events: none;
}

.error-hero__texture {
  position: absolute;
  max-width: none;
  height: auto;
  pointer-events: none;
  transform-origin: center center;
  will-change: transform, opacity;
  animation: contactBreathe var(--tex-dur, 8s) ease-in-out infinite;
  animation-delay: var(--tex-delay, 0s);
}


.error-hero__texture--10 {
  left: -644.61px;
  top: -509.61px;
  width: 1434.89px;
  mix-blend-mode: multiply;
  --tex-op: 1;
  --tex-delay: 0s;
}


.error-hero__texture--11 {
  left: calc(50% - 94px);
  top: -241px;
  width: 1419.89px;
  --tex-op: 1;
  --tex-delay: -4s;
}

.error-hero__texture--12 {
  left: calc(50% - 758px);
  top: 342px;
  width: 1419.89px;
  --tex-op: 1;
  --tex-delay: -4s;
}

@media (prefers-reduced-motion: reduce) {
  .error-hero__texture {
    animation: none;
    transform: scale(0.9);
    opacity: var(--tex-op, 1);
  }
}

.error-hero__content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  max-width: 952px;
  margin-inline: auto;
  padding: 147px var(--gutter-sp) 80px;
  text-align: center;
}

@media (min-width: 768px) {
  .error-hero__content {
    padding-inline: 0;
  }
}

.error-hero__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 25px;
}

.error-hero__code {
  width: 231.533px;
  max-width: 100%;
  height: auto;
}

.error-hero__en {
  font-family: "Roboto Condensed", var(--font-jp);
  font-weight: 700;
  font-size: 35px;
  line-height: 1.1;
  letter-spacing: 5.25px;
  text-transform: uppercase;
  color: var(--c-white);
}

.error-hero__message {
  display: flex;
  flex-direction: column;
  gap: 0;
  font-size: 26px;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 1.82px;
  color: var(--c-text);
}

.error-hero__btn {
  width: 326px;
  height: 55px;
  font-size: 18px;
  padding: 0 56px 0 32px;
}


@media (max-width: 767px) {
  .header {
    box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
  }

  .header__inner {
    max-width: none;
    margin-inline: auto;
    min-height: calc(72 * 100vw / 390);
    padding-inline: calc(14.5 * 100vw / 390);
    align-items: flex-start;
    padding-top: calc(15 * 100vw / 390);
    padding-bottom: calc(15 * 100vw / 390);
    gap: 0;
    justify-content: space-between;
    width: 100%;
  }

  .header__logo {
    height: calc(42 * 100vw / 390);
    gap: calc(13 * 100vw / 390);
  }

  .header__logo-mark {
    width: calc(42 * 100vw / 390);
    height: calc(42 * 100vw / 390);
  }

  .header__logo-text {
    width: calc(173 * 100vw / 390);
    height: calc(18 * 100vw / 390);
  }

  .gnav__list,
  .header__right {
    display: none;
  }

  .gnav__toggle {
    display: inline-flex;
    width: calc(40 * 100vw / 390);
    gap: calc(8 * 100vw / 390);
  }

  .gnav__toggle-bars {
    width: calc(40 * 100vw / 390);
    height: calc(18 * 100vw / 390);
  }

  .gnav__toggle-label {
    width: calc(37.563 * 100vw / 390);
    height: calc(10.09 * 100vw / 390);
  }


  .header {
    z-index: 101;
  }

  /* Toggle: hamburger ↔ X */
  .gnav__toggle-icon {
    display: block;
    width: 100%;
  }

  .gnav__toggle-icon--close {
    display: none;
  }

  .gnav__toggle-x {
    position: relative;
    display: block;
    width: calc(39 * 100vw / 390);
    height: calc(18 * 100vw / 390);
  }

  .gnav__toggle-x::before,
  .gnav__toggle-x::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: calc(39 * 100vw / 390);
    height: 2px;
    background: var(--c-text);
    transform-origin: center;
  }

  .gnav__toggle-x::before {
    transform: translate(-50%, -50%) rotate(26deg);
  }

  .gnav__toggle-x::after {
    transform: translate(-50%, -50%) rotate(-26deg);
  }

  body.sp-menu-open .gnav__toggle-icon--open {
    display: none;
  }

  body.sp-menu-open .gnav__toggle-icon--close {
    display: block;
  }

  body.sp-menu-open {
    overflow: hidden;
  }


  .sp-menu {

    --sp-menu-scale: min(100vw / 390, 100dvh / 845);
    display: block;
    position: fixed;
    inset: 0;
    z-index: 99;
    visibility: hidden;
    pointer-events: none;
  }

  .sp-menu.is-open {
    visibility: visible;
    pointer-events: auto;
  }

  .sp-menu__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
  }

  .sp-menu__panel {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    display: flex;
    flex-direction: column;
    max-height: calc(805 * var(--sp-menu-scale));
    padding-top: calc(123 * var(--sp-menu-scale));
    background: var(--c-white);
    border-radius: 0 0 calc(30 * var(--sp-menu-scale))
      calc(30 * var(--sp-menu-scale));
    box-shadow: 0 calc(4 * var(--sp-menu-scale)) calc(4 * var(--sp-menu-scale))
      rgba(0, 0, 0, 0.25);
    overflow: hidden;
    z-index: 1;
  }

  .sp-menu__nav {
    flex: 0 0 auto;
    width: 100%;
  }

  .sp-menu__list {
    display: flex;
    flex-direction: column;
    gap: 1px;
    width: 100%;
    background: #909090;
  }

  .sp-menu__list li {
    background: var(--c-white);
  }

  .sp-menu__list a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    height: calc(56 * var(--sp-menu-scale));
    padding-inline: calc(20 * var(--sp-menu-scale));
    font-family: var(--font-jp);
    font-size: calc(16 * var(--sp-menu-scale));
    font-weight: 400;
    font-style: normal;
    letter-spacing: 0.1em;
    line-height: 1.5;
    color: var(--c-text);
    text-decoration: none;
  }

  .sp-menu__list a:hover {
    color: var(--c-text);
  }

  .sp-menu__label {
    flex: 0 0 calc(262 * var(--sp-menu-scale));
    width: calc(262 * var(--sp-menu-scale));
    max-width: calc(262 * var(--sp-menu-scale));
  }

  .sp-menu__chevron {
    flex-shrink: 0;
    width: calc(39 * var(--sp-menu-scale));
    height: calc(39 * var(--sp-menu-scale));
    max-width: none;
    object-fit: contain;
  }

  .sp-menu__foot {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    margin-top: calc(43 * var(--sp-menu-scale));
    padding-bottom: calc(10 * var(--sp-menu-scale));
  }

  .sp-menu__seminar {
    margin-bottom: calc(10 * var(--sp-menu-scale));
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    width: calc(326 * var(--sp-menu-scale));
    height: calc(55 * var(--sp-menu-scale));
    padding: 0 calc(56 * var(--sp-menu-scale)) 0 calc(48 * var(--sp-menu-scale));
    border-radius: calc(70 * var(--sp-menu-scale));
    font-family: var(--font-jp);
    font-weight: 500;
    font-size: calc(18 * var(--sp-menu-scale));
    line-height: 1.6;
    text-decoration: none;
  }

  .sp-menu__seminar > span:first-child {
    white-space: nowrap;
  }

  .sp-menu__seminar .btn__arrow {
    right: calc(8 * var(--sp-menu-scale));
    width: calc(39 * var(--sp-menu-scale));
    height: calc(39 * var(--sp-menu-scale));
  }

  .sp-menu__seminar .btn__arrow img {
    width: calc(6 * var(--sp-menu-scale));
    height: calc(9 * var(--sp-menu-scale));
  }

  .sp-menu__dock {
    display: grid;
    grid-template-columns: calc(180 * var(--sp-menu-scale)) calc(
        180 * var(--sp-menu-scale)
      );
    justify-content: space-between;
    width: 100%;
    height: calc(60 * var(--sp-menu-scale));
    padding: calc(7 * var(--sp-menu-scale)) calc(10 * var(--sp-menu-scale));
    filter: drop-shadow(
      0 calc(4 * var(--sp-menu-scale)) calc(2 * var(--sp-menu-scale))
        rgba(0, 0, 0, 0.25)
    );
  }

  .sp-menu__dock-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: calc(10 * var(--sp-menu-scale));
    width: calc(180 * var(--sp-menu-scale));
    height: calc(46 * var(--sp-menu-scale));
    border-radius: calc(7 * var(--sp-menu-scale));
    color: var(--c-white);
    text-decoration: none;
    white-space: nowrap;
  }

  .sp-menu__dock-btn--tel {
    background: var(--c-text);
    font-family: "Roboto", var(--font-jp);
    font-weight: 700;
    font-size: calc(16 * var(--sp-menu-scale));
    line-height: 1.3;
  }

  .sp-menu__dock-btn--mail {
    background: var(--c-brand);
    font-family: var(--font-jp);
    font-weight: 500;
    font-size: calc(14 * var(--sp-menu-scale));
    line-height: 1.6;
  }

  .sp-menu__dock-btn img {
    flex-shrink: 0;
    object-fit: contain;
  }


  .sp-menu__dock-btn--tel img {
    width: calc(18 * var(--sp-menu-scale));
    height: calc(18 * var(--sp-menu-scale));
  }

  .sp-menu__dock-btn--mail img {
    width: calc(18.394 * var(--sp-menu-scale));
    height: calc(13.194 * var(--sp-menu-scale));
  }

  .sp-menu__indicator {
    display: block;
    align-self: flex-start;
    width: calc(134 * var(--sp-menu-scale));
    height: calc(4 * var(--sp-menu-scale));
    max-width: none;
    margin-top: calc(43 * var(--sp-menu-scale));
    margin-left: calc(121 * var(--sp-menu-scale));
    object-fit: contain;
  }
}

/* =========================================================
   RESPONSIVE — SP (≤767px)
   ========================================================= */
@media (max-width: 767px) {
  :root {
    --header-h: calc(72 * 100vw / 390);
    --hero-dock-h: calc(60 * 100vw / 390 + env(safe-area-inset-bottom, 0px));
  }


  .stack-section {
    position: relative;
    top: auto;
    box-shadow: none;
  }


  .profile.stack-section {
    margin-top: 0;
    padding-top: 0;

  }


  .hero {
    overflow: hidden;
    width: 100%;
    max-width: none;
    margin-inline: 0;

    padding-bottom: calc(34 * 100vw / 390);
  }

  .hero__inner {
    height: calc(676 * 100vw / 390);
    max-width: none;
    margin-inline: 0;
  }

  .hero__figure {
    display: block;
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
  }


  .hero__ellipse-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    left: calc(10 * 100vw / 390);
    top: calc(302.02 * 100vw / 390);
    width: calc(370.836 * 100vw / 390);
    height: calc(294.977 * 100vw / 390);
    z-index: 1;
  }

  .hero__ellipse {
    position: static;
    left: auto;
    top: auto;
    width: calc(302.736 * 100vw / 390);
    height: calc(302.736 * 100vw / 390);
    transform: skewX(-13deg) scaleY(0.97);
  }


  .hero__person-wrap {
    display: block;
    position: absolute;
    left: 50%;
    bottom: calc(-1.14 * 100vw / 390);
    transform: translateX(-50%);
    width: calc(261.484 * 100vw / 390);
    height: calc(490.834 * 100vw / 390);
    z-index: 2;
  }

  .hero__person {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    transform: none;
    object-fit: cover;
    object-position: center bottom;
    clip-path: url(#hero-person-clip-sp);
  }

  .hero__bg--pc,
  .hero__vtext--pc {
    display: none;
  }


  .hero__bg--sp {
    display: block;
    left: calc(-72 * 100vw / 390);
    top: calc(54 * 100vw / 390);
    width: calc(534 * 100vw / 390);
    height: calc(481 * 100vw / 390);
    transform: none;
    max-width: none;
    object-fit: fill;
  }

  .hero__vtext--sp {
    display: block;
    position: absolute;
    width: calc(38.1 * 100vw / 390);
    height: auto;
    z-index: 3;
  }


  .hero__vtext--1.hero__vtext--sp {
    right: calc(15 * 100vw / 390);
    top: calc(154 * 100vw / 390);
    left: auto;
    height: calc(209.094 * 100vw / 390);
  }


  .hero__vtext--2.hero__vtext--sp {
    left: calc(295 * 100vw / 390);
    right: auto;
    top: calc(212 * 100vw / 390);
  }


  .hero__body {
    position: absolute;
    left: calc(20 * 100vw / 390);
    top: calc(24 * 100vw / 390);
    width: calc(350 * 100vw / 390);
    height: calc(652 * 100vw / 390);
    z-index: 4;
  }

  .hero__lead {
    font-family: var(--font-jp);
    font-size: calc(14 * 100vw / 390);
    font-weight: 500;
    line-height: 1.86;
    letter-spacing: 0;
    white-space: nowrap;
    margin-bottom: calc(10.701 * 100vw / 390);
  }

  .hero__title {
    font-family: "Roboto Condensed", var(--font-jp);
    font-weight: 700;
    font-size: calc(55 * 100vw / 390);
    line-height: 0.95;
    letter-spacing: 0;
  }


  .hero__cta {
    position: absolute;
    left: calc(12 * 100vw / 390);
    top: calc(597 * 100vw / 390);
    width: calc(326 * 100vw / 390);
    height: calc(55 * 100vw / 390);
    margin-top: 0;
    padding: 0 calc(56 * 100vw / 390) 0 calc(48 * 100vw / 390);
    font-family: var(--font-jp);
    font-weight: 500;
    font-size: calc(18 * 100vw / 390);
    line-height: 1.6;
    align-items: center;
    justify-content: flex-start;
    border-radius: calc(70 * 100vw / 390);
  }

  .hero__cta .btn__arrow {
    right: calc(8 * 100vw / 390);
    width: calc(39 * 100vw / 390);
    height: calc(39 * 100vw / 390);
  }

  .hero__cta .btn__arrow img {
    width: calc(6 * 100vw / 390);
    height: calc(9 * 100vw / 390);
  }


  .hero__dock {
    display: grid;
    grid-template-columns: calc(180 * 100vw / 390) calc(180 * 100vw / 390);
    justify-content: space-between;
    align-content: start;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    min-height: calc(60 * 100vw / 390);
    padding: calc(7 * 100vw / 390) calc(10 * 100vw / 390);
    padding-bottom: calc(7 * 100vw / 390 + env(safe-area-inset-bottom, 0px));
    box-sizing: border-box;
    background: rgba(255, 255, 255, 0.7);
    box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
    z-index: 90;
  }

  body.sp-menu-open .hero__dock {
    visibility: hidden;
    pointer-events: none;
  }


  body:has(.hero__dock) .footer {
    padding-bottom: var(--hero-dock-h);
  }

  .hero__dock-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: calc(10 * 100vw / 390);
    width: calc(180 * 100vw / 390);
    height: calc(46 * 100vw / 390);
    border-radius: calc(7 * 100vw / 390);
    color: var(--c-white);
    text-decoration: none;
    white-space: nowrap;
  }

  .hero__dock-btn--tel {
    background: var(--c-text);
    font-family: "Roboto", var(--font-jp);
    font-weight: 700;
    font-size: calc(16 * 100vw / 390);
    line-height: 1.3;
  }

  .hero__dock-btn--mail {
    background: var(--c-brand);
    font-family: var(--font-jp);
    font-weight: 500;
    font-size: calc(14 * 100vw / 390);
    line-height: 1.6;
  }

  .hero__dock-btn img {
    flex-shrink: 0;
    object-fit: contain;
  }

  .hero__dock-btn--tel img {
    width: calc(18 * 100vw / 390);
    height: calc(18 * 100vw / 390);
  }

  .hero__dock-btn--mail img {
    width: calc(18.394 * 100vw / 390);
    height: calc(13.194 * 100vw / 390);
  }


  .news {
    background: #99d7db;
    min-height: calc(945 * 100vw / 390);
  }

  .news__bg-core::before,
  .news__subtract,
  .news__mask {
    display: none;
  }

  .news__ellipse-top {
    display: block;
    position: absolute;
    left: 50%;
    top: calc(-171 * 100vw / 390);
    width: calc(604 * 100vw / 390);
    height: calc(200 * 100vw / 390);
    max-width: none;
    transform: translateX(-50%);
    z-index: 2;
  }

  .news__texture-layer {
    top: 0;
    height: 100%;
    -webkit-mask: none;
    mask: none;
    z-index: 1;
  }

  .news__texture--10 {
    left: calc(-464 * 100vw / 390);
    top: calc(-124 * 100vw / 390);
    width: calc(1012.112 * 100vw / 390);
    opacity: 0.5;
    mix-blend-mode: multiply;
  }

  .news__texture--11 {
    left: calc(-116 * 100vw / 390);
    top: calc(192 * 100vw / 390);
    width: calc(1012.112 * 100vw / 390);
    opacity: 1;
  }

  .news__texture--12 {
    left: calc(-121 * 100vw / 390);
    top: calc(-368 * 100vw / 390);
    width: calc(1012.112 * 100vw / 390);
    opacity: 1;
  }

  .news__wave-bottom--pc {
    display: none;
  }

  .news__wave-bottom--sp {
    display: block;
    position: absolute;
    left: 50%;
    bottom: 0;
    width: calc(1284.006 * 100vw / 390);
    height: calc(321.048 * 100vw / 390);
    min-width: 0;
    max-width: none;
    transform: translateX(-50%);
    z-index: 2;
  }

  .news__inner {
    flex-direction: column;
    align-items: stretch;
    gap: calc(40 * 100vw / 390);
    width: calc(350 * 100vw / 390);
    max-width: none;
    margin-inline: auto;
    padding: calc(99 * 100vw / 390) 0 calc(182 * 100vw / 390);
  }

  .news__inner.container {
    padding-inline: 0;
  }

  .news__head {
    width: 100%;
    padding-top: 0;
  }

  .news__head .sec-head {
    flex-direction: column;
    align-items: center;
    gap: calc(15 * 100vw / 390);
    text-align: center;
  }

  .news__head .sec-head__line {
    display: none;
  }

  .news__head .sec-head__line-h {
    display: block;
    width: calc(54 * 100vw / 390);
    height: calc(5 * 100vw / 390);
    max-width: none;
    flex-shrink: 0;
  }

  .news__head .sec-head__labels {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(6 * 100vw / 390);
    width: 100%;
  }

  .news__head .sec-head__jp {
    order: 1;
    font-family: var(--font-jp);
    font-size: calc(30 * 100vw / 390);
    font-weight: 500;
    font-style: normal;
    line-height: 1.16;
    letter-spacing: calc(2.1 * 100vw / 390);
    color: var(--c-white);
  }

  .news__head .sec-head__en {
    order: 2;
    font-family: "Roboto Condensed", var(--font-jp);
    font-size: calc(16 * 100vw / 390);
    font-weight: 700;
    font-style: normal;
    line-height: 1.1;
    letter-spacing: calc(2.4 * 100vw / 390);
    text-transform: uppercase;
    color: #c9fbff;
    margin-bottom: 0;
  }

  .news__list {
    flex: none;
    width: 100%;
    gap: calc(15 * 100vw / 390);
  }

  .news-card {
    gap: calc(5 * 100vw / 390);
    padding: calc(15 * 100vw / 390);
    border: calc(2 * 100vw / 390) solid var(--c-white);
    border-radius: calc(15 * 100vw / 390);
    background: rgba(255, 255, 255, 0.6);
    backdrop-filter: blur(2.5px);
    -webkit-backdrop-filter: blur(2.5px);
  }

  .news-card__meta {
    align-items: flex-start;
    gap: calc(13 * 100vw / 390);
  }


  .news-card__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: "Roboto", var(--font-jp);
    font-size: calc(12 * 100vw / 390);
    font-weight: 700;
    font-style: normal;
    line-height: 1;
    text-align: center;
    box-sizing: border-box;
    min-height: calc(21 * 100vw / 390);
    padding: 0 calc(10 * 100vw / 390);
    border-radius: calc(30 * 100vw / 390);
  }

  .news-card__meta time {
    font-family: var(--font-jp);
    font-size: calc(14 * 100vw / 390);
    font-weight: 350;
    font-style: normal;
    line-height: 1.5;
    color: var(--c-text);
  }

  .news-card__title {
    align-self: stretch;
    width: 100%;
    min-width: 100%;
    max-width: 100%;
    font-family: var(--font-jp);
    font-size: calc(14 * 100vw / 390);
    font-weight: 500;
    font-style: normal;
    line-height: 1.5;
    color: var(--c-text);
    word-break: break-word;
    overflow-wrap: break-word;
  }


  .worry {
    min-height: calc(926 * 100vw / 390);
  }

  .worry__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: calc(350 * 100vw / 390);
    max-width: none;
    margin-inline: auto;
    padding: calc(36 * 100vw / 390) 0 calc(36 * 100vw / 390);
    text-align: left;
  }

  .worry__inner.container {
    padding-inline: 0;
  }

  .worry__head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(23 * 100vw / 390);
    margin-bottom: calc(-23 * 100vw / 390);
    width: 100%;
  }

  .worry__title {
    font-family: var(--font-jp);
    font-size: calc(24 * 100vw / 390);
    font-weight: 500;
    font-style: normal;
    line-height: 0.36;
    letter-spacing: calc(3.3 * 100vw / 390);
    text-align: center;
    color: var(--c-text);
  }

  .worry__title-em {
    font-family: var(--font-jp);
    font-size: calc(27 * 100vw / 390);
    font-weight: 500;
    font-style: normal;
    line-height: 1.86;
    color: var(--c-brand);
  }
  .worry__title-br{
    display: block;
  }

  .worry__underline--pc {
    display: none;
  }

  .worry__underline--sp {
    display: block;
    width: calc(340 * 100vw / 390);
    height: calc(15.069 * 100vw / 390);
    max-width: none;
    margin-inline: auto;
    flex-shrink: 0;
  }

  .worry__list {
    position: static;
    height: auto;
    max-width: none;
    margin: calc(40 * 100vw / 390) 0 0;
    display: flex;
    flex-direction: column;
    width: 100%;
  }

  .worry-item {
    position: static;
    left: auto;
    top: auto;
    flex: none;
    max-width: none;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: calc(15 * 100vw / 390);
    width: 100%;
    margin-bottom: calc(-27 * 100vw / 390);
  }

  .worry-item:last-child {
    margin-bottom: 0;
  }

  .worry-item:nth-child(even) {
    flex-direction: row-reverse;
  }

  .worry-item__icon {
    position: relative;
    width: calc(150 * 100vw / 390);
    height: calc(150 * 100vw / 390);
    border-radius: 50%;
    overflow: hidden;
    background: #e3e3e3;
    flex-shrink: 0;
  }

  .worry-item__icon--full {
    background: transparent;
  }

  .worry-item__icon-img--pc {
    display: none;
  }

  .worry-item__icon-img--sp {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
  }

  .worry-item__icon-img--stress {
    position: absolute;
    top: 23.04%;
    right: 15.2%;
    bottom: -6.86%;
    left: -4.9%;
    width: auto;
    height: auto;
    object-fit: contain;
  }

  .worry-item__icon-img--leave {
    position: absolute;
    left: 10.29%;
    top: 15.19%;
    width: 79.9%;
    height: 84.8%;
    object-fit: contain;
  }

  .worry-item__text {
    width: calc(185 * 100vw / 390);
    flex-shrink: 0;
    font-family: var(--font-jp);
    font-size: calc(16 * 100vw / 390);
    font-weight: 500;
    font-style: normal;
    line-height: 1.7;
    text-align: left;
    color: var(--c-text);
  }

  .worry-item__text p {
    margin: 0;
    line-height: 1.7;
    text-decoration: underline;
    text-decoration-color: #a0a0a0;
    text-decoration-style: dotted;
    text-decoration-thickness: 13%;
    text-underline-offset: 0.12em;
  }

  .worry-item__break--sp {
    display: inline;
  }
  .worry__tagline {
    width: calc(342 * 100vw / 390);
    margin: calc(30 * 100vw / 390) auto 0;
    font-size: calc(20 * 100vw / 390);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: calc(1.4 * 100vw / 390);
    text-align: center;
    color: var(--c-brand);
  }

  .worry__tagline-br {
    display: block;
  }

  .worry__dots {
    width: calc(10 * 100vw / 390);
    height: calc(76 * 100vw / 390);
    max-width: none;
    margin: calc(27 * 100vw / 390) auto 0;
    flex-shrink: 0;
  }


  .profile {

    background: var(--c-brand);
  }

  .profile__hero,
  .profile__content {
    display: block;
  }

  .profile__radial--pc,
  .profile__circle--pc {
    display: none;
  }

  .profile__radial--sp,
  .profile__circle--sp,
  .profile__message-fade,
  .profile__message-card {
    display: block;
  }

  .profile__photo-img--pc {

    object-fit: fill;
    object-position: center;
    transform: none;
  }

  .profile__message-more {
    display: inline-flex;
  }

  .profile__creds-note {
    display: inline;
    font-size: calc(14 * 100vw / 390);
    font-weight: 700;
  }

  .profile__shell {
    min-height: 0;
    padding-top: calc(771 * 100vw / 390);

    padding-bottom: calc(13 * 100vw / 390);
    padding-inline: 0;
    max-width: none;
    overflow: visible;
  }

  .profile__bg {
    overflow: visible;
  }

  .profile__radial--sp {
    position: absolute;
    top: calc(-17.56 * 100vw / 390);
    right: calc(-45.13 * 100vw / 390);
    bottom: calc(-36.62 * 100vw / 390);
    left: calc(-45.13 * 100vw / 390);
    width: auto;
    height: auto;
    max-width: none;
    object-fit: fill;
  }

  .profile__circle--sp {

    position: absolute;
    top: calc(50 * 100vw / 390);
    bottom: auto;
    left: calc(50% + 10.5 * 100vw / 390);
    width: calc(673 * 100vw / 390);
    height: calc(674 * 100vw / 390);
    max-width: none;
    transform: translateX(-50%);
    object-fit: fill;
  }

  .profile__glass {
    top: calc(30 * 100vw / 390);
    left: calc(-73 * 100vw / 390);
    width: calc(639 * 100vw / 390);
    height: calc(2505 * 100vw / 390);
    bottom: auto;
    background: rgba(38, 66, 68, 0.4);
    backdrop-filter: blur(27px);
    -webkit-backdrop-filter: blur(27px);
  }

  .profile__stage {
    min-height: 0;
    padding-block: 0;
    width: 100%;
  }

  .profile__content {
    position: relative;
    z-index: 4;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: calc(60 * 100vw / 390);
    width: calc(350 * 100vw / 390);
    margin-inline: calc(20 * 100vw / 390);
  }

  .profile__head {
    position: absolute;
    top: calc(130 * 100vw / 390);
    left: calc(20 * 100vw / 390);
    right: auto;
    transform: none;
    z-index: 4;
    width: calc(350 * 100vw / 390);
    margin: 0;
    flex-direction: column;
    align-items: center;
    gap: calc(15 * 100vw / 390);
    text-align: center;
  }

  .profile__head .sec-head__line {
    display: none;
  }

  .profile__head .sec-head__line-h {
    display: block;
    width: calc(54 * 100vw / 390);
    height: calc(5 * 100vw / 390);
    max-width: none;
    flex-shrink: 0;
  }

  .profile__head .sec-head__labels {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(6 * 100vw / 390);
    width: 100%;
  }

  .profile__head .sec-head__jp {
    order: 1;
    font-size: calc(30 * 100vw / 390);
    font-weight: 500;
    line-height: 1.16;
    letter-spacing: calc(2.1 * 100vw / 390);
    color: var(--c-white);
  }

  .profile__head .sec-head__en {
    order: 2;
    font-size: calc(16 * 100vw / 390);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: calc(2.4 * 100vw / 390);
    color: #c9fbff;
    margin-bottom: 0;
  }

  .profile__hero {
    position: absolute;
    top: calc(239 * 100vw / 390);
    left: 0;
    right: 0;
    height: calc(562 * 100vw / 390);
    z-index: 2;
    pointer-events: none;
    overflow: visible;
  }

  .profile__photo {
    position: absolute;
    top: 0;
    left: calc(-45 * 100vw / 390);
    width: calc(451 * 100vw / 390);
    height: calc(561 * 100vw / 390);
    margin: 0;
    z-index: 2;
    pointer-events: none;
    overflow: visible;
  }

  .profile__photo-inner {
    width: 100%;
    height: 100%;
    transform: none;
    overflow: visible;

    -webkit-mask-image: linear-gradient(
      180deg,
      #000 0%,
      #000 77.2%,
      transparent 100%
    );
    mask-image: linear-gradient(
      180deg,
      #000 0%,
      #000 77.2%,
      transparent 100%
    );
  }

  .profile__vlabel {
    display: flex;
    pointer-events: none;
    z-index: 3;
  }

  .profile__vlabel--company {
    top: calc(0.57 * 100vw / 390);
    left: calc(334 * 100vw / 390);
    width: calc(28 * 100vw / 390);
    height: calc(273.942 * 100vw / 390);
    padding: calc(12.727 * 100vw / 390) calc(6.5 * 100vw / 390);
    box-shadow: calc(1.273 * 100vw / 390) calc(2.545 * 100vw / 390)
      calc(2.545 * 100vw / 390) rgba(0, 0, 0, 0.25);
  }

  .profile__vlabel--company img {
    width: calc(15 * 100vw / 390);
    height: calc(249 * 100vw / 390);
  }

  .profile__vlabel--rep {
    top: calc(76.57 * 100vw / 390);
    left: calc(284 * 100vw / 390);
    width: calc(38.649 * 100vw / 390);
    height: calc(263 * 100vw / 390);
    padding: calc(17.568 * 100vw / 390) calc(6.943 * 100vw / 390);
    box-shadow: calc(1.757 * 100vw / 390) calc(3.514 * 100vw / 390)
      calc(3.514 * 100vw / 390) rgba(0, 0, 0, 0.25);
  }

  .profile__vlabel--rep img {
    width: calc(24.763 * 100vw / 390);
    height: calc(227.864 * 100vw / 390);
  }



  /* .profile__hero-fade::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: calc(79 * 100vw / 390);
    background: linear-gradient(
      180deg,
      rgba(15, 119, 126, 0) 0%,
      #0f777e 90%
    );
  } */

  .profile__creds {
    position: absolute;
    top: calc(436 * 100vw / 390);
    left: calc(21 * 100vw / 390);
    width: calc(349 * 100vw / 390);
    margin: 0;
    gap: calc(5 * 100vw / 390);
    color: var(--c-white);
    filter: drop-shadow(0 0 2px rgba(0, 0, 0, 0.45));
  }

  .profile__creds-bullets {
    font-size: calc(10 * 100vw / 390);
    font-weight: 500;
    line-height: 2.31;
  }

  .profile__creds-text {
    font-size: calc(16 * 100vw / 390);
    font-weight: 700;
    line-height: 1.4;
  }

  .profile__message-card {
    position: relative;
    width: 100%;
    height: calc(277 * 100vw / 390);
    flex-shrink: 0;
  }

  .profile__message-card.is-expanded {
    height: auto;
  }

  .profile__message {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    width: 100%;
    height: calc(256 * 100vw / 390);
    margin: 0;
    padding: calc(15 * 100vw / 390);
    overflow: hidden;
    box-sizing: border-box;
    border: calc(2 * 100vw / 390) solid var(--c-white);

    box-shadow: none;
    border-radius: calc(15 * 100vw / 390);
    backdrop-filter: blur(2.5px);
    -webkit-backdrop-filter: blur(2.5px);
    background: transparent;
    color: var(--c-white);
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: calc(10 * 100vw / 390);
  }

  .profile__message-card.is-expanded .profile__message {
    height: auto;
    overflow: visible;
  }

  .profile__message-en {
    font-family: "Roboto Condensed", var(--font-jp);
    font-size: calc(20 * 100vw / 390);
    font-weight: 700;
    letter-spacing: calc(3 * 100vw / 390);
    line-height: 1.1;
    margin: 0;
    text-transform: uppercase;
  }

  .profile__message-body {
    flex: 1;
    min-height: 0;
    overflow: hidden;
  }

  .profile__message-card.is-expanded .profile__message-body {
    height: auto;
    overflow: visible;
  }

  .profile__message-body p {
    font-size: calc(14 * 100vw / 390);
    font-weight: 500;
    line-height: 1.9;

    text-box-trim: normal;

    font-feature-settings: "palt" 0;
    margin: 0 0 calc(27 * 100vw / 390);
    text-decoration-line: underline;
    text-decoration-style: dotted;
    text-decoration-color: #60adb9;
    text-decoration-thickness: calc(1.8 * 100vw / 390);
    text-underline-offset: calc(4 * 100vw / 390);
    text-decoration-skip-ink: none;
  }

  .profile__message-body p:last-child {
    margin-bottom: 0;
  }


  .profile__message-fade {
    position: absolute;
    top: calc(178 * 100vw / 390);
    left: 0;
    right: 0;
    height: calc(79 * 100vw / 390);
    border-radius: 0 0 calc(15 * 100vw / 390) calc(15 * 100vw / 390);

    background: linear-gradient(
      180deg,
      rgba(15, 119, 126, 0) 0%,
      rgba(15, 119, 126, 1) 100%
    );
    pointer-events: none;
    z-index: 2;
    transition: opacity 0.25s ease;
  }

  .profile__message-card.is-expanded .profile__message-fade {
    opacity: 0;
  }


  .profile__message-card.is-expanded .profile__message-more {
    display: none;
  }

  .profile__message-more {
    position: absolute;
    top: calc(231 * 100vw / 390);
    left: 50%;
    bottom: auto;
    transform: translateX(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: calc(10 * 100vw / 390);
    width: calc(214 * 100vw / 390);
    height: calc(46 * 100vw / 390);
    border: calc(1 * 100vw / 390) solid var(--c-white);
    border-radius: calc(47 * 100vw / 390);
    background: #0f777e;
    color: var(--c-white);
    font-family: var(--font-jp);
    font-size: calc(14 * 100vw / 390);
    font-weight: 500;
    line-height: 1.6;
    cursor: pointer;
    padding: 0;
    z-index: 3;
    transition: opacity 0.25s ease;
  }

  .profile__message-more img {
    display: block;
    width: calc(6 * 100vw / 390);
    height: calc(14 * 100vw / 390);
    flex-shrink: 0;

    transform: rotate(90deg);
    transition: transform 0.25s ease;
  }

  .profile__message-card.is-expanded .profile__message-more img {

    transform: rotate(270deg);
  }

  .profile__stage .stats {
    position: static;
    top: auto;
    left: auto;
    right: auto;
    width: 100%;
    height: auto;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    grid-template-rows: repeat(2, calc(149 * 100vw / 390));
    gap: calc(32 * 100vw / 390) calc(18 * 100vw / 390);
    flex-wrap: nowrap;
    justify-content: stretch;

    overflow: visible;
  }

  .profile__stage .stats .stat {
    position: relative;
    width: auto;
    max-width: none;
    height: auto;
    min-height: 0;
    align-self: stretch;
    justify-self: stretch;
  }

  .profile__stage .stats .stat__art--pc {
    display: none;
  }

  .profile__stage .stats .stat__art--sp {

    display: block;
    position: absolute;
    top: calc(-23 * 100vw / 390);
    left: 0;
    width: 100%;
    height: calc(172 * 100vw / 390);
    max-width: none;
  }

  #profile .profile__shell > .profile__cta {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;

    margin-top: calc(53 * 100vw / 390);
    padding-bottom: 0;
    z-index: 3;
  }

  #profile .profile__shell > .profile__cta .cta__panel {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: calc(25 * 100vw / 390);
    width: calc(350 * 100vw / 390);
    max-width: none;
    min-height: calc(290 * 100vw / 390);
    margin-inline: auto;
    padding: calc(12 * 100vw / 390);
    border-radius: calc(20 * 100vw / 390);
    box-sizing: border-box;
  }

  #profile .profile__shell > .profile__cta .cta__panel.is-reveal {
    width: calc(350 * 100vw / 390);
    max-width: none;
    min-height: calc(290 * 100vw / 390);
    border-radius: calc(20 * 100vw / 390);
  }

  #profile .profile__shell > .profile__cta .cta__panel.is-reveal.is-visible {
    width: calc(350 * 100vw / 390);
    max-width: none;
    min-height: calc(290 * 100vw / 390);
    border-radius: calc(20 * 100vw / 390);
  }


  #profile .profile__cta .cta__head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(8 * 100vw / 390);
    width: calc(310.694 * 100vw / 390);
  }

  #profile .profile__cta .cta__watermark--pc {
    display: none;
  }

  #profile .profile__cta .cta__watermark--sp {
    display: block;
    position: static;
    transform: none;
    top: auto;
    left: auto;
    width: 100%;
    height: auto;
  }

  #profile .profile__shell > .profile__cta .cta__btns {
    flex-direction: column;
    align-items: stretch;
    gap: calc(13 * 100vw / 390);
    margin-top: 0;
    width: calc(326 * 100vw / 390);
    margin-inline: auto;
  }

  #profile .profile__cta .cta__title {
    font-size: calc(16 * 100vw / 390);
    letter-spacing: calc(1.12 * 100vw / 390);
    line-height: 1.86;
  }

  #profile .profile__cta .cta__btn {
    width: 100%;
    height: calc(55 * 100vw / 390);
    border-radius: calc(70 * 100vw / 390);
    gap: calc(10 * 100vw / 390);
    padding-left: calc(8 * 100vw / 390);
    justify-content: flex-start;
  }

  #profile .profile__cta .cta__btn--mail {
    font-size: calc(18 * 100vw / 390);
    line-height: 1.6;
    gap: calc(8 * 100vw / 390);
    padding-left: calc(8 * 100vw / 390);
  }

  #profile .profile__cta .cta__btn--tel {
    gap: calc(20 * 100vw / 390);
    padding-left: calc(8 * 100vw / 390);
  }

  #profile .profile__cta .cta__btn-icon {
    width: calc(39 * 100vw / 390);
    height: calc(39 * 100vw / 390);
  }

  #profile .profile__cta .cta__btn-icon img {
    width: calc(22 * 100vw / 390);
    height: calc(22 * 100vw / 390);
  }

  #profile .profile__cta .cta__tel-text {
    gap: 0;
  }

  #profile .profile__cta .cta__tel-num {
    font-size: calc(28 * 100vw / 390);
    line-height: 1.3;
  }

  #profile .profile__cta .cta__tel-time {
    display: none;
  }


  .contact__arc--pc {
    display: none;
  }

  .contact__arc--sp {
    display: block;
    top: calc(-171 * 100vw / 390);
    width: calc(604 * 100vw / 390);
    height: calc(200 * 100vw / 390);
    min-width: 0;
  }

  .contact__bg-core {
    max-width: none;
    margin-inline: 0;
  }

  .contact__texture {
    animation: none;
    transform: none;
    opacity: 1;
  }

  .contact__texture--10 {
    left: calc(-464 * 100vw / 390);
    top: calc(-124 * 100vw / 390);
    width: calc(1012.112 * 100vw / 390);
    opacity: 0.5;
    mix-blend-mode: multiply;
  }

  .contact__texture--11 {
    left: calc(-116 * 100vw / 390);
    top: calc(192 * 100vw / 390);
    width: calc(1012.112 * 100vw / 390);
  }

  .contact__texture--12 {
    left: calc(-121 * 100vw / 390);
    top: calc(-368 * 100vw / 390);
    width: calc(1012.112 * 100vw / 390);
  }

  .contact__texture--13 {
    display: block;
    left: calc(-330 * 100vw / 390);
    top: calc(420 * 100vw / 390);
    width: calc(1012.112 * 100vw / 390);
  }

  .contact__inner {
    width: calc(350 * 100vw / 390);
    max-width: none;
    margin-inline: auto;
    padding: calc(99 * 100vw / 390) 0 calc(64 * 100vw / 390);
  }

  .contact__inner.container {
    padding-inline: 0;
  }

  .contact__inner .sec-head {
    flex-direction: column;
    align-items: center;
    gap: calc(15 * 100vw / 390);
    text-align: center;
  }

  .contact__inner .sec-head__line {
    display: none;
  }

  .contact__inner .sec-head__line-h {
    display: block;
    width: calc(54 * 100vw / 390);
    height: calc(5 * 100vw / 390);
    max-width: none;
    flex-shrink: 0;
  }

  .contact__inner .sec-head__labels {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(6 * 100vw / 390);
    width: 100%;
  }

  .contact__inner .sec-head__jp {
    order: 1;
    font-size: calc(30 * 100vw / 390);
    font-weight: 500;
    line-height: 1.16;
    letter-spacing: calc(2.1 * 100vw / 390);
    color: var(--c-white);
  }

  .contact__inner .sec-head__en {
    order: 2;
    font-family: "Roboto Condensed", var(--font-jp);
    font-size: calc(16 * 100vw / 390);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: calc(2.4 * 100vw / 390);
    text-transform: uppercase;
    margin-bottom: 0;
    color: #c9fbff;
  }

  .contact__card {
    margin-top: calc(40 * 100vw / 390);
    width: 100%;
    border-radius: calc(20 * 100vw / 390);
    padding: calc(40 * 100vw / 390) calc(12 * 100vw / 390);

    border: none;
    box-shadow: inset 0 0 0 calc(2 * 100vw / 390) var(--c-white);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .contact__intro {
    font-size: calc(16 * 100vw / 390);
    letter-spacing: 0;
    width: calc(326 * 100vw / 390);
    max-width: 100%;
    margin-inline: auto;
  }

  .form {
    gap: calc(40 * 100vw / 390);
    align-items: stretch;
  }

  .form__content {
    gap: calc(40 * 100vw / 390);
    align-items: stretch;
    width: 100%;
  }

  .form__fields {
    width: 100%;
    gap: calc(23 * 100vw / 390);
  }

  .form-field {
    gap: calc(3 * 100vw / 390);
    width: 100%;
  }

  .form-row {
    flex-direction: column;
    gap: calc(10 * 100vw / 390);
  }

  .form-row__label {
    width: 100%;
    min-height: 0;
  }

  .form-row__label label {
    font-size: calc(15 * 100vw / 390);
    letter-spacing: calc(0.75 * 100vw / 390);
    line-height: 0.8;
  }

  .form-row__field {
    width: calc(326 * 100vw / 390);
    max-width: 100%;
  }

  .form-row__control {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: calc(8 * 100vw / 390);
    width: calc(326 * 100vw / 390);
  }

  .form-row__field input,
  .form-row__field select,
  .form-row__field textarea {
    flex: 0 0 calc(290 * 100vw / 390);
    width: calc(290 * 100vw / 390);
    max-width: none;
    padding: calc(11 * 100vw / 390) calc(10 * 100vw / 390);
    font-size: calc(15 * 100vw / 390);
    letter-spacing: calc(0.75 * 100vw / 390);
    border-radius: calc(6 * 100vw / 390);
  }


  .form-row__field input {
    line-height: calc(25 * 100vw / 390);
  }

  .form-row__field select {
    height: calc(48 * 100vw / 390);
    line-height: calc(25 * 100vw / 390);
  }


  .form-row__field textarea {
    line-height: 1.7;
    height: calc(126 * 100vw / 390);
    min-height: calc(126 * 100vw / 390);
  }

  .form-row__status {
    flex: 0 0 calc(28 * 100vw / 390);
    width: calc(28 * 100vw / 390);
    height: calc(28 * 100vw / 390);
  }

  .form-row__note {
    width: calc(326 * 100vw / 390);
    margin-left: 0;
    font-size: calc(12 * 100vw / 390);
    letter-spacing: calc(0.24 * 100vw / 390);
  }

  .form-row__field .form-select {
    background-size: calc(11 * 100vw / 390) auto;
    background-position: right calc(10 * 100vw / 390) center;
    padding-right: calc(32 * 100vw / 390);
  }

  .form-row__status--ok img {
    width: calc(10 * 100vw / 390);
  }

  .form-row__status--error img {
    width: calc(8.5 * 100vw / 390);
    height: calc(8.5 * 100vw / 390);
  }

  .form__submit {
    align-self: center;
    width: calc(326 * 100vw / 390);
    height: calc(55 * 100vw / 390);
    font-size: calc(18 * 100vw / 390);
    padding: 0 calc(56 * 100vw / 390) 0 calc(32 * 100vw / 390);
  }


  .form__submit > span:first-of-type::before {
    content: "\3000";
  }

  .form__submit .btn__arrow {
    width: calc(39 * 100vw / 390);
    height: calc(39 * 100vw / 390);
    right: calc(8 * 100vw / 390);
  }

  .form__submit .btn__arrow img {
    width: calc(6 * 100vw / 390);
    height: calc(9 * 100vw / 390);
  }



  .seminar__dots {
    width: 1284px;
    height: 321px;
    max-width: none;
  }

  .seminar__inner {
    width: calc(350 * 100vw / 390);
    max-width: none;
    margin-inline: auto;
    padding: calc(70 * 100vw / 390) 0 calc(70 * 100vw / 390);
  }

  .seminar__inner.container {
    padding-inline: 0;
  }

  .seminar__inner .sec-head {
    flex-direction: column;
    align-items: center;
    gap: calc(15 * 100vw / 390);
    text-align: center;
  }

  .seminar__inner .sec-head__line {
    display: none;
  }

  .seminar__inner .sec-head__line-h {
    display: block;
    width: calc(54 * 100vw / 390);
    height: calc(5 * 100vw / 390);
    max-width: none;
    flex-shrink: 0;
  }

  .seminar__inner .sec-head__labels {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(6 * 100vw / 390);
    width: 100%;
  }

  .seminar__inner .sec-head__jp {
    order: 1;
    font-family: var(--font-jp);
    font-size: calc(30 * 100vw / 390);
    font-weight: 500;
    font-style: normal;
    line-height: 1.16;
    letter-spacing: calc(2.1 * 100vw / 390);
    color: var(--c-text);
  }

  .seminar__inner .sec-head__en {
    order: 2;
    font-family: "Roboto Condensed", var(--font-jp);
    font-size: calc(16 * 100vw / 390);
    font-weight: 700;
    font-style: normal;
    line-height: 1.1;
    letter-spacing: calc(2.4 * 100vw / 390);
    text-transform: uppercase;
    margin-bottom: 0;
    color: var(--c-brand);
  }

  .seminar__list {
    display: flex;
    flex-direction: column;
    gap: calc(15 * 100vw / 390);
    margin-top: calc(40 * 100vw / 390);
    width: 100%;
  }

  .seminar-card {
    max-width: none;
    margin-inline: 0;
    width: 100%;
    border-radius: calc(20 * 100vw / 390);
  }

  .seminar-card__thumb {
    height: calc(221 * 100vw / 390);
  }

  .seminar-card__body {
    padding: calc(15 * 100vw / 390);
    gap: calc(10 * 100vw / 390);
  }

  .seminar-card__head {
    gap: calc(9 * 100vw / 390);
  }


  .seminar-card__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: calc(12 * 100vw / 390);
    line-height: 1;
    box-sizing: border-box;
    min-height: calc(21 * 100vw / 390);
    padding: 0 calc(10 * 100vw / 390);
    border-radius: calc(30 * 100vw / 390);
  }


  .seminar-card:nth-child(1) .seminar-card__thumb img,
  .seminar-card:nth-child(4) .seminar-card__thumb img {
    object-position: center bottom;
  }

  .seminar-card__title {
    font-size: calc(18 * 100vw / 390);
  }

  .seminar-card__line {
    border-top-width: calc(3 * 100vw / 390);
  }

  .seminar-card__desc {
    font-size: calc(14 * 100vw / 390);
  }

  .seminar-card__info {
    border-radius: calc(11 * 100vw / 390);
    padding: calc(6 * 100vw / 390) calc(10 * 100vw / 390);
    font-size: calc(14 * 100vw / 390);
    gap: calc(2 * 100vw / 390);
    line-height: 1.3;
  }

  /* CTA SP */
  .cta {
    padding-bottom: 48px;
  }
  .cta__panel {
    padding: 36px 20px;
    border-radius: 16px;
  }
  .cta__title {
    font-size: 22px;
  }
  .cta__btns {
    flex-direction: column;
    gap: 16px;
    align-items: center;
  }
  .cta__btn {
    height: 72px;
  }
  .cta__btn--mail {
    font-size: 18px;
  }
  .cta__tel-num {
    font-size: 28px;
  }


  .service__jp-br {
    display: revert;
  }

  .service {
    border-radius: calc(30 * 100vw / 390);
    margin-bottom: calc(-48 * 100vw / 390);
    overflow: hidden;
  }

  .service__bg-blob--pc {
    display: none;
  }

  .service__bg-deco--sp {
    display: block;
    position: absolute;
    inset: 0;
  }

  .service__deco {
    position: absolute;
    pointer-events: none;
  }

  .service__deco img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: fill;
  }

  .service__deco-rot {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .service__deco--e19 {
    left: calc(-247.98 * 100vw / 390);
    top: calc(-115 * 100vw / 390);
    width: calc(478.278 * 100vw / 390);
    height: calc(478.278 * 100vw / 390);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .service__deco--e19 .service__deco-rot {
    width: calc(343.734 * 100vw / 390);
    height: calc(343.734 * 100vw / 390);
    transform: rotate(-145.3deg);
  }

  .service__deco--e30 {
    left: calc(9.02 * 100vw / 390);
    top: calc(-107 * 100vw / 390);
    width: calc(188.403 * 100vw / 390);
    height: calc(188.403 * 100vw / 390);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .service__deco--e30 .service__deco-rot {
    width: calc(134.472 * 100vw / 390);
    height: calc(134.472 * 100vw / 390);
    transform: rotate(-127.18deg);
  }

  .service__deco--e28a {
    left: calc(2.02 * 100vw / 390);
    top: calc(-95 * 100vw / 390);
    width: calc(390.868 * 100vw / 390);
    height: calc(390.868 * 100vw / 390);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .service__deco--e28a .service__deco-rot {
    width: calc(280.913 * 100vw / 390);
    height: calc(280.913 * 100vw / 390);
    transform: rotate(-145.3deg);
  }

  .service__deco--vec-c {
    top: calc(-58 * 100vw / 390);
    right: calc(-101.02 * 100vw / 390);
    width: calc(252 * 100vw / 390);
    height: calc(252 * 100vw / 390);
  }

  .service__deco--vec-b {
    top: 28.33%;
    right: 56.92%;
    bottom: 53.52%;
    left: -25.13%;
  }

  .service__deco--e27 {
    left: calc(142.02 * 100vw / 390);
    top: calc(729 * 100vw / 390);
    width: calc(363.083 * 100vw / 390);
    height: calc(363.083 * 100vw / 390);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .service__deco--e27 .service__deco-rot {
    width: calc(260.945 * 100vw / 390);
    height: calc(260.945 * 100vw / 390);
    transform: rotate(-145.3deg);
  }

  .service__deco--e34 {
    left: calc(-78.79 * 100vw / 390);
    top: calc(889.38 * 100vw / 390);
    width: calc(306.59 * 100vw / 390);
    height: calc(306.59 * 100vw / 390);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .service__deco--e34 .service__deco-rot {
    width: calc(242.468 * 100vw / 390);
    height: calc(242.468 * 100vw / 390);
    transform: rotate(161.61deg);
  }

  .service__deco--e28b {
    left: calc(142.02 * 100vw / 390);
    top: calc(1032 * 100vw / 390);
    width: calc(390.868 * 100vw / 390);
    height: calc(390.868 * 100vw / 390);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .service__deco--e28b .service__deco-rot {
    width: calc(280.913 * 100vw / 390);
    height: calc(280.913 * 100vw / 390);
    transform: rotate(-145.3deg);
  }

  .service__deco--vec-a {
    top: 80.2%;
    right: 54.62%;
    bottom: -2.87%;
    left: -39.74%;
  }

  .service__deco--e31 {
    left: calc(-69.74 * 100vw / 390);
    top: calc(725.26 * 100vw / 390);
    width: calc(179.877 * 100vw / 390);
    height: calc(179.877 * 100vw / 390);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .service__deco--e31 .service__deco-rot {
    width: calc(128.387 * 100vw / 390);
    height: calc(128.387 * 100vw / 390);
    transform: rotate(-127.18deg);
  }

  .service__deco--e20 {
    left: calc(160.02 * 100vw / 390);
    top: calc(1239 * 100vw / 390);
    width: calc(389.755 * 100vw / 390);
    height: calc(389.755 * 100vw / 390);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .service__deco--e20 .service__deco-rot {
    width: calc(308.24 * 100vw / 390);
    height: calc(308.24 * 100vw / 390);
    transform: rotate(161.61deg);
  }

  .service__deco--e32 {
    left: calc(304.02 * 100vw / 390);
    top: calc(1254 * 100vw / 390);
    width: calc(162.404 * 100vw / 390);
    height: calc(162.404 * 100vw / 390);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .service__deco--e32 .service__deco-rot {
    width: calc(128.387 * 100vw / 390);
    height: calc(128.387 * 100vw / 390);
    transform: rotate(108.44deg);
  }

  .service__deco--e33 {
    left: calc(316.33 * 100vw / 390);
    top: calc(1303.52 * 100vw / 390);
    width: calc(180.637 * 100vw / 390);
    height: calc(180.637 * 100vw / 390);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .service__deco--e33 .service__deco-rot {
    width: calc(133.319 * 100vw / 390);
    height: calc(133.319 * 100vw / 390);
    transform: rotate(-118.35deg);
  }

  .service__deco--e28c {
    left: calc(8.02 * 100vw / 390);
    top: calc(1347 * 100vw / 390);
    width: calc(390.868 * 100vw / 390);
    height: calc(390.868 * 100vw / 390);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .service__deco--e28c .service__deco-rot {
    width: calc(280.913 * 100vw / 390);
    height: calc(280.913 * 100vw / 390);
    transform: rotate(-145.3deg);
  }

  .service__inner {
    width: calc(350 * 100vw / 390);
    max-width: none;
    margin-inline: auto;
    padding: calc(70 * 100vw / 390) 0 calc(70 * 100vw / 390);
  }

  .service__inner.container {
    padding-inline: 0;
  }

  .service__inner .sec-head {
    flex-direction: column;
    align-items: center;
    gap: calc(15 * 100vw / 390);
    text-align: center;
  }

  .service__inner .sec-head__line {
    display: none;
  }

  .service__inner .sec-head__line-h {
    display: block;
    width: calc(54 * 100vw / 390);
    height: calc(5 * 100vw / 390);
    max-width: none;
    flex-shrink: 0;
  }

  .service__inner .sec-head__labels {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(6 * 100vw / 390);
    width: 100%;
  }

  .service__inner .sec-head__jp {
    order: 1;
    font-family: var(--font-jp);
    font-size: calc(30 * 100vw / 390);
    font-weight: 500;
    font-style: normal;
    line-height: 1.16;
    letter-spacing: calc(2.1 * 100vw / 390);
    color: var(--c-text);
  }

  .service__inner .sec-head__en {
    order: 2;
    font-family: "Roboto Condensed", var(--font-jp);
    font-size: calc(16 * 100vw / 390);
    font-weight: 700;
    font-style: normal;
    line-height: 1.1;
    letter-spacing: calc(2.4 * 100vw / 390);
    text-transform: uppercase;
    margin-bottom: 0;
    color: var(--c-brand);
  }

  .service__list {
    display: flex;
    flex-direction: column;
    gap: calc(21 * 100vw / 390);
    margin-top: calc(40 * 100vw / 390);
    width: 100%;
    position: relative;
    z-index: 1;
  }

  .svc-card {
    position: relative;
    z-index: 1;
    isolation: isolate;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas:
      "head"
      "desc";
    align-items: stretch;
    width: 100%;

    font-feature-settings: "palt" 0;
  }

  .svc-card__ribbon {
    grid-area: head;
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: none;

    min-height: calc(86 * 100vw / 390);
    margin-bottom: 0;
    padding: calc(10 * 100vw / 390) calc(20 * 100vw / 390);
    padding-left: calc(101 * 100vw / 390); /* 20 + icon 66 + gap 15 */
    display: flex;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
    color: var(--c-white);
    background: var(--c-brand);
    border-radius: calc(15 * 100vw / 390) calc(15 * 100vw / 390) 0 0;
  }

  .svc-card__ribbon::before,
  .svc-card__ribbon::after {
    display: none;
  }

  .svc-card__ribbon > span {
    max-width: none;
    width: 100%;
  }

  .svc-card__ribbon b {
    font-family: var(--font-jp);
    font-size: calc(20 * 100vw / 390);
    font-weight: 500;
    font-style: normal;
    line-height: 1.45;
  }

  .svc-card__ribbon small {
    font-family: var(--font-jp);
    font-size: calc(16 * 100vw / 390);
    font-weight: 500;
    font-style: normal;
    line-height: 1.45;
  }

  .svc-card__body {
    display: contents;
  }

  .svc-card__icon {
    grid-area: head;
    position: relative;
    z-index: 2;
    justify-self: start;
    align-self: center;
    margin-left: calc(20 * 100vw / 390);
    width: calc(66 * 100vw / 390);
    height: calc(66 * 100vw / 390);
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--c-brand-light);
    display: flex;
    align-items: center;
    justify-content: center;
  }


  .svc-card__icon img {
    width: auto;
    height: auto;
  }
  .svc-card:nth-child(1) .svc-card__icon img {
    width: calc(53 * 100vw / 390);
  }
  .svc-card:nth-child(2) .svc-card__icon img {
    width: calc(38 * 100vw / 390);
  }
  .svc-card:nth-child(3) .svc-card__icon img {
    width: calc(47 * 100vw / 390);
  }
  .svc-card:nth-child(4) .svc-card__icon img {
    width: calc(41 * 100vw / 390);
  }
  .svc-card:nth-child(5) .svc-card__icon img {
    width: calc(40 * 100vw / 390);
  }
  .svc-card:nth-child(6) .svc-card__icon img {
    width: calc(37 * 100vw / 390);
  }

  .svc-card__desc {
    grid-area: desc;
    width: 100%;
    max-width: none;
    margin-inline: 0;
    background: var(--c-white);
    padding: calc(20 * 100vw / 390) calc(15 * 100vw / 390);
    border-radius: 0 0 calc(15 * 100vw / 390) calc(15 * 100vw / 390);
    font-family: var(--font-jp);
    font-size: calc(14 * 100vw / 390);
    font-weight: 400;
    font-style: normal;
    line-height: 1.5;
    text-align: left;
    color: var(--c-text);
    word-break: break-word;
    overflow-wrap: break-word;
    letter-spacing: 0.04em;
  }


  .footer__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(50 * 100vw / 390);
    padding: calc(58.17 * 100vw / 390) 0 0;
  }

  .footer__inner.container {
    padding-inline: 0;
    max-width: none;
  }

  .footer__left,
  .footer__right {
    display: contents;
  }

  .footer__logo {
    order: 1;
    width: calc(286 * 100vw / 390);
    height: calc(54.654 * 100vw / 390);
    margin: 0;
    object-fit: contain;
  }

  .footer__logo--pc {
    display: none;
  }

  .footer__logo--sp {
    display: block;
    max-width: none;
  }

  .footer__nav {
    order: 2;
    flex-direction: column;
    gap: calc(2 * 100vw / 390);
    width: 100%;
  }

  .footer__nav ul {
    display: flex;
    flex-direction: column;
    gap: calc(2 * 100vw / 390);
    width: 100%;
  }

  .footer__nav li {
    width: 100%;
  }

  .footer__nav a {
    display: flex;
    align-items: center;
    gap: calc(50 * 100vw / 390);
    width: 100%;
    height: calc(56 * 100vw / 390);
    padding-inline: calc(30 * 100vw / 390);
    background: #131313;
    font-family: var(--font-jp);
    font-size: calc(16 * 100vw / 390);
    font-weight: 400;
    font-style: normal;
    letter-spacing: calc(1.6 * 100vw / 390);
    line-height: 1.5;
    color: var(--c-white);
  }

  .footer__nav a:hover {
    color: var(--c-white);
  }

  .footer__nav-label {
    display: block;
    flex: 0 0 calc(262 * 100vw / 390);
    width: calc(262 * 100vw / 390);
    max-width: calc(262 * 100vw / 390);
  }

  .footer__nav-chevron {
    display: block;
    flex-shrink: 0;
    width: calc(39 * 100vw / 390);
    height: calc(39 * 100vw / 390);
    max-width: none;
  }

  .footer__company {
    order: 3;
    align-items: center;
    text-align: center;
    gap: 0;
    width: calc(353 * 100vw / 390);
  }

  .footer__company-group {
    gap: calc(14 * 100vw / 390);
    align-items: center;
    width: 100%;
  }

  .footer__address--pc {
    display: none;
  }

  .footer__address--sp {
    display: block;
    width: 100%;
    line-height: 0;
  }

  .footer__address--sp p {
    font-family: var(--font-jp);
    font-size: calc(16 * 100vw / 390);
    font-weight: 500;
    font-style: normal;
    letter-spacing: calc(1.6 * 100vw / 390);
    line-height: 1.6;
    margin: 0;
    width: 100%;
  }

  .footer__company-name,
  .footer__company-name small {
    font-family: var(--font-jp);
    font-weight: 500;
    font-style: normal;
    letter-spacing: calc(1.6 * 100vw / 390);
    line-height: 1.6;
    width: 100%;
  }

  .footer__company-name {
    font-size: calc(16 * 100vw / 390);
  }

  .footer__company-name small {
    font-size: calc(14 * 100vw / 390);
    font-weight: 400;
  }

  .footer__tel {
    display: none;
  }

  .footer__actions {
    order: 4;
    align-items: center;
    gap: calc(20 * 100vw / 390);
    width: calc(326 * 100vw / 390);
    margin-top: calc(-10 * 100vw / 390);
  }

  .footer__contact {
    display: block;
    position: relative;
    width: 100%;
    max-width: none;
    height: calc(55 * 100vw / 390);
    padding: 0;
    background: #000;
    border: calc(1 * 100vw / 390) solid var(--c-white);
    border-radius: calc(70 * 100vw / 390);
    overflow: hidden;
  }

  .footer__contact.footer__contact--tel {
    display: block;
  }

  .footer__contact > * {
    position: absolute;
    z-index: 1;
  }

  .footer__contact--mail .footer__contact-icon,
  .footer__contact--tel .footer__contact-icon {

    left: calc(6 * 100vw / 390);
    top: calc(6 * 100vw / 390);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--c-white);
  }

  .footer__contact--tel .footer__contact-tel-num {
    left: calc(73 * 100vw / 390);
    top: calc(4 * 100vw / 390);
  }

  .footer__contact-label--pc,
  .footer__contact-icon-img--pc {
    display: none;
  }

  .footer__contact-label--sp {
    display: block;

    left: calc(53 * 100vw / 390);
    top: calc(11 * 100vw / 390);
    font-family: var(--font-jp);
    font-size: calc(18 * 100vw / 390);
    font-weight: 500;
    font-style: normal;
    line-height: 1.6;
    letter-spacing: 0;
    white-space: nowrap;
    width: auto;
    text-align: left;
  }

  .footer__contact-icon {
    flex-shrink: 0;
    width: calc(39 * 100vw / 390);
    height: calc(39 * 100vw / 390);
    border-radius: calc(30.952 * 100vw / 390);
  }


  .footer__contact-icon-img--sp {
    display: block;
    width: calc(20.943 * 100vw / 390);
    height: calc(15.019 * 100vw / 390);
    max-width: none;
  }

  .footer__contact--tel .footer__contact-icon img {
    width: calc(22.5 * 100vw / 390);
    height: calc(22.558 * 100vw / 390);
    max-width: none;
  }

  .footer__contact-tel-num {
    font-family: "Roboto", var(--font-jp);
    font-weight: 700;
    font-size: calc(26 * 100vw / 390);
    line-height: 1.3;
    letter-spacing: 0;
    white-space: nowrap;
  }
  .footer__contact-tel-small{
    font-size: calc(14 * 100vw / 390);
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: calc(1.4 * 100vw / 390);
    color: var(--c-white);
    text-align: left;
    white-space: nowrap;
    width: auto;
    display: block;
    margin-top: calc(-8 * 100vw / 390);
    margin-left: calc(30 * 100vw / 390);
  }

  .footer__copy-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(21 * 100vw / 390);
    width: 100%;
    margin-top: calc(50 * 100vw / 390);
  }

  .footer__copy-divider {
    display: block;
    width: calc(342 * 100vw / 390);
    height: auto;
    max-width: none;
  }

  .footer__copy {
    padding: 0 0 calc(20 * 100vw / 390);
    font-family: var(--font-jp);
    font-size: calc(14 * 100vw / 390);
    font-weight: 400;
    font-style: normal;
    letter-spacing: calc(0.56 * 100vw / 390);
    line-height: 1.8;
  }

  .footer__copy::before {
    display: none;
  }

  .pagetop {
    display: none;
  }


  .privacy-hero {
    height: calc(427 * 100vw / 390);
    min-height: 0;
    padding-bottom: calc(210 * 100vw / 390);
    margin-bottom: calc(-210 * 100vw / 390);
  }

  .privacy-hero__bg-inner {
    left: 0;
    top: calc(-72 * 100vw / 390);
    width: 100%;
    max-width: none;
    height: calc(499 * 100vw / 390);
    transform: none;
  }

  .privacy-deco--v2,
  .privacy-deco--v3,
  .privacy-deco--e19,
  .privacy-deco--e21,
  .privacy-deco--e22,
  .privacy-deco--e23,
  .privacy-deco--e26,
  .privacy-deco--e27,
  .privacy-deco--e24 {
    display: none;
  }

  .privacy-deco--sp-vec,
  .privacy-deco--sp-e19,
  .privacy-deco--sp-e27,
  .privacy-deco--sp-e23,
  .privacy-deco--sp-e30 {
    display: block;
  }


  .privacy-deco--sp-vec {
    top: calc(-22 * 100vw / 390);
    right: calc(-100.05 * 100vw / 390);
    left: auto;
    width: calc(252 * 100vw / 390);
    height: calc(252 * 100vw / 390);
  }

  .privacy-deco--sp-e19 {
    left: calc(-248.95 * 100vw / 390);
    top: calc(-79 * 100vw / 390);
    width: calc(478.278 * 100vw / 390);
    height: calc(478.278 * 100vw / 390);
    display: grid;
    place-items: center;
  }

  .privacy-deco--sp-e19 .privacy-deco__spin {
    width: calc(343.734 * 100vw / 390);
    height: calc(343.734 * 100vw / 390);
  }

  .privacy-deco--sp-e27 {
    left: calc(140.7 * 100vw / 390);
    top: calc(135.68 * 100vw / 390);
    width: calc(363.723 * 100vw / 390);
    height: calc(363.723 * 100vw / 390);
    display: grid;
    place-items: center;
  }

  .privacy-deco--sp-e27 .privacy-deco__spin {
    width: calc(260.945 * 100vw / 390);
    height: calc(260.945 * 100vw / 390);
  }

  .privacy-deco--sp-e23 {
    left: calc(1.05 * 100vw / 390);
    top: calc(-59 * 100vw / 390);
    width: calc(390.868 * 100vw / 390);
    height: calc(390.868 * 100vw / 390);
    display: grid;
    place-items: center;
  }

  .privacy-deco--sp-e23 .privacy-deco__spin {
    width: calc(280.913 * 100vw / 390);
    height: calc(280.913 * 100vw / 390);
  }


  .privacy-deco--sp-e30 {
    left: calc(13.85 * 100vw / 390);
    top: calc(218.63 * 100vw / 390);
    width: calc(261.633 * 100vw / 390);
    height: calc(261.633 * 100vw / 390);
    display: grid;
    place-items: center;
  }

  .privacy-deco--sp-e30 .privacy-deco__spin {
    width: calc(186.739 * 100vw / 390);
    height: calc(186.739 * 100vw / 390);
  }

  .privacy-hero__content {
    position: relative;
    height: 100%;
    min-height: 0;
    padding-inline: 0;
  }

  .privacy-hero__content.container {
    max-width: none;
    padding-inline: 0;
  }


  .privacy-hero .breadcrumb {
    position: absolute;
    top: calc(1 * 100vw / 390);
    left: 0;
    right: 0;
    padding: calc(20 * 100vw / 390) calc(80 * 100vw / 390)
      calc(10 * 100vw / 390) calc(20 * 100vw / 390);
  }


  .privacy-hero__head {
    position: absolute;
    top: calc(78 * 100vw / 390);
    left: calc(16 * 100vw / 390);
    width: calc(350 * 100vw / 390);
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(15 * 100vw / 390);
    text-align: center;
  }

  .privacy-hero__head .sec-head__line {
    display: none;
  }

  .privacy-hero__head .sec-head__line-h {
    display: block;
    width: calc(54 * 100vw / 390);
    height: calc(5 * 100vw / 390);
    max-width: none;
    flex-shrink: 0;
  }

  .privacy-hero__head .sec-head__labels {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(6 * 100vw / 390);
    width: 100%;
  }

  .privacy-hero__head .sec-head__jp {
    order: 1;
    font-family: var(--font-jp);
    font-size: calc(30 * 100vw / 390);
    font-weight: 500;
    font-style: normal;
    line-height: 1.16;
    letter-spacing: calc(2.1 * 100vw / 390);
    color: var(--c-text);
    width: 100%;
    font-feature-settings: "palt" 0;
    white-space: nowrap;
  }

  .privacy-hero__head .sec-head__en {
    order: 2;
    font-family: "Roboto Condensed", var(--font-jp);
    font-size: calc(16 * 100vw / 390);
    font-weight: 700;
    font-style: normal;
    line-height: 1.1;
    letter-spacing: calc(2.4 * 100vw / 390);
    text-transform: uppercase;
    margin-bottom: 0;
    color: var(--c-brand);
  }

  .privacy-body__inner {
    border-radius: calc(50 * 100vw / 390) calc(50 * 100vw / 390) 0 0;
    padding-block: calc(70 * 100vw / 390);
    padding-inline: calc(20 * 100vw / 390);
  }

  .privacy-body__inner.container {
    max-width: none;
    padding-inline: calc(20 * 100vw / 390);
  }

  .privacy-prose {
    gap: calc(30 * 100vw / 390);
    width: 100%;
    max-width: none;
    margin-inline: 0;
    font-feature-settings: "palt" 0;
  }

  .privacy-prose__lead,
  .privacy-block p,
  .privacy-list {
    font-size: calc(14 * 100vw / 390);
    line-height: 1.6;
  }

  .privacy-block {
    gap: calc(3 * 100vw / 390);
  }

  .privacy-block__title {
    font-size: calc(18 * 100vw / 390);
    line-height: 1.7;
  }

  .privacy-list li {
    padding-left: calc(17 * 100vw / 390);
  }

  .privacy-contact {
    font-size: calc(16 * 100vw / 390);
    line-height: 1.7;
  }

  .privacy-contact__name {
    font-size: calc(18 * 100vw / 390);
    line-height: 1.7;
  }


  .error-page {
    background: #99d7db;
  }

  .error-hero {
    height: calc(607 * 100vw / 390);
    min-height: 0;
    background: #99d7db;
  }

  .error-hero__bg-inner {
    left: 0;
    top: calc(-72 * 100vw / 390);
    width: 100%;
    max-width: none;
    height: calc(679 * 100vw / 390);
    transform: none;
  }

  .error-hero__texture-layer {
    left: 0;
    top: calc(-72 * 100vw / 390);
    width: 100%;
    height: calc(679 * 100vw / 390);
  }

  .error-hero__fill {
    display: none;
  }

  .error-hero__texture--10 {
    display: block;
    left: calc(-464 * 100vw / 390);
    top: calc(-124 * 100vw / 390);
    width: calc(1012.112 * 100vw / 390);
    mix-blend-mode: multiply;
    --tex-delay: 0s;
  }

  .error-hero__texture--11 {
    left: calc(-116 * 100vw / 390);
    top: calc(192 * 100vw / 390);
    width: calc(1012.112 * 100vw / 390);
    --tex-delay: -4s;
  }

  .error-hero__texture--12 {
    left: calc(-121 * 100vw / 390);
    top: calc(-368 * 100vw / 390);
    width: calc(1012.112 * 100vw / 390);
    --tex-delay: -4s;
  }


  .error-hero__content {
    max-width: calc(326 * 100vw / 390);
    padding: calc(134 * 100vw / 390) 0 calc(48 * 100vw / 390);
    gap: calc(40 * 100vw / 390);
  }

  .error-hero__head {
    gap: calc(16 * 100vw / 390);
    width: calc(231.533 * 100vw / 390);
  }

  .error-hero__code {
    width: calc(182 * 100vw / 390);
  }

  .error-hero__en {
    font-size: calc(25 * 100vw / 390);
    letter-spacing: calc(3.75 * 100vw / 390);
  }

  .error-hero__message {
    font-size: calc(16 * 100vw / 390);
    font-weight: 500;
    line-height: 1.54;
    letter-spacing: calc(1.12 * 100vw / 390);
    width: 100%;
    font-feature-settings: "palt" 0;
  }

  .error-hero__btn {
    width: calc(326 * 100vw / 390);
    height: calc(55 * 100vw / 390);
    font-size: calc(18 * 100vw / 390);
  }
}


@media (min-width: 768px) and (max-width: 1279px) {
  body {
    width: 1280px;
    zoom: var(--zoom, 1);
  }


  .header__inner {
    padding-left: 80px;
    gap: 48px;
  }


  .stack-section {
    min-height: calc(100vh / var(--zoom, 1));
    min-height: calc(100dvh / var(--zoom, 1));
  }


  .news__bg-core::before,
  .news__mask,
  .news__texture-layer,
  .error-hero__bg::before,
  .error-hero__texture-layer {
    left: 0;
    width: 100%;
  }
}

/* ===== WordPress: contact form notices ===== */
.contact__notice {
  margin: 0 0 24px;
  padding: 14px 18px;
  border-radius: 8px;
  font-size: 14px;
  line-height: 1.6;
}

.contact__notice--is-success {
  background: #e8f7f0;
  color: #0d5c3d;
}

.contact__notice--is-error {
  background: #fdecec;
  color: #9b1c1c;
}

/* ===== WordPress: nội dung Privacy nhập từ trình soạn thảo =====
   Style cho HTML thường (h2/p/ul/a) do editor sinh ra, khớp thiết kế. */
.privacy-prose__rich {
  font-size: 16px;
  line-height: 1.7;
}

.privacy-prose__rich > *:first-child {
  margin-top: 0;
}

.privacy-prose__rich > *:last-child {
  margin-bottom: 0;
}

.privacy-prose__rich h2,
.privacy-prose__rich h3 {
  font-size: 20px;
  font-weight: 600;
  line-height: 1.7;
  margin: 40px 0 10px;
}

.privacy-prose__rich p {
  font-size: 16px;
  line-height: 1.7;
  margin: 0 0 16px;
}

.privacy-prose__rich ul,
.privacy-prose__rich ol {
  list-style: none;
  padding: 0;
  margin: 0 0 16px;
}

.privacy-prose__rich ul li {
  position: relative;
  padding-left: 1.1em;
  font-size: 16px;
  line-height: 1.7;
}

.privacy-prose__rich ul li::before {
  content: "・";
  position: absolute;
  left: 0;
}

.privacy-prose__rich ol {
  counter-reset: mmj-ol;
}

.privacy-prose__rich ol li {
  position: relative;
  padding-left: 1.6em;
  font-size: 16px;
  line-height: 1.7;
  counter-increment: mmj-ol;
}

.privacy-prose__rich ol li::before {
  content: counter(mmj-ol) ".";
  position: absolute;
  left: 0;
}

.privacy-prose__rich a {
  color: #006fff;
  text-decoration: underline;
  text-underline-position: from-font;
}

.privacy-prose__rich a[href^="tel:"] {
  color: inherit;
  text-decoration: none;
}

/* ===== WordPress: seminar badge rỗng =====
   Khi バッジ không set → ẩn hiển thị nhưng vẫn giữ khoảng trống (không lệch layout). */
.seminar-card__badge--empty {
  visibility: hidden;
}

.seminar-card__badge--empty::before {
  content: "\00a0";
}
