@media (max-width: 767.98px) {
  :root {
    --header-offset: 80px;
  }

  .ts-header__inner {
    padding-block: 12px;
    gap: 12px;
  }

  .ts-brand-wrap {
    gap: 12px;
  }

  .ts-brand img {
    width: 108px;
  }

  .ts-header.is-open .ts-header__right {
    margin-top: 8px;
    margin-bottom: 0;
    padding: 12px;
    gap: 12px;
  }

  .ts-nav__link {
    padding: 8px 6px;
  }

  .ts-nav__item--has-children .ts-nav__link {
    display: block;
  }

  .ts-nav__item--has-children .ts-nav__dropdown-toggle,
  .ts-nav__item--has-children .ts-nav__dropdown-label,
  .ts-nav__item--has-children .ts-nav__submenu {
    display: none !important;
  }

  .ts-nav__sublink {
    padding: 14px 10px;
  }

  .ts-nav__link:hover,
  .ts-nav__link:focus-visible,
  .ts-nav__dropdown-label:hover,
  .ts-nav__dropdown-label:focus-visible,
  .ts-nav__sublink:hover,
  .ts-nav__sublink:focus-visible {
    background: transparent;
  }

  .ts-reserve {
    width: 100%;
    min-height: 64px;
    justify-content: center;
    position: relative;
    padding-inline: 56px;
  }

  .ts-reserve__copy {
    align-items: center;
    gap: 2px;
    padding-top: 0;
    text-align: center;
  }

  .ts-reserve__ja {
    font-size: 16px;
    line-height: 1.35;
    text-align: center;
  }

  .ts-reserve__en {
    font-size: 10px;
    line-height: 1.35;
    text-align: center;
  }

  .ts-reserve__arrow {
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
  }

  .ts-main-visual__stage {
    min-height: 650px;
    padding: 94px var(--edge-padding) 32px;
    gap: 20px;
  }

  .ts-main-visual__bg {
    object-position: 36% 100%;
  }

  .ts-main-visual__copy-wrap {
    width: min(100%, 560px);
    gap: 20px;
    transform: translateY(-144px);
  }

  .ts-main-visual__jp {
    font-size: clamp(26px, 8.2vw, 32px);
    line-height: 1.32;
  }

  .ts-main-visual__en {
    font-size: clamp(48px, 15.6vw, 74px);
    line-height: 0.9;
    letter-spacing: -0.01em;
    transform: translateY(-8px);
    text-shadow:
      0 2px 4px rgba(255, 255, 255, 0.82),
      0 10px 26px rgba(255, 255, 255, 0.72);
  }

  .ts-main-visual__note {
    max-width: calc(100% - 8px);
    margin: 0;
    gap: 10px;
    transform: translateY(-126px);
  }

  .ts-main-visual__note-icon {
    width: 60px;
    height: 60px;
    flex: 0 0 60px;
  }

  .ts-main-visual__note-copy,
  .ts-concept__note-copy {
    transform: rotate(-4deg);
    transform-origin: top left;
    gap: 12px;
  }

  .ts-main-visual__note-text {
    font-size: 11.5px;
    line-height: 1.6;
    letter-spacing: 0.16px;
    white-space: nowrap;
  }

  .ts-concept__note-text {
    font-size: 11.5px;
    line-height: 1.6;
    letter-spacing: 0.16px;
    white-space: nowrap;
  }

  .ts-main-visual__note-line--top,
  .ts-concept__note-line--top {
    width: 94.59px;
    transform: rotate(-5deg);
    transform-origin: top left;
  }

  .ts-main-visual__note-line--bottom,
  .ts-concept__note-line--bottom {
    width: 96.95px;
    transform: rotate(5deg);
    transform-origin: top left;
  }

  .wp-site-blocks > .wp-block-template-part.ts-concept-part,
  .wp-block-template-part.ts-concept-part,
  .ts-concept-part {
    margin-top: -40px !important;
    padding-top: 0 !important;
  }

  .ts-concept {
    padding: 0 0 20px;
  }

  .ts-concept__hero {
    height: 240px;
  }

  .ts-concept__hero-overlay {
    padding-top: 20px;
    gap: 14px;
  }

  .ts-concept__heading {
    gap: 16px;
  }

  .ts-concept__kicker-logo {
    width: 56px;
    height: auto;
  }

  .ts-concept__eyebrow {
    font-size: 20px;
    line-height: 1;
    letter-spacing: 0.3px;
  }

  .ts-concept__title {
    font-size: clamp(22px, 7.2vw, 28px);
    line-height: 1.3;
  }

  .ts-concept__subline {
    width: 100%;
    gap: 8px;
  }

  .ts-concept__subline-text {
    font-size: 11px;
    line-height: 1.35;
  }

  .ts-concept__photo--top {
    display: none;
  }

  .ts-concept__body-row {
    margin-top: 20px;
    gap: 26px;
  }

  .ts-concept__copy-wrap {
    gap: 24px;
  }

  .ts-concept__copy {
    font-size: 15px;
    line-height: 1.9;
    letter-spacing: 0.2px;
  }

  .ts-concept__note {
    margin-top: 18px;
    gap: 12px;
    align-items: flex-start;
  }

  .ts-concept__note-icon {
    width: 84px;
    height: 84px;
    flex: 0 0 84px;
  }

  .ts-concept__photo-column {
    width: 100%;
    min-height: 0;
    margin: 0;
    order: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.62fr);
    grid-template-areas:
      "mid top"
      "mid bottom";
    gap: 10px;
    align-items: start;
  }

  .ts-concept__photo--top-sp {
    display: block;
    position: static;
    grid-area: top;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 4;
    margin: 0;
  }

  .ts-concept__photo--mid {
    position: static;
    grid-area: mid;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 21;
    margin: 0;
  }

  .ts-concept__photo--bottom {
    position: static;
    grid-area: bottom;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    margin: 0;
  }

  .ts-school-image {
    padding: 0 0 56px;
    gap: 20px;
  }

  .ts-school-image__strip {
    grid-auto-columns: minmax(220px, 72vw);
  }

  .ts-school-image__strip.is-auto-loop {
    display: block;
    overflow: hidden;
    touch-action: none;
  }

  .ts-school-image__strip.is-auto-loop .ts-school-image__strip-track {
    display: inline-flex;
    align-items: stretch;
    gap: 8px;
    width: max-content;
    will-change: transform;
    transform: translate3d(0, 0, 0);
  }

  .ts-school-image__strip.is-auto-loop .ts-school-image__strip-image {
    width: clamp(210px, 68vw, 260px);
    min-width: clamp(210px, 68vw, 260px);
    flex: 0 0 clamp(210px, 68vw, 260px);
  }

  .ts-school-image__feature-wrap {
    width: min(calc(100% - 40px), var(--container));
  }

  .ts-school-image__feature-grid {
    grid-template-areas:
      "left"
      "title"
      "right";
  }

  .ts-school-image__caption {
    grid-area: left;
    justify-self: start;
    align-self: end;
    width: fit-content;
    max-width: calc(100% - 24px);
    margin: 0 0 12px 12px;
    text-align: center;
    z-index: 2;
  }

  .ts-school-image__title {
    font-size: 18px;
    line-height: 1.35;
  }

  .ts-activity {
    padding: 150px 0;
  }

  .ts-activity__matrix {
    gap: 28px;
  }

  .ts-activity__lead {
    gap: 18px;
  }

  .ts-activity__pair {
    gap: 18px;
  }

  .ts-activity__photo-card img {
    aspect-ratio: 1 / 1;
  }

  .ts-activity__photo-overlay {
    padding: 16px 14px 14px;
    gap: 12px;
  }

  .ts-activity__badge {
    padding: 2px 4px;
    font-size: 12px;
    line-height: 1.4;
  }

  .ts-activity__kicker-logo {
    width: 56px;
  }

  .ts-activity__eyebrow {
    font-size: 24px;
  }

  .ts-activity__title {
    font-size: clamp(22px, 7.2vw, 28px);
  }

  .ts-activity__subline {
    width: 100%;
  }

  .ts-activity__subline-text {
    font-size: 11px;
  }

  .ts-activity__chips li {
    min-height: 26px;
    padding: 0 8px;
    font-size: 12.5px;
  }

  .ts-activity__price {
    font-size: clamp(34px, 11.6vw, 44px);
  }

  .ts-activity__detail {
    gap: 12px;
  }

  .ts-activity__detail-en {
    font-size: 18px;
    line-height: 1.2;
  }

  .ts-activity__detail-title {
    font-size: 28px;
    line-height: 1.3;
  }

  .ts-activity__detail-text {
    font-size: 15px;
    line-height: 1.85;
    letter-spacing: 0.2px;
  }

  .ts-activity__button {
    font-size: 16px;
    height: 46px;
    padding: 0 10px 0 14px;
    line-height: 1;
  }

  .ts-activity__button-arrow {
    width: 20px;
    height: 20px;
  }

  .ts-coach {
    padding: 108px 0 104px;
  }

  .ts-coach__hero-wrap {
    overflow: visible;
  }

  .ts-coach__hero {
    display: none;
  }

  .ts-coach__hero-wrap::after {
    display: none;
  }

  .ts-coach__frame {
    gap: 28px;
  }

  .ts-coach__hero-overlay {
    position: static;
    inset: auto;
    justify-content: flex-start;
    align-items: flex-start;
    padding: 16px 14px;
  }

  .ts-coach__layout {
    gap: 20px;
  }

  .ts-coach__photos {
    gap: 8px;
  }

  .ts-coach__heading {
    gap: 18px;
  }

  .ts-coach__kicker-logo {
    width: 56px;
  }

  .ts-coach__eyebrow {
    font-size: 24px;
  }

  .ts-coach__title {
    font-size: clamp(22px, 7.2vw, 28px);
    letter-spacing: -0.04em;
  }

  .ts-coach__subline {
    width: 100%;
  }

  .ts-coach__subline-text {
    font-size: 11px;
    white-space: normal;
  }

  .ts-coach__body {
    gap: 28px;
  }

  .ts-coach__copy {
    font-size: 15px;
    line-height: 1.85;
    letter-spacing: 0.2px;
  }

  .ts-coach__button {
    align-self: center;
    font-size: 16px;
    height: 46px;
    padding: 0 10px 0 14px;
    line-height: 1;
  }

  .ts-coach__button-arrow {
    width: 20px;
    height: 20px;
  }

  .ts-coach__note {
    padding-top: 30px;
    gap: 12px;
    align-items: flex-start;
  }

  .ts-coach__note-icon {
    width: 80px;
    height: 80px;
    flex: 0 0 80px;
  }

  .ts-coach__note-copy {
    transform: rotate(-4deg);
    transform-origin: top left;
    gap: 12px;
  }

  .ts-coach__note-line--top {
    width: 94.59px;
    transform: rotate(-5deg);
    transform-origin: top left;
  }

  .ts-coach__note-line--bottom {
    width: 96.95px;
    transform: rotate(5deg);
    transform-origin: top left;
  }

  .ts-flow {
    padding: 108px 0 104px;
  }

  .ts-flow__frame {
    gap: 34px;
  }

  .ts-flow__lead {
    gap: 18px;
  }

  .ts-flow__kicker-logo {
    width: 56px;
  }

  .ts-flow__eyebrow {
    font-size: 24px;
    line-height: 1;
    letter-spacing: 0.3px;
  }

  .ts-flow__title {
    font-size: clamp(22px, 7.2vw, 28px);
    line-height: 1.35;
  }

  .ts-flow__subline {
    width: 100%;
  }

  .ts-flow__subline-text {
    font-size: 11px;
    white-space: normal;
  }

  .ts-flow__content {
    gap: 24px;
  }

  .ts-flow__steps-wrap {
    gap: 14px;
  }

  .ts-flow__steps-title {
    font-size: 24px;
    line-height: 1.35;
    letter-spacing: 0.2px;
  }

  .ts-flow__steps {
    gap: 8px;
  }

  .ts-flow__step {
    width: 154px;
    min-height: 200px;
    flex-basis: 154px;
  }

  .ts-flow__step-body {
    padding: 12px 10px 24px;
    gap: 12px;
  }

  .ts-flow__step-label {
    font-size: 19px;
    line-height: 1.4;
    letter-spacing: 0.3px;
  }

  .ts-flow__arrow {
    width: 14px;
    height: 10px;
    flex-basis: 14px;
  }

  .ts-flow__note {
    font-size: 15px;
    line-height: 1.85;
    letter-spacing: 0.2px;
  }

  .ts-faq {
    padding: 64px 0 50px;
  }

  .ts-faq__frame {
    gap: 44px;
  }

  .ts-faq__lead {
    gap: 18px;
  }

  .ts-faq__kicker-logo {
    width: 56px;
  }

  .ts-faq__eyebrow {
    font-size: 24px;
    line-height: 1;
    letter-spacing: 0.3px;
  }

  .ts-faq__title {
    font-size: clamp(22px, 7.2vw, 28px);
    line-height: 1.35;
  }

  .ts-faq__subline {
    width: 100%;
  }

  .ts-faq__subline-text {
    font-size: 11px;
    white-space: normal;
  }

  .ts-faq__list {
    gap: 28px;
  }

  .ts-faq__item {
    gap: 12px;
  }

  .ts-faq__row {
    align-items: flex-start;
    gap: 12px;
  }

  .ts-faq__badge {
    width: 28px;
    height: 28px;
    flex-basis: 28px;
    font-size: 16px;
    line-height: 1;
  }

  .ts-faq__question {
    font-size: 22px;
    line-height: 1.4;
    letter-spacing: 0.3px;
  }

  .ts-faq__answer {
    font-size: 15px;
    line-height: 1.85;
    letter-spacing: 0.2px;
  }

  .ts-faq__answer--long {
    line-height: 1.9;
  }

  .ts-ocean-gallery {
    padding-bottom: 52px;
  }

  .ts-ocean-gallery__frame {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .ts-ocean-gallery__left,
  .ts-ocean-gallery__right {
    display: contents;
  }

  .ts-ocean-gallery__photo--lead,
  .ts-ocean-gallery__photo--side-bottom {
    grid-column: 1 / -1;
  }

  .ts-ocean-gallery__photo--detail {
    grid-column: 1 / 2;
    width: 100%;
  }

  .ts-ocean-gallery__photo--side-top {
    grid-column: 2 / 3;
  }

  .ts-ocean-gallery__caption-wrap {
    left: 10px;
    right: 10px;
    bottom: 10px;
    max-width: calc(100% - 20px);
  }

  .ts-ocean-gallery__caption {
    white-space: normal;
    font-size: 10.5px;
    line-height: 1.35;
    letter-spacing: 0.16px;
  }

  .ts-footer-cta {
    padding: 28px 0 0;
  }

  .ts-footer-cta__cards {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }

  .ts-footer-cta__card {
    grid-template-columns: 112px minmax(0, 1fr);
  }

  .ts-footer-cta__media {
    aspect-ratio: auto;
    height: 100%;
  }

  .ts-footer-cta__body {
    padding: 14px 12px 14px 14px;
  }

  .ts-footer-cta__phone {
    margin-bottom: 40px;
    gap: 10px;
  }

  .ts-footer-cta__phone-lead {
    font-size: clamp(18px, 5.4vw, 22px);
    line-height: 1.45;
  }

  .ts-footer-cta__phone-number {
    font-size: clamp(36px, 11.6vw, 44px);
    line-height: 1.15;
  }

  .ts-footer-cta__phone-hours {
    font-size: 15px;
  }

  .ts-footer-main {
    min-height: auto;
    padding: 64px 12px 24px;
  }

  .ts-footer-main__collage {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: minmax(108px, 30vw);
    gap: 8px;
    padding: 8px;
  }

  .ts-footer-main__col {
    display: contents;
  }

  .ts-footer-main__tile {
    grid-column: auto;
    grid-row: auto;
    border-radius: 6px;
  }

  .ts-footer-main__tile img {
    height: 100%;
  }

  .ts-footer-main__inner {
    min-height: auto;
    gap: 28px;
  }

  .ts-footer-main__center {
    gap: 12px;
  }

  .ts-footer-main__tagline {
    margin-top: 0;
    margin-bottom: 16px;
    font-size: 11px;
  }

  .ts-footer-main__brand {
    margin-bottom: 16px;
  }

  .ts-footer-main__address {
    margin-bottom: 8px;
    font-size: 12.5px;
  }

  .ts-footer-main__station {
    font-size: 18px;
    margin-bottom: 18px;
  }

  .ts-footer-main__catch-ja {
    font-size: 22px;
    line-height: 1.3;
  }

  .ts-footer-main__catch-en {
    margin-bottom: 10px;
    font-size: 10.5px;
  }

  .ts-footer-main__nav {
    gap: 8px 16px;
    margin-top: 60px;
  }

  .ts-footer-main__nav a {
    font-size: 14px;
  }

  .ts-footer-main__bottom {
    gap: 8px;
  }

  .ts-footer-main__meta {
    gap: 10px;
  }
}

@media (max-width: 389.98px) {
  .ts-main-visual__stage {
    min-height: 610px;
    padding-top: 88px;
  }

  .ts-main-visual__jp {
    font-size: clamp(22px, 7.6vw, 30px);
  }

  .ts-main-visual__en {
    font-size: clamp(42px, 14.2vw, 64px);
  }

  .ts-concept__title {
    font-size: clamp(20px, 7vw, 26px);
  }

  .ts-activity__title,
  .ts-coach__title,
  .ts-flow__title,
  .ts-faq__title {
    font-size: clamp(20px, 7vw, 26px);
  }

  .ts-flow__step {
    width: 146px;
    flex-basis: 146px;
  }

  .ts-footer-main__catch-ja {
    font-size: 22px;
  }
}

@media (min-width: 768px) {
  :root {
    --header-offset: 96px;
  }

  .ts-main-visual__stage {
    min-height: 700px;
    padding: 80px var(--edge-padding) 72px;
  }

  .ts-main-visual__copy-wrap {
    width: min(100%, 520px);
    gap: 48px;
  }

  .ts-main-visual__jp {
    font-size: clamp(42px, 6.2vw, 56px);
  }

  .ts-main-visual__en {
    font-size: clamp(120px, 13vw, 160px);
  }

  .ts-main-visual__note {
    position: absolute;
    left: 40px;
    bottom: 34px;
    margin: 0;
    gap: 20px;
  }

  .ts-main-visual__note-icon {
    width: 88px;
    height: 88px;
  }

  .ts-main-visual__side {
    width: 64px;
    position: absolute;
    right: 0;
    top: 258px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 8px;
  }

  .ts-container {
    width: min(calc(100% - 40px), var(--container));
  }

  .ts-header__inner {
    grid-template-columns: minmax(300px, 1fr) auto;
    gap: 32px;
  }

  .ts-brand__caption {
    display: block;
  }

  .ts-nav-toggle {
    display: none;
  }

  .ts-header__right,
  .ts-header.is-open .ts-header__right {
    display: flex;
    grid-column: auto;
    align-items: center;
    margin-bottom: 0;
    border: 0;
    border-radius: 0;
    padding: 0;
    background: transparent;
    gap: 32px;
  }

  .ts-nav {
    display: flex;
    align-items: center;
    gap: 32px;
  }

  .ts-nav__item {
    position: relative;
    display: inline-flex;
    align-items: center;
  }

  .ts-nav__item--has-children {
    min-height: 36px;
  }

  .ts-nav__dropdown {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 164px;
    position: relative;
  }

  .ts-nav__dropdown-toggle,
  .ts-nav__dropdown-label {
    display: none;
  }

  .ts-nav__submenu {
    position: absolute;
    top: calc(var(--header-offset) - 56px);
    left: 50%;
    transform: translateX(-50%);
    --submenu-hover-bridge: 24px;
    width: auto;
    min-width: 230px;
    max-width: calc(100vw - 40px);
    margin-inline: 0;
    padding: 0;
    border-radius: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    display: none;
    gap: 0;
    overflow: visible;
    z-index: 200;
  }

  .ts-nav__submenu::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 100%;
    height: var(--submenu-hover-bridge);
  }

  .ts-nav__item--has-children:hover .ts-nav__submenu,
  .ts-nav__item--has-children.is-dropdown-open .ts-nav__submenu,
  .ts-nav__item--has-children:focus-within .ts-nav__submenu {
    display: grid;
  }

  .ts-nav__sublink {
    display: block;
    text-align: left;
    line-height: 1.45;
    white-space: nowrap;
    font-size: 15px;
    padding: 12px 18px;
    border-bottom: 1px solid #d2d2d2;
    background: #f7f7f7;
    transition: none;
  }

  .ts-nav__sublink:first-child {
    border-top: 1px solid #d2d2d2;
  }

  .ts-nav__sublink:hover,
  .ts-nav__sublink:focus-visible {
    background: #f7f7f7;
  }

  .ts-nav__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border-radius: 0;
    background: transparent;
    line-height: 1;
    position: relative;
  }

  .ts-nav__item--has-children > .ts-nav__dropdown > .ts-nav__link {
    padding: 0 24px 0 0;
  }

  .ts-nav__item--has-children > .ts-nav__dropdown > .ts-nav__link::after {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    width: 8px;
    height: 8px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-70%) rotate(45deg);
  }

  .ts-nav__link:hover,
  .ts-nav__link:focus-visible {
    background: transparent;
  }

  .ts-reserve {
    width: 256px;
  }

  .wp-block-query {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ts-concept {
    padding: 0 0 48px;
  }

  .ts-concept__hero {
    height: 520px;
  }

  .ts-concept__hero-overlay {
    position: absolute;
    inset: 0;
    padding: 220px 40px 40px;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 40px;
  }

  .ts-concept__heading {
    width: min(100%, 520px);
    gap: 28px;
  }

  .ts-concept__title {
    font-size: clamp(42px, 6.2vw, 56px);
  }

  .ts-concept__subline {
    width: 420px;
  }

  .ts-concept__subline-text {
    white-space: nowrap;
  }

  .ts-concept__photo--top {
    width: 150px;
    height: 200px;
  }

  .ts-concept__body-row {
    margin-top: 32px;
    padding-inline: 24px;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 32px;
  }

  .ts-concept__copy-wrap {
    gap: 48px;
    width: min(100%, 520px);
  }

  .ts-concept__copy {
    font-size: 15px;
    line-height: 30px;
    letter-spacing: 0.3px;
  }

  .ts-concept__note {
    gap: 20px;
  }

  .ts-concept__note-icon {
    width: 112px;
    height: 112px;
  }

  .ts-concept__photo-column {
    width: 220px;
  }

  .ts-concept__photo--mid {
    width: 220px;
    height: 293px;
    margin-top: -80px;
    margin-left: -32px;
    align-self: flex-start;
  }

  .ts-concept__photo--bottom {
    width: 112px;
    height: 149px;
  }

  .ts-school-image {
    padding: 0 0 56px;
    gap: 48px;
  }

  .ts-school-image__strip {
    width: min(calc(100% - 40px), var(--container));
    margin-inline: auto;
    padding-inline: 0;
    overflow: visible;
    grid-auto-flow: row;
    grid-auto-columns: auto;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .ts-school-image__feature-wrap {
    width: min(calc(100% - 40px), var(--container));
  }

  .ts-school-image__feature-grid {
    position: relative;
    grid-template-columns: minmax(0, 10fr) minmax(0, 7fr);
    grid-template-areas:
      "left title"
      "left right";
    gap: 20px 0;
  }

  .ts-school-image__main--left {
    min-height: 420px;
  }

  .ts-school-image__main--right {
    min-height: 280px;
  }

  .ts-school-image__caption {
    grid-area: left;
    justify-self: start;
    align-self: end;
    transform: none;
    margin: 0 0 16px 16px;
    max-width: calc(100% - 32px);
    text-align: center;
    z-index: 2;
  }

  .ts-school-image__title {
    align-self: end;
    justify-self: center;
    width: min(100%, 560px);
  }

  .ts-activity {
    padding: 150px 0;
  }

  .ts-activity__matrix {
    gap: 28px;
  }

  .ts-activity__lead {
    gap: 24px;
  }

  .ts-activity__pair {
    display: flex;
    align-items: center;
    gap: 24px;
  }

  .ts-activity__photo-overlay {
    padding: 18px;
    gap: 14px;
  }

  .ts-activity__photo-card {
    flex: 0 0 48%;
  }

  .ts-activity__detail {
    flex: 1 1 0;
    gap: 18px;
  }

  .ts-activity__title {
    font-size: clamp(44px, 6.8vw, 56px);
  }

  .ts-activity__detail-en {
    font-size: 18px;
    line-height: 1.2;
  }

  .ts-activity__detail-title {
    font-size: 30px;
    line-height: 1.3;
  }

  .ts-activity__detail-text {
    font-size: 14.5px;
    line-height: 1.85;
  }

  .ts-activity__button {
    font-size: 15px;
    height: 44px;
  }

  .ts-coach {
    padding: 152px 0 152px;
  }

  .ts-coach__frame {
    gap: 32px;
  }

  .ts-coach__hero {
    aspect-ratio: auto;
    height: 520px;
  }

  .ts-coach__hero-overlay {
    padding: 36px 32px;
  }

  .ts-coach__heading {
    width: min(100%, 520px);
    gap: 24px;
  }

  .ts-coach__kicker-logo {
    width: 60px;
  }

  .ts-coach__layout {
    display: grid;
    grid-template-columns: minmax(220px, 0.8fr) minmax(0, 1fr);
    gap: 32px;
    align-items: start;
  }

  .ts-coach__photos {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    margin-top: 32px;
  }

  .ts-coach__photo--main {
    width: min(100%, 220px);
  }

  .ts-coach__photo--sub {
    width: min(72%, 160px);
  }

  .ts-coach__photo--small {
    width: min(56%, 120px);
  }

  .ts-coach__title {
    font-size: clamp(40px, 6.6vw, 52px);
    letter-spacing: -0.04em;
  }

  .ts-coach__body {
    gap: 56px;
  }

  .ts-coach__copy-wrap {
    gap: 28px;
  }

  .ts-coach__copy {
    font-size: 15px;
    line-height: 1.9;
    letter-spacing: 0.28px;
  }

  .ts-flow {
    padding: 148px 0 152px;
  }

  .ts-flow__frame {
    gap: 56px;
  }

  .ts-flow__lead {
    gap: 28px;
  }

  .ts-flow__title {
    font-size: clamp(32px, 5.4vw, 40px);
  }

  .ts-flow__steps-wrap {
    gap: 24px;
  }

  .ts-flow__steps {
    gap: 16px;
    padding-bottom: 12px;
  }

  .ts-flow__note {
    font-size: 15px;
    line-height: 1.9;
    letter-spacing: 0.28px;
  }

  .ts-faq {
    padding: 56px 0 160px;
  }

  .ts-faq__frame {
    gap: 72px;
  }

  .ts-faq__lead {
    gap: 28px;
  }

  .ts-faq__title {
    font-size: clamp(34px, 5.2vw, 40px);
  }

  .ts-faq__list {
    gap: 40px;
  }

  .ts-faq__question {
    font-size: 22px;
    line-height: 1.4;
    letter-spacing: 0.3px;
  }

  .ts-faq__answer {
    font-size: 15px;
    line-height: 1.8;
    letter-spacing: 0.24px;
  }

  .ts-ocean-gallery {
    --ocean-content-width: min(calc(100vw - 40px), var(--container));
    padding-bottom: 88px;
  }

  .ts-ocean-gallery__frame {
    width: var(--ocean-content-width);
    margin-inline: auto;
    grid-template-columns: minmax(0, 2.12fr) minmax(0, 1fr);
    align-items: flex-start;
    gap: clamp(16px, 2vw, 24px);
  }

  .ts-ocean-gallery__left {
    gap: clamp(16px, 2.4vw, 32px);
  }

  .ts-ocean-gallery__right {
    gap: clamp(16px, 2vw, 24px);
  }

  .ts-ocean-gallery__photo--detail {
    width: 100%;
    max-width: min(72%, 544px);
  }

  .ts-ocean-gallery__photo--side-top,
  .ts-ocean-gallery__photo--side-bottom {
    width: 100%;
    max-width: none;
  }

  .ts-footer-cta {
    padding: 40px 0 0;
  }

  .ts-footer-cta__inner {
    gap: 32px;
  }

  .ts-footer-cta__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }

  .ts-footer-cta__card {
    grid-template-columns: 160px minmax(0, 1fr);
    min-height: 212px;
  }

  .ts-footer-cta__media {
    aspect-ratio: auto;
    height: 100%;
  }

  .ts-footer-cta__body {
    padding: 18px 18px 18px 20px;
  }

  .ts-footer-cta__button {
    min-height: 48px;
    max-width: 100%;
  }

  .ts-footer-cta__phone {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 12px 20px;
  }

  .ts-footer-cta__phone-contact {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 8px 16px;
  }

  .ts-footer-main {
    min-height: 860px;
    padding: 132px 32px 32px;
  }

  .ts-footer-main__collage {
    --footer-collage-scale: min(1, calc((100vw - 64px) / 1456));
    top: 0;
    bottom: 0;
    right: auto;
    left: 50%;
    width: calc((352px * 4 + 16px * 3) * var(--footer-collage-scale));
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: calc(16px * var(--footer-collage-scale));
    padding: 0;
    transform: translateX(-50%);
  }

  .ts-footer-main__col {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    justify-content: flex-start;
    width: calc(352px * var(--footer-collage-scale));
    gap: calc(16px * var(--footer-collage-scale));
  }

  .ts-footer-main__tile {
    width: 100%;
    border-radius: calc(8px * var(--footer-collage-scale));
  }

  .ts-footer-main__tile img {
    height: auto;
    aspect-ratio: auto;
  }

  .ts-footer-main__inner {
    min-height: 700px;
    gap: 56px;
  }

  .ts-footer-main__center {
    width: min(100%, 920px);
    gap: 18px;
  }

  .ts-footer-main__station {
    font-size: clamp(24px, 3.4vw, 34px);
  }

  .ts-footer-main__catch-ja {
    font-size: clamp(46px, 6.2vw, 72px);
    line-height: 1.18;
  }

  .ts-footer-main__catch-en {
    font-size: 12.8px;
    letter-spacing: 0.3px;
  }

  .ts-footer-main__nav {
    gap: 24px 32px;
    margin-top: 20px;
  }

  .ts-footer-main__nav a {
    font-size: 16px;
  }

  .ts-footer-main__bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
  }

  .ts-footer-main__meta {
    gap: 24px;
  }

  .ts-footer-main__copyright {
    text-align: right;
  }
}

@media (min-width: 1024px) {
  :root {
    --header-offset: 128px;
    --edge-padding: 64px;
  }

  .ts-main-visual__stage {
    min-height: 900px;
    padding: 96px var(--edge-padding);
  }

  .ts-main-visual__copy-wrap {
    width: 568px;
    gap: 64px;
  }

  .ts-main-visual__jp {
    font-size: 56px;
    line-height: 71.68px;
  }

  .ts-main-visual__en {
    font-size: 160px;
    line-height: 140.8px;
  }

  .ts-main-visual__note {
    left: 612px;
    top: 712px;
    bottom: auto;
    gap: 24px;
  }

  .ts-main-visual__note-icon {
    width: 96px;
    height: 96px;
  }

  .ts-main-visual__side {
    top: 363px;
  }

  .ts-main-visual__line {
    display: block;
    position: absolute;
    left: 50%;
    bottom: -190px;
    width: 100vw;
    max-width: none;
    height: auto;
    transform: translateX(-50%);
    z-index: 3;
    pointer-events: none;
  }

  .ts-container {
    width: min(calc(100% - 40px), var(--container));
  }

  .ts-header__inner {
    height: 128px;
  }

  .ts-instagram {
    margin-left: 0.2rem;
  }

  .wp-block-query {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-4);
  }

  .entry-content,
  .wp-block-post-content {
    font-size: 1.05rem;
  }

  .ts-concept {
    --concept-photo-top: 404px;
    --concept-photo-right: 64px;
    --concept-photo-gap-x: 32px;
    --concept-photo-gap-y-top-mid: 122px;
    --concept-photo-gap-y-top-bottom: 399px;
    --concept-photo-top-w: 160px;
    --concept-photo-top-h: 213px;
    --concept-photo-mid-w: 256px;
    --concept-photo-mid-h: 341px;
    --concept-photo-bottom-w: 120px;
    --concept-photo-bottom-h: 160px;
    padding-top: 100px;
    padding-bottom: calc(100vw * 64 / 1440);
  }

  .ts-concept__hero {
    height: 656px;
  }

  .ts-concept__line {
    display: block;
    position: absolute;
    top: 150px;
    right: 0;
    width: min(36.2vw, 521px);
    max-width: 521px;
    height: auto;
    z-index: 1;
    pointer-events: none;
  }

  .ts-concept__hero-overlay {
    padding: 248px 64px 48px;
    display: block;
  }

  .ts-concept__heading {
    width: 544px;
    gap: 20px;
  }

  .ts-concept__title {
    font-size: 56px;
    line-height: 71.68px;
  }

  .ts-concept__subline {
    width: 448px;
  }

  .ts-concept__photo--top {
    position: absolute;
    top: var(--concept-photo-top);
    right: var(--concept-photo-right);
    z-index: 3;
    width: var(--concept-photo-top-w);
    height: var(--concept-photo-top-h);
  }

  .ts-concept__body-row {
    margin-top: 40px;
    padding-inline: 64px;
    display: block;
  }

  .ts-concept__copy-wrap {
    width: 544px;
    gap: 64px;
  }

  .ts-concept__copy {
    font-size: 16px;
    line-height: 32px;
    letter-spacing: 0.32px;
  }

  .ts-concept__copy-line {
    display: block;
    white-space: nowrap;
  }

  .ts-concept__note {
    gap: 24px;
    min-height: 128px;
  }

  .ts-concept__note-icon {
    width: 128px;
    height: 128px;
  }

  .ts-concept__note-copy {
    position: absolute;
    left: 152px;
    top: 23.02px;
  }

  .ts-concept__photo--mid {
    position: absolute;
    right: calc(var(--concept-photo-right) + var(--concept-photo-top-w) + var(--concept-photo-gap-x));
    top: calc(var(--concept-photo-top) + var(--concept-photo-gap-y-top-mid));
    z-index: 3;
    width: var(--concept-photo-mid-w);
    height: var(--concept-photo-mid-h);
    margin: 0;
  }

  .ts-concept__photo--bottom {
    position: absolute;
    top: calc(var(--concept-photo-top) + var(--concept-photo-gap-y-top-bottom));
    right: calc(var(--concept-photo-right) + (var(--concept-photo-top-w) - var(--concept-photo-bottom-w)));
    z-index: 3;
    width: var(--concept-photo-bottom-w);
    height: var(--concept-photo-bottom-h);
    margin: 0;
  }

  .ts-school-image {
    --school-scale: min(1, calc(100vw / 1440px));
    --school-strip-w: calc(100vw * 1360 / 1440);
    --school-strip-item-w: calc(100vw * 448 / 1440);
    --school-strip-item-h: calc(100vw * 280 / 1440);
    --school-gap-sm: calc(100vw * 8 / 1440);
    --school-gap-lg: calc(100vw * 80 / 1440);
    --school-caption-offset: calc(100vw * 16 / 1440);
    padding: 0 0 calc(100vw * 64 / 1440);
    gap: calc(100vw * 64 / 1440);
  }

  .ts-school-image__strip {
    width: var(--school-strip-w);
    max-width: none;
    margin-left: calc(50% - 50vw);
    margin-right: auto;
    grid-template-columns: repeat(3, var(--school-strip-item-w));
    gap: var(--school-gap-sm);
  }

  .ts-school-image__strip-image {
    width: var(--school-strip-item-w);
    height: var(--school-strip-item-h);
    aspect-ratio: auto;
  }

  .ts-school-image__feature-wrap {
    width: 100vw;
    max-width: none;
    margin-left: calc(50% - 50vw);
    margin-right: 0;
  }

  .ts-school-image__feature-grid {
    gap: calc(100vw * 20 / 1440) var(--school-gap-lg);
  }

  .ts-school-image__caption {
    margin: 0 0 var(--school-caption-offset) var(--school-caption-offset);
    max-width: calc(100% - (var(--school-caption-offset) * 2));
    padding: calc(100vw * 4 / 1440) calc(100vw * 8 / 1440);
    font-size: 12px;
    line-height: clamp(12.8px, calc(15.36px * var(--school-scale)), 15.36px);
    letter-spacing: clamp(0.16px, calc(0.24px * var(--school-scale)), 0.24px);
  }

  .ts-school-image__title {
    width: min(100%, calc(100vw * 560 / 1440));
    font-size: clamp(18px, calc(24px * var(--school-scale)), 24px);
    line-height: clamp(23px, calc(30.72px * var(--school-scale)), 30.72px);
  }

  .ts-activity {
    --activity-scale: min(1, calc(100vw / 1440px));
    --activity-gap: calc(32px * var(--activity-scale));
    --activity-col-w: calc((100% - var(--activity-gap)) / 2);
    --activity-image-w: calc(352px * var(--activity-scale));
    --activity-image-h: calc(528px * var(--activity-scale));
    --activity-title-w: calc(448px * var(--activity-scale));
    --activity-chip-gap: calc(4px * var(--activity-scale));
    --activity-chip-py: calc(4px * var(--activity-scale));
    --activity-overlay-pad: calc(24px * var(--activity-scale));
    --activity-overlay-gap: calc(20px * var(--activity-scale));
    --activity-btn-h: calc(48px * var(--activity-scale));
    --activity-btn-pl: calc(20px * var(--activity-scale));
    --activity-btn-pr: calc(10px * var(--activity-scale));
    --activity-btn-gap: calc(6px * var(--activity-scale));
    --activity-btn-arrow: calc(28px * var(--activity-scale));
    padding: 190px 0;
  }

  .ts-activity__bg-line {
    display: block;
    position: absolute;
    left: 50%;
    width: 100vw;
    max-width: none;
    height: auto;
    transform: translateX(-50%);
    z-index: 0;
    pointer-events: none;
  }

  .ts-activity__bg-line--03 {
    top: calc(170px * var(--activity-scale));
  }

  .ts-activity__bg-line--04 {
    top: calc(680px * var(--activity-scale));
  }

  .ts-activity__bg-line--05 {
    top: calc(1220px * var(--activity-scale));
  }

  .ts-activity__bg-line--06 {
    top: calc(1800px * var(--activity-scale));
  }

  .ts-activity__matrix {
    column-gap: var(--activity-gap);
    row-gap: 64px;
  }

  .ts-activity__lead,
  .ts-activity__pair {
    flex: 0 0 var(--activity-col-w);
    max-width: var(--activity-col-w);
  }

  .ts-activity__lead {
    height: var(--activity-image-h);
    padding-inline: calc(96px * var(--activity-scale));
    justify-content: center;
    gap: calc(32px * var(--activity-scale));
  }

  .ts-activity__pair {
    display: flex;
    align-items: center;
    gap: var(--activity-gap);
    min-height: var(--activity-image-h);
  }

  .ts-activity__photo-card {
    width: var(--activity-image-w);
    flex: 0 0 var(--activity-image-w);
  }

  .ts-activity__photo-card img {
    width: var(--activity-image-w);
    height: var(--activity-image-h);
    aspect-ratio: auto;
  }

  .ts-activity__photo-overlay {
    padding: var(--activity-overlay-pad);
    gap: var(--activity-overlay-gap);
  }

  .ts-activity__badge {
    padding: var(--activity-chip-py);
    font-size: clamp(10px, calc(12px * var(--activity-scale)), 12px);
    line-height: clamp(13px, calc(15.36px * var(--activity-scale)), 15.36px);
  }

  .ts-activity__price {
    font-size: clamp(38px, calc(48px * var(--activity-scale)), 48px);
    line-height: clamp(33px, calc(42.24px * var(--activity-scale)), 42.24px);
  }

  .ts-activity__price span {
    font-size: clamp(18px, calc(24px * var(--activity-scale)), 24px);
    line-height: clamp(23px, calc(30.72px * var(--activity-scale)), 30.72px);
  }

  .ts-activity__detail {
    width: auto;
    flex: 1 1 auto;
    min-width: 0;
    gap: calc(32px);
  }

  .ts-activity__kicker-logo {
    width: calc(64px * var(--activity-scale));
  }

  .ts-activity__eyebrow {
    font-size: clamp(20px, calc(24px * var(--activity-scale)), 24px);
    line-height: clamp(17px, calc(21.12px * var(--activity-scale)), 21.12px);
    letter-spacing: calc(0.48px * var(--activity-scale));
  }

  .ts-activity__title {
    font-size: clamp(44px, calc(56px * var(--activity-scale)), 56px);
    line-height: clamp(56px, calc(71.68px * var(--activity-scale)), 71.68px);
  }

  .ts-activity__subline {
    width: min(100%, var(--activity-title-w));
  }

  .ts-activity__subline-text {
    font-size: clamp(11px, calc(12.8px * var(--activity-scale)), 12.8px);
    line-height: clamp(14px, calc(16.38px * var(--activity-scale)), 16.38px);
  }

  .ts-activity__chips {
    display: grid;
    grid-template-columns: repeat(3, max-content);
    justify-content: start;
    width: max-content;
    max-width: 100%;
    gap: var(--activity-chip-gap);
  }

  .ts-activity__chips li {
    min-height: 24px;
    padding: 0 8px;
    font-size: clamp(11px, calc(12px * var(--activity-scale)), 12px);
    line-height: clamp(13px, calc(15.36px * var(--activity-scale)), 15.36px);
  }

  .ts-activity__detail-en {
    font-size: clamp(16px, calc(18.4px * var(--activity-scale)), 18.4px);
    line-height: clamp(14px, calc(16.19px * var(--activity-scale)), 16.19px);
  }

  .ts-activity__detail-title {
    font-size: clamp(28px, calc(32px * var(--activity-scale)), 32px);
    line-height: clamp(36px, calc(40.96px * var(--activity-scale)), 40.96px);
    white-space: nowrap;
  }

  .ts-activity__detail-title-break-pc {
    display: block;
  }

  .ts-activity__detail-title-sub {
    font-size: clamp(21px, calc(24px * var(--activity-scale)), 24px);
  }

  .ts-activity__detail-text {
    font-size: clamp(13px, calc(15.2px * var(--activity-scale)), 15.2px);
    line-height: clamp(26px, calc(30.4px * var(--activity-scale)), 30.4px);
    letter-spacing: calc(0.3px * var(--activity-scale));
    overflow-wrap: normal;
    word-break: normal;
  }

  .ts-activity__button {
    height: var(--activity-btn-h);
    padding-left: var(--activity-btn-pl);
    padding-right: var(--activity-btn-pr);
    gap: var(--activity-btn-gap);
    font-size: clamp(13px, calc(15.2px * var(--activity-scale)), 15.2px);
    line-height: clamp(26px, calc(30.4px * var(--activity-scale)), 30.4px);
    letter-spacing: calc(0.3px * var(--activity-scale));
  }

  .ts-activity__button-arrow {
    width: var(--activity-btn-arrow);
    height: var(--activity-btn-arrow);
  }

  .ts-activity__button-arrow img {
    width: calc(8px * var(--activity-scale));
    height: calc(6px * var(--activity-scale));
  }

  .ts-coach {
    padding: 160px 0 160px;
  }

  .ts-coach__frame {
    gap: 0;
  }

  .ts-coach__hero {
    width: 100%;
    height: 656px;
    aspect-ratio: auto;
  }

  .ts-coach__hero-overlay {
    justify-content: flex-start;
    padding: 56px 64px 48px calc(100% - 544px);
  }

  .ts-coach__heading {
    width: 544px;
    gap: 20px;
  }

  .ts-coach__kicker-logo {
    width: 64px;
  }

  .ts-coach__title {
    font-size: 56px;
    line-height: 71.68px;
    letter-spacing: -0.04em;
  }

  .ts-coach__subline {
    width: 448px;
  }

  .ts-coach__title-nowrap {
    white-space: nowrap;
  }

  .ts-coach__layout {
    margin-top: 40px;
    padding-left: 64px;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0;
  }

  .ts-coach__photos {
    position: relative;
    display: block;
    width: 432px;
    height: 501px;
    flex: 0 0 432px;
    margin-top: -80px;
  }

  .ts-coach__photo {
    position: absolute;
  }

  .ts-coach__photo--main {
    left: 225px;
    top: 96px;
    width: 256px;
  }

  .ts-coach__photo--sub {
    left: 0;
    top: 0;
    width: 160px;
  }

  .ts-coach__photo--small {
    left: 73px;
    top: 341px;
    width: 120px;
  }

  .ts-coach__body {
    width: 544px;
    flex: 0 0 544px;
    gap: 64px;
    padding-top: 8px;
  }

  .ts-flow {
    padding: 160px 0;
  }

  .ts-flow__frame {
    gap: 96px;
  }

  .ts-flow__lead {
    gap: 32px;
  }

  .ts-flow__kicker-logo {
    width: 64px;
  }

  .ts-flow__eyebrow {
    font-size: 24px;
    line-height: 21.12px;
    letter-spacing: 0.48px;
  }

  .ts-flow__title {
    font-size: 40px;
    line-height: 51.2px;
  }

  .ts-flow__break-pc {
    display: inline;
  }

  .ts-flow__title-nowrap {
    white-space: nowrap;
  }

  .ts-flow__subline {
    width: 448px;
  }

  .ts-flow__subline-text {
    font-size: 12.8px;
    line-height: 16.38px;
  }

  .ts-flow__content {
    width: 1120px;
    max-width: 100%;
    margin-inline: auto;
    gap: 48px;
  }

  .ts-flow__steps-wrap {
    width: 100%;
    gap: 40px;
  }

  .ts-flow__steps-title {
    font-size: 24px;
    line-height: 30.72px;
    letter-spacing: 0.48px;
  }

  .ts-flow__steps {
    justify-content: space-between;
    gap: 0;
    overflow: visible;
    padding-bottom: 0;
  }

  .ts-flow__step {
    width: 160px;
    min-height: 200px;
    flex: 0 0 160px;
  }

  .ts-flow__step-no-wrap {
    width: 40px;
    height: 40px;
  }

  .ts-flow__step-no {
    font-size: 20px;
    line-height: 17.6px;
  }

  .ts-flow__step-body {
    width: 100%;
    padding: 16px 0 32px;
    gap: 16px;
  }

  .ts-flow__icon {
    width: 100%;
    height: 56px;
  }

  .ts-flow__icon--gather {
    width: 51px;
    height: 45px;
  }

  .ts-flow__icon--land {
    width: 50px;
    height: 42px;
  }

  .ts-flow__icon--sea {
    width: 48px;
    height: 44px;
  }

  .ts-flow__icon--feedback {
    width: 48px;
    height: 46px;
  }

  .ts-flow__icon--shower {
    width: 58px;
    height: 50px;
  }

  .ts-flow__icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }

  .ts-flow__step-label {
    width: 100%;
    font-size: 20px;
    line-height: 25.6px;
    letter-spacing: 0.4px;
    word-break: keep-all;
    overflow-wrap: normal;
    line-break: strict;
    white-space: nowrap;
  }

  .ts-flow__arrow {
    width: 16px;
    height: 12px;
    flex: 0 0 16px;
  }

  .ts-flow__arrow svg {
    stroke-width: 1.8px;
  }

  .ts-flow__note {
    width: 100%;
    font-size: 16px;
    line-height: 32px;
    letter-spacing: 0.32px;
  }

  .ts-faq {
    padding-top: 64px;
    padding-bottom: 200px;
  }

  .ts-faq__bg-line {
    display: block;
    position: absolute;
    left: 50%;
    width: 100vw;
    max-width: none;
    height: auto;
    transform: translateX(-50%);
    z-index: 1;
    pointer-events: none;
  }

  .ts-faq__bg-line--07 {
    bottom: -80px;
  }

  .ts-faq__frame {
    gap: 96px;
  }

  .ts-faq__lead {
    gap: 32px;
  }

  .ts-faq__kicker-logo {
    width: 64px;
  }

  .ts-faq__eyebrow {
    font-size: 24px;
    line-height: 21.12px;
    letter-spacing: 0.48px;
  }

  .ts-faq__title {
    font-size: 40px;
    line-height: 51.2px;
  }

  .ts-faq__subline {
    width: 448px;
  }

  .ts-faq__subline-text {
    font-size: 12.8px;
    line-height: 16.38px;
  }

  .ts-faq__list {
    width: 1120px;
    max-width: 100%;
    gap: 48px;
  }

  .ts-faq__item {
    gap: 16px;
  }

  .ts-faq__row {
    gap: 16px;
  }

  .ts-faq__badge {
    width: 32px;
    height: 32px;
    flex-basis: 32px;
    font-size: 20px;
    line-height: 17.6px;
  }

  .ts-faq__question {
    font-size: 24px;
    line-height: 30.72px;
    letter-spacing: 0.48px;
  }

  .ts-faq__answer {
    font-size: 16px;
    line-height: 23.04px;
    letter-spacing: 0;
  }

  .ts-faq__answer--long {
    line-height: 26.88px;
  }

  .ts-ocean-gallery {
    --ocean-content-width: min(1312px, calc(100vw - 128px));
    padding-bottom: 96px;
  }

  .ts-ocean-gallery__bg-line {
    display: block;
    position: absolute;
    left: 50%;
    width: 100vw;
    max-width: none;
    height: auto;
    transform: translateX(-50%);
    z-index: 0;
    pointer-events: none;
  }

  .ts-ocean-gallery__bg-line--08 {
    bottom: 8px;
  }

  .ts-ocean-gallery__frame {
    width: var(--ocean-content-width);
    max-width: 1312px;
    margin-inline: auto;
    grid-template-columns: minmax(0, 2.12fr) minmax(0, 1fr);
    align-items: flex-start;
    gap: clamp(20px, 2vw, 32px);
  }

  .ts-ocean-gallery__left {
    width: auto;
    gap: clamp(20px, 2.2vw, 32px);
  }

  .ts-ocean-gallery__right {
    width: auto;
    gap: clamp(20px, 1.8vw, 24px);
  }

  .ts-ocean-gallery__photo--lead {
    aspect-ratio: 16 / 10;
  }

  .ts-ocean-gallery__photo--detail {
    width: 100%;
    max-width: min(72%, 544px);
    aspect-ratio: 16 / 10;
  }

  .ts-ocean-gallery__photo--side-top,
  .ts-ocean-gallery__photo--side-bottom {
    width: 100%;
    aspect-ratio: 4 / 3;
  }

  .ts-ocean-gallery__caption-wrap {
    left: 16px;
    bottom: 16px;
    max-width: calc(100% - 32px);
  }

  .ts-footer-cta {
    padding: 64px 0 0;
  }

  .ts-footer-cta__inner {
    gap: 36px;
  }

  .ts-footer-cta__cards {
    width: min(100%, 1120px);
    margin-inline: auto;
    gap: 64px;
  }

  .ts-footer-cta__body {
    padding: 18px 20px;
  }

  .ts-footer-cta__title {
    font-size: 32px;
    line-height: 30.72px;
    white-space: normal;
  }

  .ts-footer-cta__title-break-pc {
    display: block;
  }

  .ts-footer-cta__button {
    width: 267px;
    max-width: 267px;
    min-height: 48px;
    padding: 8px 12px 8px 18px;
    border-radius: 4px;
  }

  .ts-footer-cta__button-icon {
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    font-size: 0;
    line-height: 0;
  }

  .ts-footer-cta__phone {
    width: min(100%, 1120px);
    margin-inline: auto;
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    gap: 34px;
    text-align: center;
  }

  .ts-footer-cta__phone-contact {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 22px;
  }

  .ts-footer-cta__phone-lead,
  .ts-footer-cta__phone-number,
  .ts-footer-cta__phone-hours,
  .ts-footer-cta__phone-number-text {
    white-space: nowrap;
  }

  .ts-footer-main {
    --footer-main-scale: min(1, calc(100vw / 1px));
    min-height: auto;
    padding: calc(104px * var(--footer-main-scale)) 64px calc(48px * var(--footer-main-scale));
  }

  .ts-footer-main__collage {
    --footer-collage-scale: min(1, calc(100vw / 1440px));
    top: 0;
    bottom: 0;
    right: auto;
    left: 50%;
    width: calc((352px * 4 + 16px * 3) * var(--footer-collage-scale));
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: calc(16px * var(--footer-collage-scale));
    padding: 0;
    transform: translateX(-50%);
  }

  .ts-footer-main__col {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    justify-content: flex-start;
    width: calc(352px * var(--footer-collage-scale));
    gap: calc(16px * var(--footer-collage-scale));
  }

  .ts-footer-main__tile {
    width: 100%;
    border-radius: calc(8px * var(--footer-collage-scale));
  }

  .ts-footer-main__tile img {
    height: auto;
    aspect-ratio: auto;
  }

  .ts-footer-main__inner {
    width: min(100%, var(--container));
    min-height: auto;
    gap: calc(86px * var(--footer-main-scale));
  }

  .ts-footer-main__center {
    width: min(100%, calc(980px * var(--footer-main-scale)));
    gap: 0;
    text-shadow: 0 0 calc(80px * var(--footer-main-scale)) rgba(0, 0, 0, 0.64);
  }

  .ts-footer-main__brand img {
    width: calc(160px * var(--footer-main-scale));
  }

  .ts-footer-main__brand {
    margin-bottom: calc(42px * var(--footer-main-scale));
  }

  .ts-footer-main__tagline,
  .ts-footer-main__address {
    font-size: 12.8px;
    letter-spacing: 0.51px;
  }

  .ts-footer-main__address {
    margin-bottom: calc(10px * var(--footer-main-scale));
  }

  .ts-footer-main__station {
    font-size: 24px;
    padding-bottom: calc(12px * var(--footer-main-scale));
    margin-bottom: calc(44px * var(--footer-main-scale));
  }

  .ts-footer-main__catch-ja {
    font-size: 48px;
    line-height: 61.44px;
    margin-bottom: calc(8px * var(--footer-main-scale));
  }

  .ts-footer-main__catch-en {
    font-size: 12.8px;
    letter-spacing: 0.25px;
    margin-bottom: calc(24px * var(--footer-main-scale));
  }

  .ts-footer-main__nav {
    gap: calc(32px * var(--footer-main-scale));
    margin-top: calc(24px * var(--footer-main-scale));
  }

  .ts-footer-main__nav a {
    font-size: 16px;
    letter-spacing: 0.32px;
  }

  .ts-footer-main__bottom {
    gap: calc(20px * var(--footer-main-scale));
  }

  .ts-footer-main__meta {
    gap: calc(24px * var(--footer-main-scale));
  }

  .ts-footer-main__privacy,
  .ts-footer-main__copyright {
    font-size: 11.2px;
  }

  .ts-footer-main__copyright {
    white-space: nowrap;
  }

}

@media (min-width: 1364px) {
  .ts-activity {
    --activity-scale: 1;
  }

  .ts-activity__detail-text--fixed .ts-activity__line {
    display: block;
    white-space: nowrap;
  }
}

@media (max-width: 767.98px) {
  .ts-activity,
  .ts-coach,
  .ts-flow,
  .ts-faq {
    padding-top: 60px;
  }
}
