@charset "UTF-8";
:root{
  --inner:75rem;
  --padding-inline:1.875rem;
}
:root{
  --font-family-base:"Noto Sans JP", sans-serif;
  --font-family-mincho:"Zen Old Mincho", serif;
  --font-family-en:"Inter", sans-serif;
}

:root{
  --font-weight-light:300;
  --font-weight-regular:400;
  --font-weight-medium:500;
  --font-weight-semibold:600;
  --font-weight-bold:700;
  --font-weight-extrabold:800;
  --font-weight-black:900;
}

:root{
  --black:#000;
  --white:#fff;
  --text-base:#333333;
  --text-heading:#37220d;
  --text-dark:#1c1916;
  --text-sub:#7a7368;
  --text-gray:#626262;
  --text-copyright:#666680;
  --mh-red:#e60012;
  --mh-gold:#c4a552;
  --bg-base:#ffffff;
  --bg-cream:#f7f1e7;
  --btn-text:#f7f4ef;
  --line:#d0cfcf;
  --cookie-bg:#e5e5e5;
  --cookie-text:#111;
  --box-gold:rgba(196, 165, 82, 0.89);
  --panel-white:rgba(255, 255, 255, 0.78);
  --scrim-white:rgba(255, 255, 255, 0.8);
  --overlay-brown:rgba(68, 41, 43, 0.5);
}

:root{
  --shadow-card:0 10px 10px rgba(196, 165, 82, 0.2);
  --shadow-card-lg:0 10px 20px rgba(196, 165, 82, 0.2);
  --shadow-heading-on-photo:0 2px 9.5px rgba(43, 27, 14, 0.6);
}

:root{
  --z-index-header:100;
  --z-index-to-top:200;
  --z-index-drawer:1000;
  --z-index-hamburger:10000;
  --z-index-modal:100000;
}

:root{
  --duration-short:0.2s;
  --duration-base:0.3s;
  --duration-long:0.5s;
  --duration-extra-long:0.7s;
  --duration-scroll-short:0.5s;
  --duration-scroll:0.65s;
  --duration-scroll-long:0.9s;
  --duration-image-scale:0.8s;
  --ease-smooth-bounce:cubic-bezier(.48, .07, .33, .79);
}

body{
  background-color:var(--bg-base);
  color:var(--text-base);
  font-family:var(--font-family-base);
}

.u-desktop{
  display:none;
}

.u-desktop-inline{
  display:none;
}

.u-mobile-inline{
  display:inline;
}

html{
  font-size:4.2666666667vw;
}

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

html{
  -webkit-text-size-adjust:100%;
  -moz-text-size-adjust:100%;
       text-size-adjust:100%;
  scroll-behavior:smooth;
}

body{
  word-wrap:anywhere;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  line-break:strict;
  line-height:1.5;
  margin:0;
  overflow-wrap:anywhere;
  text-rendering:optimizeLegibility;
  word-break:normal;
}

ul,
ol,
button,
body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd,
time,
small{
  margin:0;
  padding:0;
}

ul,
ol{
  list-style:none;
}

a:not([class]){
  -webkit-text-decoration-skip:ink;
          text-decoration-skip-ink:auto;
}

a,
span,
button{
  display:inline-block;
}

small,
time,
figure{
  border:0;
  font:inherit;
  font-size:100%;
  vertical-align:baseline;
}

address{
  font-style:normal;
}

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

article > * + *{
  margin-top:1em;
}

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

input,
button,
select,
textarea{
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  background:transparent;
  border:none;
  border-radius:0;
  outline:none;
}

textarea{
  resize:vertical;
}

input[type=checkbox],
input[type=radio]{
  border:0;
  clip-path:polygon(0 0, 0 0, 0 0, 0 0);
  height:1px;
  margin:-1px;
  padding:0;
  position:absolute;
  width:1px;
}

input[type=submit],
input[type=button],
label,
button,
select{
  cursor:pointer;
}

a{
  -webkit-text-decoration:none;
  color:inherit;
  text-decoration:none;
  transition:0.3s;
}

button{
  color:inherit;
}
a{
  -webkit-tap-highlight-color:transparent;
}

button{
  -webkit-tap-highlight-color:transparent;
}

.brand-message{
  padding-block:3.75rem;
}

.brand-message__inner{
  margin-inline:auto;
  max-width:78rem;
  padding-inline:1.25rem;
}

.brand-message__eyebrow{
  color:var(--mh-red);
  font-family:var(--font-family-mincho);
  font-size:0.6875rem;
  font-weight:var(--font-weight-semibold);
  letter-spacing:0.09em;
  text-transform:uppercase;
}

.brand-message__heading{
  color:var(--text-heading);
  font-family:var(--font-family-mincho);
  font-size:1.625rem;
  font-weight:var(--font-weight-medium);
  letter-spacing:0.038em;
  line-height:1.4;
  margin-top:0.75rem;
}

.brand-message__divider{
  display:block;
  margin-top:0.625rem;
}

.brand-message__divider img{
  height:auto;
  width:100%;
}

.brand-message__text{
  margin-top:2rem;
}

.brand-message__paragraph{
  color:var(--text-heading);
  font-family:var(--font-family-mincho);
  font-size:0.875rem;
  font-weight:var(--font-weight-regular);
  line-height:1.8;
}

.brand-message__paragraph + .brand-message__paragraph{
  margin-top:1.8em;
}

.brand-message__media{
  border-radius:0 1.25rem;
  margin-top:2rem;
}

.brand-message__media img{
  height:auto;
  width:100%;
}

.cta{
  align-items:center;
  background-image:url("../images/cta-bg_sp.webp");
  background-position:center;
  background-repeat:no-repeat;
  background-size:cover;
  display:flex;
  justify-content:center;
  min-height:28.125rem;
  padding:1.25rem;
  position:relative;
}

.cta::before{
  background-color:var(--overlay-brown);
  content:"";
  inset:0;
  position:absolute;
}

.cta__content{
  align-items:center;
  display:flex;
  flex-direction:column;
  position:relative;
  text-align:center;
  width:100%;
  z-index:1;
}

.cta__eyebrow{
  color:var(--white);
  font-family:var(--font-family-mincho);
  font-size:0.8125rem;
  font-weight:var(--font-weight-medium);
  letter-spacing:0.05em;
  line-height:1.4;
}

.cta__heading{
  color:var(--white);
  font-family:var(--font-family-mincho);
  font-size:1.25rem;
  font-weight:var(--font-weight-medium);
  letter-spacing:0.05em;
  line-height:1.4;
  margin-top:1.5rem;
}

.cta__copy{
  color:var(--white);
  font-family:var(--font-family-base);
  font-size:0.8125rem;
  font-weight:var(--font-weight-regular);
  line-height:1.85;
  margin-top:1rem;
}

.cta__btn{
  align-items:center;
  background-color:var(--mh-red);
  border:1px solid var(--mh-red);
  border-radius:0.375rem;
  color:var(--btn-text);
  display:flex;
  font-family:var(--font-family-base);
  font-size:0.875rem;
  font-weight:var(--font-weight-medium);
  gap:0.5rem;
  height:3.3125rem;
  justify-content:center;
  margin-top:2rem;
  max-width:100%;
  padding-inline:1.5625rem 0.625rem;
  transition:color var(--duration-base), background-color var(--duration-base);
  width:100%;
}

.cta__btn-icon{
  height:1rem;
  width:1rem;
}

.duties{
  background-color:var(--bg-cream);
  padding-bottom:4.375rem;
  padding-top:6.25rem;
  position:relative;
}

.duties::before{
  background:linear-gradient(to bottom, var(--white), transparent 80%);
  content:"";
  height:45rem;
  inset:0 0 auto 0;
  pointer-events:none;
  position:absolute;
  z-index:0;
}

.duties__inner{
  margin-inline:auto;
  max-width:72rem;
  padding-inline:1.25rem;
  position:relative;
  z-index:1;
}

.duties__eyebrow{
  color:var(--mh-red);
  font-family:var(--font-family-mincho);
  font-size:0.625rem;
  font-weight:var(--font-weight-regular);
  letter-spacing:0.1em;
  line-height:1.5;
  text-transform:uppercase;
}

.duties__heading{
  color:var(--text-dark);
  font-family:var(--font-family-mincho);
  font-size:1.625rem;
  font-weight:var(--font-weight-medium);
  letter-spacing:0.056em;
  line-height:1.4;
  margin-top:1.625rem;
}

.duties__lead{
  color:var(--text-sub);
  font-family:var(--font-family-mincho);
  font-size:0.875rem;
  font-weight:var(--font-weight-regular);
  line-height:2;
  margin-top:0.75rem;
}

.duties__slider{
  margin-inline:-1.25rem;
  margin-top:1.875rem;
  padding-bottom:1.875rem;
}

.duties__card{
  background-color:var(--white);
  border-radius:0.625rem;
  box-shadow:var(--shadow-card-lg);
  display:flex;
  flex-direction:column;
  height:auto;
  overflow:hidden;
  width:17.25rem;
}

.duties__card-img{
  height:12.5rem;
}

.duties__card-img img{
  height:100%;
  object-fit:cover;
  object-position:center;
  width:100%;
}

.duties__card-body{
  flex:1;
  padding:1.25rem;
}

.duties__card-num{
  color:var(--mh-red);
  font-family:var(--font-family-mincho);
  font-size:0.6875rem;
  font-weight:var(--font-weight-regular);
  line-height:1.5;
}

.duties__card-title{
  color:var(--text-dark);
  font-family:var(--font-family-mincho);
  font-size:1rem;
  font-weight:var(--font-weight-semibold);
  line-height:1.4;
  margin-top:0.5rem;
}

.duties__card-text{
  color:var(--text-sub);
  font-family:var(--font-family-mincho);
  font-size:0.875rem;
  font-weight:var(--font-weight-regular);
  line-height:2;
  margin-top:0.75rem;
}

.entry{
  background-color:var(--bg-cream);
  padding-block:3.75rem;
}

.entry__inner{
  margin-inline:auto;
  max-width:72rem;
  padding-inline:1.25rem;
}

.entry__label{
  color:var(--mh-red);
  font-family:var(--font-family-mincho);
  font-size:0.6875rem;
  font-weight:var(--font-weight-regular);
  letter-spacing:0.1em;
  line-height:1.5;
  text-transform:uppercase;
}

.entry__cols{
  display:flex;
  flex-direction:column;
  gap:2.5rem;
  margin-top:1.875rem;
}

.entry__heading{
  color:var(--text-heading);
  font-family:var(--font-family-mincho);
  font-size:1.625rem;
  font-weight:var(--font-weight-medium);
  letter-spacing:0.077em;
  line-height:1.4;
}
.requirement{
  border-bottom:1px solid var(--line);
  margin-top:1.5rem;
}

.requirement__row{
  border-top:1px solid var(--line);
  display:flex;
  flex-direction:column;
  gap:0.25rem;
  padding-block:0.75rem;
}

.requirement__label{
  color:var(--mh-gold);
  font-family:var(--font-family-mincho);
  font-size:0.9375rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.067em;
  line-height:1.87;
}

.requirement__value{
  color:var(--text-heading);
  font-family:var(--font-family-mincho);
  font-size:0.9375rem;
  font-weight:var(--font-weight-regular);
  line-height:1.87;
}

.requirement__value--medium{
  font-weight:var(--font-weight-medium);
}

.requirement__schedule{
  display:flex;
  flex-direction:column;
  margin-bottom:0.625rem;
}

.requirement__schedule-body{
  display:flex;
  flex-direction:column;
}

.requirement__schedule-note{
  display:block;
}

.requirement__schedule-note--sp-mt{
  margin-top:0.9375rem;
}
.flow{
  display:flex;
  flex-direction:column;
  gap:0.75rem;
  margin-top:1.5rem;
  position:relative;
}

.flow::before{
  background-color:var(--mh-red);
  content:"";
  inset-block:0;
  left:2.4375rem;
  position:absolute;
  width:0.09375rem;
  z-index:0;
}

.flow__item{
  align-items:flex-start;
  background-color:var(--white);
  border:1px solid var(--line);
  border-radius:0.625rem;
  display:flex;
  gap:1.1875rem;
  padding-block:1.0625rem;
  padding-inline:1.3125rem;
  position:relative;
  z-index:1;
}

.flow__badge{
  align-items:center;
  background-color:var(--mh-red);
  border-radius:50%;
  color:var(--white);
  display:flex;
  flex-shrink:0;
  font-family:var(--font-family-mincho);
  font-size:0.6875rem;
  font-weight:var(--font-weight-regular);
  height:2.25rem;
  justify-content:center;
  width:2.25rem;
}

.flow__body{
  display:flex;
  flex:1;
  flex-direction:column;
  gap:0.75rem;
  min-width:0;
}

.flow__texts{
  display:flex;
  flex-direction:column;
  gap:0.1875rem;
  min-width:0;
}

.flow__title{
  color:var(--text-heading);
  font-family:var(--font-family-mincho);
  font-size:0.9375rem;
  font-weight:var(--font-weight-bold);
  line-height:1.4;
}

.flow__title--accent{
  color:var(--mh-red);
}

.flow__detail{
  color:var(--text-sub);
  font-family:var(--font-family-mincho);
  font-size:0.75rem;
  font-weight:var(--font-weight-regular);
  line-height:1.5;
}

.flow__img-wrap{
  flex-shrink:0;
  width:100%;
}

.flow__img{
  aspect-ratio:175/100;
  border-radius:0.3125rem;
  height:auto;
  object-fit:cover;
  width:100%;
}
.entry__cta{
  align-items:center;
  background-color:var(--mh-red);
  border:1px solid var(--mh-red);
  border-radius:0.375rem;
  color:var(--btn-text);
  display:flex;
  font-family:var(--font-family-base);
  font-size:0.875rem;
  font-weight:var(--font-weight-medium);
  gap:0.5rem;
  height:3.3125rem;
  justify-content:center;
  margin-top:2.5rem;
  max-width:100%;
  padding-inline:1.5625rem 0.625rem;
  transition:color var(--duration-base), background-color var(--duration-base);
}

.entry__cta-icon{
  height:1rem;
  width:1rem;
}

.mv{
  background:linear-gradient(45deg, rgba(247, 241, 231, 0.8) 25%, rgba(247, 241, 231, 0) 55%);
  min-height:37.5rem;
  position:relative;
  width:100%;
}

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

.mv__content{
  align-items:flex-start;
  display:flex;
  flex-direction:column;
  margin-top:-20.1875rem;
  padding-inline:1.25rem;
}

.mv__heading{
  color:var(--text-heading);
  font-family:var(--font-family-mincho);
  font-size:1.75rem;
  font-weight:var(--font-weight-medium);
  letter-spacing:0.036em;
  line-height:1.71;
  margin-bottom:1.375rem;
  white-space:nowrap;
}

.mv__badge{
  align-items:center;
  background-color:var(--mh-red);
  color:var(--white);
  display:inline-flex;
  flex-direction:column;
  gap:0.1875rem;
  padding-block:0.390625rem;
  padding-inline:1.210625rem;
  width:100%;
}

.mv__badge-en{
  font-family:var(--font-family-mincho);
  font-size:0.97625rem;
  line-height:1;
  text-align:center;
}

.mv__badge-ja{
  font-family:var(--font-family-mincho);
  font-size:0.46875rem;
  letter-spacing:0.083em;
  text-align:center;
}

.mv__lead{
  color:var(--text-heading);
  font-family:var(--font-family-mincho);
  font-size:0.8125rem;
  line-height:1.8;
  margin-top:1rem;
  padding-bottom:0.625rem;
}

.program{
  background-color:var(--bg-cream);
  background-image:url("../images/program-bg_sp.webp");
  background-position:top center;
  background-repeat:no-repeat;
  background-size:100% auto;
  padding-block:3.75rem;
  position:relative;
}

.program__inner{
  margin-inline:auto;
  max-width:62.5rem;
  padding-inline:1.25rem;
}

.program__head{
  text-align:center;
}

.program__label{
  color:var(--text-heading);
  font-family:var(--font-family-mincho);
  font-size:0.6875rem;
  font-weight:var(--font-weight-regular);
  letter-spacing:0.1em;
  text-transform:uppercase;
}

.program__heading{
  color:var(--text-heading);
  font-family:var(--font-family-mincho);
  font-size:1.625rem;
  font-weight:var(--font-weight-medium);
  letter-spacing:0.04em;
  line-height:1.4;
  margin-top:1rem;
}

.program__divider{
  display:block;
  margin-inline:auto;
  margin-top:0.75rem;
  width:100%;
}

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

.program__lead{
  color:var(--text-heading);
  font-family:var(--font-family-mincho);
  font-size:0.8125rem;
  font-weight:var(--font-weight-regular);
  line-height:1.8;
  margin-top:1rem;
}

.program__cards{
  display:flex;
  flex-direction:column;
  gap:1.25rem;
  margin-top:2.5rem;
}

.program__card{
  display:flex;
  flex-direction:column;
}

.program__card-head{
  border-radius:0 1.875rem 0 0;
  color:var(--white);
  padding-block:0.875rem 0.6875rem;
  padding-inline:1.25rem;
  text-align:center;
}

.program__card--gold .program__card-head{
  background-color:var(--mh-gold);
}

.program__card--red .program__card-head{
  background-color:var(--mh-red);
}

.program__card-title{
  font-family:var(--font-family-mincho);
  font-size:1.375rem;
  font-weight:var(--font-weight-medium);
}

.program__card-date{
  font-family:var(--font-family-mincho);
  font-size:0.875rem;
  font-weight:var(--font-weight-regular);
}

.program__card-body{
  background-color:var(--white);
  border-radius:0 0 0 1.875rem;
  box-shadow:var(--shadow-card);
  display:flex;
  flex:1;
  flex-direction:column;
  min-height:24.25rem;
  padding-block:1.875rem 1.5rem;
  padding-inline:1.25rem;
}

.program__card-heading{
  font-family:var(--font-family-mincho);
  font-size:1.5625rem;
  font-weight:var(--font-weight-semibold);
  letter-spacing:0.04em;
  line-height:1.5;
  text-align:center;
}

.program__card--gold .program__card-heading{
  color:var(--mh-gold);
}

.program__card--red .program__card-heading{
  color:var(--mh-red);
}

.program__card-text{
  margin-top:1.25rem;
}

.program__card-text p{
  color:var(--text-sub);
  font-family:var(--font-family-mincho);
  font-size:0.875rem;
  font-weight:var(--font-weight-regular);
  line-height:2;
}

.program__card-text p + p{
  margin-top:2em;
}

.value{
  background-color:var(--bg-cream);
  background-image:url("../images/value-bg_sp.webp");
  background-position:center;
  background-repeat:no-repeat;
  background-size:cover;
  padding-block:5.625rem;
  position:relative;
}

.value__inner{
  display:flex;
  flex-direction:column;
  gap:2.5rem;
  padding-inline:1.25rem;
}

.value__label{
  color:var(--mh-red);
  font-family:var(--font-family-mincho);
  font-size:0.625rem;
  font-weight:var(--font-weight-regular);
  letter-spacing:0.1em;
  line-height:1.5;
  text-transform:uppercase;
}

.value__heading{
  align-items:flex-start;
  display:flex;
  flex-direction:column;
  gap:0.375rem;
  margin-top:1.5rem;
}

.value__heading-line{
  background-color:var(--box-gold);
  color:var(--white);
  font-family:var(--font-family-mincho);
  font-size:1.625rem;
  font-weight:var(--font-weight-medium);
  letter-spacing:0.385em;
  line-height:1;
  padding-block:0.5625rem;
  padding-inline:1.25rem 0.8125rem;
}

.value__list{
  background-color:var(--panel-white);
  display:flex;
  flex-direction:column;
  gap:0.8125rem;
  padding-block:2.5rem;
  padding-inline:1.625rem;
}

.value__item{
  align-items:flex-start;
  display:flex;
  gap:0.5625rem;
}

.value__bullet{
  color:var(--mh-gold);
  flex-shrink:0;
  font-family:var(--font-family-mincho);
  font-size:0.5rem;
  font-weight:var(--font-weight-regular);
  line-height:1.5;
  padding-top:0.5rem;
}

.value__item-text{
  color:var(--text-heading);
  font-family:var(--font-family-mincho);
  font-size:0.9375rem;
  font-weight:var(--font-weight-regular);
  line-height:1.6;
}

.voice{
  padding-block:3.75rem;
}

.voice__inner{
  margin-inline:auto;
  max-width:72rem;
  padding-inline:1.25rem;
}

.voice__head{
  text-align:center;
}

.voice__label{
  color:var(--mh-red);
  font-family:var(--font-family-mincho);
  font-size:0.6875rem;
  font-weight:var(--font-weight-regular);
  letter-spacing:0.1em;
  line-height:1.5;
  text-transform:uppercase;
}

.voice__heading{
  color:var(--text-dark);
  font-family:var(--font-family-mincho);
  font-size:1.625rem;
  font-weight:var(--font-weight-medium);
  letter-spacing:0.077em;
  line-height:1.4;
  margin-top:1rem;
}

.voice__lead{
  color:var(--text-sub);
  font-family:var(--font-family-mincho);
  font-size:0.875rem;
  font-weight:var(--font-weight-regular);
  line-height:2;
  margin-top:0.75rem;
}

.voice__group{
  margin-top:1.25rem;
}

.voice__group-title{
  align-items:center;
  color:var(--mh-gold);
  display:flex;
  font-family:var(--font-family-mincho);
  font-size:0.9375rem;
  font-weight:var(--font-weight-regular);
  gap:0.625rem;
  justify-content:center;
  letter-spacing:0.067em;
  margin-top:2.75rem;
}

.voice__group-title + .voice__cards,
.voice__group-title + .voice__slider{
  padding-top:2.75rem;
}

.voice__group-title-text{
  flex-shrink:0;
  text-align:center;
}

.voice__group-title::before,
.voice__group-title::after{
  background-color:var(--mh-gold);
  content:"";
  flex:1;
  height:1px;
}
.voice__cards{
  box-sizing:border-box;
  display:flex;
}

.voice__card-media{
  position:relative;
  z-index:0;
}

.voice__card-media img{
  display:block;
  height:auto;
  width:100%;
}

.voice__card-media::before{
  background-color:var(--mh-red);
  content:"";
  height:5rem;
  position:absolute;
  right:-0.3125rem;
  top:-0.3125rem;
  width:5rem;
  z-index:-1;
}

.voice__card-box{
  background-color:var(--white);
  box-shadow:var(--shadow-card-lg);
  display:flex;
  flex-direction:column;
  padding-block:0.9375rem;
  padding-inline:1.25rem 0;
  position:relative;
  width:14.25rem;
}

.voice__card-title{
  color:var(--text-heading);
  font-family:var(--font-family-mincho);
  font-size:0.90625rem;
  font-weight:var(--font-weight-semibold);
  letter-spacing:0.06em;
  line-height:1.588;
}

.voice__card-meta{
  display:flex;
  flex-direction:column;
  gap:0.25rem;
  margin-top:0.875rem;
  padding-right:1.25rem;
  text-align:left;
}

.voice__card-name{
  color:var(--text-heading);
  font-family:var(--font-family-mincho);
  font-size:1rem;
  font-weight:var(--font-weight-medium);
  letter-spacing:0.125em;
}

.voice__card-suffix{
  font-size:0.875rem;
}

.voice__card-role{
  color:var(--text-gray);
  font-family:var(--font-family-mincho);
  font-size:0.75rem;
  font-weight:var(--font-weight-regular);
  line-height:1.17;
}

.voice__card-detail{
  display:none;
}

.voice__card-btn{
  align-items:center;
  background-color:var(--mh-gold);
  border:1px solid var(--mh-gold);
  color:var(--white);
  display:flex;
  font-family:var(--font-family-mincho);
  font-size:0.65625rem;
  font-weight:var(--font-weight-bold);
  gap:0.1875rem;
  justify-content:center;
  margin-right:1.25rem;
  margin-top:0.375rem;
  padding-block:0.3125rem;
  padding-inline:1.4375rem 0.625rem;
  transition:color var(--duration-base), background-color var(--duration-base);
}

.voice__card-btn-icon{
  aspect-ratio:1;
  height:auto;
  width:0.75rem;
}
.voice__slider{
  margin-inline:-1.25rem;
  padding-bottom:1.875rem;
}

.voice__cards--message .voice__card{
  flex-shrink:0;
  position:relative;
  width:12.5rem;
}

.voice__cards--message .voice__card-box{
  margin-left:-3.78125rem;
  margin-top:-2.1875rem;
}

.voice__cards--message .voice__card-name{
  font-size:0.84375rem;
}

.voice__cards--message .voice__card-suffix{
  font-size:0.75rem;
}

.voice__cards--message .voice__card-role{
  font-size:0.6875rem;
}
.voice__cards--participant{
  flex-direction:column;
  gap:1.875rem;
}

.voice__card--participant{
  align-items:center;
  background-color:var(--white);
  box-shadow:var(--shadow-card-lg);
  display:flex;
  flex-direction:column;
  gap:1.875rem;
  padding-block:1.875rem;
  padding-inline:1.25rem;
}

.voice__card--participant .voice__card-media{
  width:12.5rem;
}

.voice__card--participant .voice__card-media img{
  aspect-ratio:auto;
}

.voice__card--participant .voice__card-box{
  background-color:transparent;
  box-shadow:none;
  margin-left:0;
  padding:0;
  width:100%;
}

.voice__card--participant .voice__card-title{
  font-size:1.0625rem;
  text-align:center;
}

.voice__card--participant .voice__card-meta{
  align-items:baseline;
  flex-direction:column;
  gap:0.4375rem;
  justify-content:flex-start;
}

.voice__card--participant .voice__card-role{
  color:var(--text-heading);
  font-size:0.875rem;
}

.voice__card--participant .voice__card-detail{
  color:var(--text-heading);
  display:block;
  font-family:var(--font-family-mincho);
  font-size:0.875rem;
  font-weight:var(--font-weight-regular);
  line-height:2;
  margin-top:0.75rem;
}

.voice__card--participant .voice__card-btn{
  display:none;
}
.voice__card--participant .voice__card-media::after{
  background-color:var(--mh-red);
  bottom:-0.3125rem;
  content:"";
  height:6.25rem;
  left:-0.3125rem;
  position:absolute;
  width:6.25rem;
  z-index:-1;
}

.voice__card--participant .voice__card-media::before{
  height:6.25rem;
  width:6.25rem;
}

.js-fade-up{
  opacity:0;
  transition:opacity var(--duration-scroll) ease-in-out, translate var(--duration-scroll) ease-in-out;
  translate:0 1.25rem;
}

.js-fade-up.is-active{
  opacity:1;
  translate:0 0;
}

.js-fade-in{
  opacity:0;
  transition:opacity var(--duration-scroll) ease-in-out;
}

.js-fade-in.is-active{
  opacity:1;
}

.js-slide-right{
  opacity:0;
  transition:opacity var(--duration-scroll) ease-in-out, translate var(--duration-scroll) ease-in-out;
  translate:10px 0;
}
.js-slide-right.is-active{
  opacity:1;
  translate:0 0;
}

.js-scaleImg{
  overflow:hidden;
}

.js-scaleImg img{
  opacity:0;
  scale:1.1;
  transition:scale 1s ease-in-out, opacity 1s ease-in-out;
  will-change:scale, opacity;
}

.js-scaleImg.is-active img{
  opacity:1;
  scale:1;
}
cookie-consent-banner{
  background:var(--cookie-bg);
  bottom:0;
  color:var(--cookie-text);
  display:block;
  font-size:0.9375rem;
  left:0;
  padding:1.25rem 0.625rem;
  position:fixed;
  right:0;
  text-align:center;
  z-index:var(--z-index-drawer);
}

cookie-consent-banner[hidden]{
  display:none;
}

cookie-consent-banner a{
  color:var(--cookie-text);
}

cookie-consent-banner button{
  background:var(--white);
  border:1px solid var(--mh-red);
  border-radius:0.25rem;
  color:var(--mh-red);
  cursor:pointer;
  font-size:0.9375rem;
  margin-left:1.25rem;
  opacity:0.8;
  padding:0.5rem 1.25rem;
}
.float-entry{
  align-items:center;
  border-radius:calc(infinity * 1px);
  bottom:1rem;
  color:var(--mh-red);
  display:flex;
  height:7.875rem;
  justify-content:center;
  left:50%;
  position:fixed;
  transform:translate(-50%, 0);
  width:7.875rem;
  z-index:var(--z-index-to-top);
}

.float-entry__ring{
  animation:float-entry-rotate 8s linear infinite;
  height:7.6875rem;
  inset:0;
  margin:auto;
  position:absolute;
  width:7.6875rem;
}

.float-entry__inner{
  align-items:center;
  display:flex;
  flex-direction:column;
  gap:0.25rem;
  position:relative;
  z-index:1;
}

.float-entry__label{
  font-family:var(--font-family-mincho);
  font-size:0.9375rem;
  font-weight:var(--font-weight-regular);
  letter-spacing:0.058em;
  line-height:1;
  text-transform:uppercase;
}

.float-entry__arrow{
  height:auto;
  margin-left:0.625rem;
  transition:transform var(--duration-base) ease-in-out;
  width:4.125rem;
  will-change:transform;
}
@keyframes float-entry-rotate{
  to{
    transform:rotate(-360deg);
  }
}
.footer__inner{
  align-items:center;
  display:flex;
  flex-direction:column;
  font-family:var(--font-family-en);
  padding-bottom:9.375rem;
  padding-inline:1.25rem;
  padding-top:3.125rem;
}

.footer__logo{
  width:7.5rem;
}

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

.footer__contact{
  align-items:center;
  color:var(--text-sub);
  display:flex;
  flex-direction:column;
  line-height:1.8;
  margin-top:1.75rem;
  text-align:center;
}

.footer__dept{
  font-size:0.75rem;
}

.footer__tel{
  font-size:0.8125rem;
  margin-top:0.5rem;
}

.footer__tel a{
  color:inherit;
}

.footer__hours{
  font-size:0.6875rem;
  font-weight:var(--font-weight-medium);
  margin-top:0.125rem;
}

.footer__copyright{
  color:var(--text-copyright);
  font-size:0.6875rem;
  letter-spacing:0.02em;
  margin-top:1.25rem;
  text-align:center;
}

html{
  scroll-padding-top:3.125rem;
}

.header{
  background-color:var(--bg-cream);
  position:sticky;
  top:0;
  z-index:var(--z-index-header);
}

.header__inner{
  align-items:center;
  display:flex;
  height:3.125rem;
  padding-inline:1.25rem;
}

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

.header__logo{
  display:block;
  width:6.25rem;
}

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

.header__divider{
  background-color:var(--mh-gold);
  height:0.9375rem;
  margin-left:0.625rem;
  width:1px;
}

.header__tagline{
  color:var(--mh-gold);
  font-family:var(--font-family-mincho);
  font-size:0.75rem;
  font-weight:var(--font-weight-medium);
  letter-spacing:0.054em;
  line-height:1.2;
  margin-left:0.625rem;
}

.header__nav{
  display:none;
}

.header__nav-list{
  align-items:center;
  display:flex;
  gap:2rem;
}

.header__nav-link{
  color:var(--text-sub);
  font-family:var(--font-family-mincho);
  font-size:0.8125rem;
  font-weight:var(--font-weight-medium);
  transition:color var(--duration-base);
}

.header__nav-link.is-active{
  color:var(--mh-red);
}

.header__cta{
  align-items:center;
  background-color:var(--mh-red);
  border:1px solid var(--mh-red);
  color:var(--white);
  display:inline-flex;
  font-size:0.75rem;
  font-weight:var(--font-weight-medium);
  padding-block:0.1875rem;
  padding-inline:1.75rem;
  transition:color var(--duration-base), background-color var(--duration-base);
}

.modal{
  background-color:transparent;
  border:none;
  height:100%;
  inset:0;
  margin:0;
  max-height:100%;
  max-width:100%;
  padding:0;
  position:fixed;
  width:100%;
}

.modal::backdrop{
  background-color:transparent;
}

.modal__backdrop{
  align-items:flex-start;
  background-color:var(--scrim-white);
  display:flex;
  height:100%;
  justify-content:center;
  overflow-y:auto;
  padding-block:2.5rem;
  padding-inline:1.25rem;
  width:100%;
}

.modal__box{
  background-color:var(--bg-cream);
  border-radius:0.625rem;
  box-shadow:var(--shadow-card-lg);
  display:flex;
  flex-direction:column;
  gap:1.875rem;
  margin-block:auto;
  max-width:43.75rem;
  padding-block:2.5rem;
  padding-inline:1.5rem;
  position:relative;
  width:100%;
}

.modal__close{
  color:var(--mh-gold);
  cursor:pointer;
  height:2.5rem;
  position:absolute;
  right:0.75rem;
  top:0.75rem;
  width:2.5rem;
}

.modal__close svg{
  height:100%;
  width:100%;
}

.modal__eyebrow{
  color:var(--mh-red);
  font-family:var(--font-family-mincho);
  font-size:0.625rem;
  font-weight:var(--font-weight-regular);
  letter-spacing:0.1em;
  line-height:1.5;
  text-transform:uppercase;
}

.modal__content{
  display:flex;
  flex-direction:column;
  gap:1.25rem;
}

.modal__media{
  flex-shrink:0;
  position:relative;
  width:10rem;
  z-index:0;
}

.modal__media img{
  height:auto;
}

.modal__media::before{
  background-color:var(--mh-red);
  content:"";
  height:3.125rem;
  position:absolute;
  right:-0.25rem;
  top:-0.25rem;
  width:3.125rem;
  z-index:-1;
}

.modal__text{
  align-items:flex-start;
  display:flex;
  flex-direction:column;
  gap:1.25rem;
  min-width:0;
}

.modal__badge{
  align-items:center;
  background-color:var(--mh-gold);
  color:var(--white);
  display:inline-flex;
  font-family:var(--font-family-mincho);
  font-size:0.75rem;
  font-weight:var(--font-weight-bold);
  height:1.3125rem;
  padding-inline:0.875rem;
  white-space:nowrap;
}

.modal__title-group{
  display:flex;
  flex-direction:column;
  gap:0.3125rem;
}

.modal__title{
  color:var(--text-heading);
  font-family:var(--font-family-mincho);
  font-size:1.125rem;
  font-weight:var(--font-weight-bold);
  line-height:1.7;
}

.modal__body{
  color:var(--text-heading);
  font-family:var(--font-family-mincho);
  font-size:0.8125rem;
  font-weight:var(--font-weight-regular);
  line-height:1.86;
}

.modal__profile{
  display:flex;
  flex-direction:column;
  gap:0.5rem;
}

.modal__name{
  color:var(--text-heading);
  font-family:var(--font-family-mincho);
  font-size:1rem;
  font-weight:var(--font-weight-medium);
  letter-spacing:0.125em;
}

.modal__suffix{
  font-size:0.875rem;
}

.modal__role{
  color:var(--text-gray);
  font-family:var(--font-family-mincho);
  font-size:0.75rem;
  font-weight:var(--font-weight-regular);
  line-height:1.17;
}

@media (min-width: 768px){
  .u-desktop{
    display:block;
  }

  .u-mobile{
    display:none;
  }

  .u-desktop-inline{
    display:inline;
  }

  .u-mobile-inline{
    display:none;
  }

  html{
    font-size:max(9px, 1.1111111111vw);
  }

  .brand-message{
    padding-block:5.625rem;
  }

  .brand-message__inner{
    align-items:flex-start;
    display:flex;
    justify-content:space-between;
    padding-inline:3rem;
  }

  .brand-message__body{
    max-width:34.875rem;
  }

  .brand-message__eyebrow{
    font-size:0.625rem;
    font-weight:var(--font-weight-regular);
    letter-spacing:0.1em;
  }

  .brand-message__heading{
    font-size:2.25rem;
    letter-spacing:0.056em;
    line-height:1.64;
    margin-top:1.5rem;
  }

  .brand-message__divider{
    margin-top:0.75rem;
    max-width:24.5625rem;
  }

  .brand-message__text{
    margin-top:1.9375rem;
  }

  .brand-message__paragraph{
    font-size:1.0625rem;
    line-height:2.02;
  }

  .brand-message__paragraph + .brand-message__paragraph{
    margin-top:0;
  }

  .brand-message__media{
    border-radius:0 2.5rem;
    flex-shrink:0;
    margin-top:2.4375rem;
    width:32.5rem;
  }

  .brand-message__media.js-scaleImg img{
    transition-delay:0.2s;
  }

  .cta{
    background-image:url("../images/cta-bg.webp");
    min-height:40.625rem;
    padding:2.5rem;
  }

  .cta__content{
    max-width:56.25rem;
    padding-block:0 3rem;
    width:auto;
  }

  .cta__eyebrow{
    font-size:1.1875rem;
    letter-spacing:0.034em;
  }

  .cta__heading{
    font-size:2.5rem;
    letter-spacing:0.02em;
    line-height:1.375;
    margin-top:1.75rem;
  }

  .cta__copy{
    font-size:0.9375rem;
    margin-top:1.375rem;
  }

  .cta__btn{
    margin-top:2.25rem;
    min-width:18.75rem;
    width:fit-content;
  }

  .duties__inner{
    padding-inline:0;
  }

  .duties__heading{
    font-size:2.25rem;
    line-height:1;
  }

  .duties__slider{
    margin-inline:0;
  }

  .duties__card{
    width:auto;
  }

  .entry{
    padding-block:6rem;
  }

  .entry__inner{
    padding-inline:0;
  }

  .entry__label{
    font-size:0.625rem;
  }

  .entry__cols{
    flex-direction:row;
    gap:3.125rem;
  }

  .entry__col{
    flex:1;
    min-width:0;
  }

  .entry__heading{
    font-size:2.25rem;
    letter-spacing:0.056em;
    line-height:1.64;
  }

  .requirement{
    margin-top:2rem;
  }

  .requirement__row{
    flex-direction:row;
    gap:0;
    padding-block:0.65625rem;
  }

  .requirement__label{
    flex:0 0 6.5625rem;
  }

  .requirement__value{
    flex:1;
    min-width:0;
  }

  .requirement__schedule{
    align-items:flex-start;
    flex-direction:row;
    gap:0.9375rem;
    margin-bottom:0;
  }

  .requirement__schedule-note--sp-mt{
    margin-top:0;
  }

  .flow{
    gap:0.9375rem;
    margin-top:2rem;
  }

  .flow__item{
    align-items:center;
    min-height:6rem;
    padding-block:1.25rem;
  }

  .flow__body{
    align-items:center;
    flex-direction:row;
    justify-content:space-between;
  }

  .flow__img-wrap{
    width:10.9375rem;
  }

  .entry__cta{
    margin-inline:auto;
    margin-top:3.125rem;
    max-width:34.5rem;
  }

  .mv{
    background:none;
    min-height:100%;
  }

  .mv__content{
    left:54.13%;
    margin-top:0;
    padding-inline:0;
    position:absolute;
    right:auto;
    top:14.86%;
    width:39.44%;
  }

  .mv__heading{
    font-size:2.875rem;
    letter-spacing:0.13em;
    line-height:1.74;
    margin-bottom:1.25rem;
  }

  .mv__badge{
    padding-block:0.5625rem;
    padding-inline:1.9375rem;
    width:fit-content;
  }

  .mv__badge-en{
    font-size:1.5625rem;
  }

  .mv__badge-ja{
    font-size:0.75rem;
  }

  .mv__lead{
    font-size:1.0625rem;
    font-weight:var(--font-weight-black);
    letter-spacing:0.059em;
    line-height:2.24;
    padding-bottom:0;
  }

  .program{
    background-image:url("../images/program-bg.webp");
    padding-block:6.25rem;
  }

  .program__inner{
    padding-inline:0;
  }

  .program__head{
    text-shadow:var(--shadow-heading-on-photo);
  }

  .program__label{
    color:var(--white);
    font-size:0.625rem;
  }

  .program__heading{
    color:var(--white);
    font-size:2.25rem;
    letter-spacing:0.056em;
    line-height:1.64;
  }

  .program__divider{
    margin-top:1rem;
    max-width:24.5625rem;
  }

  .program__lead{
    color:var(--white);
    font-size:0.875rem;
    line-height:2;
  }

  .program__cards{
    flex-direction:row;
    gap:1.875rem;
    margin-top:2.25rem;
  }

  .program__card{
    flex:1 1 0;
    min-width:0;
  }

  .program__card-body{
    padding-inline:4.5rem;
  }

  .value{
    background-image:url("../images/value-bg.webp");
  }

  .value__inner{
    align-items:flex-start;
    flex-direction:row;
    gap:5.875rem;
    padding-inline:9.0625rem;
  }

  .value__heading-line{
    font-size:2.25rem;
    letter-spacing:0.278em;
    line-height:1.64;
    padding-block:0;
    padding-left:1.875rem;
    padding-right:1.75rem;
  }

  .value__list{
    flex:1;
    padding-inline:3.75rem;
  }

  .value__item{
    align-items:center;
    gap:0.9375rem;
  }

  .value__bullet{
    padding-top:0.125rem;
  }

  .value__item-text{
    line-height:1.867;
    white-space:nowrap;
  }

  .voice{
    padding-block:6rem;
  }

  .voice__inner{
    padding-inline:0;
  }

  .voice__label{
    font-size:0.625rem;
  }

  .voice__heading{
    font-size:2.25rem;
    letter-spacing:0.056em;
    line-height:1.64;
  }

  .voice__lead{
    margin-top:0;
  }

  .voice__group{
    margin-top:0.625rem;
  }

  .voice__group + .voice__group{
    margin-top:0.9375rem;
  }

  .voice__group-title{
    font-size:1.25rem;
    gap:1.875rem;
    letter-spacing:0.05em;
  }

  .voice__group-title::before,
  .voice__group-title::after{
    flex:0 0 auto;
    width:7.5rem;
  }

  .voice__card-box{
    left:-4.34375rem;
    position:absolute;
    top:17.46875rem;
    width:16.875rem;
  }

  .voice__card-title{
    font-size:1.0625rem;
  }

  .voice__card-btn{
    font-size:0.75rem;
  }

  .voice__card-btn-icon{
    width:0.875rem;
  }

  .voice__slider{
    margin-inline:0;
    overflow:visible;
    padding-bottom:0;
  }

  .voice__cards--message{
    justify-content:space-between;
    padding-inline:6.625rem 5.3125rem;
  }

  .voice__cards--message .voice__card{
    min-height:28.5rem;
    width:14.8125rem;
  }

  .voice__cards--message .voice__card-box{
    margin-left:0;
    margin-top:0;
  }

  .voice__cards--message .voice__card-name{
    font-size:1rem;
  }

  .voice__cards--message .voice__card-suffix{
    font-size:0.875rem;
  }

  .voice__cards--message .voice__card-role{
    font-size:0.875rem;
  }

  .voice__cards--participant{
    flex-direction:row;
    gap:7.75rem;
    justify-content:center;
    padding-inline:6.625rem 5.3125rem;
  }

  .voice__card--participant{
    align-items:flex-start;
    background-color:transparent;
    box-shadow:none;
    gap:0;
    min-height:28.5rem;
    padding:0;
    position:relative;
    width:14.8125rem;
  }

  .voice__card--participant .voice__card-media{
    width:14.8125rem;
  }

  .voice__card--participant .voice__card-box{
    background-color:var(--white);
    box-shadow:var(--shadow-card-lg);
    padding-block:0.9375rem;
    padding-inline:1.25rem 0;
    width:16.875rem;
  }

  .voice__card--participant .voice__card-title{
    text-align:left;
  }

  .voice__card--participant .voice__card-meta{
    gap:0.25rem;
  }

  .voice__card--participant .voice__card-role{
    color:var(--text-gray);
    font-size:0.75rem;
  }

  .voice__card--participant .voice__card-detail{
    display:none;
  }

  .voice__card--participant .voice__card-btn{
    display:flex;
  }

  .voice__card--participant .voice__card-media::after{
    content:none;
  }

  .voice__card--participant .voice__card-media::before{
    height:5rem;
    width:5rem;
  }

  .u-delay-1{
    transition-delay:0.1s;
  }

  .float-entry{
    bottom:1.25rem;
    height:10.125rem;
    width:10.125rem;
  }

  .float-entry__ring{
    height:10.125rem;
    width:10.125rem;
  }

  .float-entry__label{
    font-size:1.1875rem;
  }

  .float-entry__arrow{
    width:5.5rem;
  }

  .footer__inner{
    padding-bottom:11.875rem;
    padding-inline:0;
  }

  .footer__logo{
    width:8.25rem;
  }

  .footer__contact{
    line-height:normal;
  }

  .footer__dept{
    font-size:0.8125rem;
  }

  .footer__tel{
    font-size:0.875rem;
  }

  .footer__hours{
    display:block;
    font-size:0.75rem;
    margin-top:0.25rem;
  }

  .footer__copyright{
    margin-top:1.875rem;
  }

  html{
    scroll-padding-top:4.375rem;
  }

  .header__inner{
    height:4.375rem;
    justify-content:space-between;
    margin-inline:auto;
    max-width:78rem;
    padding-inline:0;
    width:100%;
  }

  .header__logo{
    width:8.25rem;
  }

  .header__divider{
    height:1.3125rem;
    margin-left:1.125rem;
  }

  .header__tagline{
    font-size:1.125rem;
    letter-spacing:0.036em;
    line-height:1;
    margin-left:1.0625rem;
  }

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

  .modal__box{
    padding-block:3.125rem;
    padding-inline:3.75rem;
  }

  .modal__close{
    height:3.125rem;
    right:1.25rem;
    top:0.8125rem;
    width:3.125rem;
  }

  .modal__content{
    align-items:flex-start;
    flex-direction:row;
    gap:1.875rem;
  }

  .modal__media{
    width:9.25rem;
  }
}

@media (max-width: 767px){
  :root{
    --padding-inline:0.9375rem;
  }
}

@media (any-hover: hover){
  a:hover{
    cursor:pointer;
  }

  .cta__btn:hover{
    background-color:var(--white);
    color:var(--mh-red);
  }

  .entry__cta:hover{
    background-color:var(--white);
    color:var(--mh-red);
  }

  .voice__card-btn:hover{
    background-color:var(--white);
    color:var(--mh-gold);
  }

  cookie-consent-banner button:hover{
    opacity:1;
  }

  .float-entry:hover .float-entry__arrow{
    transform:translateX(0.3125rem);
  }

  .footer__tel a:hover{
    color:var(--mh-red);
  }

  .header__nav-link:hover{
    color:var(--mh-red);
  }

  .header__cta:hover{
    background-color:var(--white);
    color:var(--mh-red);
  }
}

@media (prefers-reduced-motion: reduce){
  .js-fade-up,
  .js-fade-in{
    opacity:1;
    transition:none;
    translate:none;
  }

  .js-scaleImg img{
    opacity:1;
    scale:none;
    transition:none;
  }

  .float-entry__ring{
    animation:none;
  }
}