@charset "UTF-8";
/* ==========================================================================
   訪問者別のご案内（visitor-*.html）
   style.css → about.css → admissions.css の後に読み込む
   デザイン基準幅: PC 1200px（本文エリア 680px／一部は画面右端まで伸ばす）
========================================================================== */

:root { --vis-bleed: calc(100vw - var(--side-w) - 90px); } /* 本文左端〜画面右端 */

.vis .sub-main { padding-bottom: 0; }
.vis-c { color: var(--c-main); }

/* 画面右端まで伸ばす */
.vis-bleed { width: var(--vis-bleed); max-width: none; }

/* 見出し：白帯＋左の黄色線（画面右端まで） */
.vis-h2 { display: flex; align-items: center; width: var(--vis-bleed); min-height: 44px; margin-top: 130px; padding: 4px 20px 4px 34px; border-left: 3px solid #fcd000; background: #fff; font-size: 25px; font-weight: 700; line-height: 1.4; letter-spacing: .06em; color: var(--c-main); }
.vis-h2:first-child { margin-top: 0; }
/* 見出し左のハート半分（STEP・年次のハートと同じ形・大きさ・位置関係） */
.vis-h2.has-heart { position: relative; }
.vis-h2.has-heart::before { content: ""; position: absolute; left: -63px; top: -16px; width: 57px; height: 105px; background: url("../../images/home/HL_top-bg_hart-L.svg") left top / 100% 100% no-repeat; pointer-events: none; }
.vis-intro { margin-top: 36px; font-size: 15px; line-height: 2.1; letter-spacing: .08em; color: var(--c-main); }

/* ボタン */
.vis-btn { position: relative; display: flex; align-items: center; justify-content: center; width: 345px; max-width: 100%; height: 50px; margin: 40px auto 0; padding: 0 56px; background: var(--c-main); color: #fff; font-size: 15px; font-weight: 700; letter-spacing: .06em; text-align: center; transition: opacity .3s; }
.vis-btn::after { content: ""; position: absolute; right: 22px; top: 50%; width: 19px; height: 12px; margin-top: -6px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 19 12'%3E%3Cpath d='M0 6h18M12.5.5 18 6l-5.5 5.5' fill='none' stroke='%23fff' stroke-width='1.2'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform .3s; }
.vis-btn:hover { opacity: .85; }
.vis-btn:hover::after { transform: translateX(4px); }
.vis-btn.is-wide { width: 100%; height: 73px; margin-top: 50px; font-size: 16px; }
.vis-btn.is-wide::after { right: 26px; }
.vis-btn.is-right { margin-right: 0; }

/* --------------------------------------------------------------------------
   リード＋カラーの大きな装飾（青：1・2年／赤：3年／緑：社会人）
-------------------------------------------------------------------------- */
.vis-lead { font-family: var(--ff-mincho); font-size: 27px; line-height: 1.5; letter-spacing: .06em; color: var(--c-main); }
.vis-blob { position: relative; width: var(--vis-bleed); min-height: 550px; margin-top: 45px; padding: 175px 60px 70px 140px; overflow: hidden; color: #fff; isolation: isolate; }
.vis-blob::before { content: ""; position: absolute; left: 0; top: 60px; z-index: -2; /* 2枚目と重なるよう下げる */ width: 890px; height: 484px; background: url("../../images/visitor/HL-visitor-04_bg-B.svg") left top / 100% 100% no-repeat; }
/* 右上：同じ形を縦向きにした画像（-v.svg）を1枚目の後ろに置く（右端を1枚目の右端 890px に揃える：890 - 240 = 650） */
.vis-blob.is-r::before { background-image: url("../../images/visitor/HL-visitor-04_bg-R.svg"); }
.vis-blob.is-g::before { background-image: url("../../images/visitor/HL-visitor-04_bg-G.svg"); }
.vis-blob::after { content: ""; position: absolute; left: 650px; top: 0; z-index: -3; width: 240px; height: 651px; background: url("../../images/visitor/HL-visitor-04_bg-B-v.svg") left top / 100% 100% no-repeat; }
.vis-blob.is-r::after { background-image: url("../../images/visitor/HL-visitor-04_bg-R-v.svg"); }
.vis-blob.is-g::after { background-image: url("../../images/visitor/HL-visitor-04_bg-G-v.svg"); }
.vis-blob__inner { position: relative; max-width: 510px; }
.vis-blob h2 { font-family: var(--ff-mincho); font-weight: 400; font-size: 27px; line-height: 1.5; letter-spacing: .08em; }
.vis-blob hr { height: 1px; margin: 30px 0 32px; border: 0; background: rgba(255, 255, 255, .8); }
.vis-blob p { font-size: 14px; font-weight: 500; line-height: 2; letter-spacing: .06em; }
.vis-blob ~ .vis-h2:first-of-type { margin-top: 100px; }

/* --------------------------------------------------------------------------
   看護師免許ってどんな資格？（1・2年）
-------------------------------------------------------------------------- */
.vis-lic { margin-top: 90px; }
.vis-lic__ttl { position: relative; padding-bottom: 50px; font-family: var(--ff-mincho); font-weight: 400; font-size: 54px; line-height: 1.3; letter-spacing: .02em; text-align: center; color: var(--c-main); white-space: nowrap; }
.vis-lic__ttl small { font-size: 32px; }
.vis-lic__ttl::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 26px; border-bottom: 1px solid #fcd000; border-radius: 0 0 50% 50% / 0 0 100% 100%; }
.vis-lic__curl { position: absolute; left: 280px; bottom: -70px; z-index: 1; width: 92px; pointer-events: none; }
.vis-lic__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 50px; }
.vis-lic__cards li { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 192px; padding: 20px 16px; border: 1px solid #fcd000; border-radius: 3px; background: #fff; font-weight: 700; line-height: 1.35; letter-spacing: .04em; text-align: center; color: var(--c-main); }
.vis-lic__cards img { height: 40px; width: auto; margin-bottom: 18px; }
.vis-lic__cards img.is-arrow { height: 34px; }
.vis-lic__cards .l { font-size: 33px; }
.vis-lic__cards .m { font-size: 23px; }
.vis-lic__cards .s { font-size: 15px; }
.vis-lic__cards .m.is-sm { font-size: 20px; }
.vis-lic__note { margin-top: 42px; padding: 0 56px; font-size: 15px; line-height: 2.1; letter-spacing: .08em; color: var(--c-main); }

/* 受験より前に（STEP アコーディオン） */
.vis-steps { width: var(--vis-bleed); margin-top: 24px; }
.vis-step + .vis-step { margin-top: 24px; }
.vis-step__head { position: relative; display: grid; grid-template-columns: minmax(0, 553px) 130px 1fr; width: 100%; min-height: 130px; background: #cfdcee; text-align: left; }
.vis-step__ttl { position: relative; display: flex; align-items: center; min-height: 130px; padding: 16px 40px 16px 62px; font-family: var(--ff-mincho); font-size: 27px; line-height: 1.5; letter-spacing: .06em; color: var(--c-main); }
.vis-step__ttl::before { content: ""; position: absolute; left: 0; top: -16px; width: 57px; height: 105px; background: url("../../images/home/HL_top-bg_hart-L.svg") left top / 100% 100% no-repeat; }
.vis-step__ttl::after { content: ""; position: absolute; right: 16px; bottom: 16px; width: 28px; height: 15px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 15'%3E%3Cpath d='M.5.5 14 14 27.5.5' fill='none' stroke='%230b3daf' stroke-width='1.2'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform .3s; }
.vis-step.is-open .vis-step__ttl::after { transform: rotate(180deg); }
.vis-step__num { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; background: #fff; font-family: var(--ff-en); font-size: 22px; line-height: 1; color: var(--c-main); }
.vis-step__num b { margin-top: 6px; font-size: 54px; font-weight: 400; }
.vis-step__body { display: grid; grid-template-rows: 0fr; width: 680px; max-width: 100%; transition: grid-template-rows .35s ease; }
.vis-step.is-open .vis-step__body { grid-template-rows: 1fr; }
.vis-step__body > div { overflow: hidden; }
.vis-step__body p { padding: 24px 30px 4px 62px; font-size: 15px; line-height: 1.9; letter-spacing: .06em; }
.vis-step__body a { color: var(--c-main); text-decoration: underline; }

/* 先輩たちの声 */
.vis-voice { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; margin-top: 44px; }
.vis-voice a { display: block; }
.vis-voice__img { position: relative; aspect-ratio: 472 / 300; overflow: hidden; border-radius: 3px; }
.vis-voice__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.vis-voice a:hover .vis-voice__img img { transform: scale(1.04); }
.vis-voice__label { position: absolute; right: 21px; top: 0; width: 28px; padding: 8px 0 10px; background: #fff; font-family: var(--ff-mincho); font-size: 17px; line-height: 1.2; letter-spacing: .12em; color: var(--c-main); writing-mode: vertical-rl; text-orientation: upright; display: flex; align-items: center; }
.vis-voice__label span { margin-top: 6px; font-family: var(--ff-en); font-size: 18px; letter-spacing: 0; text-combine-upright: all; -webkit-text-combine: horizontal; }
.vis-voice h3 { margin-top: 20px; font-family: var(--ff-mincho); font-weight: 400; font-size: 19px; line-height: 1.5; letter-spacing: .14em; color: var(--c-main); }
.vis-voice p { margin-top: 18px; font-size: 15px; line-height: 1.85; letter-spacing: .06em; text-align: justify; }

/* 3年間でこう変わる */
.vis-years { margin-top: 62px; }
.vis-year + .vis-year { margin-top: 24px; }
.vis-year__head { position: relative; display: flex; align-items: center; min-height: 125px; }
.vis-year__badge { position: absolute; left: 0; top: 0; width: 68px; height: 125px; padding-top: 18px; background: url("../../images/home/HL_top-bg_hart-L.svg") left top / 100% 100% no-repeat; text-align: center; color: #fff; z-index: 1; }
.vis-year__badge b { display: block; font-family: var(--ff-en); font-size: 30px; font-weight: 400; line-height: 1; }
.vis-year__badge span { display: block; margin-top: 4px; font-size: 14px; font-weight: 700; line-height: 1.2; }
.vis-year__ttl { flex: 1; margin-left: 50px; padding: 8px 18px 10px 34px; background: #fff; font-family: var(--ff-mincho); font-weight: 400; font-size: 29px; line-height: 1.5; letter-spacing: .06em; color: var(--c-main); align-self: flex-start; margin-top: 20px; }
.vis-year__body { display: grid; grid-template-columns: 280px 1fr; align-items: end; gap: 24px; margin: 0 0 0 85px; }
.vis-year__body img { width: 100%; aspect-ratio: 280 / 180; object-fit: cover; }
.vis-year__body p { font-size: 15px; line-height: 1.85; letter-spacing: .08em; }

/* まず、ここから始めてみよう！ */
.vis-start { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-top: 40px; padding: 0 40px; }
.vis-start ol { flex: 1; max-width: 310px; }
.vis-start li { padding: 10px 0 8px; border-bottom: 1px solid #fcd000; font-size: 19px; font-weight: 700; letter-spacing: .06em; color: var(--c-main); }
.vis-start li a:hover { opacity: .7; }
.vis-start img { width: 138px; }

/* --------------------------------------------------------------------------
   入学後の生活をイメージ（3年） / 看護師として働く未来（社会人）
-------------------------------------------------------------------------- */
.vis-img { position: relative; margin-top: 56px; }
.vis-img + .vis-btn { margin-top: 32px; }
.vis-img__head { position: relative; display: flex; align-items: flex-end; gap: 50px; min-height: 100px; }
.vis-img__no { flex-shrink: 0; font-family: var(--ff-en); font-style: italic; line-height: 1; color: var(--c-main); }
.vis-img__no span { display: block; font-size: 23px; }
.vis-img__no span::after { content: ""; display: inline-block; width: 6px; height: 6px; margin-left: 6px; border-radius: 50%; background: #fcd000; vertical-align: middle; }
.vis-img__no b { display: block; margin: 4px 0 0 12px; font-size: 62px; font-weight: 400; }
.vis-img h3 { padding-bottom: 8px; font-family: var(--ff-mincho); font-weight: 400; font-size: 27px; line-height: 1.5; letter-spacing: .08em; color: var(--c-main); }
.vis-img__char { position: absolute; width: 140px; z-index: 1; }
.vis-img__box { position: relative; width: 590px; max-width: 100%; margin-top: 26px; padding: 30px 24px 28px; border-radius: 3px; background: #fff; font-size: 14px; font-weight: 700; line-height: 2; letter-spacing: .06em; color: var(--c-main); }
.vis-img__box::before { content: ""; position: absolute; top: -26px; left: 58px; width: 46px; height: 28px; background: #fff; clip-path: polygon(70% 0, 100% 100%, 0 100%); }
/* 01：キャラ右 / 02：キャラ左・番号右 */
.vis-img.is-01 .vis-img__char { right: -14px; top: -10px; }
.vis-img.is-02 .vis-img__head { flex-direction: row-reverse; justify-content: flex-end; gap: 36px; padding-left: 160px; width: 600px; }
.vis-img.is-02 h3 { white-space: nowrap; letter-spacing: .04em; }
.vis-img.is-02 h3 { text-align: right; }
.vis-img.is-02 .vis-img__char { left: -16px; top: -60px; }
.vis-img.is-02 .vis-img__box::before { left: auto; right: 58px; clip-path: polygon(0 0, 100% 100%, 0 100%); }

/* Future（社会人：写真付き） */
.vis-future { display: grid; grid-template-columns: 1fr 280px; align-items: start; margin-top: 62px; }
.vis-future .vis-img { margin-top: 0; }
.vis-future .vis-img__head { gap: 26px; }
.vis-future h3 { white-space: nowrap; letter-spacing: .04em; }
.vis-future .vis-img__box { width: auto; margin-right: -18px; z-index: 1; }
.vis-future figure { margin-top: 0; }
.vis-future figure img { width: 100%; aspect-ratio: 280 / 240; object-fit: cover; border-radius: 3px; }

/* --------------------------------------------------------------------------
   入試・出願の情報（3年・社会人）
-------------------------------------------------------------------------- */
.vis-apply__ttl { margin-top: 40px; font-family: var(--ff-mincho); font-weight: 400; font-size: 29px; line-height: 1.5; letter-spacing: .06em; color: var(--c-main); }
.vis-apply__txt { margin-top: 28px; font-size: 14px; font-weight: 700; line-height: 2; letter-spacing: .04em; color: var(--c-main); }
.vis-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 32px 48px; margin-top: 76px; }
.vis-cards li { display: flex; flex-direction: column; background: #fff; box-shadow: 0 2px 10px rgba(11, 61, 175, .08); }
.vis-cards h3 { padding: 6px 10px; border-bottom: 1px solid #fcd000; background: #c9d9ec; font-family: var(--ff-mincho); font-weight: 400; font-size: 25px; line-height: 1.6; letter-spacing: .06em; text-align: center; color: var(--c-main); }
.vis-cards p { flex: 1; padding: 24px 12px 0; font-size: 14px; font-weight: 700; line-height: 1.5; letter-spacing: .06em; text-align: center; color: var(--c-main); }
.vis-cards .vis-btn { width: auto; margin: 22px 18px 20px; padding: 0 44px 0 16px; font-size: 15px; }
.vis-cards .vis-btn::after { right: 16px; }

.vis-close { margin-top: 120px; text-align: center; color: var(--c-main); }
.vis-close__ttl { font-family: var(--ff-mincho); font-weight: 400; font-size: 41px; line-height: 1.55; letter-spacing: .1em; }
.vis-close__en { position: relative; margin-top: 50px; padding: 60px 0 85px; font-family: var(--ff-en); font-size: 19px; }
.vis-close__en::before, .vis-close__en::after { content: ""; position: absolute; left: 50%; width: 1px; background: #bbb; }
.vis-close__en::before { top: 0; height: 55px; }
.vis-close__en::after { bottom: 0; height: 82px; }
.vis-close img { width: 67px; margin: 20px auto 0; }
.vis-close .vis-btn { margin-top: 32px; height: 60px; }
.vis-close .vis-btn:first-of-type { margin-top: 46px; }

/* --------------------------------------------------------------------------
   大学生も社会人も（社会人）
-------------------------------------------------------------------------- */
.vis-for { margin-top: 48px; }
.vis-for__item { position: relative; padding-left: 72px; }
.vis-for__item + .vis-for__item { margin-top: 44px; }
.vis-for__item::before { content: ""; position: absolute; left: 0; top: 0; width: 57px; height: 105px; background: url("../../images/home/HL_top-bg_hart-L.svg") left top / 100% 100% no-repeat; }
.vis-for h3 { padding: 14px 0 12px; border-bottom: 1px solid #fcd000; font-family: var(--ff-mincho); font-weight: 400; font-size: 21px; letter-spacing: .14em; color: var(--c-main); }
.vis-for p { margin-top: 16px; font-size: 14px; font-weight: 700; line-height: 2; letter-spacing: .04em; color: var(--c-main); }

.vis-ratio { margin-top: 82px; padding: 28px 32px 32px; border-radius: 3px; background: #fff; }
.vis-ratio h3 { font-size: 34px; font-weight: 700; letter-spacing: .02em; color: var(--c-main); }
.vis-ratio__nums { display: flex; justify-content: center; gap: 44px; margin-top: 22px; }
.vis-ratio__nums div { display: flex; align-items: flex-end; gap: 14px; }
.vis-ratio__nums dt { font-size: 18px; font-weight: 700; line-height: 1.2; padding-bottom: 66px; }
.vis-ratio__nums dd { font-family: var(--ff-num); font-style: italic; font-weight: 500; font-size: 104px; line-height: .85; letter-spacing: -.02em; }
.vis-ratio__nums dd small { font-size: 40px; margin-left: 4px; }
.vis-ratio__nums .is-adult { color: #f18e2c; }
.vis-ratio__nums .is-hs { color: #00adb2; }
.vis-ratio p { margin-top: 30px; font-size: 14px; line-height: 2; letter-spacing: .06em; color: var(--c-main); text-align: justify; }

/* SUPPORT */
.vis-support { width: var(--vis-bleed); margin-top: 50px; }
.vis-sup { position: relative; padding: 0 0 46px; }
.vis-sup + .vis-sup { margin-top: 30px; }
.vis-sup::before { content: ""; position: absolute; left: 0; right: 0; top: 30px; bottom: 0; z-index: -1; background: #dfe8f2; }
.vis-sup__inner { position: relative; z-index: 0; width: 680px; max-width: 100%; padding: 0 0 0 30px; }
.vis-support { position: relative; z-index: 0; }
.vis-sup__top { display: grid; grid-template-columns: 240px 1fr; gap: 18px; }
.vis-sup__top img { width: 100%; aspect-ratio: 240 / 160; object-fit: cover; border-radius: 3px; }
.vis-sup__label { justify-self: end; display: flex; align-items: center; gap: 18px; height: 62px; padding: 0 18px; border: 1px solid #6c8fd8; font-family: var(--ff-en); color: var(--c-main); }
.vis-sup__label span { font-size: 17px; letter-spacing: .02em; }
.vis-sup__label span::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 10px; border-radius: 50%; background: #fcd000; vertical-align: middle; }
.vis-sup__label b { font-size: 46px; font-weight: 400; line-height: 1; }
.vis-sup h3 { margin-top: 22px; padding-bottom: 14px; border-bottom: 1px solid #6c8fd8; font-family: var(--ff-mincho); font-weight: 400; font-size: 27px; line-height: 1.35; letter-spacing: .08em; color: var(--c-main); }
.vis-sup__txt { margin-top: 40px; padding-left: 8px; font-size: 14px; font-weight: 700; line-height: 2; letter-spacing: .04em; color: var(--c-main); }
.vis-sup .vis-btn { margin-top: 36px; margin-right: 0; }

/* --------------------------------------------------------------------------
   卒業生の方
-------------------------------------------------------------------------- */
.vis-cert__lead { margin-top: 30px; font-size: 15px; line-height: 1.9; letter-spacing: .06em; }
.vis-table { width: 100%; margin-top: 34px; border-collapse: collapse; background: #fff; font-size: 15px; letter-spacing: .06em; text-align: center; }
.vis-table th { height: 58px; padding: 8px; border-left: 1px solid #6c8fd8; background: var(--c-main); color: #fff; font-size: 16px; font-weight: 700; }
.vis-table th:first-child { border-left: 0; }
.vis-table td { height: 58px; padding: 8px 12px; border-bottom: 1px solid #6c8fd8; border-left: 1px solid #6c8fd8; }
.vis-table td:first-child { border-left: 0; }
.vis-table td.is-days { font-size: 12px; letter-spacing: 0; }
.vis-h3 { margin-top: 56px; padding-bottom: 10px; border-bottom: 1px solid #fcd000; font-size: 19px; font-weight: 700; letter-spacing: .06em; color: var(--c-main); }
.vis-flow { margin-top: 24px; font-size: 15px; line-height: 1.8; letter-spacing: .06em; }
.vis-flow > li { display: grid; grid-template-columns: 1.3em 1fr; }
.vis-flow > li + li { margin-top: 18px; }
.vis-flow a { color: var(--c-main); border-bottom: 1px solid currentColor; }
.vis-flow a:hover { opacity: .7; }
.vis-flow .note { display: block; margin: 8px 0 0 -1.3em; }
.vis-addr { display: inline-block; margin-top: 18px; padding: 22px 30px; border: 1px solid #6c8fd8; font-size: 16px; font-weight: 700; line-height: 1.4; letter-spacing: .06em; color: var(--c-main); }
.vis-cert__note { margin-top: 40px; padding-left: 1em; text-indent: -1em; font-size: 15px; font-weight: 700; line-height: 1.5; letter-spacing: .04em; color: var(--c-main); }

.vis-end { height: 140px; }

/* ==========================================================================
   Tablet（〜1024px）
========================================================================== */
@media (max-width: 1024px) {
  :root { --vis-bleed: calc(100vw - 30px); }
  .vis-h2 { margin-top: 100px; }
  .vis-h2.has-heart { margin-left: 26px; width: calc(var(--vis-bleed) - 26px); }
  .vis-h2.has-heart::before { left: -30px; top: -8px; width: 26px; height: 48px; }
  .vis-blob { padding: 150px 40px 60px 90px; }
  .vis-step__head { grid-template-columns: minmax(0, 1fr) 130px 30px; }
  .vis-step__body { width: auto; }
  .vis-sup__inner { width: auto; padding-right: 30px; }
  .vis-lic__ttl { font-size: 46px; }
  .vis-lic__curl { left: 36%; }
}

/* ==========================================================================
   Smartphone（〜767px）
========================================================================== */
@media (max-width: 767px) {
  :root { --vis-bleed: calc(100vw - 20px); }
  .vis-lead { font-size: 20px; }
  .vis-lead br { display: none; }
  .vis-h2 { min-height: 0; margin-top: 72px; padding: 10px 16px 10px 18px; font-size: 18px; }
  .vis-h2.has-heart { margin-left: 22px; width: calc(var(--vis-bleed) - 22px); }
  .vis-h2.has-heart::before { left: -24px; top: -6px; width: 20px; height: 37px; }
  .vis-intro { margin-top: 24px; font-size: 14px; line-height: 1.9; }
  .vis-intro br { display: none; }
  .vis-btn { height: 52px; font-size: 14px; padding: 0 44px; }
  .vis-btn.is-wide { height: 60px; font-size: 14px; padding: 0 48px 0 20px; }

  .vis-blob { min-height: 0; margin-top: 30px; padding: 56px 22px 44px 36px; }
  .vis-blob::before, .vis-blob.is-r::before, .vis-blob.is-g::before { inset: 0; width: auto; height: auto; border-radius: 120px 0 0 0; background: var(--vis-grad); }
  .vis-blob::after { display: none; }
  .vis-blob h2 { font-size: 21px; }
  .vis-blob hr { margin: 20px 0; }
  .vis-blob p { font-size: 13px; line-height: 1.9; }
  .vis-blob p br { display: none; }

  .vis-lic { margin-top: 64px; }
  .vis-lic__ttl { padding-bottom: 36px; font-size: 30px; white-space: normal; }
  .vis-lic__ttl small { font-size: 19px; }
  .vis-lic__curl { left: 30%; bottom: -50px; width: 64px; }
  .vis-lic__cards { gap: 10px; margin-top: 36px; }
  .vis-lic__cards li { min-height: 150px; padding: 16px 8px; }
  .vis-lic__cards img { height: 30px; margin-bottom: 10px; }
  .vis-lic__cards img.is-arrow { height: 24px; }
  .vis-lic__cards .l { font-size: 20px; }
  .vis-lic__cards .m { font-size: 15px; }
  .vis-lic__cards .s { font-size: 11px; }
  .vis-lic__cards .m.is-sm { font-size: 13px; }
  .vis-lic__note { padding: 0; font-size: 14px; line-height: 1.9; }
  .vis-lic__note br { display: none; }

  .vis-step + .vis-step { margin-top: 14px; }
  .vis-step__head { grid-template-columns: minmax(0, 1fr) 72px 20px; min-height: 92px; }
  .vis-step__ttl { display: block; min-height: 92px; padding: 22px 34px 12px 40px; font-size: 17px; }
  .vis-step__ttl br { display: none; }
  .vis-step__ttl::before { top: -10px; width: 34px; height: 62px; }
  .vis-step__ttl::after { right: 10px; bottom: 10px; width: 18px; height: 10px; }
  .vis-step__num { font-size: 14px; }
  .vis-step__num b { font-size: 34px; }
  .vis-step__body p { padding: 18px 10px 0 40px; font-size: 14px; }

  .vis-voice { grid-template-columns: 1fr; gap: 36px; margin-top: 30px; }
  .vis-voice__label { width: 24px; font-size: 14px; right: 12px; }
  .vis-voice__label span { font-size: 15px; }
  .vis-voice h3 { font-size: 18px; letter-spacing: .08em; }
  .vis-voice p { font-size: 14px; }

  .vis-years { margin-top: 40px; }
  .vis-year__head { min-height: 92px; }
  .vis-year__badge { width: 50px; height: 92px; padding-top: 12px; }
  .vis-year__badge b { font-size: 22px; }
  .vis-year__badge span { font-size: 11px; }
  .vis-year__ttl { margin: 14px 0 0 36px; padding: 6px 12px 8px 22px; font-size: 19px; }
  .vis-year__body { grid-template-columns: 1fr; gap: 12px; margin: 6px 0 0 36px; }
  .vis-year__body p { font-size: 14px; }

  .vis-start { padding: 0; gap: 14px; }
  .vis-start li { font-size: 15px; }
  .vis-start img { width: 86px; }

  .vis-img__head, .vis-img.is-02 .vis-img__head { flex-direction: row; justify-content: flex-start; gap: 18px; width: auto; padding: 0 70px 0 0; min-height: 0; }
  .vis-img.is-02 h3 { text-align: left; white-space: normal; }
  .vis-img__no span { font-size: 17px; }
  .vis-img__no b { font-size: 42px; margin-left: 6px; }
  .vis-img h3 { font-size: 19px; }
  .vis-img h3 br { display: none; }
  .vis-img__char, .vis-img.is-01 .vis-img__char, .vis-img.is-02 .vis-img__char { right: -8px; left: auto; top: -20px; width: 76px; }
  .vis-img__box { margin-top: 22px; padding: 22px 18px; font-size: 13px; line-height: 1.9; }
  .vis-img__box br { display: none; }
  .vis-img.is-02 .vis-img__box::before { right: auto; left: 40px; clip-path: polygon(70% 0, 100% 100%, 0 100%); }

  .vis-future { grid-template-columns: 1fr; gap: 16px; margin-top: 44px; }
  .vis-future .vis-img__box { margin-right: 0; }
  .vis-future h3 { white-space: normal; }

  .vis-apply__ttl { font-size: 21px; }
  .vis-apply__txt { font-size: 13px; }
  .vis-apply__txt br { display: none; }
  .vis-cards { grid-template-columns: 1fr; gap: 18px; margin-top: 40px; }
  .vis-cards h3 { font-size: 20px; }
  .vis-cards p { padding-top: 16px; font-size: 13px; }
  .vis-cards .vis-btn { margin: 16px 16px 16px; font-size: 14px; }

  .vis-close { margin-top: 80px; }
  .vis-close__ttl { font-size: 24px; }
  .vis-close__en { margin-top: 30px; padding: 46px 0 60px; font-size: 16px; }
  .vis-close__en::before { height: 40px; }
  .vis-close__en::after { height: 54px; }
  .vis-close .vis-btn { height: 54px; }

  .vis-for__item { padding-left: 46px; }
  .vis-for__item::before { width: 36px; height: 66px; }
  .vis-for h3 { font-size: 18px; letter-spacing: .08em; }
  .vis-for p { font-size: 13px; }
  .vis-for p br { display: none; }
  .vis-ratio { margin-top: 56px; padding: 22px 18px; }
  .vis-ratio h3 { font-size: 23px; }
  .vis-ratio__nums { flex-direction: column; align-items: center; gap: 14px; }
  .vis-ratio__nums dt { font-size: 15px; padding-bottom: 44px; width: 3.5em; }
  .vis-ratio__nums dd { font-size: 70px; }
  .vis-ratio__nums dd small { font-size: 28px; }
  .vis-ratio p { font-size: 13px; }

  .vis-sup::before { top: 20px; }
  .vis-sup__inner { padding: 0 20px 0 14px; }
  .vis-sup__top { grid-template-columns: 1fr; gap: 12px; }
  .vis-sup__label { justify-self: start; height: 50px; }
  .vis-sup__label b { font-size: 34px; }
  .vis-sup h3 { font-size: 20px; }
  .vis-sup h3 br { display: none; }
  .vis-sup__txt { margin-top: 20px; padding: 0; font-size: 13px; }
  .vis-sup__txt br { display: none; }
  .vis-sup .vis-btn { margin-top: 22px; width: 100%; }

  .vis-table { font-size: 13px; }
  .vis-table th { height: auto; padding: 10px 4px; font-size: 12px; }
  .vis-table td { height: auto; padding: 12px 6px; }
  .vis-h3 { font-size: 17px; }
  .vis-flow { font-size: 14px; }
  .vis-flow br { display: none; }
  .vis-addr { display: block; padding: 16px; font-size: 14px; }
  .vis-cert__note { font-size: 13px; }
  .vis-end { height: 80px; }
}
