 :root {
   --color-ink: #130e0d;
   --color-brown: #776146;
   --color-gold: #ddb582;
   --color-gold-light: #efe3c3;
   --color-gold-deep: #c8a764;
   --color-white: #fff;
   --color-gray: #eaeaea;
   --color-light: #f6f5f3;
   --font-mincho: "Shippori Mincho", "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif CJK JP", serif;
   --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
   --font-english: "Cormorant Garamond", "Times New Roman", serif;
   --font-script: "Pinyon Script", "URW Chancery L", "Apple Chancery", cursive;
   --content-width: 1100px;
   --header-height: 60px;
   --gradient-gold: linear-gradient(90deg, #efe3c3, #c8a764);
 }

 *, *::before, *::after {
   box-sizing: border-box;
 }

 html {
   scroll-behavior: smooth;
   scroll-padding-top: 40px;
 }

 body {
   margin: 0;
   color: var(--color-white);
   background: var(--color-ink);
   font-family: var(--font-mincho);
   font-size: 18px;
   line-height: 1.5;
   -webkit-text-size-adjust: 100%;
   letter-spacing: 0.03em;
 }

 body.is-modal-open {
   overflow: hidden;
 }

 h1, h2, h3, h4, p, figure, dl, dd {
   margin: 0;
 }

 h1, h2, h3, h4 {
   font-weight: 500;
   letter-spacing: .05em;
 }

 ul, ol {
   list-style: none;
   padding: 0;
   margin: 0;
 }

 a {
   color: inherit;
   text-decoration: none;
   -webkit-tap-highlight-color: transparent;
 }


 button, input, textarea, select {
   font: inherit;
 }

 button {
   border-radius: 0;
   color: inherit;
   cursor: pointer;
 }

 button:disabled {
   cursor: default;
 }

 img {
   display: block;
   max-width: 100%;
   height: auto;
 }

 picture {
   display: block;
 }

 .container {
   position: relative;
   width: min(var(--content-width), calc(100% - 80px));
   margin-inline: auto;
 }

 .section {
   position: relative;
   padding-block: 90px;
 }

 .section--gray {
   background: var(--color-gray);
   color: var(--color-ink);
 }

 .section--light {
   background: var(--color-light);
   color: var(--color-ink);
 }

 .body-copy {
   font-family: var(--font-mincho);
   font-weight: 400;
 }

 .sp-only, .sp-break, .tablet-down {
   display: none;
 }

 .visually-hidden {
   position: absolute !important;
   width: 1px;
   height: 1px;
   padding: 0;
   margin: -1px;
   overflow: hidden;
   clip: rect(0, 0, 0, 0);
   white-space: nowrap;
   border: 0;
 }

 .section-heading {
   margin-bottom: 60px;
 }

 .section-heading__eyebrow {
   display: flex;
   align-items: center;
   gap: 10px;
   font-family: var(--font-english);
   font-size: 20px;
   color: var(--color-gold);
   letter-spacing: .03em;
   line-height: 1.5;
 }

 .section-heading__eyebrow::before {
   content: "";
   width: 30px;
   height: 1px;
   background: currentColor;
   flex-shrink: 0;
 }

 .section-heading__title {
   font-size: 38px;
   line-height: 1.5;
   margin-top: 20px;
   overflow-wrap: anywhere;
 }

 .section-heading--center {
   text-align: center;
 }

 .section-heading--center .section-heading__eyebrow {
   justify-content: center;
 }

 .section-heading--center .section-heading__eyebrow::before {
   display: none;
 }

 .section--gray .section-heading__eyebrow, .section--light .section-heading__eyebrow {
   color: #9b7442;
 }

 .button {
   position: relative;
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 10px;
   padding: 14px 40px;
   min-height: 54px;
   border: 0;
   line-height: 1.5;
   text-align: center;
   font-size: 18px;
   font-family: var(--font-mincho);
   font-weight: 500;
   transition: opacity .2s, box-shadow .2s;
 }

 .button:hover {
   opacity: .88;
 }

 .button--gold {
   background: var(--gradient-gold);
   color: var(--color-ink);
   box-shadow: 0 0 15px #0006;
 }

 .button--outline {
   background: transparent;
   border: 1px solid var(--color-gold-light);
   color: var(--color-gold-light);
 }

 .button__arrow {
   position: absolute;
   width: 16px;
   height: 8px;
   right: 15px;
   top: calc(50% - 4px);
   transform: rotate(-90deg);
 }

 .button--small {
   padding: 3px 20px;
   min-height: 30px;
   font-family: var(--font-mincho);
   font-size: 16px;
 }

 .button--small .button__arrow {
   display: none;
 }

 .button--plan {
   color: var(--color-ink);
   width: 100%;
   max-width: 280px;
   padding: 9px;
   min-height: 45px;
   font-family: var(--font-mincho);
   font-size: 18px;
   background: unset;
   color: var(--color-gold);
   border: 1px solid;
   border-radius: 3px;
 }

 .button--plan .button__arrow {
   display: none;
 }

 .external-icon {
   display: inline-block;
   width: 12px;
   height: 11px;
   flex: 0 0 12px;
 }

 /* Header / fullscreen menu */
 .site-header {
   position: fixed;
   z-index: 50;
   top: 0;
   inset-inline: 0;
   height: var(--header-height);
   background: transparent;
   transition: background 0.5s ease;
 }

 .site-header.is-scrolled {
   background: linear-gradient(#130e0dc9, transparent);
 }

 .site-header__inner {
   width: min(1100px, calc(100% - 40px));
   height: 100%;
   margin: auto;
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 24px;
 }

 .site-header__brand {
   font-family: var(--font-english);
   font-size: 20px;
   color: var(--color-gold-light);
   white-space: nowrap;
   font-weight: 600;
 }

 .site-header__brand:focus,
 .site-header__brand:focus-visible {
   outline: none !important;
   box-shadow: none !important;
 }

 .site-header__nav {
   display: flex;
   align-items: center;
   gap: 30px;
   font-family: var(--font-mincho);
   font-size: 16px;
 }

 .site-header__nav>a {
   white-space: nowrap;
 }

 .site-header__nav>a:hover {
   color: var(--color-gold);
 }

 .menu-toggle, .menu-close {
   display: none;
   background: none;
   border: 0;
   width: 48px;
   height: 48px;
   padding: 8px;
   position: relative;
 }

 .menu-toggle span, .menu-close span {
   position: absolute;
   left: 3px;
   width: 42px;
   height: 1px;
   background: var(--color-gold);
 }

 .menu-toggle span:nth-child(1) {
   top: 18px;
 }

 .menu-toggle span:nth-child(2) {
   top: 29px;
 }

 .menu-close span:nth-child(1) {
   top: 23px;
   transform: rotate(15deg);
 }

 .menu-close span:nth-child(2) {
   top: 23px;
   transform: rotate(-15deg);
 }

 .mobile-menu {
   position: fixed;
   inset: 0;
   padding: 0 30px 50px;
   width: 100%;
   max-width: none;
   height: 100%;
   height: 100dvh;
   max-height: none;
   margin: 0;
   background: var(--color-ink);
   color: white;
   border: none;
   overflow-y: auto;
 }

 .mobile-menu::backdrop {
   background: var(--color-ink);
 }

 .mobile-menu__header {
   min-height: 60px;
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 10px;
 }

 .mobile-menu__header .menu-close {
   display: block;
 }

 .mobile-menu__nav {
   display: flex;
   flex-direction: column;
   margin: 86px auto 45px;
   max-width: 520px;
   text-align: center;
 }

 .mobile-menu__nav a {
   padding: 24px 0;
   border-bottom: 1px solid #777;
   font-size: 22px;
 }

 .mobile-menu__nav a:last-child {
   border-bottom: 0;
 }

 .mobile-menu__cta {
   max-width: 520px;
   margin: auto;
 }

 .mobile-menu__cta .button {
   width: 100%;
 }

 /* First view */
 .hero {
   position: relative;
   isolation: isolate;
   min-height: 881px;
   padding-top: 60px;
   overflow: hidden;
   background-image: url(../images/fv_pc.jpg);
   background-size: 100%;
   background-position: center top;
   background-repeat: no-repeat;
 }

 .hero__visual, .hero__shade {
   position: absolute;
   inset: 0;
   z-index: -2;
 }

 .hero__shade {
   z-index: -1;
   background: linear-gradient(270deg, #130E0D 0%, rgba(19, 14, 13, 0.6) 20%, rgba(19, 14, 13, 0.1) 45%, rgba(19, 14, 13, 0.8) 60%, #130E0D 100%), linear-gradient(180deg, rgba(19, 14, 13, 0) 65.23%, #130E0D 100%), linear-gradient(180deg, var(--color-ink) 0%, #130e0d55 12%, #130e0d00 32%, var(--color-ink) 100%);
 }

 .hero__inner {
   padding-block: 30px;
 }

 .hero__title {
   font-size: 48px;
   line-height: 1.4;
   letter-spacing: .055em;
   color: #e6d29f;
 }

 .hero__title span {
   display: block;
   width: fit-content;
   background: linear-gradient(var(--color-gold-light), var(--color-gold-deep));
   -webkit-background-clip: text;
   background-clip: text;
   color: transparent;
   filter: drop-shadow(0 0 10px #0008);
 }

 .hero__title small {
   font-size: 44px;
 }

 .hero__intro {
   margin-top: 30px;
   font-weight: 500;
   letter-spacing: .04em;
   text-shadow: 0 0 15px #000c;
 }

 .hero__intro>p:first-child {
   font-size: 18px;
   line-height: 1.8;
 }

 .hero__intro>p+p {
   margin-top: 10px;
   font-size: 18px;
 }

 .hero__patient {
   font-size: 28px;
 }

 .hero__air {
   position: absolute;
   width: 160px;
   height: 160px;
   top: 10px;
   right: 0;
 }

 .hero__conversion {
   margin-top: 40px;
 }

 .hero__lead {
   text-align: center;
   font-size: 28px;
   font-weight: 500;
   text-shadow: 0 0 10px #000c;
 }

 .hero__plans {
   display: flex;
   justify-content: center;
   gap: 10px;
   margin-top: 10px;
 }

 .hero-plan {
   display: flex;
   flex-direction: column;
   align-items: center;
   width: 300px;
   border: 1px solid var(--color-gold);
   border-radius: 5px;
   padding: 10px 30px;
   text-align: center;
   position: relative;
   transition: box-shadow .2s;
 }

 .hero-plan:hover {
   box-shadow: 0 0 16px #ddb58280;
 }

 .hero-plan--a {
   background: #ffffffb3;
   color: var(--color-ink);
 }

 .hero-plan--s {
   background: #232830cc;
 }

 .hero-plan--sss {
   background: #130e0dcc;
   color: #f2e0ca;
 }

 .hero-plan__name {
   display: block;
   width: 100%;
   font-family: var(--font-english);
   font-size: 18px;
   color: var(--color-gold);
   padding-bottom: 2px;
   border-bottom: 1px solid #605342;
 }

 .hero-plan__name b {
   font-weight: 500;
   font-size: 24px;
 }

 .hero-plan--a .hero-plan__name {
   color: #9b7c56;
   border-color: #ae8c62;
 }

 .hero-plan__action {
   font-size: 24px;
   margin-top: 5px;
 }

 .hero-plan__price {
   font-size: 18px;
   margin-top: -5px;
   letter-spacing: .03em;
 }

 .hero-plan__price b {
   font-weight: 500;
   font-size: 22px;
 }

 .hero-plan__price small {
   font-size: 14px;
 }

 .hero-plan__crown {
   position: absolute;
   width: 18px;
   height: 13px;
   top: 4px;
   left: 0;
   right: 0;
   margin: auto;
 }

 .hero__gift {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 20px;
   margin-top: 30px;
   color: var(--color-gold-light);
 }

 .hero__gift-name {
   display: flex;
   align-items: center;
   gap: 10px;
 }

 .hero__gift-name>span {
   font-family: var(--font-script);
   font-size: 42px;
   line-height: 1.5;
   color: var(--color-gold);
   background: linear-gradient(90deg, var(--color-gold), var(--color-white));
   background-clip: text;
   -webkit-background-clip: text;
   -webkit-text-fill-color: transparent;
 }

 .hero__gift-name small {
   font-size: 16px;
 }

 .hero__gift-message {
   font-size: 18px;
   letter-spacing: .03em;
 }

 .hero__buttons {
   display: flex;
   align-items: stretch;
   justify-content: center;
   gap: 40px;
 }

 .hero__buttons .button--outline {
   width: 320px;
 }

 .hero__buttons .button--gold {
   padding-inline: 50px;
 }

 /* Problem */
 .problem {
   padding-top: 40px;
   padding-bottom: 40px;
 }

 .problem .section-heading {
   margin-bottom: 60px;
 }

 .problem__body {
   display: grid;
   grid-template-columns: 56% 44%;
   align-items: center;
 }

 .problem__image img {
   width: 100%;
 }

 .problem__intro {
   font-size: 24px;
   margin-bottom: 20px;
   letter-spacing: 0.05em;
 }

 .problem__list li {
   padding: 10px 10px 10px 50px;
   border-bottom: 1px solid #6a625d;
   position: relative;
 }

 .problem__list li:last-of-type {
   border-bottom: 0;
 }

 .problem__list .big {
   font-size: 22px;
 }

 .problem__check {
   width: 27px;
   height: 27px;
   position: absolute;
   left: 15px;
   top: 0;
   bottom: 0;
   margin: auto;
 }

 .problem__conclusion {
   text-align: center;
   font-size: 28px;
   margin-top: 40px;
 }

 .problem__conclusion span {
   color: var(--color-gold);
 }

 /* Philosophy */
 .philosophy {
   padding-bottom: 40px;
   isolation: isolate;
   background-image: url(../images/philosophy_bg_pc.png);
   background-position: center;
   background-repeat: no-repeat;
 }

 .philosophy__pair {
   display: grid;
   grid-template-columns: 465px 80px 465px;
   gap: 20px;
   justify-content: center;
   margin-top: 40px;
   align-items: center;
 }

 .philosophy__column {
   min-width: 0;
   text-align: center;
   margin-bottom: auto;
 }

 .philosophy__en {
   font-family: var(--font-english);
   font-size: 60px;
   line-height: 1.5;
   color: var(--color-brown);
   font-weight: 400;
 }

 .philosophy__jp {
   margin-top: -10px;
   margin-bottom: 10px;
   color: var(--color-gold);
 }

 .philosophy__photo {
   width: 100%;
 }

 .philosophy__times {
   color: var(--color-gold);
   position: relative;
 }

 .philosophy__times:before {
   content: "";
   width: 1px;
   height: 80px;
   border-left: 2px solid var(--color-brown);
   display: block;
   position: absolute;
   top: 0;
   bottom: 0;
   right: 0;
   left: 0;
   margin: auto;
   transform: rotate(45deg);
 }

 .philosophy__times::after {
   content: "";
   width: 1px;
   height: 80px;
   border-left: 2px solid var(--color-brown);
   display: block;
   position: absolute;
   top: 0;
   bottom: 0;
   right: 0;
   left: 0;
   margin: auto;
   transform: rotate(-45deg);
 }

 /* Team diagram */
 .team {
   padding-bottom: 40px;
 }

 .team__diagram {
   width: 950px;
   max-width: 100%;
   height: 539px;
   margin: 0 auto;
   position: relative;
 }

 .team__card {
   position: absolute;
   width: 380px;
   padding: 20px;
   background: var(--color-white) url('../images/onepatient_shadow.svg') no-repeat right bottom / auto 100%;
   border-radius: 3px;
   color: var(--color-ink);
   text-align: center;
   z-index: 3;
 }

 .team__card--dentist {
   top: 0;
   left: calc(50% - 190px);
 }

 .team__card--digital {
   left: 0;
   bottom: 0;
 }

 .team__card--it {
   right: 0;
   bottom: 0;
 }

 .team__role {
   font-family: var(--font-english);
   color: #a47f52;
   font-size: 18px;
 }

 .team__ornament {
   width: 281px;
   height: 8px;
   margin: 0 auto 10px;
 }

 .team__card h3 {
   font-size: 24px;
   margin-bottom: 10px;
 }

 .team__patient {
   position: absolute;
   z-index: 3;
   width: 180px;
   height: 180px;
   top: 204px;
   left: calc(50% - 90px);
 }

 .team__ring {
   position: absolute;
   top: 58px;
   left: calc(50% - 230px);
   width: 460px;
   height: 460px;
   z-index: 1;
 }

 .team__background {
   position: absolute;
   top: 47px;
   width: 423px;
   height: auto;
 }

 .team__background--left {
   left: 0;
 }

 .team__background--right {
   right: -75px;
 }

 .team__conclusion {
   font-size: 28px;
   text-align: center;
   margin-top: 60px;
 }

 .team__sub {
   font-size: 20px;
   text-align: center;
   margin-top: 20px;
 }

 /* Lab carousel */
 .lab {
   overflow: hidden;
   padding-bottom: 40px;
 }

 .lab__lead {
   font-size: 22px;
   margin-top: 10px;
 }

 .lab-carousel {
   margin: 60px auto 100px;
   padding-bottom: 60px;
 }

 .lab-carousel .swiper-slide {
   width: 500px;
 }


 .lab-carousel__slide {
   position: relative;
   scroll-snap-align: center;
 }

 .lab-carousel__slide>img {
   width: 100%;
   aspect-ratio: 500 / 281;
   object-fit: cover;
 }

 .lab-carousel__slide figcaption {
   position: absolute;
   inset-inline: 0;
   bottom: 0;
   padding: 10px 16px;
   font-size: 18px;
   background: linear-gradient(180deg, rgba(19, 14, 13, 0), var(--color-ink));
 }

 .lab-carousel .swiper-pagination-bullet {
   width: 8px;
   height: 8px;
   margin-inline: 15px !important;
   opacity: .5;
   background: var(--color-white);
 }

 .lab-carousel .swiper-pagination-bullet-active {
   opacity: 1;
 }

 .lab__conclusion {
   text-align: center;
   font-size: 28px;
   margin-top: 48px;
 }

 /* Product qualities */
 .good {
   padding-top: 90px;
   padding-bottom: 30px;
   background-image: url(../images/good-denture_bg.png);
   background-position: center 20%;
   background-repeat: no-repeat;
   overflow: hidden;
 }

 .good>.container {
   isolation: isolate;
 }

 .script-heading {
   font-family: var(--font-english);
   color: var(--color-gold);
   font-size: 100px;
   font-weight: 400;
   line-height: 1.5;
   text-align: center;
   background: linear-gradient(var(--color-ink), #E9E9E9);
   -webkit-background-clip: text;
   -webkit-text-fill-color: transparent;
 }

 .good__heading h2 {
   text-align: center;
   font-size: 38px;
 }

 .good__heading .script-heading {
   font-family: var(--font-english);
   color: #ffffff30;
 }

 .good__intro {
   margin-top: 60px;
   text-align: center;
 }

 .good__wish {
   font-size: 30px;
   text-align: center;
   margin-top: 30px;
   color: var(--color-gold);
 }

 .good__wish+.good__wish {
   margin-top: 10px;
 }

 .good__condition {
   text-align: center;
   margin-top: 30px;
 }

 .good__condition .big {
   font-size: 1.4em;
 }

 .good__conditions {
   width: 520px;
   margin: 40px auto 30px;
 }

 .feature-heading {
   display: flex;
   align-items: center;
   gap: 50px;
   margin-bottom: 10px;
 }

 .feature-heading h2 {
   font-family: var(--font-script);
   font-size: 100px;
   line-height: 1;
   color: var(--color-gold);
   position: relative;
 }

 .feature-heading h2::after {
   content: "";
   position: absolute;
   inset: 0;
   background: linear-gradient(270deg, #776146, #77614600);
   width: 120%;
   height: 100%;
   display: block;
   top: 0;
   bottom: 0;
   right: 0;
   left: 0;
   margin: auto;
   mix-blend-mode: darken;
 }

 .feature-heading>span {
   display: flex;
   align-items: center;
   gap: 10px;
   font-size: 20px;
   color: var(--color-brown);
 }

 .feature-heading>span::before {
   content: '';
   width: 50px;
   height: 1px;
   background: currentColor;
 }

 .feature-heading--center {
   justify-content: center;
   margin-bottom: 50px;
 }

 .fit {
   padding-top: 30px;
   padding-bottom: 100px;
   overflow: hidden;
 }

 .fit__container {
   min-height: 624px;
 }

 .fit__image {
   position: absolute;
   width: 605px;
   max-width: none;
   top: -30px;
   left: -170px;
 }

 .fit__content {
   width: 700px;
   margin-left: auto;
   position: relative;
 }

 .fit__text {
   margin-left: 50px;
 }

 .fit__text h3 {
   font-size: 28px;
   line-height: 1.5;
 }

 .fit__text>.body-copy {
   margin-top: 30px;
 }

 .fit__process {
   margin-top: 40px;
   padding: 40px 0;
   background: linear-gradient(to right, #ffffff00 0, #ffffff09 20%, #ffffff10 80%, #ffffff00 100%);
   border: 0;
 }

 .fit__process-title {
   font-size: 24px;
   color: var(--color-gold);
 }

 .fit__steps {
   display: flex;
   justify-content: space-between;
   gap: 20px;
   margin-top: 20px;
   position: relative;
 }

 .fit__steps::before {
   content: '';
   position: absolute;
   top: 30px;
   height: 1px;
   background: var(--color-brown);
   left: 0;
   right: 0;
   width: 85%;
   margin: auto;
 }

 .fit__steps li {
   display: flex;
   align-items: center;
   flex-direction: column;
   min-width: 0;
   position: relative;
 }

 .fit__number {
   position: relative;
   display: grid;
   place-items: center;
   width: 60px;
   height: 60px;
   border-radius: 50%;
   background: radial-gradient(ellipse, var(--color-brown) 0%, var(--color-brown) 38%, transparent 72%);
   font-family: var(--font-mincho);
   font-size: 20px;
   color: var(--color-white);

 }

 .fit__step-en {
   font-family: var(--font-english);
   font-size: 24px;
   white-space: nowrap;
 }

 .fit__step-jp {
   font-family: var(--font-sans);
   font-size: 14px;
   text-align: center;
   max-width: 105px;
   margin-top: 5px;
 }

 .comfort {
   padding-top: 40px;
   padding-bottom: 60px;
   overflow: hidden;
 }

 .comfort__body {
   min-height: 610px;
   position: relative;
 }

 .comfort__content {
   position: relative;
   z-index: 1;
 }

 .comfort__content h3 {
   font-size: 28px;
   line-height: 1.8;
 }

 .comfort__content h3 .big {
   font-size: 1.2em;
 }

 .comfort__content>.body-copy {
   width: 576px;
   max-width: 55%;
   margin-top: 40px;
 }

 .comfort__lead {
   margin-top: 20px;
   font-size: 24px;
   color: var(--color-gold);
 }

 .comfort__image {
   width: 650px;
   position: absolute;
   right: -100px;
   top: 50px;
 }

 .comfort__qualities {
   display: flex;
   width: 100%;
   max-width: 480px;
   margin-top: 40px;
 }

 .word-pair {
   text-align: center;
 }

 .word-pair__en {
   font-family: var(--font-english);
   font-size: 28px;
 }

 .comfort__qualities .word-pair {
   padding: 20px;
   flex: 1;
 }

 .comfort__qualities .word-pair+.word-pair {
   border-left: 1px solid #8e6d43;
 }

 .comfort__qualities .word-pair>p+p {
   font-size: 16px;
 }

 .aesthetics {
   padding-top: 20px;
   padding-bottom: 90px;
 }

 .aesthetics .feature-heading {
   margin-bottom: 50px;
 }

 .aesthetics__body {
   display: grid;
   grid-template-columns: 460px 540px;
   gap: 60px;
   justify-content: center;
 }

 .aesthetics__figure img {
   width: 460px;
 }

 .aesthetics__figure figcaption {
   font-family: var(--font-mincho);
   font-size: 16px;
   margin-top: -20px;
   padding-left: 9px;
   color: #cdcdcd;
 }

 .aesthetics__content h3 {
   font-size: 28px;
 }

 .aesthetics__content>.body-copy {
   margin-top: 40px;
 }

 .aesthetics__combination {
   width: 320px;
   margin: 40px auto;
 }

 .aesthetics__en {
   text-align: center;
   font-family: var(--font-english);
   font-size: 16px;
 }

 .aesthetics__clasp {
   text-align: center;
   font-size: 24px;
   margin-top: 10px;
   color: var(--color-gold);
 }

 .beyond:before {
   content: '';
   display: block;
   width: 1px;
   height: 80px;
   background: var(--color-gold);
   margin: 20px auto 0;
   position: absolute;
   top: -40px;
   right: 0;
   left: 0;
   margin: auto;
 }

 .beyond__intro {
   text-align: center;
 }

 .beyond__frame {
   position: relative;
   margin-top: 40px;
   padding: 40px 72px;
   border: 1px solid var(--color-gold);
   background: var(--color-white);
 }

 .beyond__frame::before, .beyond__frame::after {
   content: '';
   position: absolute;
   width: 86px;
   height: 90px;
   background: url('../images/beyond_ornament.png') no-repeat center / contain;
   pointer-events: none;
   z-index: 3;
 }

 .beyond__frame::before {
   left: -1px;
   top: -1px;
   transform: rotate(180deg);
 }

 .beyond__frame::after {
   right: -1px;
   bottom: -1px;
 }

 .beyond__upper {
   display: flex;
   gap: 30px;
   align-items: center;
   justify-content: center;
 }

 .beyond__movie {}

 .video-trigger {
   display: block;
   width: 100%;
   position: relative;
   border: 0;
   background: var(--color-ink);
   padding: 0;
 }

 .video-trigger>img {
   width: 100%;
 }

 .video-trigger__play {
   position: absolute;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%);
   width: 80px;
   height: 80px;
   border-radius: 50%;
   background: #ffffffc9;
   box-shadow: 0 2px 10px #0002;
   display: grid;
   place-items: center;
 }

 .video-trigger__play::after {
   content: '';
   border-left: 23px solid var(--color-white);
   border-block: 15px solid transparent;
   margin-left: 6px;
 }

 .video-trigger:hover .video-trigger__play {
   background: var(--color-white);
   opacity: .5;
 }

 .beyond__list li {
   display: flex;
   align-items: center;
   gap: 20px;
   padding: 10px 20px;
   border-bottom: 1px solid #E4E4E4;
   font-size: 20px;
   min-height: 80px;
 }

 .beyond__list li:last-of-type {
   border-bottom: 0;
 }

 .beyond__list li>span {
   font-family: var(--font-script);
   font-size: 40px;
   color: var(--color-ink);
 }

 .beyond__words {
   display: flex;
   justify-content: center;
   gap: 20px;
   margin-top: 40px;
 }

 .beyond__words .word-pair__en {
   padding-inline: 20px;
   border-bottom: 1px solid #a58254;
   color: #9b7442;
 }

 .beyond__words .word-pair>p+p {
   margin-top: 10px;
 }

 .beyond__conclusion {
   text-align: center;
   font-size: 28px;
   margin-top: 40px;
   font-weight: 500;
 }

 /* Three plans */
 .plans {
   padding-bottom: 40px;
 }

 .plans__difference {
   font-size: 24px;
   margin-top: 10px;
 }

 .plans__lead {
   font-size: 28px;
   text-align: center;
   margin: 60px 0 40px;
   color: var(--color-brown);
   font-weight: 500;
 }

 .plans__grid {
   display: grid;
   grid-template-columns: repeat(3, minmax(0, 1fr));
   gap: 10px;
 }

 .plan-card {
   display: flex;
   flex-direction: column;
   padding: 30px 20px 40px;
   border: 1px solid var(--color-gold);
   border-radius: 3px;
   font-family: var(--font-mincho);
 }

 .plan-card--a {
   background: var(--color-white);
 }

 .plan-card--s {
   background: #424950;
   color: var(--color-white);
 }

 .plan-card--sss {
   background: var(--color-ink);
   color: var(--color-white);
 }



 .plan-card__class {
   font-family: var(--font-english);
   font-size: 24px;
   text-align: center;
   height: 64px;
   font-weight: 400;
   border-bottom: 1px solid var(--color-gold);
   color: var(--color-brown);
 }

 .plan-card__class span {
   font-size: 42px;
 }

 .plan-card--s .plan-card__class, .plan-card--sss .plan-card__class {
   color: var(--color-gold);
 }

 .plan-card__intro {
   text-align: center;
   padding-top: 30px;
   padding-bottom: 30px;
   border-bottom: 1px solid var(--color-gold);
 }

 .plan-card--s .plan-card__intro,
 .plan-card--s .plan-card__class {
   border-bottom-color: var(--color-brown);
 }

 .plan-card__english {
   font-family: var(--font-english);
   font-size: 22px;
   white-space: nowrap;
   line-height: 1.5;
   color: var(--color-brown);
   font-weight: 500;
 }

 .plan-card--s .plan-card__english,
 .plan-card--sss .plan-card__english {
   color: var(--color-gold);
 }

 .plan-card__japanese {
   font-size: 18px;
 }

 .plan-card__price {
   margin-top: 5px;
   font-size: 22px;
   padding-bottom: 10px;
   font-weight: 500;
 }


 .plan-card--sss .plan-card__price {
   background: linear-gradient(180deg, #FFEACE 0%, #BA9464 100%);
   -webkit-background-clip: text;
   -webkit-text-fill-color: transparent;
 }

 .plan-card__price b {
   font-size: 34px;
   font-weight: 500;
 }

 .plan-card__price small {
   font-size: 18px;
 }

 .plan-card__catch {
   font-size: 34px;
   line-height: 1.5;
   margin-top: 5px;
 }

 .plan-card__details {
   padding-top: 30px;
 }

 .plan-card__details li {
   display: flex;
   align-items: flex-start;
   gap: 10px;
   margin-bottom: 10px;
   font-family: var(--font-mincho);
 }

 .plan-card__bullet {
   width: 12px;
   height: 12px;
   margin-top: 7px;
   flex-shrink: 0;
 }

 .plan-card__note {
   font-size: 16px;
   font-family: var(--font-mincho);
   text-align: right;
   margin-top: 0;
   opacity: .6;
 }

 .plan-card__audience {
   padding: 30px 0;
   margin-top: auto;
 }

 .plan-card__audience h4 {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 10px;
   font-size: 18px;
   margin-bottom: 10px;
 }

 .plan-card__audience h4::before, .plan-card__audience h4::after {
   content: '';
   flex: 1;
   height: 1px;
   background: var(--color-gold);
 }

 .plan-card--s .plan-card__audience h4::before, .plan-card--s .plan-card__audience h4::after {
   background: var(--color-brown);
 }

 .plan-card .button {
   align-self: center;
 }

 .plan-card--a .button--plan {
   color: var(--color-brown);
 }

 /* Semantic, scrollable comparison table; no rasterized table text. */
 .comparison {
   padding-top: 50px;
 }

 .comparison__scroll {
   overflow-x: auto;
   overscroll-behavior-inline: contain;
 }

 .comparison__table {
   border-collapse: collapse;
   table-layout: fixed;
   width: 100%;
   min-width: 1000px;
   font-size: 18px;
 }

 .comparison__table th, .comparison__table td {
   border: 1px solid #858585;
   padding: 15px 12px;
   text-align: center;
   vertical-align: middle;
   font-weight: 400;
 }

 .comparison__table thead th {
   background: var(--color-ink);
   color: var(--color-white);
   padding-block: 10px;
   font-weight: 500;
 }

 .comparison__table thead th:first-child {
   width: 200px;
 }

 .comparison__table tbody td {
   background: var(--color-white);
 }

 .comparison__table tbody th {
   font-weight: 500;
 }

 .comparison__place-sp {
   display: none;
 }

 .comparison__conclusion {
   text-align: center;
   font-size: 28px;
   line-height: 1.85;
   margin-top: 60px;
 }

 .comparison__conclusion>span {
   text-decoration: underline;
   text-decoration-color: var(--color-gold);
   text-decoration-thickness: 1px;
   text-underline-offset: 6px;
 }

 /* Time / Private */
 .time {
   isolation: isolate;
   background-color: #F4F4F4;
   background-image: url(../images/time_bg_pc.png);
   background-repeat: no-repeat;
   background-position: top right;
   background-size: 60%;
 }

 .time__diagram {
   margin-top: 20px;
 }

 .time__diagram img {
   width: 100%;
 }

 .time__conclusion {
   font-size: 28px;
   text-align: center;
   margin-top: 20px;
   font-weight: 500;
 }

 .time__conclusion .color {
   color: var(--color-brown);
 }

 .time__conclusion .color .num {
   font-size: 1.4em;
 }

 .private {
   isolation: isolate;
   padding-block: 90px;
   min-height: 481px;
   background: #E9E9E9 url(../images/private_bg_pc.png);
   background-position: right top;
   background-repeat: no-repeat;
   background-size: contain;
 }

 .private__background {
   position: absolute;
   right: 0;
   top: 0;
   width: 64.3%;
   height: 100%;
   z-index: -1;
 }


 .private__words {
   display: flex;
   width: 100%;
   max-width: 610px;
   gap: 20px;
 }

 .private__words .word-pair {
   flex: 1;
 }

 .private__words .word-pair__en {
   font-size: 26px;
   border-bottom: 1px solid;
   border-image: linear-gradient(270deg, rgba(221, 181, 130, 0) 0%, var(--color-gold) 30%, var(--color-gold) 70%, rgba(221, 181, 130, 0) 100%)1;
   color: #9b7442;
 }

 .private__words .word-pair>p+p {
   margin-top: 10px;
   white-space: nowrap;
 }

 /* Promise / Support */
 .promise {
   isolation: isolate;
   padding-bottom: 40px;
   background: linear-gradient(rgba(19, 14, 13, 0.92), rgba(19, 14, 13, 0.92)), url(../images/promise_bg.png);
   background-position: center;
   background-repeat: no-repeat;
 }

 .promise__background {
   position: absolute;
   top: 0;
   left: 50%;
   transform: translateX(-50%);
   width: 1120px;
   max-width: 100%;
   z-index: -1;
 }

 .promise__list {
   max-width: 584px;
   margin: auto;
 }

 .promise__list li {
   display: flex;
   gap: 20px;
   align-items: center;
   padding: 15px 50px;
   border-bottom: 1px solid var(--color-brown);
   min-height: 90px;
 }

 .promise__list li:last-child {
   border: 0;
 }

 .promise__list li>span {
   font-family: var(--font-mincho);
   background: linear-gradient(180deg, var(--color-gold) 0%, var(--color-brown) 100%);
   -webkit-background-clip: text;
   -webkit-text-fill-color: transparent;
   font-size: 40px;
   flex: 0 0 58px;
 }

 .promise__list li>p {
   font-size: 22px;
   white-space: nowrap;
 }

 .support {
   isolation: isolate;
   padding-bottom: 100px;
   background: url(../images/support_bg.png);
   background-position: center;
   background-repeat: no-repeat;
   overflow: hidden;
 }

 .support__intro {
   font-size: 22px;
   text-align: center;
   max-width: 800px;
   margin: auto;
 }

 .support__intro .color {
   color: #F2E0CA;
 }

 .support__years {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 10px;
   margin-block: 50px;
 }

 .support__badge {
   width: 202px;
 }

 .support__notes {
   font-family: var(--font-mincho);
   font-size: 16px;
 }

 .support__conclusion {
   font-size: 28px;
   text-align: center;
   color: var(--color-gold);
 }

 /* Voice */
 .voice {
   padding-top: 0;
   padding-bottom: 120px;
   overflow: hidden;
 }

 .voice:after {
   content: '';
   display: block;
   width: 1px;
   height: 100px;
   background: linear-gradient(180deg, rgba(221, 181, 130, 0.5) 50%, rgba(221, 181, 130, 0) 100%);
   margin: 20px auto 0;
   position: absolute;
   bottom: -20px;
   right: 0;
   left: 0;
   margin: auto;
 }

 .voice__body {
   display: flex;
   align-items: center;
   gap: 60px;
 }

 .voice__label {
   flex: 0 0 139px;
 }

 .voice__label h3 {
   font-size: 28px;
   white-space: nowrap;
   margin-bottom: 20px;
 }

 .swiper-navigation {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 20px;
   position: relative;
   text-align: center;
 }

 .swiper-navigation button {
   display: grid;
   place-items: center;
   width: 40px;
   height: 40px;
   padding: 0;
   position: relative;
   border: 1px solid var(--color-gold);
   border-radius: 9999px;
   background: unset;
   transform: unset;
   right: unset;
   left: unset;
   top: unset;
   bottom: unset;
   margin: unset;
 }

 .swiper-navigation-icon {
   display: none;
 }

 .swiper-navigation .swiper-button-next span {
   position: absolute;
   display: inline-block;
   width: 16.5px;
   height: 1px;
   margin-top: 4.3px;
   border-radius: 9999px;
   background-color: var(--color-gold);
 }

 .swiper-navigation .swiper-button-next span:before {
   content: "";
   position: absolute;
   top: calc(50% - 0.5px);
   right: 0;
   width: 7px;
   height: 1px;
   border-radius: 9999px;
   background-color: var(--color-gold);
   transform: rotate(45deg);
   transform-origin: calc(100% - 0.5px) 50%;
 }

 .swiper-navigation .swiper-button-prev span {
   position: absolute;
   display: inline-block;
   width: 16.5px;
   height: 1px;
   margin-top: 4.3px;
   border-radius: 9999px;
   background-color: var(--color-gold);
 }

 .swiper-navigation .swiper-button-prev span:before {
   content: "";
   position: absolute;
   top: calc(50% - 0.5px);
   left: 0;
   width: 7px;
   height: 1px;
   border-radius: 9999px;
   background-color: var(--color-gold);
   transform: rotate(-45deg);
   transform-origin: 0.5px 50%;
 }

 .voice__controls {
   display: flex;
   justify-content: space-between;
   align-items: center;
   position: absolute;
   z-index: 2;
   left: -199px;
   top: 0;
   width: 139px;
 }

 .round-control {
   display: grid;
   place-items: center;
   background: transparent;
   border: 1px solid #b79a70;
   border-radius: 50%;
   width: 40px;
   height: 40px;
   font-family: var(--font-english);
   font-size: 26px;
   color: var(--color-gold);
 }

 .round-control:disabled {
   opacity: .45;
 }

 .voice__swiper {
   flex: 1;
   min-width: 0;
   max-width: 80%;
 }

 .voice__count {
   display: block;
   font-family: var(--font-mincho);
   font-size: 20px;
 }

 .voice-carousel .voice__current {
   margin: 0;
   transition: opacity .3s ease;
 }

 .voice-carousel .swiper-slide {
   width: min(600px, 100%);
 }

 .voice-carousel .swiper-slide:not(.swiper-slide-active) {
   filter: blur(5px);
   opacity: .58;
 }

 .voice__current .video-trigger__play {
   width: 68px;
   height: 68px;
 }

 .voice__current figcaption {
   margin-top: 20px;
   display: flex;
   align-items: baseline;
   gap: 10px;
   justify-content: center;
   font-size: 18px;
 }

 .voice__caption-number {
   font-family: var(--font-mincho);
   color: var(--color-brown);
   font-size: 24px;
   flex-shrink: 0;
 }

 /* Specialists */
 .specialists {
   padding-top: 20px;
   padding-bottom: 100px;
 }

 .specialists__heading {
   text-align: center;
   margin-bottom: 80px;
 }

 .specialists__heading h2 {
   font-size: 38px;
 }

 .specialists__note {
   font-size: 16px;
   margin-top: 20px;
   color: #cdcdcd;
   font-family: var(--font-mincho);
 }

 .specialist {
   position: relative;
   display: grid;
   grid-template-columns: 250px minmax(0, 1fr);
   gap: 40px;
   margin-bottom: 40px;
   min-height: 333px;
 }

 .specialist:last-child {
   margin-bottom: 0;
 }

 .specialist__photo {
   width: 250px;
   border-radius: 3px;
   overflow: hidden;
 }

 .specialist__content {
   min-width: 0;
   position: relative;
   padding-top: 100px;
 }

 .specialist__english {
   position: absolute;
   top: 0;
   left: -100px;
   font-family: var(--font-english);
   font-size: 60px;
   line-height: 1.5;
   white-space: nowrap;
   color: #bbb;
   mix-blend-mode: difference;
 }

 .specialist__name {
   display: flex;
   gap: 30px;
   align-items: center;
   font-size: 24px;
 }

 .specialist__name>span {
   padding: 0 20px;
   font-family: var(--font-sans);
   font-size: 18px;
   background: linear-gradient(90deg, rgba(83, 62, 34, 0) 0%, #533E22 50%, rgba(83, 62, 34, 0) 100%);
 }

 .specialist__role {
   font-size: 16px;
   padding-block: 10px;
   border-bottom: 1px solid #4b3c29;
 }

 .specialist__comment {
   margin-top: 10px;
   font-family: var(--font-sans);
 }

 .specialist__comment h4 {
   font-size: 16px;
   color: var(--color-gold);
   font-family: var(--font-mincho);
 }

 .specialist__comment p {
   font-size: 16px;
   margin-top: 10px;
   padding-bottom: 20px;
 }

 .specialist__comment .body-copy {
   font-family: var(--font-mincho);
 }

 .specialist--reverse {
   grid-template-columns: minmax(0, 1fr) 250px;
 }

 .specialist--reverse .specialist__photo {
   order: 2;
 }

 .specialist--reverse .specialist__english {
   left: auto;
   right: -100px;
 }

 .specialist--reverse .specialist__name {
   justify-content: flex-end;
 }

 .specialist--reverse .specialist__role {
   text-align: right;
 }

 /* Why / story / cases / actions */
 .about {
   isolation: isolate;
   padding-top: 0;
   padding-bottom: 100px;
   min-height: 713px;
   overflow: hidden;
   background: url(../images/about_bg_pc.png);
   background-position: center;
   background-repeat: no-repeat;
   max-width: 1920px;
   margin: 0 auto;
 }

 .about__body {
   max-width: 430px;
   margin: auto;
   position: relative;
   z-index: 2;
 }

 .about__body h3 {
   font-size: 28px;
   white-space: nowrap;
   text-align: center;
   color: var(--color-gold);
   font-feature-settings: "palt";
 }

 .about__body>p {
   font-size: 18px;
   line-height: 2.4;
   margin-top: 45px;
   text-align: center;
 }

 .about__body>p .big {
   font-size: 1.3em;
 }

 .about__body .about__end {
   font-size: 24px;
   line-height: 2.3;
   margin-top: 40px;
 }

 .about__collage {
   position: absolute;
   inset: 0;
   pointer-events: none;
 }

 .about__photo {
   position: absolute;
   max-width: 23%;
 }

 .about__photo--1 {
   left: 0;
   top: 200px;
   width: 300px;
 }

 .about__photo--2 {
   left: 6%;
   top: 477px;
   width: 300px;
 }

 .about__photo--3 {
   right: 0;
   top: 283px;
   width: 320px;
 }

 .about__photo--4 {
   right: 10%;
   top: 430px;
   width: 241px;
 }

 .gift {
   padding-top: 30px;
   padding-bottom: 140px;
 }

 .gift__intro {
   text-align: center;
   margin-bottom: 40px;
 }

 .gift__body {
   max-width: 992px;
   margin: auto;
   display: grid;
   grid-template-columns: 220px minmax(0, 1fr);
   gap: 30px;
   align-items: center;
 }

 .gift__photo {
   width: 220px;
   height: 220px;
 }

 .gift__heading {
   display: flex;
   align-items: center;
   gap: 30px;
   margin-bottom: 30px;
 }

 .gift__logo {
   width: 387px;
 }

 .gift__heading h2 {
   font-size: 28px;
   white-space: nowrap;
   font-family: var(--font-mincho);
   color: var(--color-gold);
 }

 .gift__heading h2::before {
   content: '';
   display: inline-block;
   width: 30px;
   height: 1px;
   vertical-align: middle;
   background: #b79a70;
   margin-right: 10px;
 }

 .gift__content>p+p {
   margin-top: 20px;
 }

 .cases {
   padding-top: 0;
   padding-bottom: 110px;
 }

 .cases .section-heading {
   margin-bottom: 80px;
 }

 .cases__grid {
   display: grid;
   grid-template-columns: repeat(3, minmax(0, 1fr));
   gap: 30px;
 }

 .case-card>img {
   width: 100%;
 }

 .case-card__link {
   margin-top: 30px;
   display: flex;
   align-items: center;
   justify-content: flex-end;
   gap: 10px;
   background: transparent;
   border: 0;
   padding: 0;
   margin-left: auto;
   font-family: var(--font-mincho);
   font-size: 16px;
   color: #ACACAC;
   text-decoration: underline;
 }

 .case-card__link svg {
   fill: #ACACAC;
 }

 .actions {
   padding-top: 40px;
   padding-bottom: 130px;
 }

 .action {
   display: grid;
   grid-template-columns: 600px 380px;
   gap: 50px;
   align-items: center;
   margin-bottom: 80px;
 }

 .action__image {
   width: 600px;
   position: relative;
 }

 .action__image:before {
   content: "";
   position: absolute;
   width: 100%;
   height: 100%;
   top: 0;
   left: 0;
   background: linear-gradient(270deg, rgba(19, 14, 13, 0.1) 60%, var(--color-ink) 100%);
 }

 .action__content h3 {
   font-size: 30px;
   font-family: var(--font-english);
   color: var(--color-gold);
   margin-bottom: 10px;
 }

 .action__content .body-copy {
   color: #DEDEDE;
 }

 .action:nth-child(even) {
   grid-template-columns: 380px 600px;
   justify-content: end;
 }

 .action:nth-child(even) .action__image {
   order: 2;
 }

 .action:nth-child(even) .action__image:before {
   background: linear-gradient(90deg, rgba(19, 14, 13, 0.1) 30%, var(--color-ink) 100%);
 }

 .action:nth-child(even) h3 {
   text-align: right;
 }

 .action:last-child {
   margin-bottom: 0;
 }

 .actions__conclusion {
   text-align: center;
   margin-top: 60px;
   font-size: 20px;
 }

 .actions__conclusion p+p {
   font-size: 28px;
   margin-top: 20px;
   color: var(--color-gold);
 }

 .actions__conclusion::after {
   content: '';
   display: block;
   width: 1px;
   height: 100px;
   background: linear-gradient(180deg, rgba(221, 181, 130, 0.5) 50%, rgba(221, 181, 130, 0) 100%);
   margin: 20px auto 0;
 }

 /* Documentary */
 .documentary__heading {
   position: relative;
   text-align: center;
   margin-bottom: 60px;
 }

 .documentary__heading .script-heading {
   margin-top: -196px;
   margin-bottom: 0;
   background: linear-gradient(180deg, #130E0D 0%, #E9E9E9 70%);
   -webkit-background-clip: text;
   -webkit-text-fill-color: transparent;
 }

 .documentary__heading h2 {
   padding-top: 44px;
   font-size: 38px;
 }

 .documentary-step {
   display: grid;
   grid-template-columns: 90px 280px minmax(0, 1fr);
   position: relative;
   margin-bottom: 40px;
 }

 .documentary-step:last-child {
   margin-bottom: 0;
 }

 .documentary-step__number {
   display: grid;
   place-items: center;
   width: 90px;
   height: 90px;
   border-radius: 50%;
   font-family: var(--font-mincho);
   font-size: 30px;
   color: var(--color-brown);
   background: radial-gradient(50% 50% at 50% 50%, #EEDDC7 50%, rgba(238, 221, 199, 0) 100%);
   place-self: center;
 }

 .documentary-step__image {
   width: 250px;
   margin-left: 30px;
 }

 .documentary-step__text {
   background: var(--color-white);
   padding: 30px;
   display: flex;
   flex-direction: column;
   justify-content: center;
 }

 .documentary-step__text h3 {
   font-size: 28px;
   line-height: 1.5;
   padding-bottom: 5px;
   border-bottom: 1px solid #F2E0CA;
   margin-bottom: 10px;
 }

 .documentary-step__arrow {
   position: absolute;
   left: calc(50% - 20px);
   bottom: -30px;
   width: 40px;
   height: 20px;
 }

 .documentary__note {
   text-align: center;
   margin-top: 40px;
 }


 .safety {
   background: #f4f4f4;
 }


 .safety__lead {
   font-size: 20px;
   text-decoration: underline;
   text-underline-offset: 5px;
   text-decoration-color: var(--color-gold);
 }

 .safety__intro {
   margin-top: 10px;
 }

 .safety__table-title {
   font-size: 28px;
   text-align: center;
   margin: 60px auto 30px;
   border: 1px solid transparent;
   border-image: linear-gradient(to bottom, var(--color-gold) 0%, #FFF2E2 50%, var(--color-gold) 100%) 1;
   width: fit-content;
   padding: 5px 30px;
 }

 .safety__table {
   border: 1px solid #858585;
   background: var(--color-white);
 }

 .safety__row {
   display: grid;
   grid-template-columns: 260px minmax(0, 1fr);
 }

 .safety__row:not(:last-child) {
   border-bottom: 1px solid #858585;
 }

 .safety__row dt {
   background: var(--color-ink);
   color: var(--color-white);
   padding: 20px;
   font-size: 16px;
   text-align: center;
   display: flex;
   flex-direction: column;
   justify-content: center;
 }

 .safety__row dd {
   font-size: 16px;
   padding: 20px;
   overflow-wrap: anywhere;
   font-family: var(--font-sans);
 }

 .safety__row dd ul {
   list-style: disc;
   margin-bottom: 1em;
 }

 .safety__row dd li {
   margin-left: 1.5em;
 }

 .safety__row dd p:not(:last-of-type) {
   margin-bottom: 1em;
 }

 .safety__row dd a:not([href^="tel:"]) {
   text-decoration: underline;
 }

 /* FAQ: native keyboard-accessible disclosure */
 .faq__list {
   display: flex;
   flex-direction: column;
   gap: 20px;
 }

 .faq-item {
   background: var(--color-white);
   border-left: 3px solid var(--color-gold);
   border-radius: 3px;
   box-shadow: 0 5px 10px #0000001a;
 }

 .faq-item__question {
   list-style: none;
   display: grid;
   grid-template-columns: auto minmax(0, 1fr) 20px;
   gap: 20px;
   align-items: center;
   padding: 18px 20px;
   font-size: 22px;
   cursor: pointer;
   min-height: 73px;
 }

 .faq-item__question span {
   font-size: 20px;
 }

 .faq-item__question::-webkit-details-marker {
   display: none;
 }

 .faq-item__number {
   color: var(--color-brown);
 }

 .faq-item__icon {
   display: block;
   width: 14px;
   height: 14px;
   position: relative;
 }

 .faq-item__icon::before, .faq-item__icon::after {
   content: '';
   position: absolute;
   background: currentColor;
   top: 6px;
   left: 0;
   width: 12px;
   height: 1px;
 }

 .faq-item__icon::after {
   transform: rotate(90deg);
   transition: transform .2s;
 }

 .faq-item[open] .faq-item__icon::after {
   transform: rotate(0);
 }

 .faq-item__answer {
   padding: 0 20px 24px;
   font-size: 16px;
   overflow-wrap: anywhere;
   font-family: var(--font-mincho);
 }

 .faq-item__answer a {
   text-decoration: underline;
 }

 /* Closing / CTA / footer */
 .closing {
   padding-bottom: 90px;
   overflow: hidden;
 }

 .closing>.container {
   isolation: isolate;
 }

 .closing__background {
   position: absolute;
   z-index: -1;
 }

 .closing__background--one {
   width: 636px;
   right: 72px;
   top: -120px;
 }

 .closing__background--two {
   width: 423px;
   right: -30px;
   top: 226px;
 }

 .closing__english {
   font-family: var(--font-english);
   color: var(--color-white);
   font-size: 80px;
   line-height: 1;
 }

 .closing__english .color {
   color: var(--color-gold);
 }

 .closing h2 {
   font-size: 38px;
   letter-spacing: .05em;
   margin-top: 70px;
 }

 .closing__intro {
   font-size: 20px;
   margin-top: 20px;
 }

 .closing__plans {
   display: flex;
   justify-content: center;
   gap: 20px;
   margin-top: 60px;
 }

 .closing__plans a {
   width: 190px;
 }

 .closing__plans img {
   width: 190px;
   height: 190px;
 }

 .closing__method {
   text-align: center;
   margin-top: 60px;
 }

 .closing__wish {
   font-size: 38px;
   text-align: center;
   margin-top: 20px;
   background: linear-gradient(180deg, #F2E0CA 0%, var(--color-gold) 100%);
   -webkit-background-clip: text;
   -webkit-text-fill-color: transparent;
 }

 .contact-banner {
   margin-top: 60px;
   position: relative;
   isolation: isolate;
   min-height: 339px;
   border: 1px solid #F2E0CA;
 }

 .contact-banner__background {
   position: absolute;
   inset: 0;
   z-index: -1;
 }

 .contact-banner__background img {
   width: 100%;
   height: 100%;
   object-fit: cover;
 }

 .contact-banner__inner {
   padding: 60px 30px;
   text-align: center;
 }

 .contact-banner__inner h2 {
   font-size: 30px;
   margin-top: 0;
 }

 .contact-banner__plans {
   display: flex;
   justify-content: center;
   align-items: center;
   margin-top: 20px;
   margin-bottom: 25px;
 }

 .contact-banner__plans p {
   position: relative;
   padding: 0 30px;
   line-height: 1.2;
 }

 .contact-banner__plans p .en {
   display: block;
   font-family: var(--font-english);
   color: var(--color-gold);
   font-size: 22px;
 }

 .contact-banner__plans p .en .type {
   font-size: 36px;
 }

 .contact-banner__plans p .yen {
   font-size: 28px;
 }

 .contact-banner__plans p .tax {
   font-size: .8em;
 }

 .contact-banner__plans p:nth-child(2):before,
 .contact-banner__plans p:nth-child(2):after {
   content: "";
   border-left: 1px solid #ffffff81;
   height: 71px;
   width: 1px;
   display: block;
   position: absolute;
   transform: rotate(10deg);
   top: 0;
   bottom: 0;
   margin: auto;
 }

 .contact-banner__plans p:nth-child(2):before {
   left: 0;
 }

 .contact-banner__plans p:nth-child(2):after {
   right: 0;
 }



 .contact-banner__inner .button {
   min-width: 380px;
 }

 .site-footer {
   border-top: 1px solid #574641;
   padding-block: 40px 60px;
 }

 .site-footer__grid {
   display: flex;
   justify-content: space-between;
   align-items: flex-start;
   gap: 20px;
   font-family: var(--font-mincho);
   font-size: 16px;
 }

 .site-footer h2 {
   font-size: 18px;
   white-space: nowrap;
   margin-bottom: 20px;
 }

 .site-footer__group {
   display: flex;
   flex-direction: column;
   align-items: flex-start;
   gap: 10px;
 }

 .site-footer__group h2 {
   margin-bottom: 10px;
   color: #837E7D;
 }

 .site-footer__group>a, .site-footer__group>button {
   display: flex;
   gap: 10px;
   align-items: center;
   position: relative;
   background: transparent;
   border: 0;
   padding: 0 0 0 20px;
   text-align: left;
   font-size: 16px;
 }

 .site-footer__group>a::before, .site-footer__group>button::before {
   content: '';
   position: absolute;
   top: 12px;
   left: 0;
   width: 10px;
   height: 1px;
   background: #999;
 }

 .site-footer__group>a:hover, .site-footer__group>button:hover {
   color: var(--color-gold);
 }

 .site-footer__operator p {
   margin-bottom: 10px;
 }

 .site-footer__copyright {
   margin-top: 60px;
   font-family: var(--font-mincho);
   font-size: 14px;
   text-align: center;
   opacity: .5;
 }

 /* Honest, local-only dialogs for pending connections, not public content. */
 .notice-dialog {
   border: 1px solid var(--color-gold);
   background: var(--color-ink);
   color: var(--color-white);
   padding: 0;
   width: min(560px, calc(100% - 40px));
   max-height: calc(100dvh - 60px);
 }

 .notice-dialog::backdrop, .video-dialog::backdrop {
   background: #000b;
 }

 .notice-dialog__inner {
   padding: 35px;
 }

 .notice-dialog h2 {
   font-size: 24px;
   color: var(--color-gold);
   margin-bottom: 20px;
 }

 .notice-dialog p {
   font-family: var(--font-sans);
   overflow-wrap: anywhere;
 }

 .notice-dialog__note {
   font-size: 14px;
   opacity: .8;
   margin-block: 20px;
 }

 .notice-dialog form {
   text-align: right;
 }

 .video-dialog {
   padding: 48px 0 0;
   border: 0;
   background: var(--color-ink);
   width: min(1000px, calc(100% - 30px));
   max-width: none;
   color: var(--color-white);
 }

 .video-dialog__close {
   position: absolute;
   top: 0;
   right: 0;
   width: 48px;
   height: 48px;
   border: 0;
   background: transparent;
   font: 36px var(--font-sans);
 }

 .video-dialog__content iframe, .video-dialog__content video {
   display: block;
   width: 100%;
   aspect-ratio: 16 / 9;
   border: 0;
 }

 .noscript-note {
   font-family: var(--font-sans);
   padding: 20px;
   background: var(--color-white);
   color: var(--color-ink);
 }

 .tab-break {
   display: none;
 }

 @media (min-width: 1920px) {
   .hero {
     background-size: contain;
   }
 }

 @media (min-width: 768px) and (max-width: 1199px) {
   .hero__inner {
     padding-top: 65px;
   }

   .hero__shade {
     background: linear-gradient(270deg, #130E0D 0%, rgba(19, 14, 13, 0.6) 20%, rgba(19, 14, 13, 0.2) 45%, rgba(19, 14, 13, 0.6) 70%, #130E0D 100%),
       linear-gradient(180deg, #130E0D 0%, rgba(19, 14, 13, 0) 30%, rgba(19, 14, 13, 0) 60%, #130E0D 80%);
   }
 }

 @media (max-width: 1199px) {
   .site-header {
     background: linear-gradient(#130e0dc9, transparent);
   }

   .site-header__nav {
     display: none;
   }

   .menu-toggle {
     display: block;
   }

   .container {
     width: calc(100% - 60px);
   }

   .hero {
     background-size: 200%;
     background-position: 60% 0;
   }

   .hero__title {
     font-size: 40px;
   }

   .hero__title small {
     font-size: 36px;
   }

   .hero__intro>p+p {
     margin-top: 22px;
   }

   .hero__patient {
     font-size: 26px;
   }

   .tablet-down {
     display: block;
   }

   .hero__air {
     width: 144px;
     height: 144px;
     top: 0;
   }

   .hero__plans {
     width: 100%;
   }

   .hero-plan {
     flex: 1;
     padding-inline: 24px;
   }

   .hero__gift {
     flex-direction: column;
     gap: 8px;
   }

   .hero__gift-name {
     flex-direction: column;
     gap: 0;
   }

   .hero__gift-name>span {
     font-size: 48px;
     line-height: 1.2;
   }

   .hero__gift-message {
     margin-bottom: 20px;
   }

   .hero__buttons {
     gap: 10px;
   }

   .hero__buttons .button {
     flex: 1;
     padding-inline: 20px;
     font-size: 18px;
   }

   .hero__inner {
     padding-top: 40px;
   }

   .hero__conversion {
     margin-top: 40px;
   }

   .hero {
     min-height: 955px;
     background-size: cover;
   }

   .section-heading__title {
     font-size: 32px;
   }

   .problem__intro {
     font-size: 22px;
   }

   .problem__body {
     grid-template-columns: 55% 45%;
   }

   .problem__list li {
     font-size: 20px;
   }

   .problem__conclusion {
     font-size: 26px;
   }

   .philosophy__pair {
     grid-template-columns: minmax(0, 1fr) 60px minmax(0, 1fr);
     gap: 10px;
   }

   .philosophy__en {
     font-size: 44px;
   }

   .philosophy__times {
     font-size: 60px;
   }

   .team__card {
     width: 36%;
   }

   .team__card--dentist {
     left: 0;
     right: 0;
     margin: auto;
   }

   .team__card h3 {
     font-size: 20px;
   }

   .team__card .body-copy {
     font-size: 16px;
   }

   .team__patient {
     width: 150px;
     height: 150px;
     left: calc(50% - 75px);
   }

   .team__card--digital, .team__card--it {
     width: 40%;
   }

   .team__background--right {
     right: -20px;
   }

   .fit__content {
     width: 66%;
   }

   .fit__image {
     left: -180px;
     width: 56%;
   }

   .fit__text {
     margin-left: 0;
   }

   .fit__text h3 {
     font-size: 26px;
   }

   .fit__process-title {
     font-size: 22px;
   }

   .fit__steps {
     gap: 10px;
   }

   .fit__step-en {
     font-size: 20px;
   }

   .fit__number {
     border: 0;
   }

   .comfort__image {
     width: 55%;
     top: 80px;
   }

   .comfort__body {
     min-height: 570px;
   }

   .comfort__content>.body-copy {
     max-width: 55%;
   }

   .comfort__qualities {
     width: 45%;
   }

   .comfort__qualities .word-pair {
     padding: 20px 5px;
   }

   .comfort__qualities .word-pair__en {
     font-size: 24px;
   }

   .aesthetics__body {
     grid-template-columns: 44% 50%;
     gap: 6%;
   }

   .aesthetics__content h3 {
     font-size: 26px;
   }

   .aesthetics__clasp {
     font-size: 22px;
   }

   .beyond__frame {
     padding: 40px;
   }

   .beyond__upper {
     grid-template-columns: minmax(0, 1fr) 215px;
     gap: 20px;
   }

   .beyond__list li {
     padding: 8px;
     font-size: 17px;
     min-height: 62px;
   }

   .beyond__list li>span {
     font-size: 34px;
   }

   .beyond__words {
     gap: 10px;
   }

   .beyond__words .word-pair__en {
     padding-inline: 8px;
     font-size: 26px;
   }

   .plans__grid {
     grid-template-columns: 1fr;
     gap: 30px;
   }

   .plan-card {
     padding: 25px 15px;
   }

   .plan-card__english {
     font-size: 18px;
     white-space: normal;
   }

   .plan-card__japanese {
     font-size: 16px;
   }

   .plan-card__class {
     font-size: 26px;
   }

   .plan-card__class span {
     font-size: 38px;
   }

   .plan-card__catch {
     font-size: 25px;
   }

   .plan-card__details li {
     font-size: 16px;
   }

   .plan-card__price small {
     font-size: 16px;
   }

   .plan-card__note {
     font-size: 14px;
   }

   .button--plan {
     font-size: 14px;
     padding-inline: 8px;
   }

   .private {
     background-size: cover;
   }

   .private .section-heading__title {
     font-size: 30px;
   }

   .voice__body {
     flex-direction: column;
     align-items: stretch;
     gap: 25px;
     position: relative;
     padding-bottom: 0;
   }

   .voice__label h3 {
     text-align: center;
   }

   .voice__label {
     display: contents;
   }

   .voice__label h3 {
     order: 1;
   }

   .voice__swiper {
     margin: 0 auto;
     order: 2;
   }

   .swiper-navigation {
     order: 3;
   }

   .specialist {
     grid-template-columns: 210px minmax(0, 1fr);
     gap: 30px;
   }

   .specialist--reverse {
     grid-template-columns: minmax(0, 1fr) 210px;
   }

   .specialist__photo {
     width: 210px;
   }

   .specialist__english {
     font-size: 50px;
     left: -75px;
   }

   .specialist--reverse .specialist__english {
     right: -75px;
   }

   .good__heading .script-heading {
     font-size: 68px;
   }

   .about__body {
     max-width: 60%;
   }

   .about__body h3 {
     font-size: 24px;
   }

   .about__body>p {
     font-size: 18px;
   }

   .about__photo--4 {
     right: 5%;
   }

   .gift__body {
     grid-template-columns: 180px minmax(0, 1fr);
   }

   .gift__photo {
     width: 180px;
     height: 180px;
   }

   .gift__heading {
     flex-direction: column;
     align-items: flex-start;
     gap: 10px;
   }

   .gift__logo {
     width: 320px;
   }

   .cases__grid {
     gap: 10px;
   }

   .action {
     grid-template-columns: 54% 40%;
     gap: 6%;
   }

   .action:nth-child(even) {
     grid-template-columns: 40% 54%;
   }

   .action__image {
     width: 100%;
   }

   .documentary__heading .script-heading {
     font-size: 90px;
     margin-top: -186px;
   }

   .documentary-step {
     grid-template-columns: 65px 200px minmax(0, 1fr);
     gap: 20px;
   }

   .documentary-step__number {
     width: 65px;
     height: 65px;
   }

   .documentary-step__image {
     width: 200px;
     margin: 0;
   }

   .documentary-step__text h3 {
     font-size: 24px;
   }

   .safety__row {
     display: block;
   }

   .site-footer__grid {
     flex-wrap: wrap;
     gap: 30px;
   }

   .site-footer__operator {
     font-size: 16px;
     text-align: center;
     width: 100%;
   }

   .tab-break {
     display: block;
   }

   .pc-only {
     display: none;
   }

   .closing__wish {
     font-size: 34px;
   }
 }


 @media (max-width: 767px) {
   :root {
     --header-height: 60px;
   }

   .container {
     width: calc(100% - 40px);
   }

   .section {
     padding-block: 80px;
   }

   .sp-only, .sp-break {
     display: block;
   }

   .sp-none {
     display: none;
   }

   .section-heading {
     margin-bottom: 60px;
   }

   .section-heading__eyebrow {
     font-size: 18px;
     gap: 10px;
   }

   .section-heading__title {
     font-size: 28px;
     letter-spacing: .05em;
     margin-top: 26px;
   }

   .section-heading--center {
     text-align: left;
   }

   .section-heading--center .section-heading__eyebrow {
     justify-content: flex-start;
   }

   .section-heading--center .section-heading__eyebrow::before {
     display: block;
   }

   .button {
     font-size: 18px;
     padding: 16px 26px;
     min-height: 54px;
   }

   .site-header__inner {
     width: calc(100% - 40px);
     gap: 10px;
   }

   .site-header__brand {
     font-size: 16px;
   }

   .menu-toggle {
     width: 44px;
   }

   .menu-toggle span, .menu-close span {
     width: 42px;
   }

   .mobile-menu {
     padding-inline: 30px;
   }

   .mobile-menu__header {
     margin-inline: -10px;
   }

   .mobile-menu__nav {
     margin-top: 80px;
   }

   .mobile-menu__nav a {
     font-size: 20px;
     padding-block: 22px;
   }

   .mobile-menu__cta .button {
     padding-inline: 20px;
     font-size: 16px;
   }

   .hero {
     min-height: 1068px;
     padding-top: 0;
     background-image: url(../images/fv_sp.jpg);
     background-position: center top;
     background-size: 100%;
   }

   .hero__inner {
     width: calc(100% - 40px);
     padding-top: 116px;
     padding-bottom: 30px;
   }

   .hero__shade {
     background: linear-gradient(270deg, rgba(19, 14, 13, 0.9) 0%, rgba(19, 14, 13, 0.8) 20%, rgba(19, 14, 13, 0.2) 40%, rgba(19, 14, 13, 0.7) 60%, #130E0D 100%),
       linear-gradient(180deg, #130E0D 0%, rgba(19, 14, 13, 0) 30%, rgba(19, 14, 13, 0) 50%, #130E0D 70%);
   }

   .hero__title {
     font-size: 30px;
     line-height: 1.5;
     letter-spacing: .03em;
     white-space: nowrap;
   }

   .hero__title small {
     font-size: 26px;
   }

   .hero__air {
     width: 120px;
     height: 120px;
     top: 60px;
     right: -8px;
   }

   .hero__intro {
     margin-top: 26px;
     letter-spacing: 0;
   }

   .hero__intro>p:first-child {
     font-size: 16px;
     line-height: 1.8;
   }

   .hero__intro>p+p {
     font-size: 16px;
     margin-top: 24px;
   }

   .hero__patient {
     font-size: 22px;
     line-height: 1.5;
   }

   .hero__conversion {
     margin-top: 60px;
   }

   .hero__lead {
     font-size: 22px;
     white-space: nowrap;
   }

   .hero__plans {
     flex-direction: column-reverse;
     align-items: center;
     gap: 10px;
     margin-top: 10px;
   }

   .hero-plan {
     flex: auto;
     width: 240px;
     padding: 5px 10px;
   }

   .hero-plan__crown {
     top: -8px;
   }


   .hero-plan__name {
     font-size: 18px;
     padding: 0;
     line-height: 1.3;
   }

   .hero-plan__name b {
     font-size: 24px;
   }

   .hero-plan__action {
     font-size: 20px;
     margin-top: 2px;
   }

   .hero-plan__price {
     font-size: 18px;
     margin-top: -3px;
     line-height: 1.1;
   }

   .hero-plan__price b {
     font-size: 22px;
   }

   .hero__gift {
     margin-top: 30px;
     gap: 12px;
   }

   .hero__gift-name>span {
     font-size: 36px;
     line-height: 1.3;
   }

   .hero__gift-name small {
     font-size: 16px;
     margin-top: 6px;
   }

   .hero__gift-message {
     font-size: 18px;
     letter-spacing: 0;
     white-space: nowrap;
     margin-bottom: 15px;
   }

   .hero__buttons {
     gap: 10px;
     width: calc(100% + 20px);
     margin-left: -10px;
   }

   .hero__buttons .button {
     flex: 1;
     font-size: 16px;
     padding: 5px 9px;
     min-height: 55px;
   }

   .hero__buttons .button--gold {
     padding-right: 15px;
   }

   .hero__buttons .button__arrow {
     right: 0;
     width: 16px;
     height: 8px;
   }

   .problem {
     padding-top: 45px;
     padding-bottom: 80px;
   }

   .problem__body {
     display: flex;
     flex-direction: column;
     gap: 40px;
   }

   .problem__image {
     width: 100%;
   }

   .problem__content {
     width: 100%;
   }

   .problem__intro {
     font-size: 22px;
   }

   .problem__list {
     margin-top: 25px;
   }

   .problem__list li {
     font-size: 20px;
   }

   .problem__check {
     width: 27px;
     height: 27px;
   }

   .problem__conclusion {
     font-size: 24px;
     margin-top: 60px;
   }

   .philosophy {
     padding-bottom: 40px;
     background: unset;
   }

   .philosophy__intro {
     text-align: left;
   }

   .philosophy__pair {
     display: flex;
     flex-direction: column;
     gap: 60px;
     margin-top: 60px;
     background-image: url(../images/philosophy_bg_sp.png);
     background-position: center;
     background-repeat: no-repeat;
   }

   .philosophy__column {
     width: 100%;
   }

   .philosophy__en {
     font-size: clamp(32px, 12vw, 48px);
   }

   .philosophy__jp {
     margin-top: -5px;
     margin-bottom: 10px;
   }

   .philosophy__times {
     font-size: 60px;
     line-height: 1;
   }

   .philosophy__times::before,
   .philosophy__times::after {
     height: 50px;
   }

   .team {
     padding-top: 80px;
     padding-bottom: 40px;
     overflow: hidden;
   }

   .team__diagram {
     display: flex;
     flex-direction: column;
     height: auto;
     gap: 20px;
   }

   .team__card {
     width: 100%;
     position: relative;
     inset: auto;
     padding: 20px;
   }

   .team__card--dentist {
     order: 0;
   }

   .team__card--digital {
     order: 1;
   }

   .team__card--it {
     order: 2;
   }

   .team__patient {
     position: relative;
     inset: auto;
     order: 3;
     width: 180px;
     height: 180px;
     margin: 15px auto;
   }

   .team__card h3 {
     font-size: 24px;
   }

   .team__card .body-copy {
     font-size: 18px;
   }

   .team__role {
     font-size: 18px;
   }

   .team__ring {
     display: none;
   }

   .team__background {
     width: 380px;
     max-width: none;
     top: 350px;
   }

   .team__background--left {
     display: none;
   }

   .team__background--right {
     right: -70px;
     top: unset;
     bottom: -50px;
     width: 100vw;
   }

   .team__conclusion {
     font-size: 24px;
     margin-top: 40px;
   }

   .team__sub {
     font-size: 18px;
   }

   .lab {
     padding-bottom: 50px;
   }

   .lab__lead {
     font-size: 22px;
     margin-top: 12px;
   }

   .lab-carousel {
     margin-top: 40px;
   }

   .lab-carousel .swiper-slide {
     width: min(500px, calc(100vw - 40px));
   }

   .lab-carousel__slide figcaption {
     font-size: 14px;
     padding: 8px 6px;
     text-align: center;
   }

   .lab__conclusion {
     font-size: 24px;
     margin-top: 30px;
   }

   .good {
     padding-top: 80px;
     padding-bottom: 50px;
   }

   .good__background {
     width: 440px;
     max-width: none;
     left: calc(50% - 220px);
     top: 145px;
   }

   .good__heading .script-heading {
     font-size: 60px;
     line-height: 1.1;
   }

   .good__heading .script-heading span {
     display: block;
   }

   .good__heading h2 {
     font-size: 24px;
     margin-top: 30px;
   }

   .good__intro {
     margin-top: 40px;
   }

   .good__wish {
     font-size: 24px;
     margin-top: 30px;
   }

   .good__condition {
     margin-top: 30px;
   }

   .good__conditions {
     width: 100%;
     margin-top: 35px;
   }

   .feature-heading {
     gap: 15px;
     flex-wrap: wrap;
     margin-bottom: 30px;
   }

   .feature-heading h2 {
     font-size: 80px;
     line-height: 1.1;
   }

   .feature-heading>span {
     gap: 10px;
   }

   .feature-heading>span::before {
     width: 30px;
   }

   .feature-heading--center {
     justify-content: flex-start;
   }

   .fit {
     padding-top: 10px;
     padding-bottom: 60px;
   }

   .fit__container {
     min-height: 0;
     padding-top: 80px;
   }

   .fit__container .feature-heading>span {
     color: var(--color-gold);
   }

   .fit__image {
     width: 375px;
     max-width: none;
     height: auto;
     top: -40px;
     left: -20px;
   }

   .fit__content {
     width: 100%;
     margin-left: 0;
   }

   .fit__text h3 {
     font-size: 24px;
   }

   .fit__text>.body-copy {
     margin-top: 30px;
   }

   .fit__process {
     padding-block: 30px;
     margin-top: 40px;
   }



   .fit__steps {
     flex-direction: column;
     gap: 20px;
     margin-top: 30px;
   }

   .fit__steps::before {
     height: auto;
     width: 1px;
     top: 15px;
     bottom: 15px;
     left: 0;
     right: 0;
     margin: auto;
   }

   .fit__steps li {
     display: grid;
     gap: 10px;
     align-items: center;
   }

   .fit__number {
     width: 60px;
     height: 60px;
     font-size: 20px;
     grid-column: span 2 / span 2;
     text-align: center;
     margin: 0 auto;
   }

   .fit__step-en {
     font-size: 24px;
     white-space: normal;
     grid-row-start: 2;
     text-align: right;
   }

   .fit__step-jp {
     font-size: 14px;
     max-width: none;
     text-align: left;
     margin: 0;
     grid-row-start: 2;
   }

   .comfort {
     padding-top: 40px;
     padding-bottom: 40px;
   }

   .comfort .feature-heading {
     display: block;
   }

   .comfort .feature-heading>span {
     margin-top: 10px;
   }

   .comfort__body {
     min-height: 0;
   }

   .comfort__content h3 {
     font-size: 24px;
     line-height: 1.5;
   }

   .comfort__content>.body-copy {
     max-width: 100%;
     width: 100%;
     margin-top: 30px;
   }

   .comfort__lead {
     font-size: 22px;
     margin-top: 20px;
   }

   .comfort__qualities {
     width: 100%;
     margin-top: 30px;
   }

   .comfort__qualities .word-pair {
     padding: 12px 5px;
   }

   .comfort__qualities .word-pair__en {
     font-size: 24px;
   }

   .comfort__image {
     position: static;
     width: 100%;
     margin-top: 70px;
   }

   .aesthetics {
     padding-block: 40px 80px;
   }

   .aesthetics .feature-heading {
     display: block;
     margin-bottom: 30px;
     overflow: hidden;
   }

   .aesthetics .feature-heading>span {
     margin-top: 10px;
   }

   .aesthetics__body {
     display: flex;
     flex-direction: column;
     gap: 35px;
   }

   .aesthetics__content {
     order: 0;
   }

   .aesthetics__figure {
     order: 1;
   }

   .aesthetics__figure img {
     width: 100%;
   }

   .aesthetics__figure figcaption {
     font-size: 14px;
     margin-top: -10px;
   }

   .aesthetics__content h3 {
     font-size: 24px;
   }

   .aesthetics__content>.body-copy {
     margin-top: 30px;
   }

   .aesthetics__combination {
     margin-block: 30px;
     width: 100%;
   }

   .aesthetics__clasp {
     font-size: 20px;
     white-space: nowrap;
   }

   .beyond__intro {
     text-align: left;
   }

   .beyond__frame {
     padding: 40px 15px;
     margin-top: 40px;
   }

   .beyond__upper {
     display: flex;
     flex-direction: column;
     gap: 30px;
   }

   .beyond__video {
     width: 100%;
   }

   .video-trigger__play {
     width: 56px;
     height: 56px;
   }

   .video-trigger__play::after {
     border-left-width: 18px;
     border-block-width: 12px;
   }

   .beyond__list {
     width: fit-content;
   }

   .beyond__list li {
     font-size: 20px;
     padding: 8px 10px;
     min-height: 64px;
   }

   .beyond__list li>span {
     font-size: 34px;
   }

   .beyond__words {
     gap: 25px 15px;
     display: grid;
     grid-template-columns: repeat(2, minmax(0, 1fr));
   }

   .beyond__words .word-pair__en {
     font-size: 24px;
     padding-inline: 0;
   }

   .beyond__words .word-pair>p+p {
     font-size: 18px;
   }

   .beyond__words .word-pair:last-child {
     grid-column: 1/-1;
     justify-self: center;
   }

   .beyond__conclusion {
     font-size: 24px;
   }

   .plans {
     padding-bottom: 30px;
   }

   .plans__difference {
     font-size: 22px;
     margin-top: 20px;
   }

   .plans__lead {
     font-size: 22px;
     margin-top: 40px;
     margin-bottom: 30px;
   }

   .plans__grid {
     grid-template-columns: minmax(0, 1fr);
   }

   .plan-card {
     padding: 30px 20px 40px;
     min-width: 0;
   }

   .plan-card__class {
     font-size: 30px;
   }

   .plan-card__class span {
     font-size: 42px;
   }

   .plan-card__english {
     font-size: 22px;
     white-space: normal;
   }

   .plan-card__japanese {
     font-size: 18px;
   }

   .plan-card__price small {
     font-size: 18px;
   }

   .plan-card__catch {
     font-size: 30px;
   }

   .plan-card__details li {
     font-size: 18px;
   }

   .plan-card__note {
     font-size: 14px;
   }

   .plan-card__audience {
     padding-block: 30px;
   }

   .button--plan {
     padding: 9px 6px;
   }

   .comparison {
     padding-top: 60px;
   }

   .comparison .section-heading {
     margin-bottom: 35px;
   }

   .comparison__scroll {
     width: calc(100% + 20px);
   }

   .comparison__table {
     width: 930px;
     min-width: 930px;
     font-size: 18px;
   }

   .comparison__table thead th:first-child {
     width: 180px;
   }

   .comparison__table th, .comparison__table td {
     padding: 15px 12px;
   }

   .comparison__place-pc {
     display: none;
   }

   .comparison__place-sp {
     display: inline;
   }

   .comparison__conclusion {
     font-size: 24px;
     line-height: 1.7;
     margin-top: 40px;
   }

   .time {
     padding-top: 60px;
   }

   .time__background {
     width: 100%;
   }

   .time__diagram {
     width: calc(100% + 40px);
     margin-left: -20px;
     margin-top: 35px;
   }

   .time__conclusion {
     font-size: 24px;
     margin-top: 35px;
   }

   .private {
     padding-top: 60px;
     padding-bottom: 40px;
     min-height: 0;
     background-image: url(../images/private_bg_sp.png);
     background-position: bottom center;
     background-size: contain;
   }

   .private .section-heading__title {
     font-size: 28px;
   }

   .private__background {
     position: relative;
     inset: auto;
     width: 100%;
     height: 370px;
     margin-bottom: -100px;
     display: none;
   }

   .private::after {
     content: '';
     display: block;
     width: 100%;
     height: 300px;
     background: url('../images/private_bg_sp.webp') no-repeat center bottom / cover;
     margin-top: -30px;
   }

   .private .section-heading {
     margin-bottom: 40px;
   }

   .private__words {
     display: grid;
     grid-template-columns: 1fr 1fr;
     width: 100%;
     gap: 25px 15px;
   }

   .private__words .word-pair:last-child {
     grid-column: 1/-1;
     justify-self: center;
   }

   .private__words .word-pair__en {
     font-size: 26px;
   }

   .private__words .word-pair>p+p {
     white-space: normal;
   }

   .promise {
     padding-top: 80px;
     padding-bottom: 40px;
   }

   .promise__background {
     width: 100%;
     height: 100%;
     object-fit: cover;
     opacity: .75;
   }

   .promise__list {
     width: 100%;
   }

   .promise__list li {
     padding: 18px 5px;
     gap: 15px;
     align-items: flex-start;
     min-height: 0;
   }

   .promise__list li>span {
     font-size: 40px;
     flex-basis: 55px;
     line-height: 1.5;
   }

   .promise__list li>p {
     font-size: 22px;
     white-space: normal;
   }

   .support {
     padding-top: 70px;
     padding-bottom: 80px;
   }


   .support__intro {
     text-align: left;
     font-size: 20px;
   }

   .support__years {
     flex-direction: column;
     gap: 30px;
     margin-block: 40px;
   }

   .support__notes {
     width: 100%;
     font-size: 16px;
   }

   .support__conclusion {
     font-size: 24px;
   }

   .voice {
     padding-top: 0;
     padding-bottom: 100px;
   }


   .voice__label h3 {
     font-size: 26px;
     margin-bottom: 0;
   }

   .voice__swiper {
     width: 100%;
     max-width: none;
   }

   .voice__controls {
     top: auto;
     bottom: -70px;
     left: calc(50% - 70px);
     width: 140px;
   }

   .voice__current {
     width: 100%;
   }

   .voice__current figcaption {
     font-size: 18px;
     align-items: flex-start;
     justify-content: flex-start;
   }

   .specialists {
     padding-top: 30px;
     padding-bottom: 80px;
   }

   .specialists__heading {
     margin-bottom: 70px;
   }

   .specialists__heading .script-heading {
     font-size: 72px;
     line-height: 1.05;
     max-width: 330px;
     margin: 0 auto 30px;
   }

   .specialists__heading h2 {
     font-size: 28px;
   }

   .specialists__note {
     text-align: left;
     margin-top: 25px;
   }

   .specialist, .specialist--reverse {
     display: flex;
     flex-direction: column;
     gap: 0;
     margin-bottom: 60px;
   }

   .specialist__photo, .specialist--reverse .specialist__photo {
     width: 250px;
     order: 0;
     align-self: center;
   }

   .specialist__content {
     order: 1;
     padding-top: 0;
   }

   .specialist__english, .specialist--reverse .specialist__english {
     position: relative;
     inset: auto;
     margin-top: -44px;
     font-size: 44px;
     line-height: 1.5;
     text-align: center;
   }

   .specialist--reverse .specialist__english {
     text-align: center;
   }

   .specialist__name, .specialist--reverse .specialist__name {
     margin-top: 20px;
     font-size: 24px;
     gap: 20px;
     justify-content: flex-start;
   }

   .specialist__name>span {
     padding-inline: 10px;
     font-size: 16px;
   }

   .specialist__role, .specialist--reverse .specialist__role {
     text-align: left;
     line-height: 1.8;
     padding-block: 15px;
   }

   .specialist__comment {
     margin-top: 15px;
   }

   .specialist__comment h4 {
     font-size: 16px;
   }

   .specialist__comment p {
     font-size: 16px;
     line-height: 1.5;
   }

   .about {
     padding-top: 20px;
     padding-bottom: 70px;
     min-height: 0;
     background-position: top;
   }

   .about__body {
     max-width: 100%;
   }

   .about__body h3 {
     font-size: 24px;
     white-space: normal;
   }

   .about__body>p {
     font-size: 18px;
     line-height: 2.5;
     margin-top: 30px;
   }

   .about__body .about__end {
     font-size: 24px;
     margin-top: 30px;
   }

   .about__collage {
     position: relative;
     display: flex;
     flex-direction: column;
     padding-top: 60px;
   }

   .about__photo {
     position: static;
     max-width: unset;
   }

   .about__photo--1 {
     width: 246px;
     order: 1;
   }

   .about__photo--2 {
     margin-left: auto;
     margin-top: -20px;
     margin-bottom: 60px;
     width: 246px;
     order: 2;
   }

   .about__photo--3 {
     width: 263px;
     order: 4;
     margin-right: 10%;
     margin-left: auto;
   }

   .about__photo--4 {
     margin-left: auto;
     margin-bottom: -30px;
     width: 198px;
     order: 3;
     z-index: 2;
   }

   .gift {
     padding-top: 20px;
     padding-bottom: 80px;
   }

   .gift__intro {
     text-align: left;
   }

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

   .gift__heading {
     flex-direction: column;
     gap: 20px;
     align-items: center;
   }

   .gift__logo {
     width: 100%;
   }

   .gift__heading h2 {
     font-size: 28px;
   }

   .cases {
     padding-top: 20px;
     padding-bottom: 80px;
   }

   .cases .section-heading {
     margin-bottom: 50px;
   }

   .cases__grid {
     grid-template-columns: 1fr;
     gap: 40px;
   }

   .case-card__link {
     margin-top: 20px;
   }

   .actions {
     padding-top: 40px;
     padding-bottom: 170px;
   }

   .actions__list .action {
     display: flex;
     flex-direction: column-reverse;
     gap: 30px;
     margin-bottom: 60px;
   }

   .actions__list .action:nth-child(even) {
     flex-direction: column;
   }

   .actions__list .action:nth-child(even) h3 {
     text-align: right;
   }

   .action__image {
     order: 0;
     width: 100vw;
     margin: 0 calc(50% - 50vw);
   }

   .action__content {
     order: 1;
     width: 100%;
   }

   .action__content h3 {
     font-size: 26px;
     margin-bottom: 15px;
   }

   .actions__conclusion {
     font-size: 18px;
   }

   .actions__conclusion p+p {
     font-size: 24px;
   }

   .actions__conclusion::after {
     height: 80px;
     margin-top: 30px;
   }

   .documentary {
     padding-top: 60px;
   }

   .documentary__heading .script-heading {
     margin-top: -172px;
     font-size: 60px;
     line-height: 1.05;
   }

   .documentary__heading h2 {
     font-size: 28px;
     padding-top: 40px;
   }

   .documentary__heading {
     margin-bottom: 50px;
   }

   .documentary-step {
     display: flex;
     flex-direction: column;
     gap: 0;
     margin-bottom: 60px;
     align-items: start;
     background: linear-gradient(0, var(--color-white), #ffffff00);
   }

   .documentary-step__number {
     width: 90px;
     height: 90px;
     font-size: 30px;
     align-self: center;
     margin-bottom: 20px;
   }

   .documentary-step__image {
     width: 100%;
     max-width: 250px;
     margin: 0 auto;
   }

   .documentary-step__text {
     background: unset;
   }

   .documentary-step__text h3 {
     font-size: 22px;
   }

   .documentary-step__text p {
     font-size: 18px;
   }

   .documentary-step__arrow {
     left: calc(50% - 20px);
     bottom: -40px;
   }

   .documentary__note {
     text-align: left;
     margin-top: 40px;
   }

   .safety {
     padding-top: 60px;
     padding-bottom: 60px;
   }

   .safety__lead {
     font-size: 20px;
   }

   .safety__intro {
     margin-top: 20px;
   }

   .safety__table-title {
     font-size: 24px;
     margin-top: 40px;
     padding: 5px 15px;
   }

   .safety__row dt {
     padding: 15px;
     text-align: left;
     font-size: 20px;
   }

   .safety__row dd {
     padding: 20px 15px;
     font-size: 18px;
   }

   .faq {
     padding-top: 60px;
   }

   .faq-item__question {
     grid-template-columns: auto minmax(0, 1fr) 16px;
     gap: 12px;
     font-size: 20px;
     padding: 16px 12px;
     align-items: start;
     min-height: 0;
   }

   .faq-item__icon {
     margin-top: 9px;
   }

   .faq-item__answer {
     padding: 16px;
     font-size: 18px;
   }

   .faq__list {
     gap: 20px;
   }

   .closing {
     padding-top: 90px;
   }

   .closing__background--one {
     width: 100vw;
     max-width: none;
     top: 80px;
     right: -60px;
   }

   .closing__background--two {
     width: 320px;
     max-width: none;
     right: -100px;
     top: 310px;
   }

   .closing__english {
     font-size: 46px;
     line-height: 1.1;
   }

   .closing h2 {
     font-size: 28px;
     margin-top: 40px;
   }

   .closing__intro {
     font-size: 18px;
     margin-top: 25px;
   }

   .closing__plans {
     display: flex;
     flex-direction: column;
     justify-content: center;
     align-items: center;
     gap: 20px;
     margin-top: 40px;
   }

   .closing__plans img {
     width: 180px;
     height: 180px;
   }

   .closing__method {
     margin-top: 40px;
   }

   .closing__wish {
     font-size: 28px;
     margin-top: 25px;
   }

   .contact-banner {
     margin-top: 40px;
     min-height: 560px;
     border: 0;
   }

   .contact-banner__inner {
     width: 100%;
     max-width: 100%;
     padding: 60px 20px;
   }

   .contact-banner__inner h2 {
     font-size: 26px;
     margin-top: 0;
   }

   .contact-banner__plans {
     flex-direction: column;
     align-items: center;
     gap: 10px;
     margin-top: 30px;
     margin-bottom: 30px;
   }

   .contact-banner__plans p {
     min-width: 170px;
     border: 0;
     border-bottom: 1px solid var(--color-brown);
     padding-bottom: 12px;
   }

   .contact-banner__plans p:nth-child(2):before,
   .contact-banner__plans p:nth-child(2):after {
     content: none;
   }

   .contact-banner__plans p:last-of-type {
     border-bottom: 0;
   }

   .contact-banner__plans p .en {
     font-size: 18px;
   }

   .contact-banner__plans p .type {
     font-size: 36px;
   }

   .contact-banner__plans p span+span {
     font-size: 20px;
   }

   .contact-banner__inner .button {
     width: 100%;
     min-width: 0;
     font-size: 16px;
     padding-inline: 12px;
   }

   .site-footer {
     padding-block: 40px 50px;
   }

   .site-footer__grid {
     display: flex;
     flex-direction: column;
     gap: 40px;
   }

   .site-footer h2 {
     font-size: 20px;
     margin: 0;
   }

   .site-footer__group>a, .site-footer__group>button {
     font-size: 18px;
   }

   .site-footer__group {
     gap: 15px;
     width: 100%;
   }

   .site-footer__copyright {
     margin-top: 40px;
   }

   .notice-dialog__inner {
     padding: 25px;
   }

   .notice-dialog h2 {
     font-size: 22px;
   }
 }

 @media (max-width: 359px) {
   .container {
     width: calc(100% - 32px);
   }

   .hero__inner {
     width: calc(100% - 32px);
   }

   .hero__title {
     font-size: 24px;
   }

   .hero__title small {
     font-size: 22px;
   }

   .hero__air {
     width: 105px;
     height: 105px;
   }

   .hero__intro>p:first-child {
     font-size: 14px;
   }

   .hero__lead {
     font-size: 20px;
   }

   .hero__gift-message {
     font-size: 16px;
   }

   .hero__buttons .button {
     font-size: 14px;
   }

   .hero-plan {
     width: 235px;
   }

   .section-heading__title {
     font-size: 26px;
   }

   .aesthetics__clasp {
     font-size: 18px;
   }

   .plan-card {
     padding-inline: 15px;
   }

   .plan-card__english {
     font-size: 20px;
   }

   .specialist__english, .specialist--reverse .specialist__english {
     font-size: 38px;
   }

   .closing__english {
     font-size: 38px;
   }

   .closing__plans a, .closing__plans img {
     width: 135px;
     height: 135px;
   }

   .beyond__words .word-pair__en {
     font-size: 20px;
   }

   .time__diagram {
     width: calc(100% + 32px);
     margin-left: -16px;
   }

   .plan-card__english {
     font-size: 18px;
   }
 }

 @media (prefers-reduced-motion: reduce) {
   html {
     scroll-behavior: auto;
   }

   *, *::before, *::after {
     transition-duration: .01ms !important;
     animation-duration: .01ms !important;
     animation-iteration-count: 1 !important;
   }
 }