@charset "UTF-8";

.sp-br,
br.sp-br {
  display: none;
}

.pc-br,
br.pc-br {
  display: inline;
}


.causeCheckSpIndent {
  display: none;
}

.causeChecks .causeCheckSpIndent {
  display: none;
}

@font-face {
  font-family: "NakafujiYuGothic";
  src: url("../font/YuGothM.woff2") format("woff2"),
       url("../font/YuGothM.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "NakafujiYuGothic";
  src: url("../font/YuGothB.woff2") format("woff2"),
       url("../font/YuGothB.woff") format("woff");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "NakafujiYuMincho";
  src: url("../font/yuminl.woff2") format("woff2"),
       url("../font/yuminl.woff") format("woff");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "NakafujiYuMincho";
  src: url("../font/yumin.woff2") format("woff2"),
       url("../font/yumin.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "NakafujiYuMincho";
  src: url("../font/yumindb.woff2") format("woff2"),
       url("../font/yumindb.woff") format("woff");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
:root {
  --brown: #7d6348;
  --brown-dark: #543b1d;
  --ink: #2f2b25;
  --mincho: "NakafujiYuMincho", "Yu Mincho", "YuMincho", serif;
  --gothic: "NakafujiYuGothic", "Yu Gothic", "YuGothic", "Meiryo", sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  font-size: calc(100vw / 1920 * 10);
}

body {
  margin: 0;
  color: var(--ink);
  background: #fff;
  font-family: var(--gothic);
  overflow-x: hidden;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

a {
  color: inherit;
  text-decoration: none;
	transition: all .3s ease-in-out;
}

a:hover{
    opacity: .8;
}

p,
h1,
h2 {
  margin: 0;
}

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

.siteWrap {
  min-width: 0;
  overflow: hidden;
}

.headerLogoTitle {
  display: none;
}

.spTitleBreak {
  display: none;
}

.spLeadBreak {
  display: none;
}

.introSpBreak,
.introPhotoSp,
.stopSpBreak {
  display: none;
}

.intro {
  display: none;
}

.cause {
  display: none;
}

.reason {
  display: none;
}

.stop {
  display: none;
}

.flow {
  display: none;
}

.treatment {
  display: none;
}

.greeting {
  display: none;
}

.faq {
  display: none;
}

.access {
  display: none;
}

.finalcta {
  display: none;
}

.finalctaSp {
  display: none;
}

.bannerSection {
  display: none;
}

.siteFooter {
  display: block;
}

.copyright {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 5.4rem;
  margin: 0;
  padding: 0;
  background: #000;
  color: #fff;
  font-family: var(--gothic);
  font-size: 2rem;
  font-weight: 400;
  line-height: 1;
  text-align: center;
}

.flowBgSp {
  display: none;
}

.treatmentPhotoSp {
  display: none;
}

.greetingBgSp {
  display: none;
}

@media screen and (min-width: 769px) {
  .siteHeader {
    position: absolute;
    z-index: 10;
    top: 0;
    left: 4.4rem;
    right: 4.8rem;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    height: 9.2rem;
  }

  .headerBrand {
    display: flex;
    flex-wrap: wrap;
    align-content: flex-start;
    align-items: flex-start;
    width: 70.4rem;
    height: 9.2rem;
    padding: .8rem 1.5rem 0 1.9rem;
    background: rgba(255,255,255,.96);
    border-radius: 0 0 .8rem .8rem;
  }

  .headerLogoTitle {
    display: block;
    flex: 0 0 100%;
    margin: 0 0 .45rem;
    color: #554d46;
    font-family: var(--gothic);
    font-size: 1.35rem;
    font-weight: 400;
    line-height: 1;
    letter-spacing: .08em;
    text-align: left;
    white-space: nowrap;
  }

  .headerLogo {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    width: 33.9rem;
  }

  .headerLogo img {
    width: 33.9rem;
  }

  .headerSiteName {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 32.6rem;
    height: 5.4rem;
    margin-left: .5rem;
    padding: 0 1.4rem .2rem;
    background: #303030;
    color: #fff;
    font-family: var(--mincho);
    font-size: 3rem;
    line-height: 1;
    white-space: nowrap;
  }

  .headerActions {
    display: flex;
    align-items: flex-start;
    height: 9.2rem;
  }

  .headerReserve {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 20.4rem;
    height: 9.2rem;
    padding-top: .2rem;
    background: var(--brown);
    color: #fff;
    text-align: center;
    font-family: var(--mincho);
  }

  .headerReserve::after {
    content: "";
    position: absolute;
    right: .9rem;
    bottom: .6rem;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 0 1.7rem 1.7rem;
    border-color: transparent transparent #fff transparent;
  }

  .headerReserve span {
    display: block;
    font-size: 2.1rem;
    line-height: 1.1;
  }

  .headerReserve b {
    display: block;
    margin-top: .4rem;
    font-size: 3.3rem;
    font-weight: 400;
    line-height: 1.05;
  }

  .headerTel {
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 33.2rem;
    height: 9.2rem;
    padding: .4rem 2rem 0 2.4rem;
    background: rgba(255,255,255,.96);
    color: var(--brown-dark);
    font-family: var(--mincho);
  }

  .headerTel span {
    display: block;
    margin-bottom: .7rem;
    font-family: var(--gothic);
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1;
    text-align: center;
  }

  .headerTel b {
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--mincho);
    font-size: 4rem;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
  }

  .headerTel img {
    width: 2.7rem;
    margin-right: 1.5rem;
  }

  .hero {
    position: relative;
    display: block;
    width: 100%;
    height: 93.4rem;
    overflow: hidden;
    color: #fff;
    background: #111;
  }

  .heroPicture,
  .heroBg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
  }

  .heroBg {
    max-width: none;
    object-fit: cover;
  }

  .heroCopy {
    position: absolute;
    z-index: 2;
    top: 27.6rem;
    right: 11.5rem;
    width: 86.5rem;
    font-family: var(--mincho);
    text-align: center;
  }

  .heroMessage {
    width: 100%;
  }

  .heroTitle {
    font-size: 8rem;
    font-weight: 400;
    line-height: 1.08;
    text-shadow: 0 .2rem .6rem rgba(0,0,0,.24);
    white-space: nowrap;
  }

  .heroSmallChar {
    display: inline-block;
    font-size: 6.4rem;
    vertical-align: -0.1em;
  }

  .heroLead {
    position: relative;
    margin-top: 3.1rem;
    padding: 2.7rem 0 2.5rem;
    font-size: 4rem;
    font-weight: 400;
    line-height: 1.8;
    white-space: nowrap;
    text-shadow: 0 .2rem .6rem rgba(0,0,0,.22);
  }

  .heroLead::before,
  .heroLead::after {
    content: "";
    position: absolute;
    left: 0;
    width: 100%;
    height: .1rem;
    background: rgba(255,255,255,.7);
  }

  .heroLead::before {
    top: 0;
  }

  .heroLead::after {
    bottom: 0;
  }

  .heroBadges {
    display: flex;
    justify-content: center;
    column-gap: 6.3rem;
    margin-top: 4.1rem;
    transform: translateX(3.2rem);
  }

  .heroBadge {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    width: 21.4rem;
    height: 21.4rem;
    padding: 2.9rem 1rem 0;
    border: .3rem solid #fff;
    border-radius: 50%;
    color: #fff;
    text-align: center;
    text-shadow: 0 .2rem .4rem rgba(0,0,0,.18);
  }
.heroBadge:nth-child(3){
  padding-top: 3.5rem;
}
  .heroBadge img {
    display: block;
    width: auto;
    height: 6.1em;
    margin-bottom: 1.2rem;
  }

  .heroBadge:last-child img {
    height: 5.1em;
    margin-bottom: 1.8rem;
  }

  .heroBadge p {
    font-size: 3rem;
    font-weight: 700;
    line-height: 1.1;
    white-space: nowrap;
  }

  .heroBadge .badgeSmall {
    display: inline;
    font-size: 2.8rem;
  }

  .heroBadge > span {
    display: block;
    margin-top: .15rem;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.1;
    white-space: nowrap;
  }

  .intro {
    position: relative;
    display: block;
    height: 108.2rem;
    overflow: hidden;
    color: #fff;
    background: #171717;
    font-family: var(--mincho);
  }

  .introPicture,
  .introBg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
  }

  .introBg {
    max-width: none;
    object-fit: cover;
  }

  .introPanel {
    position: absolute;
    inset: 0;
  }

  .introPanel::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 166.5rem;
    height: 100%;
    background: #292929;
    clip-path: polygon(24.4% 0, 100% 0, 68.3% 100%, 5.3% 100%);
  }

  .introInner {
    position: relative;
    z-index: 1;
    width: 137rem;
    margin-left: 26.7rem;
    padding-top: 9.8rem;
    text-align: center;
  }

  .introTitle {
    font-size: 8rem;
    font-weight: 400;
    line-height: 1.14;
    white-space: nowrap;
  }

  .introLead {
    margin-top: 3.9rem;
    font-size: 4.6rem;
    font-weight: 400;
    line-height: 1.35;
    white-space: nowrap;
  }

  .introTroubles {
    display: flex;
    justify-content: center;
    column-gap: 2.3rem;
    width: 116rem;
    margin-left: 6.7rem;
    margin-top: 4.1rem;
  }

  .introTroubles li {
    display: flex;
    align-items: center;
    width: 38.9rem;
    height: 8rem;
    padding: 0 1rem 0 1.5rem;
    background: #fff;
    color: #2c2c2d;
    font-family: var(--gothic);
  }

  .introTroubles img {
    width: 4.8rem;
    margin-right: 0;
    flex: 0 0 auto;
  }

  .introTroubles span {
    display: block;
    font-size: 3.1rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    margin-left: -1rem;
  }

  .introNote {
    margin-top: 2.9rem;
    font-size: 3.1rem;
    font-weight: 400;
    line-height: 1.5;
    white-space: nowrap;
  }

  .introBody {
    width: 115.8rem;
    margin-top: 2.4rem;
    padding-top: 4.1rem;
    border-top: .1rem dashed rgba(255,255,255,.7);
    text-align: left;
    font-family: var(--gothic);
    font-size: 2.8rem;
    font-weight: 400;
    line-height: 1.94;
  }

  .introBody p + p {
    margin-top: 1.8rem;
  }

  .introGold {
    color: #b0823a;
    font-weight: 700;
  }

  .cause {
    display: block;
    height: 108rem;
    padding-top: 11.9rem;
    background: #dbdbdb;
    color: #272727;
    overflow: hidden;
  }

  .causeHeading {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 10.4rem;
    font-family: var(--mincho);
  }

  .causeHeading img {
    width: 10.7rem;
    margin-right: 2.2rem;
  }

  .causeHeading h2 {
    font-size: 8rem;
    font-weight: 400;
    line-height: 1;
    white-space: nowrap;
  }

  .causeLine {
    position: absolute;
    top: 5.5rem;
    width: 35.2rem;
    height: .1rem;
    background: #555555;
  }

  .causeLine:first-child {
    left: 2.7rem;
  }

  .causeLine:last-child {
    right: 3.8rem;
  }

  .causeVisual {
    position: relative;
    width: 185.7rem;
    height: 74rem;
    margin: 4.7rem auto 0;
  }

  .causeBg {
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
  }

  .causePicture {
    display: block;
    width: 100%;
    height: 100%;
  }

  .causePanel {
    position: absolute;
    top: 1.6rem;
    left: 32.8rem;
    width: 120rem;
    height: 70.6rem;
    padding: 5.2rem 7.8rem 0;
    background: url("../img/kamiawase/cause_bg_txt.png") center / 100% 100% no-repeat;
    text-align: center;
  }

  .causePanel::before {
    content: none;
  }

  .causeCheckBox {
    position: relative;
    z-index: 1;
    width: 96.3rem;
    margin: 0 auto;
    padding: 2.5rem 3.8rem 2.8rem;
    background: #2b2b2b;
    color: #fff;
  }

  .causeCheckBox::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -2.0rem;
    width: 0;
    height: 0;
    transform: translateX(-50%);
    border-left: 2.8rem solid transparent;
    border-right: 2.8rem solid transparent;
    border-top: 2.4rem solid #2b2b2b;
  }

  .causeChecks li {
    display: flex;
    align-items: center;
    min-height: 5rem;
    font-family: var(--gothic);
  }

  .causeChecks li + li {
    margin-top: 1rem;
  }

  .causeChecks img {
    width: 5rem;
    margin-right: 2.2rem;
    flex: 0 0 auto;
  }

  .causeChecks li > span {
    display: block;
    font-size: 3.4rem;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
  }

  .causeText {
    position: relative;
    z-index: 1;
    margin-top: 4.4rem;
    font-family: var(--gothic);
    font-size: 3rem;
    font-weight: 700;
    line-height: 1.75;
    color: #111111;
  }

  .causeActions {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: center;
    column-gap: 4rem;
    margin-top: 2.3rem;
  }

  .causeReserve {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 49.1rem;
    height: 15.8rem;
    background: #b98839;
    color: #fff;
    font-family: var(--mincho);
  }

  .causeReserve::after {
    content: "";
    position: absolute;
    right: .9rem;
    bottom: .7rem;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 0 2.4rem 2.4rem;
    border-color: transparent transparent #fff transparent;
  }

  .causeReserve span {
    margin-right: 2.4rem;
    font-size: 3.1rem;
    line-height: 1;
  }

  .causeReserve b {
    font-size: 4.8rem;
    font-weight: 400;
    line-height: 1;
  }

  .causeTel {
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 48.9rem;
    height: 15.8rem;
    background: #fff;
    color: #1f1f1f;
    font-family: var(--mincho);
  }

  .causeTel span {
    display: block;
    margin-bottom: 1.3rem;
    font-family: var(--gothic);
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1;
    text-align: center;
  }

  .causeTel b {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 5.3rem;
    font-weight: 400;
    line-height: 1;
  }

  .causeTel img {
    width: 4rem;
    margin-right: 2rem;
  }

  .reason {
    display: block;
    height: 114rem;
    overflow: hidden;
    background: #dbdbdb;
    color: #222;
  }

  .reasonHeading {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 19rem;
    font-family: var(--mincho);
  }

  .reasonHeading h2 {
    font-size: 8rem;
    font-weight: 400;
    line-height: 1;
    white-space: nowrap;
  }

  .reasonLine {
    position: absolute;
    top: 10.7rem;
    width: 26.1rem;
    height: .1rem;
    background: #333;
  }

  .reasonLine:first-child {
    left: 0;
  }

  .reasonLine:last-child {
    right: 0;
  }

  .reasonVisual {
    position: relative;
    width: 191.8rem;
    height: 87.5rem;
    margin: 0 auto;
  }

  .reasonBg {
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
  }

  .reasonPicture {
    display: block;
    width: 100%;
    height: 100%;
  }

  .reasonText {
    position: absolute;
    top: 10.8rem;
    left: 84.6rem;
    width: 94rem;
    font-family: var(--gothic);
    text-align: left;
    font-size: 2.4rem;
    font-weight: 400;
    line-height: 1.9;
  }

  .reasonText p {
    margin: 0;
  }

  .reasonText p + p {
    margin-top: 3rem;
  }

  .reasonLead {
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1.9;
  }

  .reasonText b {
    font-weight: 700;
  }

  .stop {
    display: block;
    height: 126.4rem;
    overflow: hidden;
    background: #dbdbdb;
    color: #222;
  }

  .stopHeading {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 18.8rem;
    background: #ddd;
    font-family: var(--mincho);
  }

  .stopHeading h2 {
    font-size: 8rem;
    font-weight: 400;
    line-height: 1;
    white-space: nowrap;
  }

  .stopLine {
    position: absolute;
    top: 10.6rem;
    width: 26.1rem;
    height: 0.1rem;
    background: #333;
  }

  .stopLine:first-child {
    left: 0;
  }

  .stopLine:last-child {
    right: 0;
  }

  .stopVisual {
    position: relative;
    height: 107.4rem;
    overflow: hidden;
  }

  .stopBg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
  }

  .stopPanelImg {
    position: absolute;
    top: 10.7rem;
    left: 14.6rem;
    width: 166.5rem;
    height: 94.6rem;
    max-width: none;
  }

  .stopPhoto {
    position: absolute;
    top: 22.1rem;
    left: 4.2rem;
    width: 73.9rem;
    height: 72.1rem;
    max-width: none;
  }

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

  .stopIcon {
    position: absolute;
    top: 9.5rem;
    left: 168.4rem;
    width: 17.9rem;
    height: 17.9rem;
    max-width: none;
  }

  .stopText {
    position: absolute;
    top: 23.5rem;
    left: 81.4rem;
    width: 88.5rem;
    color: #222;
    font-family: var(--gothic);
  }

  .stopText h3 {
    margin: 0 0 2.6rem;
    font-size: 5.8rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
  }

  .stopRule {
    height: 0.1rem;
    margin-bottom: 2.4rem;
    background: #9c713f;
  }

  .stopText p {
    margin: 0;
    font-size: 2.4rem;
    font-weight: 400;
    line-height: 1.9;
    padding: 0 0 0 1em;
  }

  .stopText p + p {
    margin-top: 3rem;
  }

  .stopReasons {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 5.8rem;
    row-gap: 1.5rem;
    margin: 2rem 0 3.2rem 1em;
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.2;
  }

  .stopReasons li {
    position: relative;
    padding-left: 2.9rem;
    white-space: nowrap;
  }

  .stopReasons li::before {
    position: absolute;
    top: 0.3em;
    left: 0;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 50%;
    background: #aaa;
    content: "";
  }

  .stopText b {
    font-weight: 700;
  }

  .flow {
    display: block;
    height: 335rem;
    overflow: hidden;
    /* background: #777; */
    color: #222;
  }

  .flowHeading {
    position: relative;
    height: 33.4rem;
    padding-top: 12.8rem;
    background: #ddd;
    font-family: var(--mincho);
    text-align: center;
  }

  .flowHeading h2 {
    font-size: 8rem;
    font-weight: 400;
    line-height: 1;
  }

  .flowHeading p {
    margin-top: 4.7rem;
    font-family: var(--gothic);
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1;
  }

  .flowLine {
    position: absolute;
    top: 16.2rem;
    width: 30.8rem;
    height: .1rem;
    background: #333;
  }

  .flowLine:first-child {
    left: 0;
  }

  .flowLine:last-child {
    right: 0;
  }

  .flowVisual {
    position: relative;
    height: 302rem;
    overflow: hidden;
  }

  .flowBg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
  }

  .flowSteps {
    position: relative;
    z-index: 1;
    height: 100%;
  }

  .flowStep {
    position: absolute;
    left: 0;
    width: 100%;
    height: 49.6rem;
  }

  .flowStep01 {
    top: 5rem;
  }

  .flowStep02 {
    top: 62.4rem;
  }

  .flowStep03 {
    top: 120rem;
  }

  .flowStep04 {
    top: 178rem;
  }

  .flowStep05 {
    top: 236rem;
  }

  .flowPhoto {
    position: absolute;
    z-index: 2;
    top: 0;
    left: 9rem;
    width: 73.4rem;
    height: 48.5rem;
    max-width: none;
    object-fit: cover;
  }

  .flowBox {
    position: absolute;
    top: 5.6rem;
    left: 14.5rem;
    width: 167.1rem;
    height: 47rem;
    padding: 7.8rem 5.2rem 4rem 78.7rem;
    background: #f7f7f7;
  }

  .flowBox h3 {
    margin: 0 0 3.2rem;
    padding-bottom: 2.6rem;
    border-bottom: .1rem solid #8c8c8c;
    font-family: var(--mincho);
    font-size: 5rem;
    font-weight: 400;
    line-height: 1;
    color: #222222;
  }

  .flowBox p {
    margin: 0;
    font-family: var(--gothic);
    font-size: 2.8rem;
    font-weight: 400;
    line-height: 1.95;
    padding: 0 1em;
  }

  .flowBadge {
    position: absolute;
    z-index: 4;
    top: -1.8rem;
    left: 72rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 16.4rem;
    height: 16.4rem;
    border-radius: 50%;
    background: #000;
    color: #fff;
    font-family: var(--mincho);
    text-align: center;
  }

  .flowBadge b {
    display: block;
    font-size: 6rem;
    font-weight: 400;
    line-height: .9;
  }

  .flowBadge span {
    display: block;
    margin-top: 1.2rem;
    font-size: 3rem;
    font-weight: 400;
    line-height: 1;
  }

  .flowArrow {
    position: absolute;
    z-index: 3;
    top: -4rem;
    left: 90rem;
    width: 12.2rem;
    max-width: none;
  }

  .treatment {
    display: block;
    /* height: 266.4rem; */
    overflow: hidden;
    background: #000;
    color: #222;
    border-top: 4px solid #dbdbdb;
    padding-bottom: 9.6rem;
  }

  .treatmentVisual {
    position: relative;
    width: 190rem;
    height: 84.1rem;
    margin: 14.4rem auto 0;
  }

  .treatmentVisual img {
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: contain;
  }

  .treatmentPhotoSp {
    display: none;
  }

  .treatmentLead {
    position: absolute;
    top: 0;
    left: 84.2rem;
    width: 29.4rem;
    height: 89.6rem;
    color: #fff;
    font-family: var(--mincho);
    text-align: center;
  }

  .treatmentLeadPhrase {
    position: absolute;
    top: 0;
    right: 9.4rem;
    margin: 0;
    font-size: 6rem;
    font-weight: 400;
    line-height: 1.24;
    writing-mode: vertical-rl;
    /* letter-spacing: 0.5rem; */
  }

  .treatmentLeadPhrase span {
    font-size: 4.6rem;
  }

  .treatmentLeadTitle {
    position: absolute;
    top: 24.1rem;
    left: 3rem;
    margin: 0;
    font-size: 7rem;
    font-weight: 400;
    line-height: 1.12;
    writing-mode: vertical-rl;
    letter-spacing: 0.5rem;
  }

  .treatmentCards {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(2, 83.6rem);
    gap: 6.9rem 7.1rem;
    width: 174.3rem;
    margin: -3.1rem auto 0;
  }

  .treatmentCard {
    position: relative;
    min-height: 75.5rem;
    padding: 4rem 3.2rem 4.2rem;
    background: #f5f5f5;
    border: .1rem solid #8e8e8e;
    font-family: var(--gothic);
  }

  .treatmentCorner {
    position: absolute;
    width: 8.8rem;
    height: 8.8rem;
    pointer-events: none;
  }

  .treatmentCornerTopLeft {
    top: .9rem;
    left: .9rem;
    border-top: .1rem solid #777;
    border-left: .1rem solid #777;
  }

  .treatmentCornerTopRight {
    top: .9rem;
    right: .9rem;
    border-top: .1rem solid #777;
    border-right: .1rem solid #777;
  }

  .treatmentCornerBottomLeft {
    bottom: .9rem;
    left: .9rem;
    border-bottom: .1rem solid #777;
    border-left: .1rem solid #777;
  }

  .treatmentCornerBottomRight {
    right: .9rem;
    bottom: .9rem;
    border-right: .1rem solid #777;
    border-bottom: .1rem solid #777;
  }

  .treatmentNumber {
    margin: 0;
    color: #8b735d;
    font-family: var(--mincho);
    font-size: 9rem;
    font-weight: 400;
    line-height: 1;
    text-align: center;
  }

  .treatmentCard h3 {
    margin: 3.5rem 0 3.2rem;
    font-family: var(--mincho);
    font-size: 5rem;
    font-weight: 400;
    line-height: 1;
    text-align: center;
  }

  .treatmentBand {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 76.8rem;
    min-height: 13.5rem;
    margin: 0 auto 3.2rem;
    background: #000;
    color: #fff;
    font-family: var(--gothic);
    font-size: 3.6rem;
    font-weight: 400;
    line-height: 1.65;
    text-align: center;
  }

  .treatmentText {
    padding: 0 3.3rem;
  }

  .treatmentText p {
    margin: 0;
    font-family: var(--gothic);
    font-size: 2.6rem;
    font-weight: 400;
    line-height: 2.05;
    text-align: left;
  }

  .treatmentText p + p {
    margin-top: 4.4rem;
  }

  .greeting {
    display: block;
    height: 278rem;
    overflow: hidden;
    background: #dbdbdb;
    color: #222;
  }

  .greetingHeading {
    position: relative;
    height: 32.2rem;
    padding-top: 13.7rem;
    font-family: var(--mincho);
    text-align: center;
  }

  .greetingHeadingEn {
    display: inline-block;
    margin: 0 3.2rem;
    font-size: 10rem;
    font-weight: 300;
    line-height: .9;
    vertical-align: middle;
    letter-spacing: 0.5rem;
  }

  .greetingHeading span {
    display: inline-block;
    width: 13.7rem;
    height: .1rem;
    background: #555;
    vertical-align: middle;
  }

  .greetingHeadingTitle {
    margin: 2.4rem 0 0;
    font-size: 4rem;
    font-weight: 700;
    line-height: 1;
  }

  .greetingVisual {
    position: relative;
    height: 246.9rem;
  }

  .greetingBg {
    position: absolute;
    top: 0;
    left: 0;
    width: 192rem;
    height: 119.4rem;
    max-width: none;
    object-fit: cover;
  }

  .greetingBgSp {
    display: none;
  }

  .greetingCatch {
    position: absolute;
    top: 58rem;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 113.5rem;
    height: 27.5rem;
    background: rgba(0,0,0,.72);
    color: #fff;
    font-family: var(--mincho);
    font-size: 5.8rem;
    font-weight: 700;
    line-height: 1.78;
    text-align: center;
  }

  .greetingBody {
    position: absolute;
    top: 88.5rem;
    left: 4.6rem;
    width: 102.3rem;
    min-height: 100.4rem;
    padding: 5.9rem 5.3rem 5.2rem;
    background: rgba(255,255,255,.9);
    font-family: var(--gothic);
  }

  .greetingBody p {
    margin: 0;
    font-size: 2.6rem;
    font-weight: 400;
    line-height: 2.05;
  }

  .greetingBody p + p {
    margin-top: 4.2rem;
  }

  .greetingBody b {
    font-weight: 700;
  }

  .greetingDirectorPhoto {
    position: absolute;
    top: 24rem;
    right: 0;
    width: 78.5rem;
    height: 88.4rem;
    max-width: none;
    object-fit: cover;
  }

  .greetingName {
    position: absolute;
    top: 92.9rem;
    left: 109.5rem;
    width: 44.2rem;
    height: 17.4rem;
    padding: 2.5rem 4rem 2.4rem;
    background: rgba(0,0,0,.72);
    color: #fff;
    font-family: var(--mincho);
  }

  .greetingName p {
    margin: 0 0 1.7rem;
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1;
  }

  .greetingName div {
    display: flex;
    align-items: center;
    gap: 2.2rem;
  }

  .greetingName span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 8.9rem;
    height: 5.1rem;
    background: #000;
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1;
  }

  .greetingName b {
    font-size: 5.4rem;
    font-weight: 400;
    line-height: 1;
  }

  .greetingProfile {
    position: absolute;
    right: 0;
    width: 78.4rem;
    font-family: var(--gothic);
  }

  .greetingProfile h3 {
    display: flex;
    align-items: center;
    height: 5.1rem;
    margin: 0 0 2.1rem;
    padding: 0 3.4rem;
    background: #2c2c2c;
    color: #fff;
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1;
  }

  .greetingProfile dl,
  .greetingProfile ul {
    margin: 0;
    padding: 0 3.4rem;
    list-style: none;
  }

  .greetingProfile div {
    display: grid;
    grid-template-columns: 14rem 1fr;
    gap: 2.4rem;
  }

  .greetingProfile dt,
  .greetingProfile dd,
  .greetingProfile li {
    margin: 0;
    font-size: 2.2rem;
    font-weight: 400;
    line-height: 2.05;
  }

  .greetingProfileCareer {
    top: 112.2rem;
  }

  .greetingProfileGroup {
    top: 152.6rem;
  }

  .greetingTrainingPhoto {
    position: absolute;
    top: 203rem;
    left: 6rem;
    width: 84.4rem;
    height: 38.4rem;
    max-width: none;
    object-fit: cover;
  }

  .greetingProfileCourse {
    top: 203rem;
    right: 7.4rem;
    width: 90rem;
  }

  .faq {
    display: block;
    overflow: hidden;
    background: #ddd;
    color: #222;
  }

  .faqHeading {
    position: relative;
    height: 34rem;
    padding-top: 14.3rem;
    font-family: var(--mincho);
    text-align: center;
  }

  .faqHeadingEn {
    display: inline-block;
    margin: 0 3.5rem;
    font-size: 9.2rem;
    font-weight: 400;
    line-height: .9;
    vertical-align: middle;
  }

  .faqHeading span {
    display: inline-block;
    width: 13.9rem;
    height: .1rem;
    background: #555;
    vertical-align: middle;
  }

  .faqHeadingTitle {
    margin: 3rem 0 0;
    font-size: 3.5rem;
    font-weight: 700;
    line-height: 1;
  }

  .faqList {
    width: 138rem;
    margin: 0 auto;
  }

  .faqItem {
    margin: 0;
    font-family: var(--gothic);
  }

  .faqItem + .faqItem {
    margin-top: 5.3rem;
  }

  .faqItemOpen + .faqItem {
    margin-top: 7.7rem;
  }

  .faqItem h3 {
    display: grid;
    grid-template-columns: 7rem 1fr 7.8rem;
    align-items: center;
    min-height: 7rem;
    margin: 0;
    background: #4b2f27;
    color: #fff;
    cursor: pointer;
    font-size: 2.9rem;
    font-weight: 700;
    line-height: 1.35;
  }

  .faqMark {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 7rem;
    height: 7rem;
    background: #000;
    font-size: 4rem;
    font-weight: 700;
    line-height: 1;
  }

  .faqQuestion {
    padding: 0 2.1rem;
  }

  .faqToggle {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 4.5rem;
    font-weight: 700;
    line-height: 1;
  }

  .faqItem p {
    margin: 3.1rem 0 0 9.1rem;
    font-size: 2.5rem;
    font-weight: 400;
    line-height: 2.08;
  }

  .faqItem:not(.faqItemOpen) p {
    display: none;
  }

  .access {
    display: block;
    overflow: hidden;
    background: #dbdbdb;
    color: #222;
  }

  .accessPc {
    display: block;
  }

  .accessPcHeading {
    position: relative;
    height: 28.3rem;
    padding-top: 17.2rem;
    font-family: var(--mincho);
    font-size: 7.2rem;
    font-weight: 400;
    line-height: 1;
    text-align: center;
  }

  .accessPcHeading::before,
  .accessPcHeading::after {
    display: inline-block;
    width: 33.2rem;
    height: .1rem;
    margin: 0 4.3rem;
    background: #555;
    vertical-align: .3em;
    content: "";
  }

  .accessPcHeading span {
    display: inline-block;
  }

  .accessPcPhotos {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    width: 192rem;
    height: 64rem;
  }

  .accessPcPhotos img {
    width: 96rem;
    height: 64rem;
    max-width: none;
    object-fit: cover;
  }

  .accessPcContent {
    display: grid;
    grid-template-columns: 79.6rem 83.6rem;
    justify-content: space-between;
    width: 167.3rem;
    margin: 6.2rem 0 0 16.1rem;
  }

  .accessPcInfo {
    padding-top: 0;
    font-family: var(--gothic);
  }

  .accessPcLogo {
    display: block;
    width: 48.9rem;
    height: auto;
    max-width: none;
    margin: 0 0 4rem 1.5rem;
  }

  .accessPcAddress {
    margin: 0 0 3rem;
    font-size: 2.4rem;
    font-weight: 400;
    line-height: 1.4;
  }

  .accessPcStation {
    display: flex;
    align-items: center;
    gap: 3.5rem;
    margin: 0 0 4.1rem 2.8rem;
  }

  .accessPcStation img {
    width: 4.3rem;
    height: auto;
    max-width: none;
  }

  .accessPcStation p {
    margin: 0;
    font-size: 2.35rem;
    line-height: 1.85;
  }

  .accessPcSchedule {
    width: 74.2rem;
    margin: 0 0 3.4rem 1.1rem;
    border-collapse: collapse;
    font-family: var(--gothic);
  }

  .accessPcSchedule th {
    height: 5.7rem;
    background: #000;
    color: #fff;
    font-size: 2.6rem;
    font-weight: 700;
    text-align: center;
    padding: 0 .25em;
  }

  .accessPcSchedule th:first-child {
    width: 21rem;
  }
  .accessPcSchedule th:last-child {
    padding-right:1.5em;
  }
  .accessPcSchedule td {
    height: 5.4rem;
    font-size: 2.6rem;
    text-align: center;
    vertical-align: middle;
    padding: 0.7em 0 0;
  }

  .accessPcSchedule td:first-child {
    width: 21rem;
    font-size: 2.6rem;
    text-align: center;
    white-space: nowrap;
  }
  .accessPcSchedule td:last-child {
    padding-right:1.5em;
  }

  .accessPcNotes {
    width: 74.2rem;
    margin-left: 1.1rem;
    padding-top: 2.3rem;
    border-top: .1rem solid #555;
    font-family: var(--gothic);
  }

  .accessPcNotes p {
    margin: 0 0 1.9rem 2.4rem;
    font-size: 2.4rem;
    line-height: 1.2;
  }

  .accessPcNotes span {
    font-size: 3rem;
  }

  .accessPcNotes small {
    display: block;
    margin: 2.7rem 0 0 2.4rem;
    font-size: 2rem;
    line-height: 1.5;
  }

  .accessPcMap {
    width: 83.6rem;
    height: 67rem;
    border: 0;
  }

  .finalcta {
    display: block;
    padding-top: 16.5rem;
    background: #dbdbdb;
    overflow: hidden;
  }

  .finalctaPc {
    position: relative;
    width: 185.7rem;
    height: 74rem;
    margin: 0 auto;
    overflow: hidden;
  }

  .finalctaBg {
    display: block;
    width: 185.7rem;
    height: 74rem;
    max-width: none;
  }

  .finalctaPanel {
    position: absolute;
    top: 1.7rem;
    left: 32.6rem;
    width: 120rem;
    height: 70.6rem;
  }

  .finalctaPanelBg {
    position: absolute;
    inset: 0;
    width: 120rem;
    height: 70.6rem;
    max-width: none;
  }

  .finalctaPanelContent {
    position: relative;
    z-index: 1;
    padding-top: 4.7rem;
    text-align: center;
  }

  .finalctaHeading {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    font-family: var(--mincho);
    font-size: 6rem;
    font-weight: 600;
    line-height: 1.08;
    margin-left: 8rem;
  }

  .finalctaHeading img {
    width: 10.7rem;
    height: auto;
    max-width: none;
    margin-right: 1rem;
  }

  .finalctaHeading span {
    display: inline-block;
  }

  .finalctaCatch {
    width: 90rem;
    height: 17.6rem;
    margin: 2.6rem auto 0;
    padding-top: 2rem;
    clip-path: polygon(8% 0, 100% 0, 92% 100%, 0 100%);
    background: #242424;
    color: #fff;
    font-family: var(--mincho);
    font-size: 5rem;
    font-weight: 700;
    line-height: 1.4;
  }

  .finalctaLead {
    margin: 2rem 0 0;
    color: #222;
    font-family: var(--gothic);
    font-size: 3.6rem;
    font-weight: 700;
    line-height: 1.5;
  }

  .finalctaActions {
    display: grid;
    grid-template-columns: 49rem 49rem;
    gap: 4rem;
    justify-content: center;
    margin-top: 2.8rem;
  }

  .finalctaReserve,
  .finalctaTel {
    height: 15.7rem;
    text-decoration: none;
  }

  .finalctaReserve {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2.8rem;
    background: #bc8936;
    color: #fff;
    font-family: var(--mincho);
  }

  .finalctaReserve::after {
    position: absolute;
    right: .8rem;
    bottom: .8rem;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 0 2.4rem 2.4rem;
    border-color: transparent transparent #fff transparent;
    content: "";
  }

  .finalctaReserve span {
    font-size: 2.8rem;
    font-weight: 400;
    line-height: 1;
  }

  .finalctaReserve b {
    font-size: 4.6rem;
    font-weight: 400;
    line-height: 1;
  }

  .finalctaTel {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: #222;
    font-family: var(--gothic);
  }

  .finalctaTel span {
    margin-bottom: 1.2rem;
    font-size: 2.6rem;
    font-weight: 700;
    line-height: 1;
  }

  .finalctaTel b {
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--mincho);
    font-size: 5.2rem;
    font-weight: 600;
    line-height: 1;
  }

  .finalctaTel img {
    width: 4.1rem;
    height: auto;
    max-width: none;
    margin-right: 1.5rem;
  }

  .bannerSection {
    display: block;
    padding: 14.6rem 4rem 6.7rem;
    background: #dbdbdb;
  }

  .bannerPcTop {
    display: grid;
    grid-template-columns: repeat(3, 58.5rem);
    justify-content: center;
    gap: 4.6rem 4rem;
  }

  .bannerPcBottom {
    display: flex;
    justify-content: center;
    gap: 7.8rem;
    margin-top: 5.6rem;
  }

  .bannerSection img {
    display: block;
    height: auto;
    max-width: none;
  }

  .bannerOfficial {
    position: relative;
    display: block;
    width: 58.5rem;
    height: 21.9rem;
    overflow: hidden;
    color: #fff;
    text-decoration: none;
  }

  .bannerOfficial img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 52%;
  }

  .bannerOfficial span {
    position: absolute;
    left: 4.5rem;
    right: 4.2rem;
    top: 11.8rem;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 6.8rem;
    background: rgba(88, 57, 38, 0.88);
    font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 3rem;
    font-weight: 600;
    line-height: 1.2;
  }

  .bannerPcTop img {
    width: 58.5rem;
  }

  .bannerPcBottom img {
    width: 49.3rem;
  }
}

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

  .pc-br,
  br.pc-br {
    display: none;
  }

  html {
    font-size: calc(100vw / 750 * 10);
  }

  .siteWrap {
    overflow: hidden;
  }

  .spTitleBreak {
    display: block;
  }

  .spLeadBreak {
    display: block;
  }

  .siteHeader {
    position: absolute;
    z-index: 10;
    top: 0;
    left: 2.3rem;
    right: 2.6rem;
    display: block;
    height: 9.7rem;
  }

  .headerBrand {
    position: fixed;
    z-index: 20;
    top: 0;
    left: 2.3rem;
    right: 2.6rem;
    display: flex;
    flex-wrap: wrap;
    align-content: flex-start;
    align-items: flex-start;
    width: auto;
    height: 9.7rem;
    padding: .8rem 1.2rem 0 2rem;
    background: rgba(255,255,255,.96);
    border-radius: 0 0 .8rem .8rem;
  }

  .headerLogoTitle {
    display: block;
    flex: 0 0 100%;
    margin: 0 0 .65rem;
    color: #554d46;
    font-family: var(--gothic);
    font-size: 1.35rem;
    font-weight: 400;
    line-height: 1;
    letter-spacing: .08em;
    text-align: left;
    white-space: nowrap;
  }

  .headerLogo {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    width: 31rem;
  }

  .headerLogo img {
    width: 31rem;
  }

  .headerSiteName {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 32.8rem;
    height: 5.7rem;
    margin-left: 2.7rem;
    padding-bottom: .2rem;
    background: #303030;
    color: #fff;
    font-family: var(--mincho);
    font-size: 3rem;
    font-weight: 400;
    line-height: 1;
    white-space: nowrap;
  }

  .headerActions {
    display: none;
  }

  .hero {
    position: relative;
    height: 123rem;
    overflow: hidden;
    color: #fff;
    background: #111;
  }

  .heroPicture,
  .heroBg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
  }

  .heroBg {
    max-width: none;
    object-fit: cover;
  }

  .hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.35);
  }

  .heroCopy {
    position: absolute;
    z-index: 2;
    left: 3.6rem;
    right: 3.6rem;
    top: 40.4rem;
    font-family: var(--mincho);
    text-align: center;
  }

  .heroTitle {
    font-size: 8rem;
    font-weight: 400;
    line-height: 1.28;
    text-shadow: 0 .2rem .6rem rgba(0,0,0,.24);
  }

  .heroSmallChar {
    display: inline-block;
    font-size: 6.4rem;
    vertical-align: .08em;
  }

  .heroLead {
    margin-top: 2.7rem;
    padding: 2.7rem 0 2.6rem;
    border-top: .1rem solid rgba(255,255,255,.7);
    border-bottom: .1rem solid rgba(255,255,255,.7);
    font-size: 3.7rem;
    line-height: 1.85;
  }

  .heroBadges {
    display: flex;
    justify-content: center;
    gap: 1.8rem;
    margin-top: 1.8rem;
  }

  .heroBadge {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    width: 21.4rem;
    height: 21.4rem;
    padding-top: 3rem;
    border: 2px solid #fff;
    border-radius: 50%;
  }
.heroBadge:nth-child(3){
  padding-top: 3.5rem;
}

  .heroBadge img {
    height: 5.2rem;
    margin-bottom: 1.9rem;
  }

  .heroBadge:last-child img {
    height: 4.1rem;
    margin-bottom: 2.3rem;
  }

  .heroBadge p {
    font-size: 3rem;
    font-weight: 700;
    line-height: 1.1;
    white-space: nowrap;
  }

  .heroBadge .badgeSmall {
    display: inline;
    font-size: 2.2rem;
  }

  .heroBadge > span {
    display: block;
    margin-top: .35rem;
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.1;
    white-space: nowrap;
  }

  .intro {
    position: relative;
    display: block;
    min-height: 203.4rem;
    overflow: hidden;
    color: #fff;
    background: #292929;
    font-family: var(--mincho);
  }

  .introPicture {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
  }

  .introBg {
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
  }

  .introPanel,
  .introInner {
    position: relative;
    z-index: 1;
  }

  .introPanel::before {
    content: none;
  }

  .introInner {
    width: 100%;
    padding-top: 10rem;
    text-align: center;
  }

  .introSpBreak {
    display: block;
  }

  .introTitle {
    font-size: 8rem;
    font-weight: 400;
    line-height: 1.38;
    white-space: nowrap;
  }

  .introLead {
    margin-top: 4.3rem;
    font-size: 4.6rem;
    font-weight: 400;
    line-height: 1.6;
    white-space: nowrap;
  }

  .introTroubles {
    display: grid;
    grid-template-columns: 38.9rem 30rem;
    justify-content: center;
    align-items: center;
    gap: 2.8rem 2.4rem;
    margin-top: 2.2rem;
  }

  .introTroubles li {
    display: flex;
    align-items: center;
    height: 8rem;
    padding: 0 2.2rem;
    background: #fff;
    color: #30251f;
    font-family: var(--gothic);
  }

  .introTroubles li:nth-child(3) {
    grid-column: 1 / 3;
    width: 42rem;
    justify-self: center;
  }

  .introTroubles img {
    width: 4.8rem;
    flex: 0 0 auto;
    margin-right: 1.2rem;
  }

  .introTroubles span {
    display: block;
    font-size: 2.6rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
  }

  .introTroubles li:nth-child(2) span {
    font-size: 2.65rem;
  }

  .introNote {
    margin: 4.6rem 1.9rem 0;
    padding-bottom: 1.2rem;
    border-bottom: .1rem dashed rgba(255,255,255,.8);
    font-size: 3.55rem;
    font-weight: 400;
    line-height: 1.55;
  }

  .introPhotoSp {
    display: block;
    width: 100%;
    margin-top: 3.8rem;
  }

  .introBody {
    padding: 2.5rem 4rem 4rem;
    text-align: left;
    font-family: var(--gothic);
    font-size: 3rem;
    font-weight: 400;
    line-height: 1.62;
  }

  .introBody p + p {
    margin-top: 3.1rem;
  }

  .introGold {
    color: #b78b3e;
    font-weight: 700;
  }

  .cause {
    display: block;
    min-height: 188rem;
    background: #ddd;
    color: #1f1f1f;
    overflow: hidden;
  }

  .causeHeading {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 29.2rem;
    font-family: var(--mincho);
  }

  .causeHeading img {
    width: 10.7rem;
    margin-right: 2.7rem;
  }

  .causeHeading h2 {
    width: 39rem;
    font-size: 6.05rem;
    font-weight: 400;
    line-height: 1.45;
  }

  .causeLine {
    position: absolute;
    top: 14.2rem;
    width: 8rem;
    height: .1rem;
    background: #333;
  }

  .causeLine:first-child {
    left: 0;
  }

  .causeLine:last-child {
    right: 0;
  }

  .causeVisual {
    position: relative;
    padding-top: 32.7rem;
    margin-top: -3rem;
  }

  .causePicture {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 32.7rem;
  }

  .causeBg {
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
  }

  .causePanel {
    position: relative;
    padding: 3.1rem 1.9rem 10.7rem;
    background: #ddd;
    text-align: center;
  }

  .causePanel::before {
    content: none;
  }

  .causeCheckSpIndent,
  .causeChecks .causeCheckSpIndent {
    display: inline-block;
    width: 1em;
  }

  .causeCheckBox {
    position: relative;
    width: 71.2rem;
    margin: 0 auto;
    padding: 3.2rem 4rem 3.7rem;
    background: #2b2b2b;
    color: #fff;
  }

  .causeCheckBox::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -3.4rem;
    width: 0;
    height: 0;
    transform: translateX(-50%);
    border-left: 4rem solid transparent;
    border-right: 4rem solid transparent;
    border-top: 3.7rem solid #2b2b2b;
  }

  .causeChecks li {
    display: flex;
    align-items: center;
    font-family: var(--gothic);
    text-align: left;
  }

  .causeChecks li + li {
    margin-top: 2.5rem;
  }

  .causeChecks img {
    width: 5rem;
    flex: 0 0 auto;
    margin-right: 2rem;
  }

  .causeChecks li > span {
    display: block;
    font-size: 3rem;
    font-weight: 700;
    line-height: 1.45;
  }

  .causeText {
    margin-top: 7.1rem;
    font-family: var(--gothic);
    font-size: 3.4rem;
    font-weight: 700;
    line-height: 1.72;
  }

  .causeActions {
    display: flex;
    flex-direction: column;
    align-items: center;
    row-gap: 3.8rem;
    margin-top: 7.3rem;
  }

  .causeReserve {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 49.1rem;
    height: 15.8rem;
    background: #b98839;
    color: #fff;
    font-family: var(--mincho);
  }

  .causeReserve::after {
    content: "";
    position: absolute;
    right: .8rem;
    bottom: .8rem;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 0 2.3rem 2.3rem;
    border-color: transparent transparent #fff transparent;
  }

  .causeReserve span {
    margin-right: 2rem;
    font-size: 2.9rem;
    line-height: 1;
  }

  .causeReserve b {
    font-size: 4.9rem;
    font-weight: 400;
    line-height: 1;
  }

  .causeTel {
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 49.1rem;
    height: 15.7rem;
    background: #fff;
    color: #1f1f1f;
  }

  .causeTel span {
    display: block;
    margin-bottom: 1.3rem;
    margin-top: 0.5rem;
    font-family: var(--gothic);
    font-size: 2.6rem;
    font-weight: 700;
    line-height: 1;
  }

  .causeTel b {
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--mincho);
    font-size: 5.4rem;
    font-weight: 600;
    line-height: 1;
    margin-top: 1rem;
  }

  .causeTel img {
    width: 4rem;
    margin-right: 1.8rem;
  }

  .reason {
    position: relative;
    display: block;
    /* min-height: 212.5rem; */
    overflow: hidden;
    background: #dcdcdc;
    color: #2a2a2a;
  }

  .reasonHeading {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 23.8rem;
    background: #ddd;
    font-family: var(--mincho);
    text-align: center;
  }

  .reasonHeading h2 {
    font-size: 6.8rem;
    font-weight: 400;
    line-height: 1.45;
  }

  .reasonLine {
    position: absolute;
    top: 14.5rem;
    width: 2.3rem;
    height: .1rem;
    background: #333;
  }

  .reasonLine:first-child {
    left: 0;
  }

  .reasonLine:last-child {
    right: 0;
  }

  .reasonVisual {
    position: relative;
    min-height: 179rem;
  }

  .reasonPicture {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
  }

  .reasonBg {
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: top center;
  }

  .reasonText {
    position: relative;
    z-index: 1;
    width: 69.6rem;
    margin-left: 5.4rem;
    padding: 4.2rem 2.2rem 9.6rem 3rem;
    transform: translateY(49rem);
    background: rgba(255,255,255,.92);
    font-family: var(--gothic);
    text-align: left;
    font-size: 2.8rem;
    font-weight: 400;
    line-height: 1.74;
  }

  .reasonText p {
    margin: 0;
  }

  .reasonText p + p {
    margin-top: 3.8rem;
    padding: 0 0 0 1em;
  }

  .reasonLead {
    font-size: 3.3rem;
    font-weight: 700;
    line-height: 1.76;
  }

  .reasonText b {
    font-weight: 700;
  }

  .stop {
    position: relative;
    display: block;
    min-height: 220.3rem;
    overflow: hidden;
    background: #dcdcdc;
    color: #252525;
  }

  .stopHeading {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    height: 30.8rem;
    padding-top: 8.4rem;
    background: #ddd;
    font-family: var(--mincho);
    text-align: center;
  }

  .stopHeading h2 {
    font-size: 6.8rem;
    font-weight: 400;
    line-height: 1.35;
  }

  .stopSpBreak {
    display: block;
  }

  .stopLine {
    position: absolute;
    top: 17.6rem;
    width: 5.9rem;
    height: .1rem;
    background: #333;
  }

  .stopLine:first-child {
    left: 0;
  }

  .stopLine:last-child {
    right: 0;
  }

  .stopVisual {
    position: relative;
    min-height: 151.5rem;
    overflow: hidden;
  }

  .stopBg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center top;
  }

  .stopPanelImg {
    display: none;
  }

  .stopIcon {
    position: absolute;
    z-index: 3;
    top: .8rem;
    right: 2.2rem;
    width: 17.9rem;
    height: 17.9rem;
    max-width: none;
  }

  .stopText {
    position: relative;
    z-index: 2;
    width: 72.4rem;
    /* min-height: 163rem; */
    margin: 16.1rem auto 9rem;
    padding: 4.2rem 1.2rem 5.8rem;
    border: .5rem solid #252525;
    background: rgba(248,248,248,.94);
    font-family: var(--gothic);
    text-align: left;
  }

  .stopText::before {
    position: absolute;
    z-index: -1;
    top: -5.4rem;
    right: -2.1rem;
    bottom: -3.1rem;
    left: -2.1rem;
    background: rgba(255,255,255,.4);
    content: "";
  }

  .stopText h3 {
    margin: 0 0 3.3rem;
    font-size: 4.8rem;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
  }

  .stopRule {
    height: .1rem;
    margin: 0 0 38.8rem;
    background: #9c713f;
  }

  .stopPhoto {
    position: absolute;
    z-index: 3;
    top: 31.9rem;
    left: 5.5rem;
    display: block;
    width: 63.9rem;
    height: 33rem;
    max-width: none;
  }

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

  .stopText p {
    margin: 0;
    padding: 0 2.7rem;
    font-size: 2.8rem;
    font-weight: 400;
    line-height: 1.76;
  }

  .stopText p + p {
    margin-top: 3.4rem;
  }

  .stopReasons {
    display: grid;
    grid-template-columns: 1fr;
    row-gap: 1.1rem;
    margin: 2.2rem 0 4.2rem;
    padding: 0 3.1rem;
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1.45;
  }

  .stopReasons li {
    position: relative;
    padding-left: 2.9rem;
  }

  .stopReasons li:nth-child(2) {
    order: 4;
  }

  .stopReasons li:nth-child(3) {
    order: 2;
  }

  .stopReasons li:nth-child(4) {
    order: 5;
  }

  .stopReasons li:nth-child(5) {
    order: 3;
  }

  .stopReasons li::before {
    position: absolute;
    top: .42em;
    left: 0;
    width: 1.7rem;
    height: 1.7rem;
    border-radius: 50%;
    background: #aaa;
    content: "";
  }

  .stopText b {
    font-weight: 700;
  }

  .flow {
    position: relative;
    display: block;
    height: 478rem;
    overflow: hidden;
    color: #222;
    background: #6f6f6f;
  }

  .flowHeading {
    position: relative;
    z-index: 2;
    height: 35.3rem;
    padding-top: 5.4rem;
    background: #ddd;
    font-family: var(--mincho);
    text-align: center;
  }

  .flowHeading h2 {
    width: 58rem;
    margin: 0 auto;
    font-size: 6.8rem;
    font-weight: 400;
    line-height: 1.5;
  }

  .flowHeading p {
    margin-top: 2.7rem;
    font-family: var(--gothic);
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1;
  }

  .flowLine {
    position: absolute;
    top: 15.6rem;
    width: 5.7rem;
    height: .1rem;
    background: #333;
  }

  .flowLine:first-child {
    left: 0;
  }

  .flowLine:last-child {
    right: 0;
  }

  .flowVisual {
    position: relative;
    /* height: 457.7rem; */
    overflow: hidden;
  }

  .flowBg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center top;
  }

  .flowBgPc {
    display: none;
  }

  .flowBgSp {
    display: block;
  }

  .flowSteps {
    position: relative;
    z-index: 1;
    /* height: 100%; */
    padding-top: 4.3rem;
  }

  .flowStep {
    position: relative;
    width: 72rem;
    margin: 0 auto;
    background: transparent;
  }

  .flowStep + .flowStep {
    margin-top: 7rem;
  }

  .flowStep::before,
  .flowStep::after {
    content: none;
  }

  .flowStep01 {
    /* min-height: 99rem; */
  }

  .flowStep02 {
    /* min-height: 99rem; */
  }

  .flowStep03 {
    /* min-height: 84rem; */
  }

  .flowStep04 {
    /* min-height: 75rem; */
  }

  .flowStep05 {
    /* min-height: 75rem; */
  }

  .flowPhoto {
    display: block;
    width: 61rem;
    height: 40.3rem;
    max-width: none;
    margin: 0 0 -1.6rem 4rem;
    border: .4rem solid #fff;
    object-fit: cover;
  }

  .flowBadge {
    position: absolute;
    z-index: 3;
    top: -1.5rem;
    right: 1.2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 17rem;
    height: 17rem;
    padding-top: .5rem;
    border-radius: 50%;
    background: #000;
    color: #fff;
    font-family: var(--mincho);
    text-align: center;
  }

  .flowBadge b {
    display: block;
    font-size: 6rem;
    font-weight: 400;
    line-height: .9;
  }

  .flowBadge span {
    display: block;
    margin-top: 1.2rem;
    font-size: 3rem;
    line-height: 1;
  }

  .flowBox {
    padding: 5.1rem 1.7rem 4.8rem;
    background: #f7f7f7;
  }

  .flowBox h3 {
    margin: 0 0 3.7rem;
    border-bottom: .1rem solid #b7b7b7;
    font-family: var(--mincho);
    font-size: 5rem;
    font-weight: 400;
    line-height: 1;
    padding: 0 0 3.2rem 2rem;
  }

  .flowBox p {
    margin: 0;
    font-family: var(--gothic);
    font-size: 2.9rem;
    font-weight: 400;
    line-height: 1.72;
    padding: 0 0 0 2.3rem;
  }

  .flowArrow {
    position: absolute;
    z-index: 2;
    top: -6.1rem;
    left: 50%;
    width: 12rem;
    height: 4rem;
    max-width: none;
    transform: translateX(-50%);
  }

  .treatment {
    display: block;
    padding: 6.8rem 0 12.6rem;
    overflow: hidden;
    background: #000;
    color: #222;
  }

  .treatmentVisual {
    position: relative;
    width: 75rem;
    height: 72.9rem;
    margin: 0 0 2.8rem;
  }

  .treatmentVisual img {
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: contain;
  }

  .treatmentPhotoPc {
    display: none;
  }

  .treatmentPhotoSp {
    display: block;
  }

  .treatmentLead {
    position: absolute;
    inset: 0;
    color: #fff;
    font-family: var(--mincho);
    text-align: center;
  }

  .treatmentLeadPhrase {
    position: absolute;
    top: 2.5rem;
    right: 32.6rem;
    margin: 0;
    font-size: 5.2rem;
    font-weight: 400;
    line-height: 1.18;
    writing-mode: vertical-rl;
  }

  .treatmentLeadPhrase span {
    font-size: 3.8rem;
  }

  .treatmentLeadTitle {
    position: absolute; 
    top: 22.2rem;
    left: 27.7rem;
    margin: 0;
    font-size: 6.25rem;
    font-weight: 400;
    line-height: 1.04;
    writing-mode: vertical-rl;
  }

  .treatmentCards {
    display: block;
    width: 71.2rem;
    margin: 0 auto;
  }

  .treatmentCard {
    position: relative;
    min-height: 0;
    padding: 4.2rem 2.1rem 5.6rem;
    background: #f5f5f5;
    border: .1rem solid #8e8e8e;
    font-family: var(--gothic);
  }

  .treatmentCard + .treatmentCard {
    margin-top: 4.1rem;
  }

  .treatmentCorner {
    position: absolute;
    width: 8.4rem;
    height: 8.4rem;
    pointer-events: none;
  }

  .treatmentCornerTopLeft {
    top: .9rem;
    left: .9rem;
    border-top: .1rem solid #777;
    border-left: .1rem solid #777;
  }

  .treatmentCornerTopRight {
    top: .9rem;
    right: .9rem;
    border-top: .1rem solid #777;
    border-right: .1rem solid #777;
  }

  .treatmentCornerBottomLeft {
    bottom: .9rem;
    left: .9rem;
    border-bottom: .1rem solid #777;
    border-left: .1rem solid #777;
  }

  .treatmentCornerBottomRight {
    right: .9rem;
    bottom: .9rem;
    border-right: .1rem solid #777;
    border-bottom: .1rem solid #777;
  }

  .treatmentNumber {
    margin: 0;
    color: #7c6247;
    font-family: var(--mincho);
    font-size: 9.2rem;
    font-weight: 400;
    line-height: 1;
    text-align: center;
  }

  .treatmentCard h3 {
    margin: 2rem 0 3rem;
    font-family: var(--mincho);
    font-size: 5rem;
    font-weight: 400;
    line-height: 1.25;
    text-align: center;
  }

  .treatmentBand {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 66.4rem;
    min-height: 13.4rem;
    margin: 0 auto 3.6rem;
    padding: 1rem 3rem;
    background: #000;
    color: #fff;
    font-family: var(--gothic);
    font-size: 3.6rem;
    font-weight: 400;
    line-height: 1.65;
    text-align: center;
  }

  .treatmentText {
    padding: 0 2.9rem;
  }

  .treatmentText p {
    margin: 0;
    font-family: var(--gothic);
    font-size: 2.7rem;
    font-weight: 400;
    line-height: 1.75;
    text-align: left;
  }

  .treatmentText p + p {
    margin-top: 4.8rem;
  }

  .greeting {
    display: block;
    overflow: hidden;
    background: #dbdbdb;
    color: #222;
  }

  .greetingHeading {
    position: relative;
    height: 31.9rem;
    padding-top: 13.7rem;
    font-family: var(--mincho);
    text-align: center;
  }

  .greetingHeadingEn {
    display: inline-block;
    margin: 0 2rem;
    font-size: 10rem;
    font-weight: 400;
    line-height: .9;
    vertical-align: middle;
  }

  .greetingHeading span {
    display: inline-block;
    width: 7.7rem;
    height: .1rem;
    background: #555;
    vertical-align: middle;
  }

  .greetingHeadingTitle {
    margin: 2.1rem 0 0;
    font-size: 4rem;
    font-weight: 700;
    line-height: 1;
  }

  .greetingVisual {
    position: relative;
    padding-bottom: 9.8rem;
  }

  .greetingBg {
    display: block;
    width: 75rem;
    height: 103.1rem;
    max-width: none;
    object-fit: cover;
  }

  .greetingBgPc {
    display: none;
  }

  .greetingBgSp {
    display: block;
  }

  .greetingCatch {
    position: absolute;
    top: 57.5rem;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 75rem;
    height: 27rem;
    background: rgba(0,0,0,.72);
    color: #fff;
    font-family: var(--mincho);
    font-size: 4.8rem;
    font-weight: 700;
    line-height: 1.9;
    text-align: center;
  }

  .greetingBody {
    position: relative;
    z-index: 1;
    width: 72.5rem;
    margin: -15rem 0 8.6rem auto;
    padding: 5.4rem 5.2rem 5.3rem;
    background: rgba(255,255,255,.9);
    font-family: var(--gothic);
  }

  .greetingBody p {
    margin: 0;
    font-size: 2.8rem;
    font-weight: 400;
    line-height: 2.05;
  }

  .greetingBody p + p {
    margin-top: 4.1rem;
  }

  .greetingBody b {
    font-weight: 700;
  }

  .greetingDirectorPhoto {
    display: block;
    width: 75rem;
    height: auto;
    max-width: none;
    margin: 0;
  }

  .greetingName {
    position: relative;
    z-index: 1;
    width: 45.2rem;
    height: 16rem;
    margin: -12.5rem 0 3.8rem 1.5rem;
    padding: 2.8rem 4.8rem 2rem;
    background: rgba(0,0,0,.72);
    color: #fff;
    font-family: var(--mincho);
  }

  .greetingName p {
    margin: 0 0 1.4rem;
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1;
  }

  .greetingName div {
    display: flex;
    align-items: center;
    gap: 2rem;
  }

  .greetingName span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 7.7rem;
    height: 4.1rem;
    background: #000;
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1;
  }

  .greetingName b {
    font-size: 5.4rem;
    font-weight: 400;
    line-height: 1;
  }

  .greetingProfile {
    width: 75rem;
    margin: 0 0 0 auto;
    font-family: var(--gothic);
  }

  .greetingProfile + .greetingProfile {
    margin-top: 6.5rem;
  }

  .greetingProfile h3 {
    display: flex;
    align-items: center;
    height: 5.4rem;
    margin: 0 1.2rem 2.9rem;
    padding: 0.1rem 2.5rem 0 2.5rem;
    background: #2c2c2c;
    color: #fff;
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1;
  }

  .greetingProfile h3::after {
    content: none;
  }

  .greetingProfile dl,
  .greetingProfile ul {
    margin: 0;
    padding: 0 0 0 3.8rem;
    list-style: none;
  }

  .greetingProfile div {
    display: block;
  }

  .greetingProfile dt,
  .greetingProfile dd,
  .greetingProfile li {
    margin: 0;
    font-size: 2.8rem;
    font-weight: 400;
    line-height: 1.65;
  }

  .greetingProfile dt {
    margin-top: 2rem;
  }

  .greetingProfile dd {
    margin-top: .4rem;
  }

  .greetingProfile li + li {
    margin-top: .5rem;
  }

  .greetingProfileCareer {
    margin-top: 0;
  }

  .greetingProfileGroup {
    margin-top: 6.4rem;
  }

  .greetingTrainingPhoto {
    display: block;
    width: 73.7rem;
    height: 34rem;
    max-width: none;
    margin: 6.6rem auto 3rem 0;
    object-fit: cover;
  }

  .greetingProfileCourse {
    margin-top: 0;
  }

  .greetingProfileCourse h3 {
    margin-right: 0;
    margin-left: 1.2rem;
  }

  .faq {
    display: block;
    /* min-height: 126.9rem; */
    padding: 9.7rem 0 8rem;
    overflow: hidden;
    background: #ddd;
    color: #222;
  }

  .faqHeading {
    position: relative;
    font-family: var(--mincho);
    text-align: center;
  }

  .faqHeadingEn {
    display: inline-block;
    margin: 0 3.5rem;
    font-size: 10rem;
    font-weight: 400;
    line-height: .9;
    vertical-align: middle;
  }

  .faqHeading span {
    display: inline-block;
    width: 13.5rem;
    height: .1rem;
    background: #555;
    vertical-align: middle;
  }

  .faqHeadingTitle {
    margin: 3.3rem 0 0;
    font-size: 4rem;
    font-weight: 700;
    line-height: 1;
  }

  .faqList {
    width: 70rem;
    margin: 4.1rem auto 0;
  }

  .faqItem {
    margin: 0;
    font-family: var(--gothic);
  }

  .faqItem + .faqItem {
    margin-top: 5.2rem;
  }

  .faqItemOpen + .faqItem {
    margin-top: 6.6rem;
  }

  .faqItem h3 {
    display: grid;
    grid-template-columns: 7rem 1fr 6.8rem;
    align-items: center;
    min-height: 11.1rem;
    margin: 0;
    background: #4b2f27;
    color: #fff;
    cursor: pointer;
    font-size: 2.7rem;
    font-weight: 700;
    line-height: 1.55;
  }

  .faqMark {
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: stretch;
    width: 7rem;
    background: #000;
    font-size: 4.4rem;
    font-weight: 700;
    line-height: 1;
  }

  .faqQuestion {
    padding: 0 2.1rem;
  }

  .faqToggle {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 4.7rem;
    font-weight: 700;
    line-height: 1;
  }

  .faqItem p {
    margin: 2.4rem 2.7rem 0;
    font-size: 2.6rem;
    font-weight: 400;
    line-height: 1.95;
  }

  .faqItem:not(.faqItemOpen) p {
    display: none;
  }

  .access {
    display: block;
    padding: 0 0 11.6rem;
    overflow: hidden;
    background: #ddd;
    color: #222;
  }

  .accessPc {
    display: block;
  }

  .accessPcHeading {
    position: relative;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: start;
    column-gap: 4.3rem;
    height: 19.8rem;
    padding-top: 7.9rem;
    font-family: var(--mincho);
    font-size: 7.8rem;
    font-weight: 400;
    line-height: 1;
    text-align: center;
  }

  .accessPcHeading::before,
  .accessPcHeading::after {
    display: block;
    width: 100%;
    height: .1rem;
    margin: .32em 0 0;
    background: #555;
    content: "";
  }

  .accessPcHeading span {
    display: inline-block;
  }

  .accessPcPhotos {
    display: grid;
    grid-template-columns: repeat(2, 37.5rem);
    width: 75rem;
    height: 27.7rem;
  }

  .accessPcPhotos img {
    width: 37.5rem;
    height: 27.7rem;
    max-width: none;
    object-fit: cover;
  }

  .accessPcContent {
    display: block;
    width: 75rem;
    margin: 0;
    padding-top: 5.1rem;
  }

  .accessPcInfo {
    font-family: var(--gothic);
  }

  .accessPcLogo {
    display: block;
    width: 48.9rem;
    height: auto;
    max-width: none;
    margin: 0 0 3.9rem 3rem;
  }

  .accessPcAddress {
    margin: 0 3.2rem 3.9rem;
    font-size: 2.8rem;
    font-weight: 400;
    line-height: 1.45;
  }

  .accessPcStation {
    display: flex;
    align-items: center;
    gap: 3rem;
    margin: 0 3.8rem 4.4rem;
  }

  .accessPcStation img {
    width: 4.3rem;
    height: auto;
    max-width: none;
  }

  .accessPcStation p {
    margin: 0;
    font-size: 2.85rem;
    font-weight: 700;
    line-height: 1.55;
  }

  .accessPcSchedule {
    width: 70.2rem;
    margin: 0 auto 3.2rem;
    border-collapse: collapse;
    table-layout: fixed;
    font-family: var(--gothic);
  }

  .accessPcSchedule th {
    height: 5.9rem;
    background: #000;
    color: #fff;
    font-size: 2.8rem;
    font-weight: 700;
    text-align: center;
  }

  .accessPcSchedule th:first-child {
    width: 18.8rem;
  }

  .accessPcSchedule td {
    height: 6.2rem;
    font-size: 2.9rem;
    font-weight: 700;
    text-align: center;
    vertical-align: middle;
  }

  .accessPcSchedule td:first-child {
    width: 18.8rem;
    font-size: 2.55rem;
    font-weight: 400;
    text-align: center;
    white-space: nowrap;
  }

  .accessPcNotes {
    width: 70.2rem;
    margin: 0 auto 6.1rem;
    padding: 2.3rem .5rem 0 1.5rem;
    border-top: .1rem solid #555;
    font-family: var(--gothic);
  }

  .accessPcNotes p {
    margin: 0 0 2.1rem;
    font-size: 2.85rem;
    font-weight: 700;
    line-height: 1.45;
  }

  .accessPcNotes span {
    font-size: 3.2rem;
  }

  .accessPcNotes small {
    display: block;
    margin: 2.4rem 0 0;
    font-size: 2.4rem;
    font-weight: 400;
    line-height: 1.55;
  }

  .accessPcMap {
    display: block;
    width: 69rem;
    height: 49.8rem;
    max-width: none;
    margin: 0 auto;
    border: 0;
  }

  .finalcta {
    display: block;
    overflow: hidden;
    background: #ddd;
    color: #222;
  }

  .finalctaPc {
    display: none;
  }

  .finalctaSp {
    display: block;
    /* padding-bottom: 12.2rem; */
    background: #ddd;
  }

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

  .finalctaSpBody {
    padding: 3.6rem 0 4.5rem;
    text-align: center;
  }

  .finalctaSpHeading {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 0;
    font-family: var(--mincho);
    font-size: 6rem;
    font-weight: 600;
    line-height: 1.28;
  }

  .finalctaSpHeading img {
    width: 8.9rem;
    height: auto;
    max-width: none;
    margin-bottom: 1.7rem;
  }

  .finalctaSpHeading span {
    display: block;
  }

  .finalctaSpCatch {
    width: 79rem;
    min-height: 17.9rem;
    margin: 3rem -2rem 0;
    padding: 2.8rem 3.2rem 2.9rem;
    background: #242424;
    clip-path: polygon(5.6% 0, 100% 0, 94.4% 100%, 0 100%);
    color: #fff;
    font-family: var(--mincho);
    font-size: 4.8rem;
    font-weight: 700;
    line-height: 1.58;
    text-align: center;
  }

  .finalctaSpLead {
    width: 70.4rem;
    margin: 3.1rem auto 0;
    font-family: var(--gothic);
    font-size: 3.6rem;
    font-weight: 700;
    line-height: 1.75;
    text-align: center;
  }

  .finalctaSpActions {
    display: grid;
    gap: 4rem;
    width: 55rem;
    margin: 5rem auto 0;
  }

  .finalctaSpReserve,
  .finalctaSpTel {
    min-height: 17.3rem;
    text-decoration: none;
  }

  .finalctaSpReserve {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2.6rem;
    background: #bc8936;
    color: #fff;
    font-family: var(--mincho);
  }

  .finalctaSpReserve::after {
    position: absolute;
    right: .8rem;
    bottom: .8rem;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 0 2.6rem 2.6rem;
    border-color: transparent transparent #fff transparent;
    content: "";
  }

  .finalctaSpReserve span {
    font-size: 3.2rem;
    font-weight: 400;
    line-height: 1;
  }

  .finalctaSpReserve b {
    font-size: 5.45rem;
    font-weight: 400;
    line-height: 1;
  }

  .finalctaSpTel {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: #222;
    font-family: var(--gothic);
  }

  .finalctaSpTel span {
    margin-bottom: 2.1rem;
    font-size: 3rem;
    font-weight: 700;
    line-height: 1;
  }

  .finalctaSpTel b {
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--mincho);
    font-size: 5.65rem;
    font-weight: 600;
    line-height: 1;
  }

  .finalctaSpTel img {
    width: 4.3rem;
    height: auto;
    max-width: none;
    margin-right: 1.8rem;
  }
/*
  .bannerSection {
    display: block;
    padding: 19.1rem 0 11.7rem;
    background: #ddd;
  }

  .bannerPcTop,
  .bannerPcBottom {
    display: grid;
    grid-template-columns: 1fr;
    justify-items: center;
  }

  .bannerPcTop {
    gap: 0;
  }

  .bannerPcBottom {
    gap: 4.4rem;
    margin-top: 7.6rem;
  }

  .bannerSection img {
    display: block;
    height: auto;
    max-width: none;
  }

  .bannerOfficial {
    position: relative;
    display: block;
    width: 56.6rem;
    height: 21rem;
    overflow: hidden;
    color: #fff;
  }

  .bannerOfficial img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 52%;
  }

  .bannerOfficial span {
    position: absolute;
    left: 4.1rem;
    right: 4.1rem;
    top: 11.3rem;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 6.7rem;
    background: rgba(88, 57, 38, 0.88);
    color: #fff;
    font-family: var(--mincho);
    font-size: 3.15rem;
    font-weight: 700;
    line-height: 1.2;
  }

  .bannerPcTop > img {
    width: 56.6rem;
  }

  .bannerPcTop > *:nth-child(1),
  .bannerPcTop > *:nth-child(2) {
    margin-bottom: 4.5rem;
  }

  .bannerPcTop > *:nth-child(3),
  .bannerPcTop > *:nth-child(4),
  .bannerPcTop > *:nth-child(5) {
    margin-bottom: 3.4rem;
  }

  .bannerPcBottom img {
    width: 44.5rem;
  }
    */

  .bannerSection {
    display: block;
    padding: 7.5rem 0 10rem;
    background: #dbdbdb;
  }

  .bannerPcTop {
    display: grid;
    grid-template-columns: 1fr;
    gap: 4.5rem;
    justify-items: center;
  }

  .bannerPcBottom {
    display: grid;
    grid-template-columns: 1fr;
    gap: 4.4rem;
    justify-items: center;
    margin-top: 6.8rem;
  }

  .bannerSection img {
    display: block;
    height: auto;
  }

  .bannerPcTop img {
    width: 65.5rem;
    /* max-width: calc(100% - 10rem); */
  }

  .bannerPcBottom img {
    width: 49.3rem;
    /* max-width: calc(100% - 22rem); */
  }

}
.introTitleSmall {
  font-size: 6.5rem;
}
.reasonHeadingSmall {
  font-size: 6rem;
  margin-left: -0.7rem;
}
.stopHeadingSmall {
  font-size: 6rem;
}
.flowHeadingSmall {
  font-size: 6rem;
}
.finalctaHeadingSmall {
  font-size: 5rem;
}





