@charset "utf-8";
.sub_title {margin-bottom: 5.6rem;padding-top: 2.4rem;border-top: .2rem solid var(--ink);font-size: var(--fs-h3);font-weight: 800;letter-spacing: -.02em;}
.sub_visual {position: relative;display: grid;place-items: center;height: 78svh;min-height: 56rem;color: #fff;background: var(--ink);overflow: hidden;}
.sub_visual_bg {position: absolute;inset: 0;background: radial-gradient(50% 60% at 80% 40%, rgba(255, 196, 0, .14), transparent 70%), linear-gradient(135deg, #131a21, #1d2731);animation: visual_open 1.4s both;}
.sub_visual_bg::before {content: '';position: absolute;inset: 0;background-image: linear-gradient(var(--line-dark) .1rem, transparent .1rem), linear-gradient(90deg, var(--line-dark) .1rem, transparent .1rem);background-size: 8rem 8rem;opacity: .8;}
.sub_visual .slogan {position: relative;z-index: 2;width: 100%;max-width: var(--container-width);padding-inline: var(--page-gutter);animation: text_in 1s .4s both;}
.sub_visual h1 {font-size: var(--fs-h1);font-weight: 800;line-height: 1.02;letter-spacing: -.04em;text-transform: uppercase;}
.sub_visual h1 em {color: var(--accent);}
.sub_visual .slogan p {margin-top: 2rem;font-size: clamp(2rem, 2vw, 3.2rem);font-weight: 500;color: rgba(255, 255, 255, .85);}
.sub_visual_bg::after {content: '';position: absolute;inset: 0;background: linear-gradient(90deg, rgba(14, 18, 23, .88), rgba(14, 18, 23, .35));}
.sv1 .sub_visual_bg {background: url('../../images/visual-factory.jpg') center/cover;}
.sv2 .sub_visual_bg {background: url('../../images/visual-gripper.jpg') center/cover;}
.sv3 .sub_visual_bg {background: url('../../images/visual-control.jpg') center/cover;}
.sv4 .sub_visual_bg {background: url('../../images/visual-factory.jpg') center/cover;}
.sv5 .sub_visual_bg {background: url('../../images/visual-control.jpg') center/cover;}
.sub_visual_bg::before {z-index: 1;opacity: .5;}.sub_nav {position: absolute;z-index: 2;bottom: 4rem;left: 50%;transform: translateX(-50%);max-width: calc(100% - 4rem);}
.sub_nav ul {display: flex;gap: 1rem;padding: .5rem 1.2rem;background: rgba(255, 255, 255, .1);backdrop-filter: blur(10px);}
.sub_nav a {display: block;padding: 1.5rem 3.2rem;white-space: nowrap;font-size: 1.7rem;font-weight: 600;transition: background .3s, color .3s;}
.sub_nav .is_active a, .sub_nav a:hover {background: var(--accent);color: var(--ink);}
@keyframes visual_open {from {clip-path: inset(18% 18% 18% 18%);transform: scale(1.15);filter: blur(10px);} to {clip-path: inset(0);transform: none;filter: blur(0);}}
.overview_list {display: grid;grid-template-columns: repeat(2, 1fr);border-top: .1rem solid #c4cad1;margin-top: 9rem;}
.overview_list li {position: relative;display: flex;align-items: center;padding: 4rem 3rem 4rem 0;border-bottom: .1rem solid #c4cad1;}
.overview_list li:nth-child(even)::before {content: '';position: absolute;left: 0;top: 4rem;bottom: 4rem;width: .1rem;background: #c4cad1;}
.overview_list li:nth-child(even) {padding-left: 3rem;}
.overview_icon {display: grid;place-items: center;flex: 0 0 22%;padding: 2rem;}
.num_badge {display: grid;place-items: center;width: 8rem;height: 8rem;border: .2rem solid var(--ink);font: 800 2.4rem var(--font-mono);transition: background .3s, color .3s;}
.overview_list li:hover .num_badge {background: var(--accent);border-color: var(--accent);}
.overview_list h3 {font-size: 2.2rem;font-weight: 800;letter-spacing: -.02em;}
.overview_list p {margin-top: 2rem;color: var(--mute);font-size: 1.7rem;line-height: 1.7;}
.intro_section {background: var(--paper);}
.intro_slogan {margin-bottom: 4rem;font-size: clamp(2.6rem, 2.8vw, 4.2rem);font-weight: 800;line-height: 1.4;letter-spacing: -.03em;}
.intro_slogan strong {color: var(--accent-dark);}
.intro_inner {display: flex;align-items: stretch;gap: 3.6vw;}
.intro_image {flex: 0 0 24%;min-height: 40rem;}
.intro_image .img_box {width: 100%;height: 100%;}
.intro_text {flex: 1;min-width: 0;padding-left: 3.6vw;border-left: .1rem solid #c4cad1;}
.intro_text > p {font-size: 2rem;color: #1b2128cc;line-height: 1.7;}
.intro_text > p + p {margin-top: 2.4rem;}
.system_list {display: grid;grid-template-columns: repeat(3, 1fr);gap: 2rem;margin: 6rem 0;}
.system_list li {padding: 4rem 2.6vw;background: #fff;text-align: left;transition: background .3s, color .3s;}
.system_list li:hover {background: var(--ink);color: #fff;}
.system_list .num_badge {width: 5.6rem;height: 5.6rem;font-size: 1.8rem;border-color: currentColor;}
.system_list h3 {margin: 3rem 0 1.6rem;font-size: 2rem;font-weight: 800;}
.system_list p {font-size: 1.6rem;line-height: 1.8;color: var(--mute);transition: color .3s;}
.system_list li:hover p {color: rgba(255, 255, 255, .75);}
.sign {display: flex;align-items: center;flex-wrap: wrap;gap: 2rem;margin-top: 3.5rem;font-size: 2.4rem;}
.sign > span {padding-right: 2rem;border-right: .1rem solid #c4cad1;line-height: 1;}
.about_merit {background: linear-gradient(var(--paper) 50%, #fff 50%);}
.merit_box {padding: 10rem 4.2vw 8rem;background: linear-gradient(135deg, #131a21, #20303f);}
.merit_box > h3 {padding-bottom: 5.5rem;margin-bottom: 8rem;border-bottom: .1rem solid rgba(255, 255, 255, .4);color: #fff;text-align: center;font-size: clamp(2.4rem, 2.4vw, 3.6rem);font-weight: 800;}
.merit_list {display: grid;grid-template-columns: repeat(2, 1fr);gap: 2rem;}
.merit_list > li {display: flex;align-items: center;min-height: 21rem;padding: 4rem 0;background: #fff;}
.merit_list_icon {display: grid;place-items: center;flex: 0 0 25%;padding: 2rem;}
.merit_list_text {padding: 0 2.5vw;border-left: .1rem solid #c4cad1;}
.merit_list h4 {font-size: 2.1rem;font-weight: 800;}
.merit_list p {max-height: 0;opacity: 0;overflow: hidden;color: var(--mute);font-size: 1.6rem;line-height: 1.6;transition: max-height .4s, opacity .4s, margin .4s;}
.merit_list li:hover p, .merit_list li:focus-visible p {max-height: 20rem;opacity: 1;margin-top: 2rem;}
.org_wrap {margin-top: 6rem;}
.org_top {display: grid;place-items: center;width: 24rem;margin: 0 auto 4rem;padding: 2rem;background: var(--ink);color: #fff;font-weight: 800;clip-path: polygon(0 0, calc(100% - 1.4rem) 0, 100% 1.4rem, 100% 100%, 1.4rem 100%, 0 calc(100% - 1.4rem));}
.org_list {display: grid;grid-template-columns: repeat(4, 1fr);gap: 2rem;position: relative;}
.org_list::before {content: '';position: absolute;left: 12.5%;right: 12.5%;top: -2rem;height: .1rem;background: #c4cad1;}
.org_list li {padding: 3rem 2rem;border: .1rem solid #c4cad1;text-align: center;font-weight: 700;transition: background .3s, border-color .3s;}
.org_list li:hover {background: var(--accent);border-color: var(--accent);}
.org_list small {display: block;margin-top: .6rem;font-size: 1.4rem;font-weight: 400;color: var(--mute);}
.timeline {border-top: .2rem solid var(--ink);}
.timeline li {display: grid;grid-template-columns: 22rem minmax(0, 1fr);gap: 4rem;padding: 4.4rem 0;border-bottom: .1rem solid #c4cad1;transition: background .3s, padding .4s var(--ease);}
.timeline li:hover {background: var(--paper);padding-left: 2rem;}
.timeline .yr {font-size: clamp(3.6rem, 4vw, 6.4rem);font-weight: 800;line-height: 1;letter-spacing: -.03em;color: var(--accent-dark);}
.timeline h3 {margin-bottom: .8rem;font-size: 2.2rem;font-weight: 800;}
.timeline p {color: var(--mute);}
.map_box {display: grid;place-items: center;width: 100%;aspect-ratio: 16 / 7;border: .1rem solid var(--ink);color: var(--mute);text-align: center;background: repeating-linear-gradient(45deg, #fff, #fff 1.4rem, var(--paper) 1.4rem, var(--paper) 2.8rem);}
.info_rows {margin-top: 6rem;border-top: .2rem solid var(--ink);}
.info_rows > div {display: grid;grid-template-columns: 22rem minmax(0, 1fr);gap: 3rem;padding: 2.8rem 0;border-bottom: .1rem solid #c4cad1;}
.info_rows dt {font-weight: 800;}
.info_rows dd {color: var(--mute);}
.feature_grid {display: grid;grid-template-columns: repeat(3, 1fr);border-top: .2rem solid var(--ink);border-left: .1rem solid #c4cad1;}
.feature_grid li {min-height: 30rem;padding: 4rem 3.4rem;border-right: .1rem solid #c4cad1;border-bottom: .1rem solid #c4cad1;transition: background .4s, color .4s;}
.feature_grid li:hover {background: var(--ink);color: #fff;}
.feature_grid .num {font: 700 var(--fs-small) var(--font-mono);color: var(--accent-dark);}
.feature_grid h3 {margin: 6rem 0 1.6rem;font-size: var(--fs-h3);font-weight: 800;line-height: 1.3;letter-spacing: -.03em;}
.feature_grid p {font-size: 1.6rem;line-height: 1.7;color: var(--mute);transition: color .4s;}
.feature_grid li:hover p {color: rgba(255, 255, 255, .75);}
.spec_wrap {overflow-x: auto;}
.spec_table {width: 100%;min-width: 76rem;border-top: .2rem solid var(--ink);}
.spec_table th {padding: 2rem 1.6rem;background: var(--paper);font-size: var(--fs-small);font-weight: 800;text-align: left;}
.spec_table td {padding: 2.4rem 1.6rem;border-bottom: .1rem solid #c4cad1;color: var(--mute);}
.spec_table td:first-child {font-weight: 800;color: var(--text);}
.spec_table tbody tr {transition: background .2s;}
.spec_table tbody tr:hover {background: #fff9e0;}
.note {margin-top: 3rem;font-size: var(--fs-small);color: var(--mute);}
.step_list {display: grid;grid-auto-flow: column;grid-auto-columns: minmax(0, 1fr);border-top: .2rem solid var(--ink);}
.step_list li {padding: 4rem 3rem 5rem 0;}
.step_list li + li {padding-left: 3rem;border-left: .1rem solid #c4cad1;}
.step_list .no {display: block;margin-bottom: 4rem;font-size: clamp(6rem, 6.4vw, 10rem);font-weight: 800;line-height: 1;letter-spacing: -.04em;color: transparent;-webkit-text-stroke: .1rem var(--ink);transition: color .3s;}
.step_list li:hover .no {color: var(--accent);-webkit-text-stroke-color: var(--accent-dark);}
.step_list h3 {margin-bottom: 1.6rem;font-size: var(--fs-h3);font-weight: 800;}
.step_list p {color: var(--mute);line-height: 1.7;}
.case_grid {display: grid;grid-template-columns: repeat(3, 1fr);gap: 6rem 3rem;}
.case_grid .img_box {aspect-ratio: 4 / 3;}
.case_grid li:hover .img_box img {transform: scale(1.06);}
.case_grid h3 {margin-top: 2.4rem;font-size: var(--fs-h3);font-weight: 800;letter-spacing: -.02em;}
.case_grid dl {display: flex;gap: 1.6rem;margin-top: .8rem;font-size: var(--fs-small);color: var(--mute);}
.case_grid dt {padding-right: 1.6rem;border-right: .1rem solid #c4cad1;}
.board {width: 100%;border-top: .2rem solid var(--ink);}
.board th {padding: 2rem 1.6rem;font-size: var(--fs-small);font-weight: 800;text-align: center;background: var(--paper);}
.board td {padding: 2.6rem 1.6rem;border-bottom: .1rem solid #c4cad1;text-align: center;font-size: var(--fs-small);color: var(--mute);}
.board .tt {text-align: left;font-size: 2rem;font-weight: 700;color: var(--text);}
.board .c_no {width: 10rem;}
.board .c_date {width: 16rem;}
.board tbody tr {transition: background .2s;}
.board tbody tr:hover {background: #fff9e0;}
.doc_list {border-top: .2rem solid var(--ink);}
.doc_list li {display: flex;align-items: center;justify-content: space-between;gap: 2rem;padding: 3.4rem 0;border-bottom: .1rem solid #c4cad1;transition: background .3s, padding .4s var(--ease);}
.doc_list li:hover {background: var(--paper);padding-inline: 2rem;}
.doc_list h3 {font-size: var(--fs-h3);font-weight: 800;}
.doc_list p {font-size: var(--fs-small);color: var(--mute);}
.doc_btn {flex: none;padding: 1.1rem 2.4rem;border: .1rem solid #9aa3ad;font-size: var(--fs-small);font-weight: 700;color: var(--mute);}
.faq {border-top: .2rem solid var(--ink);}
.faq_item {border-bottom: .1rem solid #c4cad1;}
.faq_q {display: flex;align-items: center;gap: 3rem;width: 100%;padding: 3.4rem 0;font-size: var(--fs-h3);font-weight: 700;line-height: 1.35;text-align: left;transition: color .3s;}
.faq_q:hover {color: var(--accent-dark);}
.faq_q .tt {flex: 1;}
.faq_q .q {font: 800 var(--fs-small) var(--font-mono);color: var(--accent-dark);}
.faq_q i {position: relative;flex: none;width: 2.8rem;height: 2.8rem;}
.faq_q i::before, .faq_q i::after {content: '';position: absolute;left: 0;top: 1.3rem;width: 100%;height: .2rem;background: currentColor;transition: transform .3s;}
.faq_q i::after {transform: rotate(90deg);}
.faq_q[aria-expanded='true'] i::after {transform: rotate(0);}
.faq_a {padding: 0 6rem 3.6rem 5.6rem;font-size: var(--fs-lead);line-height: 1.8;color: var(--mute);}
.faq_a:not([hidden]) {animation: text_in .4s var(--ease);}
.form {display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));gap: 4rem 6rem;max-width: 130rem;}
.fld {display: flex;flex-direction: column;gap: 1rem;}
.fld.wide {grid-column: 1 / -1;}
.fld label {font: 700 var(--fs-label) var(--font-mono);letter-spacing: .12em;text-transform: uppercase;}
.fld input[type='text'], .fld input[type='tel'], .fld input[type='email'], .fld select, .fld textarea {width: 100%;padding: 1.4rem 0;border: 0;border-bottom: .2rem solid var(--ink);border-radius: 0;background: transparent;font-size: var(--fs-h3);font-weight: 600;transition: border-color .3s;}
.fld input::placeholder, .fld textarea::placeholder {color: #b4bbc3;font-weight: 500;}
.fld textarea {min-height: 18rem;font-size: var(--fs-lead);font-weight: 500;resize: vertical;}
.fld input:focus, .fld select:focus, .fld textarea:focus {border-bottom-color: var(--accent-dark);outline: 0;}
.fld [aria-invalid='true'] {border-bottom-color: #d6293e;}
.chk {display: flex;align-items: center;gap: 1.2rem;font: 500 var(--fs-body) var(--font-base) !important;letter-spacing: 0 !important;text-transform: none !important;}
.chk input {width: 2.2rem;height: 2.2rem;accent-color: var(--accent-dark);}
.err {min-height: 2rem;font-size: var(--fs-small);color: #d6293e;}
.done {padding: 2.4rem 3rem;border-left: .4rem solid var(--accent);background: var(--paper);font-size: var(--fs-lead);font-weight: 700;}
@media (max-width: 1399px) {
.merit_list p {max-height: none;opacity: 1;margin-top: 2rem;}
.system_list li {padding: 3rem 2rem;}
.feature_grid {grid-template-columns: repeat(2, 1fr);}
.case_grid {grid-template-columns: repeat(2, 1fr);}
}
@media (max-width: 1024px) {
.overview_list {grid-template-columns: 1fr;margin-top: 6rem;}
.overview_list li:nth-child(even)::before {display: none;}
.overview_list li:nth-child(even) {padding-left: 0;}
.overview_icon {flex-basis: 18%;}
.intro_inner {flex-direction: column;gap: 3rem;}
.intro_image {flex-basis: auto;min-height: 30rem;}
.intro_text {padding-left: 0;border-left: 0;}
.system_list {grid-template-columns: 1fr;margin: 4rem 0;}
.merit_box {padding: 6rem 3rem;}
.merit_list {grid-template-columns: 1fr;}
.org_list {grid-template-columns: repeat(2, 1fr);}
.org_list::before {display: none;}
.timeline li, .info_rows > div {grid-template-columns: 1fr;gap: 1rem;}
.step_list {grid-auto-flow: row;grid-template-columns: repeat(2, minmax(0, 1fr));}
.step_list li:nth-child(odd) {padding-left: 0;border-left: 0;}
.step_list li:nth-child(n+3) {border-top: .1rem solid #c4cad1;}
.form {grid-template-columns: 1fr;gap: 3.4rem;}
}
@media (max-width: 768px) {
.sub_visual {min-height: 54rem;}
.sub_nav {bottom: 3rem;width: calc(100% - 4rem);}
.sub_nav ul {justify-content: center;padding: .5rem;gap: 0;}
.sub_nav li {flex: 1;}
.sub_nav a {padding: 1.3rem .6rem;font-size: 1.4rem;text-align: center;}
.sub_title {margin-bottom: 3rem;}
.overview_list li {align-items: flex-start;padding: 3rem 0;gap: 2rem;}
.overview_icon {flex-basis: 5.6rem;padding: 0;}
.num_badge {width: 5.6rem;height: 5.6rem;font-size: 1.8rem;}
.overview_list h3 {font-size: 1.9rem;}
.overview_list p {margin-top: 1.3rem;font-size: 1.5rem;}
.intro_text > p {font-size: 1.7rem;}
.merit_box {padding: 4rem 2rem;}
.merit_box > h3 {margin-bottom: 3rem;padding-bottom: 3rem;}
.merit_list > li {align-items: flex-start;padding: 2.5rem 1.5rem;gap: 1.5rem;}
.merit_list_icon {flex-basis: 5.6rem;padding: 0;}
.merit_list_text {padding: 0 0 0 1.5rem;}
.merit_list h4 {font-size: 1.8rem;}
.merit_list p {font-size: 1.4rem;margin-top: 1.2rem;}
.org_list {grid-template-columns: 1fr;}
.feature_grid, .case_grid {grid-template-columns: 1fr;}
.feature_grid li {min-height: 0;padding: 3rem 2.4rem;}
.feature_grid h3 {margin-top: 3rem;}
.step_list {grid-template-columns: 1fr;}
.step_list li:nth-child(n) {padding: 3rem 0 4rem;border-left: 0;border-top: .1rem solid #c4cad1;}
.step_list li:first-child {border-top: 0;}
.board .tt {font-size: 1.7rem;}
.board .c_no, .board .c_date {width: auto;white-space: nowrap;}
.doc_list li {flex-direction: column;align-items: flex-start;}
.faq_q {gap: 1.6rem;padding: 2.6rem 0;}
.faq_a {padding: 0 0 3rem;}
}
@media (hover: none) {
.merit_list p {max-height: none;opacity: 1;}
.merit_list p {margin-top: 2rem;}
}
