/* SP presentation, using the copied SP styles and native dialog interactions. */
:root { --responsive-drawer-width: clamp(140px, 80vw, 440px); --responsive-training-heading-size: clamp(0px, 5.4vw, 23.22px); }
#responsive-page { display: block; }
/* The SP base CSS sets word-break: break-all on every element, which splits numbers and English words ("200〜3 / 00", "Exc / el").
   Break between words and Japanese characters first and split a word only when it cannot fit. */
* { word-break: normal; overflow-wrap: anywhere; }
#responsive-page .pageModifyDate > .inner { font-size: 11px; }
.responsive-modal-open { overflow: hidden; overscroll-behavior: none; }
body.responsive-scroll-locked { position: fixed; top: var(--responsive-scroll-top); left: 0; width: var(--responsive-scroll-width); overflow: hidden; overscroll-behavior: none; }
.responsive-menu-open #pagetop { visibility: hidden; }
#ft_category, #cv_area > .cv_box { display: none; }
#cv_area > .inner { display: block; }
.sidebar.responsive-mobile-only { display: block; }
.responsive-menu-toggle { color: #181818; }
.responsive-follow.followHeader { display: block; bottom: auto; transition: opacity 0.28s ease, transform 0.28s ease, visibility 0.28s; visibility: hidden; }
.responsive-modal-open .responsive-follow.followHeader { width: var(--responsive-scroll-width); }
.responsive-follow.followHeader.fixed { visibility: visible; }
.responsive-follow.followHeader ul li button { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; height: 65px; padding: 0; border: 0; background: transparent; color: #fff; font: inherit; font-size: 11px; line-height: 1; cursor: pointer; }
.responsive-follow.followHeader ul li button svg { width: 24px; height: 24px; stroke-width: 1.5; margin-bottom: 5px; }
.responsive-follow.followHeader ul li :is(a, button) { white-space: nowrap; }
@media (max-width: 359px) { .responsive-follow.followHeader ul li :is(a, button) { font-size: 10px; } }
.responsive-drawer { position: fixed; inset: 0 0 0 auto; width: var(--responsive-drawer-width); max-width: none; height: 100%; max-height: 100%; margin: 0; padding: 0; border: 0; background: #252525; color: #fff; overflow-x: hidden; overflow-y: auto; overscroll-behavior: none; touch-action: pan-y pinch-zoom; transform: translate3d(100%, 0, 0); }
.responsive-drawer::backdrop { background: rgba(0, 0, 0, 0.3); opacity: 0; }
/* Opening starts from keyframes even when the dialog has no previous painted state. */
.responsive-drawer.is-open,
.responsive-drawer.is-open::backdrop { animation: 0.4s cubic-bezier(0.4, 0, 0.2, 1) both; }
.responsive-drawer.is-open { transform: translate3d(0, 0, 0); animation-name: responsive-drawer-slide-in; }
.responsive-drawer.is-open::backdrop { opacity: 1; animation-name: responsive-drawer-fade-in; }
@keyframes responsive-drawer-slide-in {
  from { transform: translate3d(100%, 0, 0); }
  to { transform: translate3d(0, 0, 0); }
}
@keyframes responsive-drawer-fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
.responsive-drawer__close { position: absolute; z-index: 2; top: 10px; right: 5px; width: 44px; height: 44px; border: 0; padding: 0; background: transparent; color: #fff; font: 28px/1 Arial, sans-serif; cursor: pointer; }
#slidemenu { display: block; min-height: 100%; height: auto; background: #252525; color: #fff; }
#slidemenu .home { padding: 0 45px; }
#slidemenu a { color: #fff; }
#slidemenu .is-hide { display: list-item; opacity: 0.3; pointer-events: none; }
#slidemenu .flexContact a { white-space: normal; }
#responsive-drawer-tabs { flex-wrap: nowrap; }
#responsive-drawer-tabs button { width: 100%; height: 55px; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; cursor: pointer; }
#responsive-drawer-panels [role="tabpanel"]:not([hidden]) { display: block; }
#responsive-drawer-panels [hidden] { display: none !important; }
#responsive-drawer-panels .menu-accord .drawer-category-title { display: flex; align-items: center; justify-content: space-between; position: relative; min-height: 55px; line-height: 1.5; font-weight: normal; }
#responsive-drawer-panels .menu-accord .drawer-category-title > a { display: block; flex: 1; min-width: 0; padding: 14px 0 14px 20px; }
#responsive-drawer-panels .menu-accord .drawer-category-title .btn { display: flex; align-items: center; justify-content: center; flex: 0 0 55px; width: 55px; height: 55px; padding: 0; border: 0; background: transparent; color: #fff; cursor: pointer; }
#responsive-drawer-panels .menu-accord .drawer-category-title .btn span { display: grid; place-items: center; width: 40px; height: 40px; background-color: rgb(46.35, 46.35, 46.35); }
#responsive-drawer-panels .menu-accord .drawer-category-title.activeH4 .btn span { background-color: #181818; }
#responsive-drawer-panels .menu-accord .drawer-category-title .btn span::before,
#responsive-drawer-panels .menu-accord .drawer-category-title .btn span::after {
  content: '';
  grid-area: 1 / 1;
}
#responsive-drawer-panels .menu-accord .drawer-category-title .btn span::before { width: 10px; border-top: 2px solid currentColor; }
#responsive-drawer-panels .menu-accord .drawer-category-title .btn span::after { height: 10px; border-left: 2px solid currentColor; }
#responsive-drawer-panels .menu-accord .drawer-category-title .btn[aria-expanded="true"] span::after { display: none; }
#responsive-drawer-panels .menu-accord ul[data-drawer-group]:not([hidden]) { display: block; min-height: 0; }
#responsive-drawer-panels .menu-accord ul li, #responsive-drawer-panels .menu-main ul li { height: auto; min-height: 55px; line-height: 1.5; }
#responsive-drawer-panels .menu-accord ul li > a, #responsive-drawer-panels .menu-main ul li > a { display: flex; align-items: center; min-height: 55px; padding: 12px 0; white-space: normal; overflow-wrap: anywhere; }
#responsive-drawer-panels .menu-accord ul li.li-child, #responsive-drawer-panels .menu-accord ul li.li-child > a { min-height: 45px; height: auto; line-height: 1.5; }
.responsive-contact { position: fixed; inset: 0; width: calc(100% - 30px); max-width: 1100px; max-height: calc(100% - 30px); height: fit-content; margin: auto; padding: 40px 20px 20px; border: 0; background: #fff; color: #181818; overflow: auto; overscroll-behavior: contain; opacity: 0; transform: scale(0.98); transition: opacity 0.3s ease, transform 0.3s ease; }
.responsive-contact.is-open { opacity: 1; transform: scale(1); }
.responsive-contact::backdrop { background: rgba(0, 0, 0, 0.2); }
.responsive-contact__close { position: absolute; top: 0; right: 0; width: 35px; height: 35px; border: 0; padding: 0; background: transparent; color: #95979c; font: 45px/35px Arial, sans-serif; cursor: pointer; }
#responsive-contact-title { font-size: 16px; line-height: 1.5; font-weight: normal; text-align: center; letter-spacing: -0.05em; }
#responsive-contact-title > span { font-weight: bold; }
#cv_area .inner > div .cv-contact-title { font-size: 1.8rem; padding-top: 2em; line-height: 1; font-weight: bold; text-align: center; }
#blog-sidebar .blog-sidebar__section-title { height: 50px; line-height: 50px; padding-left: 20px; color: #fff; text-shadow: none; font-weight: bold; background: #79211c; }
.responsive-contact img { display: block; width: 100%; height: auto; margin: 1em 0; }
.responsive-contact .desc { text-align: center; margin-bottom: 15px; }
.responsive-contact .desc span { display: inline-block; }
.responsive-contact .btn { display: flex; align-items: center; justify-content: center; min-height: 50px; padding: 10px; margin-bottom: 15px; border: 1px solid #2ca015; border-radius: 4px; background: linear-gradient(#2adb06, #2ca015); color: #fff; font-weight: bold; text-align: center; }
.responsive-contact .tel { display: block; padding: 1em 0 0.8em; border-radius: 4px; background: #f8f8f5; color: #181818; text-align: center; }
.responsive-contact .tel .num { font-size: min(9vw, 38.7px); line-height: 1; font-weight: bold; letter-spacing: normal; }
.responsive-contact .tel .num span { font-size: 0.5em; color: #79211c; }
.responsive-contact .tel .mes { font-size: 12px; text-align: center; margin-bottom: 8px; }
.responsive-contact .tel .mes span { display: inline-block; padding: 3px 8px; margin-right: 0.5em; border-radius: 15px; background: #181818; color: #fff; font-size: 11px; line-height: 1; }
@media (min-width: 375px) { #responsive-contact-title { font-size: 18px; } }
@media (prefers-reduced-motion: reduce) {
  .responsive-follow.followHeader, .responsive-contact { transition: none; }
  .responsive-drawer.is-open, .responsive-drawer.is-open::backdrop { animation: none; }
}
#single_img { min-height: 56.25vw; padding: 10vw 20px 8vw; }
#single_img h1 { margin-bottom: 5vw; font-size: clamp(0px, 5.4vw, 23.22px); text-align: center; }
#single_img p { font-size: 0.9em; line-height: 1.7; }
#single_img.img_place { background-image: url('../../mobile/common/image/slider/place-training-formats-sp-v1.jpg'); }
.single-copy { padding: 10px 0; }
.footer .breadcrumb { overflow-x: auto; overflow-y: hidden; }
body.page-shinjinkenshu-lp #banner-stop .section-fv .inner { display: contents; }
body.page-shinjinkenshu-lp #banner-stop .responsive-fv-copy { position: relative; z-index: 5; display: flex; flex-direction: column; align-items: center; padding: 0 15px; background: rgba(255, 255, 255, 0.8); }
body.page-shinjinkenshu-lp #banner-stop .section-fv h1 em { padding: 10px 0 15px; font-size: clamp(0px, 8.2vw, 35.26px); line-height: 1.5; }
body.page-shinjinkenshu-lp #banner-stop .section-fv h1 em > span:first-child { font-size: 1.2em; }
.responsive-sp-break { display: block; }
body.page-shinjinkenshu-lp #banner-stop .section-jinzai h2 { font-size: clamp(20px, 6.4vw, 28px); }
body.page-shinjinkenshu-lp #banner-stop .section-jinzai .grid-1 { margin-top: 15px; }
body.page-shinjinkenshu-lp #banner-stop :is(.section-about .txt h2, .section-choice h2) .br::after { content: none; }
body.page-shinjinkenshu-lp #banner-stop .section-cta .responsive-cta-inner { max-width: 100%; min-width: 0; }
body.page-shinjinkenshu-lp #banner-stop .section-cta .responsive-cta-inner small { white-space: normal; }
body.page-shinjinkenshu-lp #banner-stop .section-cta .tel em { font-size: clamp(22px, 7vw, 32px); white-space: nowrap; }
.grid-2-acordion .left-item > .item { border-color: #ddd; border-radius: 10px; padding: 15px; margin: 15px 0; background: #fff; transition: box-shadow 0.3s; }
.grid-2-acordion .left-item > .item:last-child { margin-bottom: 0; }
.grid-2-acordion .left-item > .item:has(> h3.active) { box-shadow: 0 0 0 2px rgba(0, 122, 204, 0.2); }
.grid-2-acordion .left-item h3 { position: relative; padding: 0 30px 0 0; background: transparent; font-size: 1.1em; line-height: 1.4; }
.grid-2-acordion .left-item h3::after { content: ''; position: absolute; top: 50%; right: 0; width: 8px; height: 8px; border-right: 2px solid #333; border-bottom: 2px solid #333; transform: translateY(-50%) rotate(45deg); transition: transform 0.3s ease; }
.grid-2-acordion .left-item h3.active::after { transform: translateY(-50%) rotate(225deg); }
.grid-2-acordion .left-item .txt { padding: 0; margin: 25px 0; }
.grid-2-acordion .left-item [data-source] { padding: 0; }
.grid-2-acordion .left-item [data-source] img { border-radius: 8px; }
.grid-2-acordion .left-item .itembox h4 { margin: 20px 0 10px; font-weight: bold; }
.grid-2-acordion .left-item .itembox p { font-size: 0.9em; }
.ai-textbook .slide-box { width: calc(100% + 40px); margin-left: -20px; transform: none; }
.page-template-page-place #main { padding: 15px 0 0; }
.page-template-page-place .place-format__label { display: none; }
.page-template-page-place #main :is(.place-section-header, .place-consult) h2 { margin: 0; font-size: 18px; text-align: center; }
.st-hero .flex-3 li { min-width: 0; padding-left: 6px; padding-right: 6px; }
/* Shared PC markup corresponding to the SP check slider and subsidy card. */
#cheack6_sec { position: relative; }
#main #cheack6_sec > h2 { text-align: center; padding: 50px 0 140px; margin: 0 0 40px; background: url('../../mobile/common/image/check6-bg.png') center bottom / 100px 100px no-repeat; }
.responsive-check-controls[hidden] { display: none; }
.responsive-check-controls { position: absolute; top: 165px; left: 0; right: 0; display: flex; justify-content: space-between; }
.responsive-check-controls button { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: rgba(0, 0, 0, 0.2); color: #fff; cursor: pointer; }
.responsive-check-controls button::before,
.responsive-check-controls button::after { content: ''; grid-area: 1 / 1; }
.responsive-check-controls button::before { width: 16px; border-top: 2px solid currentColor; }
.responsive-check-controls button::after { box-sizing: border-box; width: 8px; height: 8px; border: solid currentColor; border-width: 2px 2px 0 0; transform: translateX(3px) rotate(45deg); }
.responsive-check-controls button[data-check-direction="-1"]::after { transform: translateX(-3px) rotate(-135deg); }
.responsive-check-viewport { display: block; }
.responsive-check-slides { display: block; }
#cheack6_sec.is-carousel .responsive-check-viewport { overflow: hidden; }
#cheack6_sec.is-carousel .responsive-check-slides { display: flex; transition: transform 0.3s ease; }
#cheack6_sec .box { flex: 0 0 100%; min-width: 0; }
#cheack6_sec .box > a { display: block; color: #181818; text-decoration: none; }
#cheack6_sec h3 { font-size: 18px; font-weight: bold; line-height: 1.5; text-align: center; margin: 0 0 1em; }
#cheack6_sec .txt { padding: 0 20px; line-height: 1.8; }
#cheack6_sec .more { padding: 15px 0 30px; text-align: center; color: #007ac1; line-height: 1.6; }
#cheack6_sec .more i { margin-left: 6px; }
#about_cost_sec { border-top: 1px solid #ddd; margin-top: 20px; }
#main #about_cost_sec > h2 { margin: 0; padding: 40px 0 30px; text-align: center; }
#about_cost_sec > img { display: block; width: 100%; max-width: 500px; height: auto; margin: 0 auto 25px; }
#about_cost_sec .box p { line-height: 1.8; }
#about_cost_sec .box p > a:not(.btn) { text-decoration: underline; }
#about_cost_sec .btn { display: block; width: 100%; min-height: 50px; margin: 25px 0 50px; padding: 13px 10px; border: 1px solid #007ac1; border-radius: 8px; color: #007ac1; background: #fff; font-size: 15px; line-height: 1.6; text-align: center; }

/* Course content shares the desktop table, while retaining SP disclosures. */
#page-category #cat-sub-detail { background: #f4f4f4; }
#page-category #cat-sub-detail > .seCurriculum__desc { padding-bottom: 30px; }
#page-category #main > :is(.section-feature, .section-solution, .sectionSchedule, .section-jirei-cards, .section-voice, .training-faq, .sectionFaq, .training-detail-cv-area) { width: calc(100% + 40px); max-width: none; margin-inline: -20px; }
#page-category :is(#cat-page-detail-a, #cat-sub-detail) > .training-learning-map { margin-inline: 0; }
#page-category :is(#cat-page-detail-a, #cat-sub-detail) > p { padding-inline: 0; }
:is(#cat-page-detail-a, #cat-sub-detail) .responsive-curriculum { border-top: 1px solid #e8e8e8; }
:is(#cat-page-detail-a, #cat-sub-detail) .responsive-curriculum:last-child { border-bottom: 1px solid #e8e8e8; }
.responsive-curriculum > summary { position: relative; list-style: none; padding: 1.2em 60px 1.2em 20px; font-weight: bold; cursor: pointer; }
.responsive-curriculum > summary::-webkit-details-marker { display: none; }
.responsive-curriculum > summary::after { content: '+'; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); color: #666; font-size: 24px; font-weight: normal; }
.responsive-curriculum[open] > summary::after { content: '−'; }
.responsive-curriculum > table { background: #fcfcfc; margin: 0 !important; }
:is(#cat-page-detail-a, #cat-sub-detail) table.list { display: block; width: 100%; min-width: 0; padding: 5px 20px; font-size: 14px; line-height: 1.8; }
:is(#cat-page-detail-a, #cat-sub-detail) table.list :is(tbody, tr, th, td) { display: block; width: 100%; }
:is(#cat-page-detail-a, #cat-sub-detail) table.list tr { padding: 1em 0; border-bottom: 1px dotted #ddd; }
:is(#cat-page-detail-a, #cat-sub-detail) table.list tr:last-child { border-bottom: 0; }
:is(#cat-page-detail-a, #cat-sub-detail) table.list th { font-weight: bold; text-align: left; margin-bottom: 0.5em; }
:is(#cat-page-detail-a, #cat-sub-detail) table.list th > span { display: block; font-size: 0.9em; font-weight: normal; }
:is(#cat-page-detail-a, #cat-sub-detail) table.list td h3 { font-size: 1em; font-weight: bold; }
:is(#cat-page-detail-a, #cat-sub-detail) table.list .label { display: block; font-size: 12px; color: #666; }
:is(#cat-page-detail-a, #cat-sub-detail) table.list dl.col2:has(> dt):has(> dd) { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 4px 0; }
:is(#cat-page-detail-a, #cat-sub-detail) table.list dl.col2 > :is(dt, dd) { margin: 0; }
:is(#cat-page-detail-a, #cat-sub-detail) table.list .idt { display: block; font-size: 0.9em; color: #666; }
:is(#cat-page-detail-a, #cat-sub-detail) table.table-curriculum { width: 100%; border-collapse: collapse; background: #fcfcfc; }
:is(#cat-page-detail-a, #cat-sub-detail) table.table-curriculum :is(th, td) { padding: 10px; border: 1px solid #ddd; font-size: 14px; line-height: 1.6; vertical-align: top; overflow-wrap: anywhere; }
:is(#cat-page-detail-a, #cat-sub-detail) table.table-curriculum:not(:has(td[rowspan])) tr:first-child > td { font-weight: bold; }
:is(#cat-page-detail-a, #cat-sub-detail) table.table-curriculum:has(td[rowspan]) { display: block; min-width: 0; padding: 0 20px 20px; }
:is(#cat-page-detail-a, #cat-sub-detail) table.table-curriculum:has(td[rowspan]) :is(tbody, tr, td) { display: block; width: 100%; }
:is(#cat-page-detail-a, #cat-sub-detail) table.table-curriculum:has(td[rowspan]) tr { padding: 12px 0; border-bottom: 1px dotted #ddd; }
:is(#cat-page-detail-a, #cat-sub-detail) table.table-curriculum:has(td[rowspan]) td { padding: 0; border: 0; }
:is(#cat-page-detail-a, #cat-sub-detail) table.table-curriculum:has(td[rowspan]) td:not([rowspan]):not(:last-child) { font-weight: bold; margin-bottom: 8px; }
:is(#cat-page-detail-a, #cat-sub-detail) table.table-curriculum td[rowspan]:not([rowspan="1"]) { margin: 10px 0 20px; padding: 12px !important; border: 1px solid #333 !important; font-weight: bold; text-align: center; }
:is(#cat-page-detail-a, #cat-sub-detail) .nav_menu2col { padding: 20px; margin: 20px 0; background: #fff; border: 1px solid #ddd; }
:is(#cat-page-detail-a, #cat-sub-detail) .nav_menu2col p { font-weight: bold; margin-bottom: 8px; }
:is(#cat-page-detail-a, #cat-sub-detail) .nav_menu2col .right { margin-top: 20px; }
:is(#cat-page-detail-a, #cat-sub-detail) .nav_menu2col a { display: block; padding: 10px 0; line-height: 1.6; }

/* Shared training details: the overview identifies this layout, excluding indexes and LPs. */
#page-category #main:has(> #cat-page-sub) > :is(section, .training-detail-cv-area) { width: calc(100% + 40px); max-width: none; margin-inline: -20px; padding-inline: 20px; }
.training-detail-cv-area__image { max-width: 480px; margin-inline: auto; }
:is(.training-detail-cv-area__subtitle, .training-detail-cv-area__title) { text-align: center; }
.training-detail-cv-area__title::after { justify-self: center; }
#page-category #main > #cat-page-sub { margin-block: 0 !important; }
#page-category #main:has(> #cat-page-sub) h2 { font-size: var(--responsive-training-heading-size); font-weight: 900; line-height: 1.5; }
#page-category #main:has(> #cat-page-sub) > section > h2,
#page-category #main:has(> #cat-page-sub) > section > :is(.inner, .fade-all) > h2 { margin: 0; }
#page-category #main > #cat-page-sub > h2 { padding: 0; }
#page-category #main:has(> #cat-page-sub) > :is(#cat-page-detail-a, #cat-sub-detail) > h2 { padding: 0; margin-bottom: 0; }
#page-category #main:has(> #cat-page-sub) > :is(#cat-page-detail-a, #cat-sub-detail, .training-faq, .sectionFaq) > h2,
#page-category #main:has(> #cat-page-sub) > .sectionSchedule > .fade-all > h2 { text-align: center; }
#page-category #main:has(> #cat-page-sub) .section-solution .item dl { text-align: left; }
#page-category #main:has(> #cat-page-sub) > .section-course > .inner { padding-inline: 0; }
#page-category #main:has(> #cat-page-sub) > :is(#cat-page-detail-a, #cat-sub-detail) { background: #f8f8f8; }
#page-category #main:has(> #cat-page-sub) > :is(#cat-page-detail-a, #cat-sub-detail) > .responsive-table:last-child { margin-bottom: 0; }
#page-category #main:has(> #cat-page-sub) > :is(#cat-page-detail-a, #cat-sub-detail) > p:not(.caution) { padding: 0 0 30px; margin-bottom: 0; }
#page-category #main:has(> #cat-page-sub) > :is(#cat-page-detail-a, #cat-sub-detail) > p.seCurriculum__desc { padding-bottom: 20px; }
#page-category #main:has(> #cat-page-sub) > :is(#cat-page-detail-a, #cat-sub-detail) > .caution { margin: 20px 0 0; padding: 0; }
#page-category #main:has(> #cat-page-sub) > :is(#cat-page-detail-a, #cat-sub-detail) > .training-learning-map { margin: 0 0 30px; }
@media (width < 768px) {
  #page-category:not(.page-template-page-datastudio) :is(#cat-page-detail-a, #cat-sub-detail) > .responsive-curriculum { margin-inline: -20px; }
}
#page-category #main:has(> #cat-page-sub) > #cheack6_sec { padding-block: 0 32px; }
#page-category #main:has(> #cat-page-sub) > #cheack6_sec > h2 { padding: 32px 0 140px; margin-bottom: 40px; }
#page-category #main:has(> #cat-page-sub) .responsive-check-controls { top: 117px; left: 20px; right: 20px; }
#page-category #main:has(> #cat-page-sub) #cheack6_sec .more { padding-bottom: 0; }
#page-category #main:has(> #cat-page-sub) #about_cost_sec .btn { margin-bottom: 0; }

.page-template-page-datastudio #main > .skillmap-wm { margin-inline: 0; }
.page-template-page-datastudio #cat-page-detail-a > .responsive-curriculum { border: 1px solid #d8e5f2; border-radius: 8px; background: #fff; }
.page-template-page-datastudio #cat-page-detail-a > .responsive-curriculum > summary { padding: 16px 48px 16px 16px; border-radius: 7px; background: #f7fbff; color: #174f8e; }
.page-template-page-datastudio #cat-page-detail-a > .responsive-curriculum[open] > summary { border-bottom: 1px solid #d8e5f2; border-radius: 7px 7px 0 0; }
.page-template-page-datastudio #cat-page-detail-a > .responsive-curriculum > .list { padding: 0 16px; border-radius: 0 0 7px 7px; background: #fff; }
.page-template-page-datastudio #cat-page-detail-a > .responsive-curriculum .list tr:first-child { display: none; }
.page-template-page-datastudio #cat-page-detail-a > .responsive-curriculum .list tr { padding-block: 16px; }
.page-template-page-datastudio #cat-page-detail-a > .responsive-curriculum .list tr:not(:last-child) { border-bottom: 1px solid #d8e5f2; }
.page-template-page-datastudio #cat-page-detail-a > .responsive-curriculum .list th > span { display: inline-block; margin-right: 8px; padding: 2px 8px; border-radius: 4px; background: #eaf4ff; color: #174f8e; font-weight: bold; white-space: nowrap; }
.page-template-page-datastudio #cat-page-detail-a > .responsive-curriculum .list th > br { display: none; }

#page-category #cat-page-sub .training-summary__item { border-color: #e5e5e5; background: #fff; }
#page-category #cat-page-sub .training-summary__icon { background: #eaf4ff; color: #0068b7; }
#page-category #cat-page-sub .training-summary__icon svg { stroke-width: 2; }
#page-category #cat-page-sub .training-summary__body h3 { padding: 0; font-size: 16px; }
/* Keep the border color consistent with the mobile styles. */
#page-category #cat-page-sub table.list { margin: 0; border: 1px solid #eee; border-radius: 8px; border-collapse: separate; overflow: hidden; background: #fff; font-size: 15px; line-height: 1.85; }
#page-category #cat-page-sub table.list th { padding: 12px 16px; border: 0; background: #f8f8f8; color: #181818; font-size: 14px; line-height: 1.6; text-align: left; }
#page-category #cat-page-sub table.list td { padding: 16px; border: 0; line-height: 1.85; }
#page-category #cat-page-sub table.list td h3 { margin: 0; padding: 0; background: transparent; font-size: 16px; line-height: 1.7; }
#page-category #cat-page-sub table.list td ul { margin: 0; padding-left: 20px; }
#page-category #cat-page-sub table.list td li { margin: 0; padding: 0; list-style: disc outside; line-height: 1.85; }
#page-category #cat-page-sub table.list td li + li { margin-top: 10px; }

#page-category .responsive-curriculum > table.sp-table-inner { display: block; padding: 20px 20px 0; border-spacing: 0; }
#page-category .sp-table-inner :is(.syou, .chapter) { margin: 8px 0 12px; }
#page-category .sp-table-inner tr:first-child > :is(.syou, .chapter) { margin-top: 0; }
#page-category .sp-table-inner tr:has(+ tr > :is(.syou, .chapter)) > td:last-child,
#page-category .sp-table-inner tr:last-child > td:last-child { border-bottom: 0; }
#page-category .responsive-curriculum > .table-curriculum:has(td[rowspan]) td[rowspan]:not([rowspan="1"]) { margin-block: 8px 12px; }
#page-category .responsive-curriculum > .table-curriculum:has(td[rowspan]) tr:has(+ tr > td[rowspan]:not([rowspan="1"])),
#page-category .responsive-curriculum > .table-curriculum:has(td[rowspan]) tr:last-child { border-bottom: 0; }

/* Category backgrounds extend past the inset of the shared main wrapper. */
#page-category #main:has(> #cat-index-sub) > :is(section:not(.skillmapArea), .training-detail-cv-area) { width: calc(100% + 40px); max-width: none; margin-inline: -20px; padding-inline: 20px; }
#page-category #main:has(> #cat-index-sub) > .training-detail-cv-area { margin-block: 0; }
#page-category #main:has(> :is(#cat-page-sub, #cat-index-sub)) > div.training-detail-cv-area { padding-block: 48px; }
#page-category #main > #cat-index-sub { margin-top: 0 !important; }
#page-category #main:has(> #cat-index-sub) h2,
.page-template-page-training #main h2 { font-size: var(--responsive-training-heading-size); font-weight: 900; line-height: 1.5; }
#page-category #main:has(> #cat-index-sub) > section > h2,
#page-category #main:has(> #cat-index-sub) > section > .inner > h2 { margin: 0; }
#page-category #main > #cat-index-sub > h2 { padding: 0; }
#page-category:has(#cat-index-sub) .section-hero--training-detail h1 .section-hero__title-part:last-child { display: inline-block; max-width: 100%; }
.page-template-page-training .mainimg-training--html p { word-break: normal; overflow-wrap: anywhere; }
.page-template-page-training .mainimg-training--html p > br { display: none; }
.page-template-page-training #main > section > h2,
.page-template-page-training #main .training-hub-intro__body > h2 { margin: 2em 0 1em; padding: 15px 10px; font-size: 18px; line-height: 1.6; }
.page-template-page-training #main .training-hub-intro__body > h2 { margin-top: 18px; }
#page-category #main:has(> #cat-index-sub) .section-solution .item dl { text-align: left; }
#page-category #main:has(> #cat-index-sub) > .sectionTrainer > .sectionTrainer__wrap { padding-inline: 0; }
#page-category .sectionTrainer__wrap > h2 { margin: 0; }
#page-category #cat-index-sub .training-item { border-color: #eee; }
#page-category .index-about .table > caption { caption-side: bottom; padding-top: 8px; text-align: left; }

/* Dedicated AI pages retain the section spacing from their SP stylesheets. */
:is(.ailit-fv__points, .ainew-fv__points) br { display: none; }
body:is(.page-template-page-ai-literacy, .page-template-page-ai-shinjin) :is(#responsive-page, #responsive-main) > .sections h2 { font-size: var(--responsive-training-heading-size); font-weight: 900; line-height: 1.5; }
body:is(.page-template-page-ai-literacy, .page-template-page-ai-shinjin) #ai-curriculum { background-color: #f8f8f8; }
body:is(.page-template-page-ai-literacy, .page-template-page-ai-shinjin) .table-overview { display: block; border: 1px solid #eee; border-radius: 8px; border-collapse: separate; overflow: hidden; background: #fff; }
body:is(.page-template-page-ai-literacy, .page-template-page-ai-shinjin) .table-overview th { margin: 0; padding: 12px 16px; background: #f8f8f8; color: #181818; font-size: 14px; line-height: 1.6; }
body:is(.page-template-page-ai-literacy, .page-template-page-ai-shinjin) .table-overview td { padding: 16px; font-size: 15px; line-height: 1.85; }
.page-template-page-ai-shinjin #ai-overview .table-overview ul > li { padding-inline-start: calc(1em + 6px); }

/* GA4 and digital-marketing LPs have their own outer section wrappers. */
.page-template-page-ga-ga4 .campaign__gmp-fv { margin: 30px 0 20px; padding-inline: 15px; }
.page-template-page-ga-ga4 :is(#responsive-page, #responsive-main) > .section h2 { font-size: var(--responsive-training-heading-size); font-weight: 900; line-height: 1.5; }
.page-template-page-ga-ga4 :is(#responsive-page, #responsive-main) > .section > .inner > h2 { margin-top: 0; }
.page-template-page-ga-ga4 .section-curriculum { background: #f8f8f8; }
.page-template-page-ga-ga4 :is(.section-method, .section-overview) .grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
.page-template-page-ga-ga4 .section-kenshu .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
@media (min-width: 600px) { .page-template-page-ga-ga4 .section-method .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* The shared GA4 CTA uses section-footer-cv; the copied SP component was section-cv. */
.page-template-page-ga-ga4 .section-footer-cv { padding: 50px 15px; }
.page-template-page-ga-ga4 .section-footer-cv > .inner { padding: 0; }
.page-template-page-ga-ga4 .section-footer-cv .crown { display: flex; flex-wrap: wrap; justify-content: center; gap: 5px; }
.page-template-page-ga-ga4 .section-footer-cv .crown > li { display: flex; align-items: center; justify-content: center; width: 110px; height: 110px; background: url('../../mobile/common/image/lp/crown.svg') center / contain no-repeat; font-size: 10px; font-weight: bold; }
.page-template-page-ga-ga4 .section-footer-cv .crown > li > span { text-align: center; line-height: 1.5; }
.page-template-page-ga-ga4 .section-footer-cv .crown .bold { font-size: 2.6em; font-weight: 900; line-height: 1; }
.page-template-page-ga-ga4 .section-footer-cv .crown .caution { font-size: 0.9em; text-align: center; }
.page-template-page-ga-ga4 .section-footer-cv h2 { margin-top: 40px; color: #0068b7; font-size: var(--responsive-training-heading-size); font-weight: 900; line-height: 1.5; text-align: center; }
.page-template-page-ga-ga4 .section-footer-cv .desc { margin: 30px 0; font-weight: bold; text-align: center; }
.page-template-page-ga-ga4 .section-footer-cv .btns { grid-template-columns: minmax(0, 1fr); gap: 20px; }
.page-template-page-ga-ga4 .section-footer-cv .btns > .item { display: flex; flex-direction: column; align-items: center; padding: 25px 20px; border: 1px solid #eee; border-radius: 10px; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08); }
.page-template-page-ga-ga4 .section-footer-cv .btns h3 { font-size: 18px; font-weight: bold; text-align: center; }
.page-template-page-ga-ga4 .section-footer-cv .btns figure { width: 90px; margin: 10px 0; }
.page-template-page-ga-ga4 .section-footer-cv .btns figure img { width: 100%; height: auto; }
.page-template-page-ga-ga4 .section-footer-cv .btns p { font-size: 21px; font-weight: bold; line-height: 1.6; text-align: center; overflow-wrap: anywhere; }
.page-template-page-ga-ga4 .section-footer-cv .btns p small { display: block; margin-top: 6px; font-size: 13px; font-weight: normal; text-align: center; }
.page-digital-marketing > .pageModifyDate { padding: 10px 16px 0; background: #f4f7fa; }
.page-digital-marketing > .pageModifyDate > .inner { margin: 0; }
/* Digital marketing LP: sections in the same colour group sit 64px apart, and each colour edge gets 48px on both sides
   (the bottom of a group was 28px against 48px at the top of the next one). */
main.page-digital-marketing > .page-section { padding-block: 32px; }
main.page-digital-marketing > .page-section:is(.course-section, .agent-section, .reason-section, .custom-training, .case-section, .faq-section) { padding-top: 48px; }
main.page-digital-marketing > .page-section:is(.problem-section, .course-section, .ai-section, .trainer-section, .format-section, .voice-section) { padding-bottom: 48px; }
main.page-digital-marketing > .contact-section { padding-block: 32px 48px; }
main.page-digital-marketing > .pageModifyDate + .training-overview-section { padding-top: 24px; }
.page-digital-marketing .dm-general-banner-section--comparison > .training-dm-general-banner { margin-bottom: 0; }
.page-digital-marketing > section:not(.hero) h2 { font-size: var(--responsive-training-heading-size); font-weight: 900; line-height: 1.5; }
.page-digital-marketing .training-overview-item { border-color: #eee; }


#page-category #main > .training-dm-general-banner { margin-inline: 0; }
#page-category #main > .skillmapArea { margin: 30px 0 0; padding: 20px; border: 1px solid #e2e8f0; border-radius: 12px; background: #f8fafc; }
#page-category #main > .skillmapArea > h2 { margin: 0; padding: 0 0 20px; }
#page-category #main > .skillmapArea > .skillmap { margin: 20px 0 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
#page-career .section-header { background: url('../../mobile/common/image/jyosei-career-main.jpg') center / cover no-repeat; }
#page-career .section-offer .nenkan { padding: 0 20px; }
#page-career .section-offer .nenkan img { display: block; width: 100%; height: auto; }
#page-career #nav-follow, .page-template-page-career-new .fixedLink { display: none; }
#main.page_flow h2 { font-size: 18px; font-weight: bold; line-height: 1.6; margin: 2em 0 1em; text-align: center; }
#main.page_flow .flow-overview h2 { margin-top: 18px; }
#main.page_flow .flow-contact-box > h2 { margin: 0 0 18px; line-height: 1.4; }
@media (prefers-reduced-motion: reduce) { #cheack6_sec.is-carousel .responsive-check-slides { transition: none; } }

/* Page-specific SP structures retained around the shared content. */
#page-category .teacherInfo { padding-inline: 0; }
#page-category .teacherInfo .responsive-teacher-inner { display: block; }
.responsive-curriculum table.list { counter-reset: course-chapter; }
.responsive-curriculum .countUp { counter-reset: course-item; }
.responsive-curriculum .countUp > li { position: relative; padding-left: 25px; margin-bottom: 0.5em; }
.responsive-curriculum .countUp > li::before { position: absolute; left: 0; counter-increment: course-item; content: counter(course-item) '.'; }
.responsive-curriculum .countUl { counter-reset: course-item; counter-increment: course-chapter; }
.responsive-curriculum .countUl > li { position: relative; padding-left: 3em; margin-bottom: 0.6em; font-weight: normal; line-height: 1.5; }
.responsive-curriculum .countUl > li::before { position: absolute; left: 0; counter-increment: course-item; content: counter(course-chapter) '-' counter(course-item) '.'; }
.responsive-curriculum .advance_caption { margin-top: 10px; padding: 20px; background: #fcfcfc; font-size: 13px; }
.responsive-curriculum .advance_caption h4 { font-weight: bold; }
.responsive-curriculum .advance_caption h4:not(:first-of-type) { margin-top: 2em; }
.responsive-curriculum .advance_caption ul { margin: 1em 0; }
.responsive-curriculum .advance_caption li { position: relative; padding-left: 1em; margin-bottom: 0.5em; line-height: 1.5; }
.responsive-curriculum .advance_caption li::before { content: '・'; position: absolute; left: 0; }
:is(#cat-page-detail-a, #cat-sub-detail) table.table-curriculum td.chapter[rowspan] { text-align: left; font-weight: bold; border: 0 !important; padding: 10px !important; background: repeating-linear-gradient(-45deg, #eee, #eee 1px, transparent 1px, transparent 4px); }
.page-template-page-ai-shinjin #ai-curriculum .table-curriculum tr:first-child { display: none; }
.page-template-page-ai-shinjin #ai-curriculum .table-curriculum td[rowspan] { margin: 1em 0; padding: 0.5em 1em; font-weight: bold; background: repeating-linear-gradient(-45deg, #eee, #eee 1px, transparent 1px, transparent 4px); }
.page-template-page-ai-shinjin #ai-curriculum .table-curriculum tr:nth-child(2) > td:first-child { margin: 2em 0 1em; border: 1px solid #181818; background: none; text-align: center; }
:is(.page-template-page-ai-literacy, .page-template-page-ai-shinjin) #ai-curriculum .table-curriculum td[rowspan]:not(.syou) { border-bottom: 0; }
:is(.page-template-page-ai-literacy, .page-template-page-ai-shinjin) #ai-curriculum .table-curriculum tr:not(:first-child):is(:has(+ tr > td[rowspan]), :last-child) > td:last-child {
  border-bottom: 0;
  padding-bottom: 3px;
}
.page-template-page-powerbi .section-whatis, .page-template-page-powerquery .section-whatis { margin-bottom: 50px; }
.page-template-page-powerbi .section-whatis img, .page-template-page-powerquery .section-whatis img { margin-top: 30px; border: 1px solid #ddd; }
#main.page_example { padding: 0; }
#main.page_example > .section { padding: 0 20px 10px; }
#main.page_example > .section:nth-of-type(odd) { background: #f8f8f8; }
#main.page_example > .section:last-of-type { padding-bottom: 30px; }
#main.page_example > .section > h2 { margin: 0; padding: 2em 0 25px; font-size: clamp(0px, 5.4vw, 23.22px); font-weight: 900; line-height: 1.5; text-align: center; }
#main.page_example > .section:first-of-type > h2 { padding-top: 30px; }
.page_example .responsive-table { overflow: visible; margin: 30px 0 0; }
.page_example .single_list, .page_example .single_list tbody { display: block; width: 100%; min-width: 0; }
.page_example .single_list tr { position: relative; display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 20px 0; margin-bottom: 20px; line-height: 1.5; }
.page_example .single_list tr::after { content: ''; position: absolute; left: 0; right: 0; bottom: -11px; border-top: 1px dotted #e8e8e8; }
.page_example .single_list tr:last-child::after { display: none; }
.page_example .single_list th { display: flex; align-items: center; justify-content: center; min-height: 60px; padding: 0 5px; background: #e8e8e8; font-size: 11px; font-weight: bold; text-align: center; }
.page_example .single_list td { min-width: 0; padding: 5px 10px; }
.page_example .single_list :is(h3, h4) { font-weight: bold; }
.page_example .single_list h4.next { margin-top: 20px; }
.page_example .single_list li { position: relative; margin-bottom: 8px; padding-left: 1em; line-height: 1.5; }
.page_example .single_list li:last-child { margin-bottom: 0; }
.page_example .single_list li::before { content: ''; position: absolute; top: 8px; left: 0; width: 6px; height: 6px; border-radius: 50%; background: #888; }
.page-kaikaku .section2 > .img, .page-kaikaku .section2 > .btn > i { display: none; }
.page-kaikaku .section2 > .btn { pointer-events: none; cursor: default; }
.page-kaikaku .section2 > .btn::after { content: ''; display: block; width: 100%; aspect-ratio: 2 / 1; background: image-set(url('../../mobile/common/image/kaikaku/kaikaku-img.jpg') 1x, url('../../mobile/common/image/kaikaku/kaikaku-img@2x.jpg') 2x) center / contain no-repeat; }
.page-kaikaku #tabCont > .item:last-child { display: none; }
:is(.page_st .section4, .page_cost .section3) > .box::before { content: ''; display: block; width: 100%; aspect-ratio: 720 / 497; margin-bottom: 25px; background: url('../../mobile/common/image/el-cost.png') center / contain no-repeat; }
.page_cost .sk_cv { min-height: 50px; margin-top: 30px; color: #fff; background: linear-gradient(#696969, #292929); border-radius: 4px; font-weight: bold; }
.page-template-page-opt .page_client :is(.section01, .section02)::before { content: ''; display: block; width: calc(100% + 40px); margin-left: -20px; background-position: center; background-size: contain; background-repeat: no-repeat; }
.page-template-page-opt .page_client .section01::before { aspect-ratio: 850 / 300; background-image: url('../../mobile/common/image/page/opt03.png'); }
.page-template-page-opt .page_client .section02::before { aspect-ratio: 1100 / 340; margin-top: 25px; background-image: url('../../mobile/common/image/page/opt04.png'); }
.page-template-page-opt .page_client .section03 h3 { min-height: 34px; margin: 35px 0 5px; padding: 0 0 0 40px; line-height: 1.6; font-weight: bold; background: url('../../mobile/common/image/page/jirei_mac.png') left top / 34px 34px no-repeat; }
.page_ict .sec1 h2 { padding-top: 0; background: none; }
.page_ict .sec2 .box + .box { margin-top: 45px; }
.page_ict .sec2 .box > .icons { display: block; width: 73px; height: 45px; margin: 0 auto; }
.page_ict .sec2 h3 { padding: 25px 0 20px; font-size: 18px; line-height: 1.4; text-align: center; }


/* Long training names must not expand the grid beyond the hero. */
.section-hero--training-detail .section-hero__actions { grid-template-columns: minmax(0, 1fr); min-width: 0; width: 100%; }
.section-hero--training-detail .section-hero__button { min-width: 0; width: 100%; padding: 10px; }
.section-hero--training-detail .section-hero__button-icon { flex: 0 0 24px; }
.section-hero--training-detail .section-hero__button-text { flex: 1 1 0; min-width: 0; grid-template-columns: minmax(0, 1fr); }
.section-hero--training-detail .section-hero__button-note { min-width: 0; white-space: normal; line-height: 1.45; }
.page-template-page-datastudio .section-hero--training-detail .section-hero__button-note { white-space: nowrap; }
.page-template-page-datastudio .section-hero__button-note-prefix { display: none; }
.section-hero--training-detail .section-hero__button-note::before, .section-hero--training-detail .section-hero__button-note::after { flex: 0 0 1px; }
.section-hero--training-detail .section-hero__button-text > span:last-child { white-space: normal; overflow-wrap: anywhere; }

/* Contact fields share the PC markup; retain the original SP presentation. */
.page_contact > .steps, .page-form-index > .points { display: none !important; }
.page-form-index #form_table, .page-form-index #form_table tbody { display: block; width: 100%; min-width: 0; }
.page-form-index #form_table tr { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.5em 5px; margin-bottom: 1em; }
.page-form-index #form_table :is(th, td) { display: block; min-width: 0; width: auto; padding: 0; text-align: left; }
.page-form-index #form_table th { font-weight: normal; }
.page-form-index #form_table tr > td:last-child { grid-column: 1 / -1; }
.page-form-index #form_table .check { display: inline-block; padding: 1px 0.5em; border-radius: 3px; background: #79211c; color: #fff; font-size: 10px; font-weight: bold; text-shadow: none; }
.page-form-index #form_table .check--optional { background: #eee; color: #666; }
.page-form-index #form_table .small { display: block; padding: 2px 0; color: #888; font-size: 0.8em; }
.page-form-index #contact-title-hint br { display: none; }
.page-form-index .contact-form-intro__text { padding-bottom: 24px; }
.page-form-index .contact-form-intro__phone { margin-bottom: 24px; padding: 1em 10px; border-radius: 10px; background: #f5f5f5; text-align: center; }
.page-form-index .contact-form-intro__phone-number { display: block; padding: 5px 0 0; color: #181818; font-size: 33.6px; font-weight: bold; line-height: 1; letter-spacing: normal; }
.page-form-index :is(.contact-form-intro__phone-label, .contact-form-intro__phone-hours) { font-size: 12px; text-align: center; }
.page-form-preview > .responsive-table { margin: 0; }
.page-form-preview table.preview, .page-form-preview table.preview tbody { display: block; width: 100%; min-width: 0; }
.page-form-preview table.preview tr { display: block; padding: 20px 0 10px; }
.page-form-preview table.preview th { display: block; width: auto; padding: 0 0 5px; color: #999; font-size: 12px; font-weight: bold; line-height: 1.5; text-align: left; }
.page-form-preview table.preview tr > td:nth-child(2) { display: none; }
.page-form-preview table.preview tr > td:last-child { display: block; width: auto; padding: 0; overflow-wrap: anywhere; }
.page-form-preview .privacy-consent > p { display: flex; align-items: flex-start; gap: 8px; }
.page-form-preview .form-btn { display: grid; grid-template-columns: 30% minmax(0, 1fr); gap: 2%; margin-top: 20px; }
.page-form-preview .form-btn > li { min-width: 0; }
.page-form-preview #back { border: 1px solid #aaa; background: #bbb; }
.contact_ttl:has(+ .page-form-preview), .contact_ttl:has(+ .page-form-thanks) { padding: 2em 20px 0; border-top: 1px solid #f3f3f1; font-size: clamp(0px, 5.4vw, 23.22px); font-weight: 900; line-height: 1.5; text-align: center; }
.page-form-thanks .sub { margin: 0 !important; padding: 2em 0; }
.page-form-thanks .hm { display: block; margin-top: 40px; text-align: center; }

/* The shared sitemap keeps #wrap instead of the SP-only #main. */
.page-template-page-sitemap .page_sitemap { padding: 0 20px 75px; }
.page-template-page-sitemap .page_sitemap h2 { padding: 2em 0 0.5em; font-size: 18px; font-weight: bold; line-height: 1.5; }
.page-template-page-sitemap .page_sitemap h2 a { color: #181818; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.page-template-page-sitemap .page_sitemap ul { line-height: 2; }
.page-template-page-sitemap .page_sitemap ul a { color: #666; }

/* Map SP heading spacing to the shared fixed-page markup. */
body:is(.page-template-page-st, .page-template-page-cost) #main:is(.page_st, .page_cost) > section > h2 { margin: 0; padding: 2em 0 1.5em; }
body:is(.page-template-page-st, .page-template-page-cost) #main:is(.page_st, .page_cost) > .section1 > h2 { margin-top: 0; padding-top: 30px; }
#main.page_st > .section1 { padding-bottom: 25px; }
#main.page_st > .section6 { padding-bottom: 50px; }
:is(.page_st, .page_cost, .page_flow, .page_faq, .page_mission, .page_ict, .page_school, .page_client, .page-sustainability) h2 { font-size: var(--responsive-training-heading-size); font-weight: 900; line-height: 1.5; }
.page-template-page-flow .mainimg-training--html .inner p > br,
.page-template-page-place #single_img .inner p > br { display: none; }
body.page-template-page-faq #main.page_faq > .section1 { margin-bottom: 50px; }
body.page-template-page-faq #main.page_faq > .section2 { margin-bottom: 0; }
body.page-template-page-faq #main.page_faq > section > h2 { margin: 0; padding: 2em 0 25px; }
body.page-template-page-faq #main.page_faq > .section1 > h2 { padding-top: 30px; }
#main.page_faq > .centerImg { width: calc(100% + 40px); max-width: none; margin: 0 -20px; }
#main.page_faq > .centerImg img { display: block; width: 100%; }
body.page-template-page-faq #main.page_faq > section > :is(.parent, .child) { margin-inline: -20px; }
body.page-template-page-faq #main.page_faq .parent { display: block; min-height: 0; padding: 20px 50px 20px 16%; border: 0; border-bottom: 1px dotted #eee; background-image: image-set(url('../../mobile/common/image/page/qa_01.png') 1x, url('../../mobile/common/image/page/qa_01@2x.png') 2x); background-position: 5% center; background-size: 30px 25px; background-repeat: no-repeat; line-height: 1.8 !important; }
body.page-template-page-faq #main.page_faq .parent > p { margin: 0; padding: 0; background: none; }
body.page-template-page-faq #main.page_faq .parent::before,
body.page-template-page-faq #main.page_faq .parent::after { content: ''; position: absolute; left: auto; top: 50%; background: #999; transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out; }
body.page-template-page-faq #main.page_faq .parent::before { right: 22.5px; width: 1px; height: 10px; transform: translateY(-50%); }
body.page-template-page-faq #main.page_faq .parent::after { right: 18px; width: 10px; height: 1px; transform: translateY(-50%); }
body.page-template-page-faq #main.page_faq .parent[aria-expanded="true"]::before { transform: translateY(-50%) scaleY(0); opacity: 0; }
body.page-template-page-faq #main.page_faq .child { padding: 15px 20px 15px 16%; border-color: #eee; background: image-set(url('../../mobile/common/image/page/qa_02.png') 1x, url('../../mobile/common/image/page/qa_02@2x.png') 2x) 5% center / 30px 25px no-repeat; line-height: 1.8; }
body.page-template-page-faq #main.page_faq .child::before { content: none; }
body.page-template-page-faq #main.page_faq .child + .parent { margin-top: -1px; }

.page_privacy > h2 { margin: 35px 0 0; font-size: 18px; line-height: 1.6; }
.page_privacy .cookieTable { width: 100%; min-width: 800px; }
.page_privacy .cookieTable :is(th, td) { border-color: #eee; padding: 14px 16px; }
.page_privacy .cookieTable th { background: #f8f8f8; color: #181818; }
.page_school .sec2 .inner2 table { font-size: 15px; line-height: 1.8; }
.page_school .sec2 .inner2 :is(th, td) { padding: 14px 16px; border-color: #eee; }
.page_school .sec2 .inner2 th { background: #f8f8f8; color: #181818; }
body.page-template-page-school .page_school table.single_list { display: block; width: 100%; border: 1px solid #eee; border-radius: 8px; overflow: hidden; background: #fff; font-size: 15px; line-height: 1.85; }
body.page-template-page-school .page_school table.single_list :is(tbody, tr, th, td) { display: block; width: 100%; }
body.page-template-page-school .page_school table.single_list tr:nth-child(n) { border: 0; background: transparent; }
body.page-template-page-school .page_school table.single_list th { padding: 12px 16px; border: 0; background: #f8f8f8; color: #181818; font-size: 14px; line-height: 1.6; }
body.page-template-page-school .page_school table.single_list td { padding: 16px; border: 0; line-height: 1.85; }
body.page-template-page-opt .page_client > article > h2 { margin: 0; padding: 2em 20px 1em; }
.page-sustainability { padding-bottom: 0; }
.page-sustainability .sustainability-desktop-break { display: none; }

.page-ordermade h2.section-title { font-size: var(--responsive-training-heading-size); font-weight: 900; line-height: 1.5; }
.page-ordermade .om-flow-note > br { display: none; }
#page-subsidy.subsidy-page--guide :is(.subsidy-section h2, .subsidy-section h2.subsidy-heading--long, .subsidy-cta h2),
#page-subsidy :is(.subsidy-section h2, .subsidy-cta h2) { font-size: var(--responsive-training-heading-size); font-weight: 900; line-height: 1.5; }
#page-subsidy .subsidy-number { display: inline-block; white-space: nowrap; }
#page-subsidy .subsidy-section--tokyo-summary .subsidy-fact::after { top: 12px; left: 20px; right: auto; }
#page-subsidy.subsidy-page--guide .subsidy-fact strong { white-space: nowrap; }
.page-template-page-ga-ga4 .section-curriculum table.sp-table-inner { display: block; width: 100%; }
.page-template-page-ai-literacy #ai-curriculum .table-curriculum tr:first-child { display: none; }
.page-template-page-ai-literacy #ailit-tool-guide-title { font-size: var(--responsive-training-heading-size); }
@media (width < 768px) {
  /* Fill the hero with the portrait artwork without stretching its aspect ratio. */
  .section-hero--training-detail .section-hero__bg > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }
  /* Keep the dashboard near the top of the Power BI photo in frame. */
  .page-template-page-powerbi .section-hero--training-detail .section-hero__bg > img {
    object-position: center 15%;
  }
  /* The embedded C photo places the people and laptop below the empty wall. */
  .page-template-page-c-ex .section-hero--training-detail .section-hero__bg > img {
    object-position: center 77%;
  }
  /* The presentation photos place the speakers and screens above the audience. */
  .page-template-presentationpage-index-php .section-hero--training-detail .section-hero__bg > img {
    object-position: center 12%;
  }
  .page-template-page-presentation_jissen .section-hero--training-detail .section-hero__bg > img {
    object-position: center 6%;
  }
  /* Keep the photo inset above the pattern on the order-made hero. */
  .page-ordermade .hero.om-hero .hero__bg-image {
    object-position: center 22%;
  }
}
@media (min-width: 768px) and (max-width: 1024px) {
  /* Use the wider hero artwork at tablet widths and keep its subject in frame. */
  .section-hero--training-detail .section-hero__bg > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: right center;
  }
  .section-hero--training-detail .section-hero__text,
  :is(.ailit-fv__note, .ainew-fv__note) { max-width: min(66%, 620px); }

  :is(.ailit-fv__bg, .ainew-fv__bg) img,
  .page-digital-marketing .hero_background-image,
  .page-ordermade .hero.om-hero .hero__bg-image { object-position: right center; }
  :is(.ailit-fv, .ainew-fv)::before {
    background: linear-gradient(90deg, #fff 30%, rgba(255, 255, 255, 0.91) 55%, rgba(255, 255, 255, 0.5) 100%);
  }
  .page-ordermade .hero.om-hero { min-height: clamp(430px, 56vw, 480px); }
  .page-ordermade .hero.om-hero .section-hero__actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 720px;
  }
  .page-ordermade .hero.om-hero .hero-card-list { grid-template-columns: repeat(4, minmax(0, 1fr)); }

  .st-hero__bg picture { display: block; height: 100%; }
  .st-hero__bg-image { height: 100%; object-position: right center; }
  #page-single .mainimg-training--html { height: auto; min-height: clamp(260px, 30vw, 310px); }
  #page-single .mainimg-training--html .mainimg__bg { object-position: center 15%; }
  #single_img {
    display: grid;
    align-items: center;
    min-height: clamp(280px, 35vw, 340px);
    padding: 48px 20px;
  }
  #single_img.img_st {
    background-image: image-set(url('../image/slider/st.jpg') 1x, url('../image/slider/st@2x.jpg') 2x);
  }
  #single_img.img_place {
    background-image: linear-gradient(rgba(14, 30, 43, 0.32), rgba(14, 30, 43, 0.32)), url('../image/slider/place-training-formats-pc-v1.jpg');
  }
  .page-online .header {
    display: flex;
    align-items: center;
    height: auto;
    min-height: clamp(310px, 38vw, 390px);
    padding: 32px 24px;
    background-image: image-set(url('../image/online/bg@0.5x.png') 1x, url('../image/online/bg.png') 2x);
    background-position: 75% center;
  }
  .page-online .header .inner { max-width: 44%; margin: 0; padding-top: 0; }
  .page-kaikaku .section1 { background-image: url('../image/main.jpg'); }
  #page-career .section-header {
    height: auto;
    min-height: 360px;
    padding: 40px 0;
    background-image: linear-gradient(90deg, rgba(12, 31, 46, 0.64), rgba(12, 31, 46, 0.24)), url('../image/jyosei-career-main@0.5x.png');
  }
  body.page-shinjinkenshu-lp #banner-stop .section-fv {
    padding-top: 40px;
    background: #f8f7f4 image-set(url('../image/page-shinjinkenshu-assets/fv-bg@0.5x.png') 1x, url('../image/page-shinjinkenshu-assets/fv-bg.png') 2x) 22% center / cover no-repeat;
  }
  body.page-shinjinkenshu-lp #banner-stop .section-fv .medals { margin-top: -20px; }
  body.page-shinjinkenshu-lp #banner-stop .fv-more .grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body.page-shinjinkenshu-lp #banner-stop .fv-more .item::before { background-position: center; }
  body.page-shinjinkenshu-lp #banner-stop .fv-more .item .box { display: flex; flex-direction: column; align-items: center; }
  body.page-shinjinkenshu-lp #banner-stop .fv-more .item .sub { flex: 1; }

  /* Let each pair of course groups fill the same two-column grid. */
  body.page-shinjinkenshu-lp #banner-stop .section-kenshu > .inner {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px;
  }
  body.page-shinjinkenshu-lp #banner-stop .section-kenshu > .inner > :is(h2, .label) { grid-column: 1 / -1; }
  body.page-shinjinkenshu-lp #banner-stop .section-kenshu > .inner > .items { display: contents; }

  .section-hero--training-detail .section-hero__actions:has(> .section-hero__button + .section-hero__button) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 720px;
  }
  .skillmap > .inner,
  .training-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .skillmap > .inner :is(.flex, .flex2, .left, .right) { display: contents; }
  .skillmap > .inner > .mes { grid-column: 1 / -1; }
  #page-category #main > .skillmap { margin-inline: 0; }
  #page-category #main > #cat-page-sub > h2,
  #page-category #main > #cat-page-sub > h2 + p { text-align: center; }
  .responsive-follow--training.followHeader > ul { max-width: 600px; margin-inline: auto; }
  .responsive-follow--training.followHeader.fixed { pointer-events: none; }
  .responsive-follow--training.followHeader.fixed > ul { pointer-events: auto; }
  body:not(:has(#blog-main)) #responsive-page > .sidebar.responsive-mobile-only > .side-banner {
    max-width: 480px;
    margin-inline: auto;
  }

  .section-hero--training-detail .section-hero__features { max-width: 720px; }
  .training-learning-map > ol {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  .training-learning-map > ol > li { margin-bottom: 0; }
  #page-category #cat-page-sub > table.list,
  :is(#cat-page-detail-a, #cat-sub-detail) > .responsive-curriculum,
  .training-faq__list,
  .responsive-training-page #responsive-page > .sidebar.responsive-mobile-only > :is(.side-trust, .side-training-menu) {
    max-width: 640px;
    margin-inline: auto;
  }
  #about_cost_sec > .box {
    max-width: 600px;
    margin-inline: auto;
  }
  #about_cost_sec .btn { max-width: 480px; margin-inline: auto; }
  .responsive-training-page #cv_area > .inner.responsive-mobile-only {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    max-width: 760px;
    margin-inline: auto;
  }
  .responsive-training-page #cv_area > .inner.responsive-mobile-only > div:last-child { margin-top: 0; }
  .responsive-training-page #cv_area > .inner.responsive-mobile-only .num { font-size: 34px; white-space: nowrap; }

  .main-page-training .training-selector__grid,
  .main-page-training .training-flow-link .training-flow-link__body {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  #page-category #cat-index-sub > .training-list {
    display: grid;
    gap: 12px;
    border: 0;
  }
  #page-category #cat-index-sub > .training-list > .training-item:nth-child(n) {
    justify-content: flex-start;
    border: 1px solid #eee;
    border-radius: 8px;
    background: #fafafa;
  }
  .responsive-training-page .sectionFaq :is(.faq-blocks, .open-faq),
  .main-page-training .training-common-faq > :is(.training-common-faq__lead, .training-common-faq__control, .training-common-faq__items),
  .page-digital-marketing .faq-list,
  .responsive-training-page .ai-faq :is(.faq-container, .open-faq),
  .responsive-training-page .section-shinjin__button {
    max-width: 640px;
    margin-inline: auto;
  }
  #page-category.page-template-page-adwords .index-about > .flex {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    align-items: center;
    gap: 24px;
  }
  #page-category.page-template-page-adwords .index-about > .flex > .right { padding: 0; }

  .page-digital-marketing .hero_cta--secondary,
  .ailit-fv .ailit-fv__actions,
  .ainew-fv .ainew-fv__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 720px;
  }
  .ailit-fv .ailit-fv__points,
  .ainew-fv .ainew-fv__points,
  .page-digital-marketing .hero_cta { max-width: 720px; }
  .ailit-tool-guide .ailit-tool-guide__grid,
  :is(.ailit-importance, .ainew-reason, .ainew-growth, .ailit-usecases) .grid-3,
  .ai-related .list,
  .ailit-risk .grid-2-risk,
  .page-digital-marketing .support-grid,
  .responsive-training-page .lp-download-banner__inner,
  body.page-shinjinkenshu-lp #banner-stop .section-jinzai .lists,
  .page-ordermade :is(.om-style-grid, .om-attendee-grid) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .page-digital-marketing .reason-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .page-digital-marketing .trainer-visual,
  .responsive-training-page .lp-download-banner__visual {
    width: 100%;
    max-width: 480px;
    margin-inline: auto;
  }
  #ai-overview { padding-bottom: 30px; }
  .ai-overview .table-overview { max-width: 640px; margin-inline: auto; }
  .ai-cta .right-item { width: 100%; max-width: 480px; margin-inline: auto; }
  .ainew-intro .figure,
  .ailit-merit .merit-wrap .figure { max-width: 520px; margin-inline: auto; }
  :is(.ailit-intro, .ailit-importance) .grid-2-acordion [data-source] img {
    display: block;
    max-width: min(100%, 560px);
    margin-inline: auto;
  }
  .ai-textbook .slide-box {
    width: 100%;
    max-width: 680px;
    margin-inline: auto;
    transform: none;
  }

  .page-template-page-ga-ga4 .section-method .grid { max-width: none; }
  .page-template-page-ga-ga4 :is(.section-timeline figure, .section-overview .figure-center) {
    max-width: 680px;
    margin-inline: auto;
  }
  body.page-shinjinkenshu-lp #banner-stop :is(.section-jinzai .grid-1 .item > img, .section-follow .flow figure) {
    display: block;
    max-width: min(100%, 520px);
    margin-inline: auto;
  }
  .page-template-page-ga-ga4 :is(.section-aboutga4 .grid, .section-overview .grid) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .page-template-page-ga-ga4 .section-footer-cv .btns { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .page-template-page-ga-ga4 .campaign__gmp .in img { aspect-ratio: 4 / 1; }
  #ga4-faq { padding-block: 50px; }
  #page-subsidy.subsidy-page--guide.subsidy-page--tokyo .subsidy-section--tokyo-summary .subsidy-fact { padding: 32px 24px 24px; }
  #page-subsidy.subsidy-page--guide.subsidy-page--tokyo .subsidy-section--tokyo-summary .subsidy-fact::after { top: 10px; right: 16px; left: auto; }
  #page-subsidy.subsidy-page--guide.subsidy-page--tokyo .subsidy-section--tokyo-summary .subsidy-fact__label { max-width: none; }
  #page-subsidy.subsidy-page--guide.subsidy-page--tokyo .subsidy-section--tokyo-summary .subsidy-fact__value { font-size: clamp(32px, 4.2vw, 43px); }
  #page-subsidy.subsidy-page--guide.subsidy-page--comparison .subsidy-scheme-card__facts > div { grid-template-columns: 92px minmax(0, 1fr); gap: 12px; }
}
@media (max-width: 359px) {
  #page-subsidy.subsidy-page--guide.subsidy-page--tokyo .subsidy-section--tokyo-summary .subsidy-fact { display: block; }
  #page-subsidy.subsidy-page--guide.subsidy-page--tokyo .subsidy-section--tokyo-summary .subsidy-fact__label { display: block; width: 100%; max-width: none; margin: 0 0 12px; padding-right: 28px; line-height: 1.6; }
  #page-subsidy.subsidy-page--guide.subsidy-page--tokyo .subsidy-section--tokyo-summary .subsidy-fact strong { text-align: left; }
  #page-subsidy.subsidy-page--guide.subsidy-page--tokyo .subsidy-section--tokyo-summary .subsidy-fact::after { top: 20px; right: 20px; left: auto; }
}
body.page-shinjinkenshu-lp #banner-stop > section:not(.section-fv, .fv-more) h2 { font-size: var(--responsive-training-heading-size); font-weight: 900; line-height: 1.5; }
body.page-shinjinkenshu-lp #banner-stop .section-fv .medals li { width: min(30vw, 130px); height: min(30vw, 130px); flex-basis: min(30vw, 130px); background-position: center; }
#main.page_example > .section + .training-detail-cv-area { margin-top: 0; }
.page_example .single_list { overflow: hidden; border: 1px solid #eee; border-radius: 8px; background: #fff; font-size: 15px; line-height: 1.85; }
.page_example .single_list tr { display: block; margin: 0; }
.page_example .single_list tr::after { display: none; }
.page_example .single_list th { display: block; min-height: 0; padding: 12px 16px; background: #f8f8f8; color: #181818; font-size: 14px; line-height: 1.6; text-align: left; }
.page_example .single_list td { display: block; padding: 16px; line-height: 1.85; }

.page-kaikaku .section1 .flex .left .inner p { white-space: normal; }
.page-kaikaku .section5 #tabCont > .item > .box.mb-60 > .responsive-table:last-child > table { margin-bottom: 0; }
body.page-template-page-kaikaku .page-kaikaku > :is(.section2, .section3, .section4, .section5, .section6) h2 { margin-top: 0; font-size: var(--responsive-training-heading-size); line-height: 1.5; }
.page-kaikaku .section5 .flex .btn, .page-kaikaku .section5 .flex .btn > p { height: auto; min-height: 70px; }
.page-kaikaku .section5 .flex .btn > p { padding-bottom: 12px; }
.page-kaikaku .section3 table.kaikaku-productivity-table {
  width: 100%;
  margin: 0;
  border: 0;
  border-collapse: collapse;
  table-layout: fixed;
}
.page-kaikaku .section3 table.kaikaku-productivity-table :is(th, td) {
  padding: 14px 16px;
  border: 1px solid #dce3dc;
  background: #fff;
  line-height: 1.65;
  text-align: left;
  vertical-align: top;
}
.page-kaikaku .section3 table.kaikaku-productivity-table th { width: auto; white-space: normal; }
.page-kaikaku .section3 .kaikaku-productivity-table thead th {
  background: #e8f0e9;
  color: #1f4f29;
  font-weight: 700;
}
.page-kaikaku .section3 .kaikaku-productivity-table thead th:first-child { width: 28%; }
.page-kaikaku .section3 .kaikaku-productivity-table .fix { font-weight: 700; }
.page-kaikaku .section3 .kaikaku-productivity-table .fix br { display: none; }
.kaikaku-productivity-table td > span:not(.kaikaku-productivity-label) { color: #1f4f29; font-weight: 700; }
@media (max-width: 767px) {
  .kaikaku-productivity-table,
  .kaikaku-productivity-table :is(tbody, tr, th, td) { display: block; }
  /* Keep the column headers available to assistive technology. */
  .kaikaku-productivity-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .page-kaikaku .section3 table.kaikaku-productivity-table tbody tr {
    margin-bottom: 16px;
    overflow: hidden;
    border: 1px solid #dce3dc;
    border-radius: 8px;
    background: #fff;
  }
  .page-kaikaku .section3 table.kaikaku-productivity-table tbody tr:last-child { margin-bottom: 0; }
  .page-kaikaku .section3 table.kaikaku-productivity-table tbody :is(th, td) { border: 0; }
  .page-kaikaku .section3 table.kaikaku-productivity-table tbody th { background: #e8f0e9; font-size: 17px; }
  .page-kaikaku .section3 table.kaikaku-productivity-table tbody td + td { border-top: 1px solid #e7ebe7; }
  .kaikaku-productivity-table .kaikaku-productivity-label { display: block; margin-bottom: 4px; color: #1f4f29; font-size: 13px; font-weight: 700; }
}
.page-kaikaku .section4 > .btn > a { color: #fff; }
.page-kaikaku :is(.ion-android-call, .ion-android-mail)::before { font-family: 'icomoon'; font-style: normal; }
.page-kaikaku .ion-android-call::before { content: '\e9b2'; }
.page-kaikaku .ion-android-mail::before { content: '\e992'; }
.page-kaikaku > .contactArea > h2 { margin-top: 0; font-size: var(--responsive-training-heading-size); line-height: 1.5; }

#blog-main > :is(.contents-block-editor, .contents-classic-editor) { margin-block: 0 !important; padding: 50px 20px; }
#blog-main > :is(.contents-block-editor, .contents-classic-editor) h2 { font-size: var(--responsive-training-heading-size); font-weight: 900; line-height: 1.5; margin-block: 50px 24px; }
#blog-main > :is(.contents-block-editor, .contents-classic-editor) h2:first-child { margin-top: 0; }
#blog-main > :is(.contents-block-editor, .contents-classic-editor) > .responsive-content-first-heading { margin-top: 0; }
#blog-main > :is(.contents-block-editor, .contents-classic-editor) .responsive-content-spacer { display: none; }
#blog-main > :is(.contents-block-editor, .contents-classic-editor) > .responsive-content-last { margin-bottom: 0; }
#blog-main > :is(.contents-block-editor, .contents-classic-editor) table th { min-width: 4em; word-break: normal; overflow-wrap: normal; }
#blog-main > :is(.contents-block-editor, .contents-classic-editor) > :last-child,
#blog-main > :is(.contents-block-editor, .contents-classic-editor) > :not(script):not(:has(~ :not(script))) { margin-bottom: 0; }

/* Archive cards follow the SP reading order and retain separate category links. */
.archive #blog-main .archive-title { padding-inline: 20px; overflow-wrap: anywhere; }
.archive #blog-main .archive-desktop-copy { display: none; }
.archive #blog-main .postArchive { display: flex; flex-direction: column; }
.archive #blog-main .postArchive > .thumb { order: -1; }
.archive #blog-main .postArchive > .thumb.article-eyecatch-16x9 { aspect-ratio: 16 / 9; border-radius: 8px; background: #f4f8fc; }
.archive #blog-main .postArchive > .thumb.article-eyecatch-16x9 img { height: 100%; object-fit: contain; }
.archive #blog-main .postArchive > .postMeta { flex-direction: column-reverse; align-items: flex-end; gap: 5px; color: #777; }
.archive #blog-main .postArchive .cat { justify-content: flex-end; max-width: 100%; }
.archive #blog-main .postArchive .cat a { padding: 5px 10px 4px; border: 0; border-radius: 100px; background: #79211c; color: #fff; font-size: 11px; line-height: 1; }
.archive #blog-main > .pagination { flex-wrap: wrap; padding-inline: 12px; }
.archive #wrap > #blog-sidebar { display: block; }
.archive #blog-sidebar .cate li a { height: auto; min-height: 60px; padding: 18px 20px; line-height: 1.5; }

#blog-main.author-profile .author-profile-hero { display: grid; grid-template-columns: minmax(0, 1fr); }
.author-profile-hero__body { display: contents; }
.author-profile-hero__figure { grid-row: 2; }
#blog-main.author-profile .author-profile-hero__title { margin-bottom: 0; }
.author-profile-post__date-label.responsive-mobile-only { display: inline; }

.author-profile-section--bio { margin-top: 0; }
.author-profile-aside { margin: 36px 20px; }
#blog-main.author-profile :is(.author-profile-section__title, .author-profile-aside__title) { margin: 0; padding: 0 !important; color: #181818; font-size: var(--responsive-training-heading-size) !important; font-weight: 900; line-height: 1.5 !important; text-align: left; }
.author-profile-aside__copy { margin-top: 18px; font-size: 15px; line-height: 1.9; }
@media (min-width: 768px) and (max-width: 1024px) { .author-profile-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.page-online .section h2 { font-size: var(--responsive-training-heading-size); font-weight: 900; line-height: 1.5; }
.page-online .section h2[data-sub]::after { position: static; display: block; width: auto; margin-top: 8px; }
.page-online :is(.section-cv, .section-flow) a.btn { max-width: 100%; }

/* Keep the gap outside the content surface; section padding stays intact. */
#responsive-page > .sidebar.responsive-mobile-only { padding-top: 50px; }
#responsive-page:has(> .sidebar.responsive-mobile-only) > :where(#responsive-main) > #wrap { margin-bottom: 0; }
#responsive-page:has(> .sidebar.responsive-mobile-only) > :where(#responsive-main) > #wrap > #blog-sidebar,
#responsive-page:has(> .sidebar.responsive-mobile-only) .page_school .inner2 > .box:last-child > .responsive-table:last-of-type,
#responsive-page:has(> .sidebar.responsive-mobile-only) .page_school .inner2 > .box:last-child > .responsive-table:last-of-type > table { margin-bottom: 0; }
#responsive-page:has(> .sidebar.responsive-mobile-only) .page-online > .section-qa > .inner > dl:last-child > dt:not(.active) { margin-bottom: 0; }

/* The sidebar supplies the full gap after these unframed closing sections. */
#responsive-page:has(> .sidebar.responsive-mobile-only) > :where(#responsive-main) > #wrap > #main:is(.page_training, .page_flow) > .training-common-faq:last-child,
#responsive-page:has(> .sidebar.responsive-mobile-only) > :where(#responsive-main) > #wrap > #main.page_faq > .section3:last-child,
#responsive-page:has(> .sidebar.responsive-mobile-only) > :where(#responsive-main) > #wrap > #main.page_place > .place-consult:last-child { margin-bottom: 0; }
#page-category #responsive-page:has(> .sidebar.responsive-mobile-only) > :where(#responsive-main) > #wrap > #main > :is(.sectionFaq, .section-shinjin):last-child,
#responsive-page:has(> .sidebar.responsive-mobile-only) > :where(#responsive-main) > #ai-related > .inner,
#responsive-page:has(> .sidebar.responsive-mobile-only) > :where(#responsive-main) > .page_client > article > .section03:last-child,
#responsive-page:has(> .sidebar.responsive-mobile-only) > :where(#responsive-main) > #wrap > #main.page_cost > #delCost:last-child,
#responsive-page:has(> .sidebar.responsive-mobile-only) > :where(#responsive-main) > .page-online > .section-qa:last-child,
#responsive-page:has(> .sidebar.responsive-mobile-only) > :where(#responsive-main) > :is(.page_identity, .page_privacy, #wrap.page_sitemap) { padding-bottom: 0; }

@media (min-width: 768px) and (max-width: 1024px) {
  /* Keep the compact navigation while restoring desktop content layouts. */
  .section-hero--training-detail .section-hero__actions:has(> .section-hero__button:only-child) {
    max-width: 380px;
  }
  #page-category #cat-page-sub > table.list { display: table; table-layout: fixed; }
  #page-category #cat-page-sub > table.list tbody { display: table-row-group; }
  #page-category #cat-page-sub > table.list tr { display: table-row; }
  #page-category #cat-page-sub > table.list :is(th, td) {
    display: table-cell;
    width: auto !important;
    border-bottom: 1px solid #eee;
    vertical-align: top;
    overflow-wrap: anywhere;
  }
  #page-category #cat-page-sub > table.list th { width: 24% !important; }
  #page-category #cat-page-sub > table.list tr:last-child > :is(th, td) { border-bottom: 0; }

  #main #cheack6_sec > h2,
  #page-category #main:has(> #cat-page-sub) > #cheack6_sec > h2 {
    margin-bottom: 20px;
    padding: 0;
    background: none;
  }
  #cheack6_sec .responsive-check-slides {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  #cheack6_sec .box {
    display: flex;
    width: auto;
    margin: 0;
    border: 1px solid #eee;
    border-radius: 8px;
    background: #fff;
  }
  #cheack6_sec .box > a { display: flex; flex: 1; flex-direction: column; padding: 16px; }
  #cheack6_sec .box :is(h3, .more) { text-align: left; }
  #cheack6_sec .box h3 { margin-bottom: 8px; }
  #cheack6_sec .box .txt { padding: 0; }
  #cheack6_sec .box .more { margin-top: auto; padding: 12px 0 0; }

  .main-page-training :is(.training-category-card__meta, .training-category-card__links.training-list) {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 20px;
  }
  .main-page-training .training-category-card__meta-item + .training-category-card__meta-item { border-top: 0; }
  .main-page-training .training-hub-points { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .main-page-training .training-hub-points li { border-bottom: 0; }
  .main-page-training .training-hub-points li + li { border-left: 1px solid #eee; }

  #page-category #cat-index-sub > .training-list > .training-item:nth-child(n) {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    gap: 20px;
    align-items: start;
  }
  #page-category #cat-index-sub .training-item > :is(h3, p) { width: auto; margin: 0; }

  .page_mission .sec1,
  .page-online .section-cv .inner {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    align-items: center;
    gap: 24px;
  }
  .page_mission .sec2 .inner,
  .page-online .section-2 .way,
  .page-online .section-3 .flex,
  .page_st .section6 .figure,
  .page_st .education-style {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }
  .page-online .section-2 .way { gap: 42px; margin-top: 30px; }
  .page-online .section-2 .way .box:nth-child(n) { margin: 0; padding: 30px 20px; }
  .page-online .section-2 .way .box:first-child::before { inset: 50% -21px auto auto; transform: translate(50%, -50%); }
  .page-online .section-3 .flex { margin-top: 30px; }
  .page-online .section-3 .flex .box { margin-top: 0; }
  .page-online .section-cv .inner .box { margin-top: 0; }
  .page_st .section6 .figure > h3 { grid-column: 1 / -1; }
  .page_st .ordermap > ul,
  .page_cost .section3 .figure ul,
  .page_school .sec2 .inner1 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
  }
  .page_st .cost2 ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page_school .sec2 .inner1 > .box { width: auto; min-width: 0; margin: 0; }
  :is(.page_st .section4, .page_cost .section3) > .box::before { max-width: 480px; margin-inline: auto; }
  .page_flow :is(.flow-support__grid, .flow-contact-box__links) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
  }
  .page_flow .flow-step__meta { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .page_flow .flow-image { max-width: 760px; margin-inline: auto; }
  .page-template-page-place .place-format-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 235px), 1fr));
  }
  .page-template-page-place .place-support {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .page-template-page-place .place-support__item { border-top: 0; }
  .page-template-page-place .place-support__item + .place-support__item { border-left: 1px solid #d6e3ec; }

  #page-subsidy.subsidy-page--guide.subsidy-page--tokyo .subsidy-section--tokyo-summary .subsidy-facts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  #page-subsidy.subsidy-page--guide.subsidy-page--tokyo .subsidy-section--tokyo-summary .subsidy-fact {
    display: block;
    padding: 24px 16px 16px;
  }
  #page-subsidy.subsidy-page--guide.subsidy-page--tokyo .subsidy-section--tokyo-summary .subsidy-fact__label {
    width: auto;
    margin: 0 0 8px;
    padding-right: 24px;
  }
  #page-subsidy.subsidy-page--guide.subsidy-page--tokyo .subsidy-section--tokyo-summary .subsidy-fact strong { text-align: left; }

  .archive #blog-main .postArchive {
    display: grid;
    grid-template-columns: minmax(0, 30%) minmax(0, 1fr);
    gap: 8px 20px;
    align-items: start;
    max-width: 860px;
    margin-inline: auto;
  }
  .archive #blog-main .postArchive > :is(h2, .postMeta) { grid-column: 1 / -1; padding-block: 0; }
  .archive #blog-main .postArchive > .postMeta { flex-direction: row; align-items: center; justify-content: space-between; flex-wrap: wrap; }
  .archive #blog-main .postArchive > .thumb { order: 0; width: 100%; max-width: 290px; }
  .archive #blog-main .postArchive > .excerpt { line-height: 1.8; }
  .archive #blog-main .postArchive > .excerpt > .archive-desktop-copy { display: inline; }
  .archive #blog-main .postArchive > .excerpt > .responsive-mobile-only { display: none; }

  :is(.ailit-importance, .ailit-usecases, .ainew-reason, .ainew-growth) .grid-3,
  .ai-related .list,
  .page-template-page-ga-ga4 .section-method .grid,
  .page-digital-marketing :is(.training-measurement__grid, .curriculum-meta),
  .page-ordermade :is(.om-pain-grid, .om-customize-grid, .om-growth-phases) {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 245px), 1fr));
  }
  .ailit-problem__grid,
  .ai-reskilling .course-outer > .grid-2,
  .summary-ai .grid-2,
  .page-template-page-ga-ga4 .section-feature .grid,
  .page-digital-marketing :is(.training-overview-grid, .training-fit-grid, .problem-grid, .course-grid, .agent-grid, .agent-compare, .schedule-grid, .step-grid, .contact-grid, .voice-grid),
  .page-ordermade :is(.om-intro-grid, .om-audience-grid, .om-kind-grid, .om-schedule-grid, .om-flow-list),
  body.page-shinjinkenshu-lp #banner-stop .section-choice .way2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .page-ordermade .om-reason-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .page-digital-marketing .step-card:not(:last-child)::after { content: none; }
  .page-digital-marketing .result-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .page-digital-marketing .result-grid > .result-card { border-top: 0; }
  .page-digital-marketing .result-grid > .result-card + .result-card { border-left: 1px solid rgba(255, 255, 255, 0.14); }
  .page-digital-marketing .agent-compare-card:first-child::after {
    inset: 0 auto auto 100%;
    width: 16px;
    height: 100%;
    clip-path: polygon(0 0, 0 100%, 100% 50%);
    transform: none;
  }
  .page-digital-marketing .agent-compare-card + .agent-compare-card { padding-left: 30px; border-top: 0; }
  .page-digital-marketing .trainer-layout {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    align-items: start;
    gap: 24px;
  }
  .ai-cta .inner,
  .ailit-merit .merit-wrap .item,
  .ainew-intro .flex-2col {
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    align-items: center;
    gap: 24px;
  }
  .ainew-intro .flex-2col { display: grid; }
  .page-template-page-ai-shinjin .ainew-intro .left { align-self: start; }
  :is(.ailit-merit .merit-wrap, .ainew-intro) .figure { margin-top: 0; }
  .ainew-problem .box { padding-left: 40%; background-size: 38% auto; background-position: left center; }
  .ainew-problem .box .right { margin-top: 0; }
  .ai-reskilling .course-outer > .grid-2 { gap: 24px; }
  .ai-reskilling .course-outer > .grid-2 .right { margin-top: 0; }
  .ailit-aboutus .grid-2 { grid-template-columns: minmax(0, 3fr) minmax(0, 5fr); }
  .ailit-aboutus .grid-2 .right { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ailit-aboutus .grid-2 .left .item { height: 100%; }

  body.page-shinjinkenshu-lp #banner-stop .section-jinzai .grid-1 .item {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    align-items: center;
    gap: 24px;
  }
  body.page-shinjinkenshu-lp #banner-stop .section-choice .way2 .item:not(:first-of-type) { margin-top: 0; }
  body.page-shinjinkenshu-lp #banner-stop .section-about .col2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: center;
    gap: 24px;
    padding: 0;
  }
  body.page-shinjinkenshu-lp #banner-stop .section-about .col2::after {
    position: static;
    width: 100%;
    height: auto;
    min-height: 240px;
    margin: 0;
    align-self: stretch;
    transform: none;
  }
  body.page-shinjinkenshu-lp #banner-stop .section-about .col2-re::after { order: -1; }
  body.page-shinjinkenshu-lp #banner-stop .section-follow .flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 64px;
  }
  body.page-shinjinkenshu-lp #banner-stop .section-follow .flow .item:first-child::after {
    inset: 50% -32px auto auto;
    width: 40px;
    height: 40px;
    transform: translate(50%, -50%);
  }
}

/* Rhythm fine-tuning: put every page on the site-wide 20px gutter. */
#page-single .mainimg { padding-inline: 20px; }
main.download-guide-page { padding-inline: 20px; }
#page-subsidy .subsidy-inner,
#page-subsidy .pageModifyDate--subsidy .inner { width: calc(100% - 40px); }
.page-ordermade :is(.page-section, .hero.om-hero, .om-trust-strip, .om-school-promo, .dm-cta.om-cta, .contact-section.om-cta-bottom),
.page-ordermade .pageModifyDate .inner,
.page-digital-marketing :is(.page-section, .contact-section, .pageModifyDate, .fresh-hire-promo__links),
body.page-shinjinkenshu-lp #banner-stop :is(.section-cv, .section-fv, .fv-more, .section-jinzai, .section-about, .section-choice, .section-cta, .section-jirei, .section-kenshu, .section-flow, .section-follow),
.page-template-page-ga-ga4 :is(.section, .section-cv, .section-fv, .section-footer-cv, .campaign__gmp-fv, .campaign__gmp-mid, .campaign__gmp-bottom) { padding-inline: 20px; }
.page-digital-marketing .fresh-hire-promo__links { width: 100%; }
/* The skill map sat 20px inside #main's own 20px padding. */
#main > :is(.skillmap-adwords, .skillmap-ga, .skillmap-ms, .skillmap-wm) { margin-inline: 0; }

/* Training detail and category pages: one section rhythm (64px between plain sections, 48px inside full-width bands, 20px under headings). */
#page-category #main:has(> :is(#cat-page-sub, #cat-index-sub)) > :is(section, .teacherInfo, .skillmap, .training-dm-general-banner) { margin-block: 0 !important; }
#page-category #main:has(> :is(#cat-page-sub, #cat-index-sub)) > section { padding-block: 32px; }
#page-category #main:has(> :is(#cat-page-sub, #cat-index-sub)) > :is(.teacherInfo, .skillmap, .training-dm-general-banner, .skillmapArea) { margin-block: 32px !important; }
#page-category #main:has(> :is(#cat-page-sub, #cat-index-sub)) > .skillmapArea { width: auto; margin-inline: 0; padding: 20px; }
#page-category #main:has(> :is(#cat-page-sub, #cat-index-sub)) > :is(.teacherInfo, .skillmap, .training-dm-general-banner, .skillmapArea):has(+ :is(#cat-page-detail-a, #cat-sub-detail, .training-faq, .training-detail-cv-area)) { margin-bottom: 48px !important; }
#page-category #main:has(> :is(#cat-page-sub, #cat-index-sub)) > :is(#cat-page-detail-a, #cat-sub-detail, .training-faq, .training-detail-cv-area) + :is(.teacherInfo, .skillmap, .training-dm-general-banner, .skillmapArea) { margin-top: 48px !important; }
#page-category #main:has(> :is(#cat-page-sub, #cat-index-sub)) > :is(#cat-page-detail-a, #cat-sub-detail, .training-faq, .training-detail-cv-area) { margin-block: 16px !important; padding-block: 48px; }
#page-category #main:has(> :is(#cat-page-sub, #cat-index-sub)) > :is(#cat-page-detail-a, #cat-sub-detail, .training-faq, .training-detail-cv-area):has(+ :is(#cat-page-detail-a, #cat-sub-detail, .training-faq, .training-detail-cv-area)) { margin-bottom: 0 !important; }
#page-category #main:has(> :is(#cat-page-sub, #cat-index-sub)) > :is(#cat-page-detail-a, #cat-sub-detail, .training-faq, .training-detail-cv-area) + :is(#cat-page-detail-a, #cat-sub-detail, .training-faq, .training-detail-cv-area) { margin-top: 0 !important; }
#page-category #main:has(> :is(#cat-page-sub, #cat-index-sub)) > section:not(#cheack6_sec) > h2,
#page-category #main:has(> :is(#cat-page-sub, #cat-index-sub)) > section:not(#cheack6_sec) > :is(.inner, .fade-all) > h2 { margin: 0; padding-top: 0; }
#page-category #main:has(> :is(#cat-page-sub, #cat-index-sub)) > section:not(#cheack6_sec, .section-feature) > h2,
#page-category #main:has(> :is(#cat-page-sub, #cat-index-sub)) > section:not(#cheack6_sec, .section-feature) > :is(.inner, .fade-all) > h2 { text-align: center; }
#page-category #main:has(> :is(#cat-page-sub, #cat-index-sub)) > section:not(#cheack6_sec) > h2 + *,
#page-category #main:has(> :is(#cat-page-sub, #cat-index-sub)) > section:not(#cheack6_sec) > :is(.inner, .fade-all) > h2 + * { margin-top: 20px; }
#page-category #main > #cat-page-sub > p + table.list { margin-top: 20px; }
#page-category #main:has(> :is(#cat-page-sub, #cat-index-sub)) > section:is(.section-course, .section-hikaku, .sectionFaq, .section-shinjin, .index-about) > .inner { padding-block: 0; }
#page-category #main:has(> :is(#cat-page-sub, #cat-index-sub)) > section > .caution--curriculum-note { text-align: left; }
#page-category #main:has(> :is(#cat-page-sub, #cat-index-sub)) > section > :last-child,
#page-category #main:has(> :is(#cat-page-sub, #cat-index-sub)) > section > :is(.inner, .fade-all) > :last-child { margin-bottom: 0; }
/* The last band's margin escaped #main and added 16px before the SP sidebar (the related-training section after it is hidden on SP). */
#page-category #main:has(> :is(#cat-page-sub, #cat-index-sub)) > :is(#cat-page-detail-a, #cat-sub-detail, .training-faq, .training-detail-cv-area):is(:last-child, :has(+ :is(#more_train_sec, .section-more-training):last-child)) { margin-bottom: 0 !important; }
/* Keep the SP sidebar 48px below the preceding content. */
#responsive-page > .sidebar.responsive-mobile-only { padding-top: 48px; }

/* AI LPs: the same rhythm as the training pages (sections had 30px outside plus 50px inside, bands 80px/50px). */
:is(.page-template-page-ai-literacy, .page-template-page-ai-shinjin) :is(#responsive-page, #responsive-main) > :is(.sections, .ai-cta, .link-banner) { margin-block: 0; padding-block: 0; }
:is(.page-template-page-ai-literacy, .page-template-page-ai-shinjin) :is(#responsive-page, #responsive-main) > .sections > .inner { padding-block: 32px; }
:is(.page-template-page-ai-literacy, .page-template-page-ai-shinjin) :is(#responsive-page, #responsive-main) > :is(.ai-cta, .link-banner, .ailit-merit, .ai-curriculum, .ailit-risk, .ai-reskilling, .ai-faq, .ainew-problem, .ainew-growth) { margin-block: 16px; }
:is(.page-template-page-ai-literacy, .page-template-page-ai-shinjin) :is(#responsive-page, #responsive-main) > :is(.ai-cta, .link-banner, .ailit-merit, .ai-curriculum, .ailit-risk, .ai-reskilling, .ai-faq, .ainew-problem, .ainew-growth) > .inner { padding-block: 48px; }
:is(.page-template-page-ai-literacy, .page-template-page-ai-shinjin) :is(#responsive-page, #responsive-main) > :is(.ai-cta, .link-banner, .ailit-merit, .ai-curriculum, .ailit-risk, .ai-reskilling, .ai-faq, .ainew-problem, .ainew-growth):has(+ :is(.ai-cta, .link-banner, .ailit-merit, .ai-curriculum, .ailit-risk, .ai-reskilling, .ai-faq, .ainew-problem, .ainew-growth)) { margin-bottom: 0; }
:is(.page-template-page-ai-literacy, .page-template-page-ai-shinjin) :is(#responsive-page, #responsive-main) > :is(.ai-cta, .link-banner, .ailit-merit, .ai-curriculum, .ailit-risk, .ai-reskilling, .ai-faq, .ainew-problem, .ainew-growth) + :is(.ai-cta, .link-banner, .ailit-merit, .ai-curriculum, .ailit-risk, .ai-reskilling, .ai-faq, .ainew-problem, .ainew-growth) { margin-top: 0; }
:is(.page-template-page-ai-literacy, .page-template-page-ai-shinjin) :is(#responsive-page, #responsive-main) > :is(.sections, .ai-cta, .link-banner) > .inner > :last-child { margin-bottom: 0; }
:is(.page-template-page-ai-literacy, .page-template-page-ai-shinjin) :is(#responsive-page, #responsive-main) > .sections > .inner > h2 + * { margin-top: 20px; }
:is(.page-template-page-ai-literacy, .page-template-page-ai-shinjin) #responsive-page .grid-2-acordion.mt-100 { margin-top: 40px !important; }
:is(.page-template-page-ai-literacy, .page-template-page-ai-shinjin) :is(#responsive-page, #responsive-main) > .sections > .inner > :first-child { margin-top: 0; }
:is(.page-template-page-ai-literacy, .page-template-page-ai-shinjin) :is(#responsive-page, #responsive-main) > .link-banner .col2 > :last-child { margin-bottom: 0; }
:is(.page-template-page-ai-literacy, .page-template-page-ai-shinjin) :is(#responsive-page, #responsive-main) > .link-banner:has(+ script + .ai-cta) { margin-bottom: 0; }
:is(.page-template-page-ai-literacy, .page-template-page-ai-shinjin) :is(#responsive-page, #responsive-main) > .link-banner + script + .ai-cta { margin-top: 0; }
:is(.page-template-page-ai-literacy, .page-template-page-ai-shinjin) #responsive-page #ai-overview .responsive-table:last-child { margin-bottom: 0; }

/* Measure the gap to the first line of the heading, including the English label. */
.page-template-page-ai-literacy #responsive-main > .ailit-tool-guide,
:is(.page-template-page-ai-literacy, .page-template-page-ai-shinjin) #responsive-main > :is(.sections, .link-banner) > .inner { padding-block-start: 30px; }
:is(.page-template-page-ai-literacy, .page-template-page-ai-shinjin) #responsive-main > .sections > .inner > h2[data-sub] { padding-block-start: 30px; }
:is(.page-template-page-ai-literacy, .page-template-page-ai-shinjin) #responsive-main > .sections > .inner > h2[data-sub]::after { top: 0; }

/* Put the whole gap on the next heading where the background stays light. */
.page-template-page-ai-literacy #responsive-main > :is(.ai-cta, .ai-curriculum, .ailit-risk, .ai-faq) { margin-block-end: 0; }
.page-template-page-ai-literacy #responsive-main > :is(.ailit-aboutus, .ailit-problem) > .inner { padding-block-end: 0; }

.page-template-page-ai-shinjin #responsive-main > :is(.sections, .link-banner) { margin-block: 0; }
.page-template-page-ai-shinjin #responsive-main > .summary-ai > .inner { padding-block-end: 0; }
@media (width < 768px) {
  /* Reserve the height of the 1600×1400 photo as the card width changes. */
  .page-template-page-ai-shinjin .ainew-problem .box { background-size: 100% auto; padding-block-start: 87.5%; }
  .page-template-page-ai-shinjin .ainew-problem .box .right { margin-block-start: 0; }
}

/* Summary buttons: keep the icon, label and play button on one row and wrap the label by phrase. */
.summary-ai .grid-2 > :is(.mindmap, .summary-voice) { display: flex; flex-wrap: wrap; align-items: center; column-gap: 8px; }
.summary-ai .grid-2 > :is(.mindmap, .summary-voice) > .txt { flex: 1; min-width: 0; word-break: normal; word-break: auto-phrase; }
.summary-ai .grid-2 > .summary-voice > .summary-audio-progress { flex-basis: 100%; }
/* SP headings: break between phrases where supported and avoid one or two characters on the last line. */
@media (max-width: 767px) {
  :is(#responsive-page, main) :is(h1, h2, h3),
  .ailit-problem .rlt { word-break: normal; word-break: auto-phrase; text-wrap: balance; }
  .ai-cta .left-item ul li { padding-inline: 8px; font-size: 15px; word-break: normal; word-break: auto-phrase; text-wrap: balance; }
  .ai-cta .left-item ul li::before { flex-shrink: 0; width: 22px; height: 22px; margin-right: 6px; }
}
/* Online page: sections kept the old 80–140px padding; use the 48px band rhythm (bands and plain sections alternate). */
.page-online > .section:not(.section-1) { padding-block: 48px; }
.page-online > .section-1 { padding-bottom: 48px; }
/* Mission page: the text sat 25px above the grey band and the band's bottom edge. */
.page_mission > .sec1 { padding-bottom: 48px; }
.page_mission > .sec2 { padding-block: 48px; }
/* Excel / PowerPoint LP: the last Q&A link kept its 30px margin inside the band's 48px padding. */
:is(#lp-excel, #lp_powerpoint) .qa_bottom > li:last-child { margin-bottom: 0; }
/* Ordermade LP: white sections in a row sat 96–106px apart, and same-colour bands in a row left a 96px hole; use 64px. */
.page-ordermade > :is(.om-kind-section, .om-target-section, .om-growth-section, .dm-cta.om-cta) { padding-bottom: 16px; }
.page-ordermade > .faq-section + .contact-section { padding-top: 16px; }
/* The reason section carries .pt-20, which the LP's own CSS forces to 48px with !important. */
.page-ordermade > .om-subsidy-section ~ .om-reason-section { padding-top: 16px !important; }
/* Excel / PowerPoint LP: band paddings ranged 20–80px; bring the outliers to the 48px band rhythm. */
#lp-excel > .doyouknow > .doyouknow_container { padding-top: 48px; }
#lp-excel > .spredsheet,
#lp_powerpoint > .g-slider { padding-bottom: 48px; }
:is(#lp-excel, #lp_powerpoint) > .qa { padding-top: 48px; }
/* Online page: headings sat 80–100px above their content, against 20–30px elsewhere. */
.page-online .section h2 { margin-bottom: 32px; }
.page-online .section .inner > h2 + *,
.page-online .section .box > h2 + * { margin-top: 0; }
.page-online .section-flow .flex > dl:first-child { padding-top: 0; }
/* Narrow label columns made these tables very tall on phones: stack the label above its value. */
@media (max-width: 767px) {
  #page-subsidy #subsidy-cost .subsidy-table-wrap--readable > .subsidy-table > thead { display: none; }
  #page-subsidy #subsidy-cost .subsidy-table-wrap--readable > .subsidy-table :is(tbody, tr, th, td) { display: block; width: auto; }
  #page-subsidy #subsidy-cost .subsidy-table-wrap--readable > .subsidy-table th { padding: 10px 16px; border-right: 0; border-bottom: 0; }
  #page-subsidy #subsidy-cost .subsidy-table-wrap--readable > .subsidy-table td { padding: 10px 16px 14px; }
  .page-kaikaku .box.crlm table,
  .page-kaikaku .box.crlm table :is(tbody, tr, th, td) { display: block; width: auto; }
  .page-kaikaku .box.crlm table th { padding: 15px 0 6px; }
  .page-kaikaku .box.crlm table th br { display: none; }
  .page-kaikaku .box.crlm table td { padding: 0 0 15px; }
  .page-kaikaku .box.crlm > .responsive-table + .responsive-table { margin-top: -20px; }
  .page-kaikaku .box.crlm > .responsive-table + .responsive-table > table { border-top: 0; }
  #lp-excel .skill-matrix .skill-matrix-table table { table-layout: fixed; }
  #lp-excel .skill-matrix .skill-matrix-table table :is(th, td):first-child { width: 50%; word-break: normal; overflow-wrap: anywhere; }
  #lp-excel .skill-matrix .skill-matrix-table table :is(th, td):not(:first-child) { width: auto; padding-inline: 4px; text-align: center; white-space: normal; line-height: 1.4; }
  #lp-excel .skill-matrix .skill-matrix-table table thead th { vertical-align: middle; }
}
/* Case studies: stack the label above its list instead of a 50px side column. */
.jirei-card__list { grid-template-columns: minmax(0, 1fr); }
.jirei-card__list dt { justify-content: flex-start; padding: 8px 12px; }

@media (min-width: 600px) and (max-width: 768px) {
  /* The stacked guide CTA otherwise stretches its buttons across the tablet width. */
  .training-detail-cv-area__content { max-width: 480px; margin-inline: auto; }
}

@media (min-width: 768px) and (max-width: 1024px) {
  /* The check items become a card grid without the carousel icon, so the section needs its own top space. */
  #page-category #main:has(> #cat-page-sub) > #cheack6_sec { padding-top: 32px; }
  /* Keep tables and curricula on the same lines as the cards beside them. */
  #page-category #cat-page-sub > table.list,
  :is(#cat-page-detail-a, #cat-sub-detail) > .responsive-curriculum { max-width: none; }
  #page-category .section-solution .grid-2,
  .section-voice .inner .grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; }
  .lp-download-banner__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lp-download-banner__visual { width: 100%; max-width: 480px; margin-inline: auto; }
  /* Large diagrams and photos were scaled to the full tablet width. */
  .page_school .sec1 > p > img { display: block; max-width: min(100%, 720px); margin-inline: auto; }
  .page-kaikaku .section2 > .btn::after { max-width: 720px; margin-inline: auto; }
}

@media (prefers-reduced-motion: reduce) {
  body.page-template-page-faq #main.page_faq .parent::before,
  body.page-template-page-faq #main.page_faq .parent::after { transition: none; }
}
