/* 既存の本文・表・部品を流動幅で使うための共通調整。 */
:is(.training-page--standard, .content-page) { min-width: 0; overflow-wrap: anywhere; }
:is(.training-page--standard, .content-page) :is(.flex, .grid-2, .grid-3, .grid-4, .grid-5) > * { min-width: 0; }
:is(.training-page--standard, .content-page) :is(.section-jyoseimore .flex, .sectionReport .flex, .sec-growth .box, .section-hikaku .flex) { max-width: 100%; }
.training-page .section-jyoseimore .flex { max-width: 100%; }
.training-page .sectionWorkflow :is(.ls, .flex) { max-width: calc(100% - 40px); }
.page-reskilling-main .sec-course-outer > .grid-2 .right figure { max-width: 100%; }
:is(.training-page--standard, .content-page) img { max-width: 100%; }
:is(.training-page--standard, .content-page) :is(.hero-image, .fv_mainimage, .page-mainimg-wm-child__bg) { width: 100%; max-width: none; }
:is(.training-page--standard, .training-page--marketing, .content-page) :is(.sectionPrice, .sectionJyosei) > .inner { width: min(1000px, calc(100% - 40px)); }
:is(.training-page--standard, .content-page) :is(.priceTable, .section-ichiran .table, .section-hikaku table) { width: 100%; min-width: 0; table-layout: fixed; }
:is(.training-page--standard, .content-page) :is(td, th) { overflow-wrap: anywhere; }
#main-content .sectionOverview table { max-width: 100%; }
#main-content .sectionCurriculum .lists { max-width: 100%; }
#main-content .sectionCurriculum .lists table { width: 100%; }
.content-page--about .section4 { width: min(1200px, calc(100% - 40px)); max-width: 100%; margin-inline: auto; }
.content-page--about :is(.section3 ul, .section4 ul) { max-width: 100%; }
.ux-disclosure-heading { position: relative; }
.ux-disclosure-heading > .ux-disclosure-button { display: flex; align-items: center; position: relative; width: 100%; min-height: 44px; padding: 0; border: 0; border-radius: inherit; background: transparent; color: inherit; font: inherit; text-align: inherit; cursor: pointer; }
:is(#curriculumToggle, .section-curriculum .toggle) > .ux-disclosure-heading { padding: 0; }
:is(#curriculumToggle, .section-curriculum .toggle) .ux-disclosure-button { --ux-disclosure-icon-right: 40px; flex-flow: inherit; align-items: center; justify-content: inherit; min-height: 84px; padding: 20px 80px 20px 40px; text-align: left; }
:is(#toggle, #curriculumToggle, .section-curriculum .toggle) .ux-disclosure-heading::after { content: none !important; }
.ux-disclosure-button::before,
.ux-disclosure-button::after { content: ""; position: absolute; top: 50%; right: var(--ux-disclosure-icon-right, 10px); width: 14px; height: 1px; background: currentColor; pointer-events: none; transition: transform 0.35s ease; }
.ux-disclosure-button::before { transform: translateY(-50%) rotate(0deg); }
.ux-disclosure-button::after { transform: translateY(-50%) rotate(-90deg); }
.ux-disclosure-button[aria-expanded="true"]::before,
.ux-disclosure-button[aria-expanded="true"]::after { transform: translateY(-50%) rotate(180deg); }
#toggle { --ux-disclosure-icon-right: 3%; }
.content-page--content { min-height: 50vh; }
.content-page--content .page404 { width: 100%; margin: 0; padding: 120px 0; border-top: 1px solid #ddd; }
.content-page--content .page404 h1 { font-size: clamp(24px, 4vw, 48px); text-align: center; }
.content-page--content .page404 p { width: min(600px, calc(100% - 40px)); margin: 60px auto; }
.content-page--content #page-archive { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 50px; width: min(1200px, calc(100% - 40px)); margin: 60px auto; }
.content-page--content #page-archive #main { width: auto; }
.content-page--content :is(.posts, .article-single) { padding-block: 25px; border-bottom: 1px solid #ddd; }
.content-page--content .posts h2 { margin: 15px 0; font-size: var(--font-size-regular); }
.content-page--content :is(.main-single, #page-single-info) { max-width: 100%; }
.content-page--content .main-single { width: min(1000px, calc(100% - 40px)); margin: 60px auto; }
.content-page--content .main-single h1 { margin: 20px 0 40px; font-size: clamp(24px, 4vw, 32px); font-weight: 700; }
.content-page--content .content { line-height: 1.8; }
.content-page--content .content h2 { margin: 40px 0 20px; }
.content-page--content .content p { margin: 20px 0; }
.content-page--content .main-single .content h2 { margin: 25.6px 0; padding: 12.8px 25.6px; border-radius: 8px; background: #f5f5f5; font-size: 24px; font-weight: 700; line-height: 1.6; }
.content-page--content .main-single .content h3 { margin: 20.8px 0; padding-left: 20.8px; border-left: 5px solid #e5e6ea; font-size: 20px; font-weight: 700; line-height: 1.6; }
.content-page--content #sidebar { width: auto; }
.content-page--form { width: 100%; }
.content-page--form :is(input:not([type=checkbox]):not([type=radio]), select, textarea) { max-width: 100%; box-sizing: border-box; }
.content-page--form .err_output { color: #b00020; }
.content-page--form :is(.form-grid-1, .form-intro, .form-step) { max-width: min(1000px, calc(100% - 40px)); margin-inline: auto; }
.content-page--form .form-grid-2 { width: calc(100% - 40px); max-width: 1300px; margin-inline: auto; }
.content-page--form .form-grid-1.form-entry-layout { width: calc(100% - 40px); max-width: 700px; margin-inline: auto; padding-inline: 0; }
.content-page--form .form-input-layout { margin-block: 50px; padding-block: 0; }
.content-page--form .form-step > li { min-width: 0; }
.content-page--form .form-grid-2 > * { min-width: 0; }
.content-page--form :is(.submit, .back, button, input[type=submit]) { white-space: normal; }
.content-page--form .cmp { max-width: 100%; }
.content-page .page-nav { position: sticky; top: 0; z-index: 40; }
:is(.training-page--standard, .content-page) .page-nav { height: auto; min-height: 75px; }
.page-nav .menu > li { height: auto; margin-right: 0; line-height: inherit; }
.page-nav .btns a.idigi-cta { display: inline-flex; align-items: center; justify-content: center; height: 45px; min-height: 45px; padding: 0 18px; border-width: 1px; font-size: var(--font-size-regular); line-height: 1.4; }
.page-nav .btns a.idigi-cta--download,
.page-nav .btns a.idigi-cta--download:hover { border-color: var(--sub); background: #fff; color: var(--sub); }
.page-nav .btns a.idigi-cta--contact,
.page-nav .btns a.idigi-cta--contact:hover { border-color: var(--contact); background: var(--contact); color: #fff; }
.training-page--standard .section-fv-pg .gridWrap { width: min(990px, 100%); }
.training-page--standard .section-fv-pg .gridWrap .grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.training-page--standard .section-fv-pg .gridWrap .grid-5 li { max-width: 100%; background-size: contain; }
.training-page--standard .sec-growth .box { background-size: 100% 100%; height: auto; aspect-ratio: 1360 / 600; }
.fixedLink { display: none; }
@media (min-width: 1024px) {
  .fixedLink { display: block; position: fixed; left: 15px; bottom: 15px; z-index: 999; max-width: 13vw; max-height: 13vw; min-width: 180px; min-height: 180px; filter: drop-shadow(0 0 20px rgba(0, 0, 0, 0.2)); }
  .fixedLink a { display: block; clip-path: circle(50% at 50% 50%); }
  .fixedLink img { width: 100%; height: 100%; }
  .fixedLink__close { position: absolute; top: -12px; right: 0; z-index: 1; min-height: 44px; padding: 8px 12px; border: 1px solid #ccc; border-radius: 100px; background: #fff; color: var(--base); font-size: 14px; line-height: 1.4; }
  .fixedLink__close:hover { background: #f5f5f5; }
  #fixedLink { opacity: 0; transition: opacity 0.3s; pointer-events: none; }
  #fixedLink.visible { opacity: 1; pointer-events: auto; }
}
@media (min-width: 1024px) {
  .training-page--powerbi #curriculumToggle > .item { padding-inline: 40px; }
  .sectionPrice .price-cta__button.idigi-cta { min-height: 64px; padding: 12px 28px; }
  .training-page--standard .section-hikaku .inner { width: min(1200px, calc(100% - 14px)); }
}
@media (min-width: 1024px) {
  .training-page--standard .section-feature h2 { line-height: 1.8; }
}
@media (min-width: 1024px) {
  .section-fv-pg .idigi-cta-group--hero { justify-content: flex-start; }
  .training-page--standard .section-fv-pg .inner { width: 100%; }
  .training-page--standard .mainImage-powerbi .inner { width: fit-content; max-width: calc(100% - 40px); }
  .content-page--about .section1 .inner, .kenshu-site .inner { max-width: calc(100% - 40px); }
  .content-page--about .section4 .inner { width: 100%; }
  .sectionTeacher #loopslider.is-animated { overflow: hidden; }
  .sectionTeacher .loopSliderWrap { position: static; width: max-content; gap: 20px; }
}
@media (min-width: 1024px) and (max-width: 1199px) {
  .content-page--catalog .page-mainimg-wmindex { height: auto; min-height: 500px; padding: 50px 20px; }
  .content-page--catalog .page-mainimg-wmindex .inner { width: 100%; }
  .content-page--catalog .page-mainimg-wmindex .inner h1 { margin-bottom: 24px; font-size: clamp(32px, 4vw, 44px); }
  .content-page--catalog .page-mainimg-wmindex .inner .cate { width: 100%; }
  .content-page--catalog .page-mainimg-wmindex .inner .label { position: static; justify-content: center; margin-top: 30px; }
  #main-content .sectionReport .label { position: static; transform: none; width: auto; }
  .training-page--standard .section-fv-pg { height: auto; min-height: 650px; padding-bottom: 40px; }
  .training-page--standard .section-fv-pg .inner { padding-top: 65px; }
  .training-page--standard .section-fv-pg .subWrap { flex-wrap: wrap; align-items: flex-start; gap: 12px; }
  .training-page--standard .section-fv-pg .subWrap .sub { font-size: 18px; }
  .training-page--standard .section-fv-pg .subWrap ul { margin-left: 0; }
  .training-page--standard .section-fv-pg .subWrap ul li { flex-shrink: 0; white-space: nowrap; }
  .training-page--standard .section-fv-pg .datearea .pagetitle span { font-size: clamp(32px, 4.2vw, 48px); }
  .training-page--standard .section-fv-pg .gridWrap { position: relative; margin: 30px auto 0; inset: auto; transform: none; }
  .training-page--standard .section-fv-pg .gridWrap .grid-5 { width: min(950px, calc(100% - 40px)); margin: auto; }
}
@media (min-width: 1024px) {
  .training-page--java-basic .section-fv-pg .datearea .pagetitle span { font-size: clamp(48px, 5vw, 64px); }
  .training-page--java-basic .section-fv-pg .datearea .num .big span { font-size: 72px; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .page-reskilling-main .sec-fv { height: auto; padding: 60px 20px 40px; }
  .page-reskilling-main .sec-fv .inner { padding-top: 0; }
  .page-reskilling-main :is(.sec-fv__h1, .sec-fv__h2) { font-size: 32px; line-height: 1.4; }
  .page-reskilling-main .sec-fv-card { position: static; transform: none; width: 100%; margin-top: 40px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-reskilling-main .sec-fv-card li { height: auto; min-height: 230px; padding: 30px 20px; }
  .page-reskilling-main .section-reskilling { padding: 50px 20px 0 !important; }
  .training-page--standard .section-fv-pg .gridWrap .grid-5 { display: flex; justify-content: center; }
  .training-page--standard .section-fv-pg .gridWrap .grid-5 li { flex: 0 0 180px; }
  .training-page--standard .section-fv-pg .gridWrap .grid-5 li:nth-child(2),
  .training-page--standard .section-fv-pg .gridWrap .grid-5 li:nth-child(4) { display: none; }
}
@media (max-width: 1023px) {
  :is(.training-page--standard, .content-page) .page-nav { display: none; }
  .content-page--about .section4 .caution { width: 100%; max-width: 100%; }
  .content-page--form .form-grid-2 { display: block; }
  .content-page--form .form-grid-2 > * { width: 100%; }
}
@media (max-width: 1023px) {
  .content-page--about .section4 { width: 100%; }
  .page-reskilling-main .sec-course-outer > .grid-2 .right figure { height: auto; }
  .training-page .sectionWorkflow :is(.ls, .flex) { width: 100%; max-width: 100%; }
  .sectionPrice .price-cta__button.idigi-cta { min-height: 60px; padding: 12px 16px; font-size: var(--font-size-regular); white-space: normal; }
  :is(.training-page--standard, .training-page--marketing, .content-page) .sectionPrice > .inner { padding-inline: 0; }
  .page-reskilling-main .sec-fv { position: relative; }
  .page-reskilling-main .sec-fv .fv_mainimage { width: 100%; }
  .page-reskilling-main :is(.sec-fv__h1, .sec-fv__h2) { white-space: normal; line-height: 1.5; }
  .page-reskilling-main .sec-fv__h1 > span { display: block; }
  .page-reskilling-main .sec-jyosei :is(.tableWrap, .tableWrapSub) { width: 100%; max-width: 100%; overflow-x: auto; }
  .page-reskilling-main .sec-jyosei :is(.tableWrap, .tableWrapSub) table { min-width: 700px; }
  .page-reskilling-main .diagram-scroll { max-width: 100%; overflow-x: auto; }
  :is(.training-page--standard, .content-page) :is(.section-hero, .page-mainimg-wm-child) > .inner { width: 100%; padding-inline: 0; }
  :is(.training-page--standard, .content-page) :is(.section-fv-pg, .page-mainimg-wmindex) > .inner { width: 100%; padding-inline: 20px; }
  :is(.training-page--standard, .content-page) .priceTable :is(td, th) { padding: 16px 4px; font-size: var(--font-size-regular); }
  :is(.training-page--standard, .content-page) .priceTable :is(td, th) .big { font-size: 20px; }
  .table-scroll { max-width: 100%; padding-bottom: 8px; overflow-x: auto; }
  :is(.training-page--standard, .content-page) .section-ichiran .table { min-width: 700px; }
  :is(.training-page--standard, .content-page) .section-ichiran .table :is(td, th) { padding: 12px 14px; font-size: var(--font-size-regular); }
  .training-page--standard .section-ichiran .table td:first-child { width: 44%; }
  .training-page--standard .section-ichiran .table td:nth-child(2) { width: 30%; }
  .training-page--standard .section-ichiran .table td .caution { display: block; margin-top: 4px; font-size: 14px; }
  .training-page--standard .section-ichiran .table td a { color: var(--link); }
  .training-page--standard .section-ichiran.pt-100 { padding-top: 40px !important; }
  .training-page--standard .sectionCurriculum :is(table, tbody, tr, td, th) { display: block; width: 100%; min-width: 0; height: auto; }
  #main-content .sectionOverview th { width: 100%; }
  .training-page--standard .sectionCurriculum :is(td, th):empty { display: none; }
  .training-page--standard .sectionCurriculum :is(.syou, .chapter) { width: 100%; }
  :is(#curriculumToggle, .section-curriculum .toggle) .ux-disclosure-button { --ux-disclosure-icon-right: 20px; flex-flow: column nowrap; align-items: flex-start; justify-content: center; min-height: 60px; padding: 16px 60px 16px 20px; }
  #curriculumToggle .ux-disclosure-button :is(.ttl, .row, .sub) { width: auto; min-width: 0; max-width: 100%; margin-right: 0; padding-left: 0; }
  .training-page--standard .section-hero .pricing-section { position: relative; isolation: isolate; margin-bottom: 0; background: transparent; }
  .training-page--standard .section-hero .pricing-section::before { content: ""; position: absolute; inset: 0; z-index: -1; transform: skewX(-15deg); background: rgba(255,255,255,0.75); backdrop-filter: blur(2px); }
  .training-page--standard .section-hero .pricing-section .price-comparison p { text-align: center; }
  .training-page--standard .section-hero .pricing-section .price-comparison li { color: var(--base); font-size: 14px; }
  .training-page--standard .section-hero .pricing-section .price-comparison li:first-child p { display: block; }
  .training-page--standard :is(.section-hero, .page-mainimg-wm-child) .idigi-cta-group { margin-top: 30px; }
  /* 本文を複製せず、SPでは実績をCTAより先に配置する。 */
  .training-page--standard .section-fv-pg { display: flex; flex-direction: column; padding-inline: 20px; }
  .training-page--standard .section-fv-pg > .inner { display: contents; }
  .training-page--standard .section-fv-pg .idigi-cta-group--hero { order: 1; margin-top: 30px; position: relative; z-index: 5; }
  .training-page--standard .section-fv-pg .subWrap { position: relative; z-index: 5; }
  .training-page--standard .section-fv-pg .subWrap :is(.sub, li, li:last-child, li span) { font-size: 14px; }
  .training-page--standard .section-fv-pg .datearea { position: relative; z-index: 5; }
  .training-page--standard .section-fv-pg .gridWrap { position: relative; inset: auto; transform: none; margin: 24px auto 0; }
  .training-page--standard .section-fv-pg .gridWrap .grid-5 li { font-size: 12px; }
  .training-page--standard .section-fv-pg .gridWrap .grid-5 small { font-size: 12px; }
  .training-page--standard .section-fv-pg .gridWrap .grid-5 { justify-content: center; }
  .training-page--standard .section-fv-pg .gridWrap .grid-5 li:nth-child(2), .training-page--standard .section-fv-pg .gridWrap .grid-5 li:nth-child(4) { display: none; }
  .training-page--standard .section-fv-pg .datearea .pagetitle span { font-size: clamp(24px, 7vw, 32px); text-wrap: balance; }
  .sectionTeacher #loopslider { overflow-x: auto; scroll-snap-type: x mandatory; }
  .sectionTeacher #loopslider .flex { display: flex; width: max-content; max-width: none; gap: 20px; margin-block: 20px; padding-block: 8px 20px; }
  .sectionTeacher #loopslider .box { flex: 0 0 auto; width: min(350px, calc(100vw - 80px)); scroll-snap-align: start; }
  .content-page--content #page-archive { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .content-page--content :is(.main-single, #page-single-info) { margin-block: 35px; }
  .content-page--content #page-single-info > .main-single { width: 100%; margin: 0; }
  .content-page--content .page404 { padding-block: 50px; }
  .content-page--content .page404 p { margin-block: 30px; }
  .content-page--form .form-table :is(tbody, tr, th, td) { display: block; width: 100%; }
  .content-page--form .form-grid-1 { max-width: 100%; }
  .content-page--form .form-grid-2 { width: 100%; }
}

@media (max-width: 767px) {
  :is(.training-page--java, .training-page--java-basic, .training-page--java-ex, .training-page--java-spring, .training-page--php, .training-page--cs, .training-page--infranetwork, .training-page--python, .training-page--c-ex) #curriculumToggle .sub { font-size: 13px; }
}

@media (prefers-reduced-motion: reduce) {
  .ux-disclosure-button::before,
  .ux-disclosure-button::after { transition: none; }
}

@media (max-width: 1023px) {
  .training-page--excel-vba .sec-growth .box { margin-top: 30px; padding: 0; width: 100%; height: auto; aspect-ratio: 1200 / 2720; background: url("../image/mobile/sp-bg-growth.png") center / contain no-repeat; }
  .training-page--excel-vba .sec-growth .box h3 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .training-page--excel-vba .sec-growth .box { width: min(460px, 100%); margin-inline: auto; }
  .training-page--standard .section-whyidigi .flex { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
  .training-page--standard .section-whyidigi .flex .item::after { top: 10px; width: 140px; height: 140px; }
  .training-page--standard .section-whyidigi .flex .item p { padding-top: 130px; font-size: 18px; line-height: 1.5; }
  .training-page--standard .sectionFree .flex { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
  .training-page--standard .sectionFree .flex > article { min-width: 0; margin-top: 0; }
}
