.p-total-hero__media img {
  object-position: center;
}

.p-total-anchor__list {
  gap: 32px;
}

.p-total-support {
  padding: 120px 0 200px;
}

.p-total-support__block {
  margin-top: 120px;
  display: grid;
  grid-template-columns: 600px minmax(0, 1fr);
  gap: 64px;
  align-items: center;
}

.p-total-support__block--second {
  grid-template-columns: 610px minmax(0, 1fr);
  gap: 140px;
}

.p-total-support__title {
  font-size: var(--font-size-4xl);
  line-height: var(--line-height-relaxed);
  font-weight: var(--font-weight-normal);
  letter-spacing: 0.1em;
}

.p-total-support__text {
  margin-top: 40px;
  font-size: var(--font-size-base);
  line-height: var(--line-height-loose);
  letter-spacing: 0.1em;
}

.p-total-support__flow img,
.p-total-support__diagram img {
  width: 100%;
  object-fit: contain;
}

.p-support-details {
  padding: 160px 0;
  background: var(--color-section-background-light);
  overflow: hidden;
}

.p-support-details__lead {
  margin-top: 32px;
  text-align: center;
  font-size: var(--font-size-base);
  line-height: var(--line-height-relaxed);
  letter-spacing: 0.1em;
}

.p-support-details__list {
  margin-top: 120px;
}

.p-support-detail {
  display: grid;
  grid-template-columns: 520px 560px;
  grid-template-areas:
    "header image"
    "items  image"
    "link   image";
  gap: 40px;
  align-items: start;
}

.p-support-detail__header { grid-area: header; }
.p-support-detail__image  { grid-area: image; }
.p-support-detail__items  { grid-area: items; }
.p-support-detail__link   { grid-area: link; }

.p-support-detail:not(:last-of-type) {
  padding-bottom: 120px;
  border-bottom: 1px solid var(--color-border-subtle);
}

.p-support-detail + .p-support-detail {
  margin-top: 120px;
}

.p-support-detail--reverse {
  grid-template-columns: 560px 520px;
  grid-template-areas:
    "image header"
    "image items"
    "image link";
}

.p-support-detail--reverse .p-support-detail__image {
  display: flex;
  justify-content: flex-end;
}

.p-support-detail__label {
  width: fit-content;
  padding: 8px 8px;
  background: var(--color-footer-background);
  color: var(--color-white);
  font-size: var(--font-size-lg-plus);
  line-height: var(--line-height-normal);
  font-weight: var(--font-weight-medium);
  letter-spacing: 0.1em;
}

.p-support-detail__title {
  margin-top: 16px;
  font-size: var(--font-size-4xl);
  line-height: var(--line-height-relaxed);
  font-weight: var(--font-weight-normal);
  letter-spacing: 0.1em;
}

.p-support-detail__items {
  margin-top: 56px;
  padding-left: 24px;
  border-left: 1px solid var(--color-border-subtle);
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.p-support-detail__items h4 {
  margin: 0;
  font-size: var(--font-size-2xl);
  line-height: var(--line-height-none);
  font-weight: var(--font-weight-medium);
  letter-spacing: 0.1em;
}

.p-support-detail__items p {
  margin-top: 16px;
  font-size: var(--font-size-base);
  line-height: var(--line-height-normal);
  letter-spacing: 0.1em;
}

.p-support-detail__image {
  margin-right: calc(-1 * (((100vw - min(100vw, var(--container-width))) / 2) + var(--container-padding)));
  width: calc(100% + (((100vw - min(100vw, var(--container-width))) / 2) + var(--container-padding)));
}

.p-support-detail--reverse .p-support-detail__image {
  margin-right: 0;
  margin-left: calc(-1 * (((100vw - min(100vw, var(--container-width))) / 2) + var(--container-padding)));
  width: calc(100% + (((100vw - min(100vw, var(--container-width))) / 2) + var(--container-padding)));
  justify-content: flex-start;
}

.p-support-detail__image img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  object-position: center;
}

.p-support-detail__link {
  margin-top: 56px;
}

.p-clinic-operations {
  padding: 200px 0;
}

.p-clinic-operations__lead {
  margin-top: 32px;
  text-align: center;
  font-size: var(--font-size-base);
  line-height: var(--line-height-relaxed);
  letter-spacing: 0.1em;
}

.p-clinic-operations__lead-break,
.p-clinic-tool-card__text-break,
.p-clinic-tool-card__tablet-break {
  display: none;
}

.p-clinic-tool-grid {
  margin-top: 56px;
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
}

.p-clinic-tool-card {
  width: calc((100% - 24px) / 2);
  padding: 40px 48px;
  position: relative;
  background: var(--color-section-background-light);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  overflow: hidden;
}

.p-clinic-tool-card:nth-child(n + 3) {
  width: calc((100% - 48px) / 3);
  min-height: 360px;
  padding: 32px 24px;
}

.p-clinic-tool-card__icon {
  width: 94px;
  height: 94px;
  border-radius: 50%;
  background: var(--color-footer-background);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.p-clinic-tool-card__icon img {
  width: auto;
  height: auto;
  object-fit: contain;
}

.p-clinic-tool-card:nth-child(1) .p-clinic-tool-card__icon img {
  width: 64px;
  height: 50px;
}

.p-clinic-tool-card:nth-child(2) .p-clinic-tool-card__icon img {
  width: 52px;
  height: 50px;
}

.p-clinic-tool-card:nth-child(3) .p-clinic-tool-card__icon img,
.p-clinic-tool-card:nth-child(5) .p-clinic-tool-card__icon img {
  width: 48px;
  height: 48px;
}

.p-clinic-tool-card:nth-child(4) .p-clinic-tool-card__icon img {
  width: 51px;
  height: 50px;
}

.p-clinic-tool-card h3 {
  margin: 16px 0 0;
  font-family: var(--font-family-display-en);
  font-size: var(--font-size-xl);
  line-height: var(--line-height-normal);
  font-weight: var(--font-weight-normal);
  letter-spacing: 0.1em;
}
.p-clinic-tool-card h3.is-en {
  letter-spacing: 0;
}

.p-clinic-tool-card__badge {
  font-size: var(--font-size-xs);
  line-height: var(--line-height-normal);
  letter-spacing: 0.1em;
}

.p-clinic-tool-card > p:not(.p-clinic-tool-card__badge) {
  margin-top: 16px;
  padding-top: 16px;
  position: relative;
  font-size: var(--font-size-base);
  line-height: var(--line-height-normal);
  letter-spacing: 0.1em;
}

.p-clinic-tool-card > p:not(.p-clinic-tool-card__badge)::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 240px;
  height: 1px;
  background: var(--color-border-subtle);
}

.p-clinic-tool-card ul {
  margin-top: 24px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px 16px;
  font-size: var(--font-size-xs);
  line-height: var(--line-height-normal);
  letter-spacing: 0.1em;
}

.p-clinic-tool-card ul li::before{
  content: "#";
}

.p-clinic-tool-card ul li.is-en {
  letter-spacing: 0;
}

.p-clinic-tool-card__arrow {
  width: 48px;
  height: 48px;
  padding: 24px 0 0 24px;
  position: absolute;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, transparent 0 50%, var(--color-footer-background) 50% 100%);
}

.p-clinic-tool-card__arrow img {
  width: 16px;
  height: 10px;
  transform: translateX(-3px);
  filter: brightness(0) invert(1);
}

.p-clinic-usage {
  margin-top: 56px;
  padding: 16px 0;
  border-top: 1px solid var(--color-border-subtle);
  border-bottom: 1px solid var(--color-border-subtle);
  display: grid;
  grid-template-columns: 288px minmax(0, 1fr);
  gap: 56px;
  align-items: center;
}

.p-clinic-usage__title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: var(--font-size-4xl);
  line-height: var(--line-height-normal);
  font-weight: var(--font-weight-normal);
  letter-spacing: 0.08em;
}

.p-clinic-usage__title img {
  width: 28px;
  height: 42px;
}

.p-clinic-usage__text {
  font-size: var(--font-size-xs);
  line-height: var(--line-height-relaxed);
}

.p-clinic-usage__text p + p {
  margin-top: 8px;
  font-weight: var(--font-weight-medium);
}

.p-clinic-usage__text-note {
  font-size: var(--font-size-md);
}

.p-clinic-usage__text a {
  text-decoration: underline;
  transition: color 0.3s ease;
}

.p-clinic-usage__text a:hover {
  color: rgba(54, 54, 59, 0.68);
}

.p-total-case-study {
  --case-edge-space: max(var(--container-padding), calc((100vw - var(--container-width)) / 2 + var(--container-padding)));
  --case-text-width: 661px;
  --case-text-gap: 46px;
  --case-text-column: calc(var(--case-text-width) + var(--case-text-gap));
  padding: 120px 0;
  background: var(--color-section-background-light);
  overflow: hidden;
}

.p-total-case-study .l-container {
  max-width: var(--container-width);
  padding: 0 var(--container-padding);
}

.p-total-case-study__grid {
  margin-top: 40px;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.p-total-case-card {
  width: calc(100vw - var(--case-edge-space));
  padding-block: 76px;
  display: grid;
  grid-template-columns: var(--case-text-column) minmax(0, 1fr);
  gap: 0;
  align-items: center;
  background: var(--color-section-background-light);
  overflow: hidden;
}

.p-total-case-card:nth-child(even) {
  margin-left: calc(-1 * var(--case-edge-space));
  grid-template-columns: minmax(0, 1fr) var(--case-text-column);
}

.p-total-case-card__image {
  width: 100%;
  margin-left: 0;
  aspect-ratio: 573 / 354;
  display: block;
  order: 1;
  overflow: hidden;
}

.p-total-case-card:nth-child(even) .p-total-case-card__image {
  margin-right: 0;
  order: -1;
}

.p-total-case-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-total-case-card__body {
  min-width: 0;
  padding-right: var(--case-text-gap);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.p-total-case-card:nth-child(even) .p-total-case-card__body {
  margin-left: 0;
  padding-left: var(--case-text-gap);
  padding-right: 0;
}

.p-total-case-card__label {
  width: fit-content;
  padding: 8px 16px;
  background: var(--color-text);
  color: var(--color-white);
  font-size: var(--font-size-lg-plus);
  line-height: var(--line-height-none);
  letter-spacing: 0;
}

.p-total-case-card__title {
  width: 100%;
  max-width: var(--case-text-width);
  margin-top: 16px;
  font-size: var(--font-size-4xl);
  line-height: var(--line-height-normal);
  font-weight: var(--font-weight-normal);
  letter-spacing: 0.1em;
}

.p-total-case-card__name {
  width: 100%;
  max-width: var(--case-text-width);
  margin-top: 16px;
  font-size: var(--font-size-2xl);
  line-height: var(--line-height-loose);
  letter-spacing: 0.1em;
}

.p-total-case-card__text {
  width: 100%;
  max-width: var(--case-text-width);
  margin-top: 16px;
  font-size: var(--font-size-base);
  line-height: var(--line-height-relaxed);
}

.p-total-faq {
  padding-block: 200px 0;
}

.p-total-faq__list {
  margin-top: 56px;
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.p-total-links {
  padding: 160px 0 0;
}

.p-contact {
  padding-top: 40px;
}

.p-contact__banners--detail .c-cta-banner--wide .c-cta-banner__title {
  text-align: center;
}

@media (max-width: 1439px) {
  .p-support-detail,
  .p-support-detail--reverse {
    grid-template-columns: minmax(0, 440px) minmax(0, 1fr);
  }
}

@media (max-width: 1279px) {
  .p-total-support__block,
  .p-total-support__block--second {
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 48px;
  }

  .p-total-support__flow,
  .p-total-support__diagram {
    width: 320px;
  }

  .p-total-support__title br,
  .p-total-support__text br,
  .p-support-detail__title br {
    display: none;
  }
}

@media (max-width: 1279px) and (min-width: 768px) {
  .p-total-case-study {
    overflow-x: clip;
  }

  .p-support-detail,
  .p-support-detail--reverse {
    grid-template-columns: 1fr 1fr;
    gap: 32px 24px;
    align-items: center;
  }

  .p-support-detail {
    grid-template-areas:
      "header image"
      "items  items"
      "link   link";
  }

  .p-support-detail--reverse {
    grid-template-areas:
      "image header"
      "items items"
      "link  link";
  }

  .p-support-detail .p-support-detail__image {
    margin-left: 0;
    margin-right: calc(-1 * (((100vw - min(100vw, var(--container-width))) / 2) + var(--container-padding)));
    width: calc(100% + (((100vw - min(100vw, var(--container-width))) / 2) + var(--container-padding)));
  }

  .p-support-detail--reverse .p-support-detail__image {
    margin-right: 0;
    margin-left: calc(-1 * (((100vw - min(100vw, var(--container-width))) / 2) + var(--container-padding)));
    width: calc(100% + (((100vw - min(100vw, var(--container-width))) / 2) + var(--container-padding)));
  }

  .p-support-detail__image img {
    width: 100%;
    max-width: 100%;
  }

  .p-total-case-study {
    --case-image-width: clamp(360px, 44vw, 573px);
    --case-text-width: 661px;
    --case-text-gap: 32px;
  }

  .p-total-case-study__grid {
    margin-left: calc(50% - 50vw);
    width: 100vw;
  }

  .p-total-case-card {
    width: 100%;
    grid-template-columns: minmax(0, calc(100% - var(--case-image-width))) var(--case-image-width);
  }

  .p-total-case-card:nth-child(even) {
    margin-left: 0;
    grid-template-columns: var(--case-image-width) minmax(0, calc(100% - var(--case-image-width)));
  }

  .p-total-case-card__body {
    padding-left: var(--case-edge-space);
    padding-right: var(--case-text-gap);
  }

  .p-total-case-card:nth-child(even) .p-total-case-card__body {
    padding-left: var(--case-text-gap);
    padding-right: var(--case-edge-space);
  }

  .p-total-case-card__title {
    font-size: var(--font-size-2xl);
  }

  .p-total-case-card__name {
    font-size: var(--font-size-lg-plus);
    line-height: var(--line-height-loose);
  }

  .p-total-case-card__text {
    font-size: var(--font-size-sm);
  }

  .p-clinic-tool-card__tablet-break {
    display: inline;
  }

}

@media (max-width: 767px) {
  .p-total-anchor__list {
    gap: 8px;
  }

  .p-total-support,
  .p-support-details,
  .p-clinic-operations,
  .p-total-case-study,
  .p-total-faq {
    padding: var(--sp-section-padding) 0;
  }

  .p-total-support__block,
  .p-clinic-usage {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .p-support-detail,
  .p-support-detail--reverse {
    display: flex;
    flex-direction: column;
    gap: 24px;
  }

  .p-total-support__block,
  .p-total-support__block--second,
  .p-support-details__list,
  .p-clinic-tool-grid,
  .p-total-case-study__grid,
  .p-total-faq__list {
    margin-top: var(--sp-section-gap);
  }


  .p-total-support__content {
    order: 2;
  }

  .p-support-detail__header {
    order: 2;
  }

  .p-support-detail__items {
    order: 3;
  }

  .p-support-detail__link {
    order: 4;
  }

  .p-total-support__flow,
  .p-total-support__diagram,
  .p-support-detail__image {
    order: 1;
    margin: 0 auto;
    width: 100%;
  }

  .p-support-detail .p-support-detail__image {
    width: calc(100% + var(--container-padding));
    margin-right: calc(-1 * var(--container-padding));
    margin-left: 0;
  }

  .p-support-detail--reverse .p-support-detail__image {
    width: calc(100% + var(--container-padding));
    margin-right: 0;
    margin-left: calc(-1 * var(--container-padding));
  }

  .p-total-support__title,
  .p-clinic-usage__title {
    font-size: var(--font-size-xl);
  }

  .p-clinic-usage__title {
    justify-content: center;
  }

  .p-total-support__text,
  .p-support-details__lead,
  .p-clinic-operations__lead {
    margin-top: 24px;
    font-size: var(--font-size-md);
    line-height: var(--line-height-relaxed);
  }

  .p-clinic-operations__lead-break,
  .p-clinic-tool-card__text-break {
    display: inline;
  }

  .p-support-detail:not(:last-of-type) {
    padding-bottom: var(--sp-section-padding);
  }

  .p-support-detail + .p-support-detail {
    margin-top: var(--sp-section-padding);
  }

  .p-support-detail__image img {
    width: 100%;
    max-width: 100%;
  }

  .p-support-detail__items {
    margin-top: var(--sp-section-gap);
    gap: 24px;
  }

  .p-support-detail__link {
    margin-top: var(--sp-section-gap);
  }

  .p-support-detail__title {
    font-size: var(--font-size-xl);
  }

  .p-support-detail__label {
    padding: 6px 8px;
    font-size: var(--font-size-sm);
    line-height: var(--line-height-tight);
    letter-spacing: 0.05em;
  }

  .p-support-detail__items h4,
  .p-clinic-tool-card h3,
  .p-total-case-card__title {
    font-size: var(--font-size-lg);
  }

  .p-support-detail__items p,
  .p-clinic-tool-card > p:not(.p-clinic-tool-card__badge),
  .p-clinic-tool-card ul,
  .p-total-case-card__name,
  .p-total-case-card__text {
    font-size: var(--font-size-md);
  }

  .p-clinic-tool-grid,
  .p-total-case-study__grid {
    grid-template-columns: 1fr;
  }

  .p-clinic-tool-card {
    width: 100%;
    min-height: auto;
    padding: 32px 24px 72px;
  }

  .p-clinic-tool-card:nth-child(n + 3) {
    width: 100%;
    min-height: auto;
  }

  .p-total-case-card {
    width: 100%;
    min-height: auto;
    padding-block: 0;
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .p-total-case-card:nth-child(even) {
    margin-left: 0;
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .p-total-case-card__image,
  .p-total-case-card:nth-child(even) .p-total-case-card__image {
    width: 100%;
    height: auto;
    position: static;
    order: initial;
  }

  .p-total-case-card__image img {
    aspect-ratio: 573 / 354;
  }

  .p-total-case-card__body,
  .p-total-case-card:nth-child(even) .p-total-case-card__body {
    width: 100%;
    min-height: auto;
    margin-left: 0;
    padding: 0 0 64px;
  }

  .p-total-case-card__title,
  .p-total-case-card__name,
  .p-total-case-card__text {
    max-width: none;
  }

  .p-total-case-card__label {
    font-size: var(--font-size-sm);
  }

  .p-total-case-card__title {
    font-size: var(--font-size-xl);
  }

  .p-total-case-card__name {
    font-size: var(--font-size-lg);
    line-height: var(--line-height-loose);
  }

  .p-total-case-card__text {
    font-size: var(--font-size-sm);
  }

  .p-total-links {
    padding: var(--sp-section-padding) 0 0;
  }
}
