

:root {
  --en-lines: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='220' viewBox='0 0 300 220'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.13' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M-10 40 C 30 20 60 60 100 40 S 170 20 210 44 S 280 64 320 40'/%3E%3Cpath d='M-10 150 C 40 130 70 172 120 150 S 190 128 236 152 S 290 170 320 150'/%3E%3C/g%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.07' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M-10 96 C 40 80 80 112 130 96 S 220 80 320 98'/%3E%3C/g%3E%3C/svg%3E");
  --en-mv-lines: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 560 400'%3E%3Cg fill='none' stroke='%23efe4cf' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M-20 70 C 60 30 120 110 200 70 S 340 20 420 72'/%3E%3Cpath d='M-20 128 C 70 92 130 166 214 128 S 330 86 380 120'/%3E%3Cpath d='M-20 186 C 50 160 110 214 170 186 S 250 160 290 180'/%3E%3C/g%3E%3Cg fill='none' stroke='%23e8402a' stroke-opacity='.35' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M-20 244 C 40 224 80 262 130 244 S 190 226 214 238'/%3E%3C/g%3E%3C/svg%3E");
  --en-deco: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 110 70'%3E%3Cg fill='none' stroke='%23e8402a' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 50 C 30 30 46 54 60 36 S 84 18 98 28'/%3E%3Cpath d='M22 62 C 38 46 52 66 68 50 S 90 38 104 46'/%3E%3Cpath d='M62 6 L 100 22'/%3E%3Cpath d='M58 14 L 96 30'/%3E%3C/g%3E%3C/svg%3E");
  --en-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 16'%3E%3Cpath d='M2 8 C 10 3 18 13 26 8 L 36 8 M30 3 L 37 8 L 30 13' fill='none' stroke='%23ffffff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}


body.hakumai_entry { background: var(--paper); }
.hakumai_entry #contents { background: none; }


.hakumai_entry .under_mv { background: var(--paper); overflow: hidden; }
@media screen and (min-width: 897px) {
  .hakumai_entry .under_mv { padding: clamp(190px, 13vw, 13vw) 0 0 10%; padding-bottom: 0; }
}
.hakumai_entry .under_mv:before { background-image: var(--en-mv-lines); width: 560px; height: 400px; top: 40px; left: -40px; opacity: .9; }
.hakumai_entry .under_mv .under_mv_ttl { color: var(--ink); font-size: 4.4rem; font-weight: 700; letter-spacing: .06em; line-height: 1.35; position: relative; z-index: 2; }
.hakumai_entry .under_mv .under_mv_ttl .small { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; font-size: 1.6rem; font-weight: 700; letter-spacing: .12em; color: var(--ink2); }
.hakumai_entry .under_mv .under_mv_ttl .small::before { content: ""; width: 46px; height: 12px; background: var(--wave-red) left center / auto 100% no-repeat; flex: none; }

.hakumai_entry .under_mv .under_mv_ttl.switch#new { display: block; }
.nb-mode-career .under_mv .under_mv_ttl.switch#new { display: none; }
.nb-mode-career .under_mv .under_mv_ttl.switch#career { display: block; }

.hakumai_entry .under_mv_deco { font-family: "Caveat", cursive; font-size: 120px; line-height: 1; color: var(--red); bottom: auto; top: clamp(150px, 11vw, 11vw); right: 9%; transform: rotate(-7deg); z-index: 1; }
.hakumai_entry .under_mv_deco:before { background-image: var(--en-deco); width: 92px; height: 58px; top: -26px; right: -70px; }
.hakumai_entry .under_mv_deco::after { content: ""; position: absolute; left: 6%; right: 0; bottom: -6px; height: 14px; background: var(--wave-red) left center / 100% 100% no-repeat; transform: rotate(2deg); }


.nb-tabs { display: flex; gap: 14px; margin-top: 64px; position: relative; z-index: 2; }
.nb-tab { position: relative; display: flex; flex-direction: column; gap: 6px; width: 300px; padding: 22px 28px 24px; border-radius: 20px 20px 0 0; background: var(--cream2); color: var(--ink); text-decoration: none; transition: background .3s, color .3s, transform .3s; }
.nb-tab .en { font-family: "Barlow", sans-serif; font-weight: 700; font-size: 1.2rem; letter-spacing: .2em; color: var(--red); }
.nb-tab b { font-size: 2.2rem; font-weight: 700; letter-spacing: .08em; }
.nb-tab small { font-size: 1.3rem; letter-spacing: .06em; color: var(--ink2); }
.nb-tab::after { content: ""; position: absolute; right: 22px; top: 26px; width: 26px; height: 26px; border-radius: 50%; border: 2px solid currentColor; opacity: .35; }
.nb-tab.is-on { background: var(--red); color: #fff; }
.nb-tab.is-on .en { color: var(--cream); }
.nb-tab.is-on small { color: rgba(255, 255, 255, .85); }
.nb-tab.is-on::after { opacity: 1; background: #fff; border-color: #fff; box-shadow: inset 0 0 0 6px var(--red); }
.nb-tab:not(.is-on):hover { background: #eee; }
.nb-tab:focus-visible { outline: 3px solid var(--ink); outline-offset: 3px; }


.hakumai_entry__content { background-color: var(--red); background-image: var(--en-lines), radial-gradient(circle at 88% 12%, rgba(255, 255, 255, .12) 0, rgba(255, 255, 255, 0) 38%), radial-gradient(circle at 6% 78%, rgba(0, 0, 0, .08) 0, rgba(0, 0, 0, 0) 42%); background-size: 300px auto, 100% 100%, 100% 100%; background-repeat: repeat, no-repeat, no-repeat; background-position: 0 0, 0 0, 0 0; padding-top: 96px; align-items: flex-start; }


.hakumai_entry__content--flow { position: sticky; top: 120px; padding-right: 4vw; }
.nb-flow { position: relative; margin: 0 0 40px; padding: 0; list-style: none; }
.nb-flow::before { content: ""; position: absolute; left: 17px; top: 18px; bottom: 18px; border-left: 2px dashed rgba(255, 255, 255, .45); }
.hakumai_entry__content--flow .nb-flow .point { display: flex; align-items: center; gap: 14px; padding-left: 0; margin-bottom: 18px; font-size: 1.4rem; font-weight: 700; letter-spacing: .08em; color: rgba(255, 255, 255, .7); position: relative; }
.hakumai_entry__content--flow .nb-flow .point:before { display: none; }
.nb-flow .n { flex: none; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; font-family: "Barlow", sans-serif; font-size: 1.5rem; background: var(--red); border: 2px solid rgba(255, 255, 255, .55); color: rgba(255, 255, 255, .8); position: relative; z-index: 1; }
.hakumai_entry__content--flow .nb-flow .point.current { color: #fff; }
.nb-flow .point.current .n { background: #fff; border-color: #fff; color: var(--red); }

.nb-visitcard { max-width: 300px; background: var(--cream); color: var(--ink); border-radius: 22px; padding: 12px 12px 24px; box-shadow: 0 18px 40px rgba(80, 20, 10, .22); transform: rotate(-1.5deg); }
.nb-visitcard .ph { --ar: 3 / 2; border-radius: 14px 14px 14px 60px; }
.nb-visitcard .en_sy { font-family: "Caveat", cursive; font-size: 2.6rem; color: var(--red); margin: 14px 10px 0; transform: rotate(-4deg); transform-origin: left; }
.nb-visitcard .t { margin: 6px 12px 0; font-size: 1.7rem; font-weight: 700; line-height: 1.6; letter-spacing: .06em; }
.nb-visitcard .d { margin: 10px 12px 0; font-size: 1.4rem; line-height: 1.9; letter-spacing: .04em; color: var(--ink2); }
.nb-demo-tag { margin-top: 26px; max-width: 300px; font-size: 1.2rem; line-height: 1.8; letter-spacing: .04em; color: rgba(255, 255, 255, .85); }


.hakumai_entry__content--form .lead { color: #fff; margin-bottom: 64px; }
.hakumai_entry__content--form table, .hakumai_entry__content--form tbody, .hakumai_entry__content--form tr { display: block; width: 100%; }
.hakumai_entry__content--form td { display: block; }
.hakumai_entry__content--form tr.base_out { display: block; }
.hakumai_entry__content--form tr.new_only { display: block; }
.hakumai_entry__content--form tr.career_only { display: none; }
.nb-mode-career .hakumai_entry__content--form tr.new_only { display: none; }
.nb-mode-career .hakumai_entry__content--form tr.career_only { display: block; }
.hakumai_entry__content--form tr { animation: nbRowIn .45s ease both; }
@keyframes nbRowIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

.hakumai_entry__content--form th { color: #fff; display: flex; align-items: center; flex-wrap: wrap; }
.hakumai_entry__content--form th:has(.info) { display: block; }
.hakumai_entry__content--form th .required, .hakumai_entry__content--form th .any { padding: 4px 9px 3px; margin-left: 12px; border-radius: 999px; }
.hakumai_entry__content--form th .required { background: var(--ink); color: var(--cream); }
.hakumai_entry__content--form th .any { background: rgba(255, 255, 255, .2); color: #fff; }
.hakumai_entry__content--form th .info { color: rgba(255, 255, 255, .9); margin-top: -6px; }
.hakumai_entry__content--form td { padding-bottom: 54px; }
.hakumai_entry__content--form td .note { margin-top: 16px; color: rgba(255, 255, 255, .88); }

.hakumai_entry__content--form td .inputarea, .hakumai_entry__content--form td .textarea { border: 2px solid transparent; border-radius: 12px; background: #fff; color: var(--ink); font-family: inherit; padding: 10px 20px; transition: border-color .25s, box-shadow .25s; }
.hakumai_entry__content--form td .inputarea { height: 64px; }
.hakumai_entry__content--form td .textarea { height: 220px; min-height: 220px; max-height: 220px; padding: 18px 20px; }
.hakumai_entry__content--form td .inputarea::placeholder, .hakumai_entry__content--form td .textarea::placeholder { color: #aaa; }
.hakumai_entry__content--form td .inputarea:focus, .hakumai_entry__content--form td .textarea:focus, .hakumai_entry__content--form td .selectbox:focus { border-color: var(--ink); box-shadow: 0 0 0 4px rgba(0, 0, 0, .18); }

.hakumai_entry__content--form td .box { position: relative; width: 100%; max-width: 460px; border: 0; border-radius: 12px; background: #fff; }
.hakumai_entry__content--form td .box::after { content: ""; position: absolute; right: 22px; top: 50%; width: 9px; height: 9px; border-right: 2.4px solid var(--red); border-bottom: 2.4px solid var(--red); transform: translateY(-70%) rotate(45deg); pointer-events: none; }
.hakumai_entry__content--form td .box .selectbox { -webkit-appearance: none; appearance: none; border: 2px solid transparent; border-radius: 12px; background: transparent; padding: 0 52px 0 20px; height: 64px; font-family: inherit; color: #aaa; cursor: pointer; }
.hakumai_entry__content--form td .box .selectbox.is-filled { color: var(--ink); }
.hakumai_entry__content--form td .box .selectbox option { color: var(--ink); }


.hakumai_entry__content--form td ul { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.hakumai_entry__content--form td li { margin: 0; }
.hakumai_entry__content--form td li label { display: block; cursor: pointer; }
.hakumai_entry__content--form td li .radiobtn { position: absolute; opacity: 0; width: 1px; height: 1px; }
.hakumai_entry__content--form td li .radio_label { position: relative; display: inline-flex; align-items: center; min-height: 48px; padding: 10px 20px 10px 46px; border-radius: 999px; border: 1.5px solid rgba(255, 255, 255, .6); background: rgba(255, 255, 255, .1); color: #fff; font-size: 1.5rem; font-weight: 700; letter-spacing: .04em; line-height: 1.5; transition: background .25s, color .25s, border-color .25s; }
.hakumai_entry__content--form td li .radio_label:before { left: 16px; width: 18px; height: 18px; border: 2px solid rgba(255, 255, 255, .85); background: transparent; box-sizing: border-box; }
.hakumai_entry__content--form td li .radio_label:after { content: ""; position: absolute; top: 50%; left: 21px; width: 8px; height: 8px; border-radius: 50%; transform: translate(0, -50%); background: var(--red); opacity: 0; }
.hakumai_entry__content--form td li .radio_label:hover { background: rgba(255, 255, 255, .2); }
.hakumai_entry__content--form td li .radiobtn:checked + .radio_label { background: #fff; color: var(--ink); border-color: #fff; }
.hakumai_entry__content--form td li .radiobtn:checked + .radio_label:before { border-color: var(--red); }
.hakumai_entry__content--form td li .radiobtn:focus-visible + .radio_label { outline: 3px solid var(--ink); outline-offset: 2px; }


.hakumai_entry__content--policy { border: 0; border-radius: 24px; background: #fff; color: var(--ink); }
@media screen and (min-width: 897px) { .hakumai_entry__content--policy { padding: 56px 64px; border: 0; } }
.hakumai_entry__content--policy h4 { position: relative; padding-bottom: 18px; }
.hakumai_entry__content--policy h4::after { content: ""; position: absolute; left: 50%; bottom: 0; width: 64px; height: 10px; transform: translateX(-50%); background: var(--wave-red) center / 100% 100% no-repeat; }
.hakumai_entry__content--policy p { color: var(--ink2); }
.hakumai_entry__content--policy .note { color: var(--ink2); }
.hakumai_entry__content--policy .policycheck { width: auto; max-width: 340px; padding: 18px 0; border-radius: 999px; background: var(--cream); cursor: pointer; transition: background .25s; }
.hakumai_entry__content--policy .policycheck:hover { background: var(--cream2); }
.hakumai_entry__content--policy .policycheck .checkbox { position: absolute; width: 1px; height: 1px; }
.hakumai_entry__content--policy .policycheck span { padding-left: 32px; }
.hakumai_entry__content--policy .policycheck span:before { width: 20px; height: 20px; border: 2px solid var(--ink2); border-radius: 6px; box-sizing: border-box; }
.hakumai_entry__content--policy .policycheck span:after { left: 7px; border-color: var(--red); border-width: 3px 0 0 3px; width: 6px; height: 11px; }
.hakumai_entry__content--policy .policycheck .checkbox:focus-visible + span:before { outline: 3px solid var(--ink); outline-offset: 2px; }


.hakumai_entry__content--form .submitbtn { position: relative; border: 0; border-radius: 999px; background-color: var(--ink); background-image: none; color: #fff; font-family: inherit; cursor: pointer; box-shadow: 0 10px 0 rgba(0, 0, 0, .25); transition: transform .25s, box-shadow .25s, background-color .25s; }
.hakumai_entry__content--form .submitbtn::after { content: ""; display: inline-block; width: 30px; height: 12px; margin-left: 16px; vertical-align: middle; background: var(--en-arrow) center / contain no-repeat; transition: transform .25s; }
@media screen and (min-width: 897px) {
  .hakumai_entry__content--form .submitbtn { width: 360px; padding: 28px 0; background-position: 0 0; }
  .hakumai_entry__content--form .submitbtn:hover { background-color: #000; background-position: 0 0; transform: translateY(-2px); box-shadow: 0 12px 0 rgba(0, 0, 0, .25); }
  .hakumai_entry__content--form .submitbtn:hover::after { transform: translateX(4px); }
}
.hakumai_entry__content--form .submitbtn:active { transform: translateY(6px); box-shadow: 0 4px 0 rgba(0, 0, 0, .25); }
.nb-demo-note { display: block; width: fit-content; margin: 26px auto 0; padding: 8px 18px; border-radius: 999px; background: rgba(0, 0, 0, .28); color: #fff; font-size: 1.25rem; letter-spacing: .08em; }
.nb-demo-note[hidden] { display: none; }
.nb-demo-note.is-pop { animation: nbPop .5s ease both; }
@keyframes nbPop { 0% { opacity: 0; transform: translateY(6px) scale(.96); } 100% { opacity: 1; transform: none; } }


@media screen and (max-width: 896px) {
  .hakumai_entry .under_mv { padding: 158px 0 0 5%; padding-bottom: 0; }
  .hakumai_entry .under_mv:before { width: 300px; height: 214px; top: 30px; left: -60px; }
  .hakumai_entry .under_mv .under_mv_ttl { font-size: 2.6rem; padding-right: 5%; }
  .hakumai_entry .under_mv .under_mv_ttl .small { font-size: 1.3rem; gap: 10px; margin-bottom: 12px; }
  .hakumai_entry .under_mv .under_mv_ttl .small::before { width: 34px; height: 10px; }
  .hakumai_entry .under_mv_deco { font-size: 60px; top: 84px; right: 16%; }
  .hakumai_entry .under_mv_deco:before { width: 52px; height: 34px; top: -16px; right: -44px; }
  .nb-tabs { margin-top: 36px; gap: 8px; padding-right: 5%; }
  .nb-tab { width: auto; flex: 1; padding: 16px 14px 18px; border-radius: 16px 16px 0 0; gap: 4px; }
  .nb-tab .en { font-size: 1.2rem; letter-spacing: .08em; }
  .nb-tab b { font-size: 1.6rem; }
  .nb-tab small { font-size: 1.2rem; line-height: 1.5; }
  .nb-tab::after { width: 16px; height: 16px; right: 12px; top: 16px; }
  .nb-tab.is-on::after { box-shadow: inset 0 0 0 4px var(--red); }

  .hakumai_entry__content { padding-top: 48px; }
  .hakumai_entry__content--flow { position: static; padding-right: 0; margin-bottom: 44px; }
  .nb-flow { display: flex; gap: 4px; margin-bottom: 30px; }
  .nb-flow::before { left: 16.6%; right: 16.6%; top: 17px; bottom: auto; border-left: 0; border-top: 2px dashed rgba(255, 255, 255, .45); }
  .hakumai_entry__content--flow .nb-flow .point { flex: 1 1 0; flex-direction: column; gap: 8px; margin-bottom: 0; font-size: 1.2rem; letter-spacing: .02em; text-align: center; }
  .nb-visitcard { max-width: none; display: grid; grid-template-columns: 40% 1fr; column-gap: 14px; padding: 10px 14px 10px 10px; transform: none; align-items: center; }
  .nb-visitcard .ph { grid-row: 1 / span 3; border-radius: 12px 12px 12px 36px; --ar: 1 / 1; }
  .nb-visitcard .en_sy { margin: 0; font-size: 2rem; }
  .nb-visitcard .t { margin: 2px 0 0; font-size: 1.4rem; }
  .nb-visitcard .d { display: none; }
  .nb-demo-tag { max-width: none; margin-top: 18px; }

  .hakumai_entry__content--form .lead { margin-bottom: 40px; }
  .hakumai_entry__content--form th { }
  .hakumai_entry__content--form th .info { }
  .hakumai_entry__content--form td .note { }
  .hakumai_entry__content--form td { padding-bottom: 34px; }
  .hakumai_entry__content--form td .inputarea { height: 52px; font-size: 16px; padding: 8px 14px; border-radius: 10px; }
  .hakumai_entry__content--form td .textarea { font-size: 16px; padding: 12px 14px; height: 180px; min-height: 180px; max-height: 180px; }
  .hakumai_entry__content--form td .box { max-width: none; }
  .hakumai_entry__content--form td .box .selectbox { height: 52px; font-size: 16px; padding: 0 46px 0 14px; }
  .hakumai_entry__content--form td ul { gap: 8px; }
  .hakumai_entry__content--form td li .radio_label { min-height: 44px; padding: 8px 16px 8px 40px; font-size: 1.35rem; }
  .hakumai_entry__content--form td li .radio_label:before { left: 14px; width: 16px; height: 16px; }
  .hakumai_entry__content--form td li .radio_label:after { left: 18px; }
  .hakumai_entry__content--policy { border: 0; border-radius: 18px; padding: 32px 6%; }
  .hakumai_entry__content--policy .policycheck { max-width: none; }
  .hakumai_entry__content--form .submitbtn { padding: 22px 0; }
}


.nb-bk { display: inline-block; }
.nb-demo-tag, .nb-visitcard .d, .hakumai_entry__content--form th .info, .hakumai_entry__content--policy p { text-align: left; text-align-last: auto; }
