/* The four recruitment actions previously wrapped beyond their 50px bar. */
@media screen and (max-width: 767px) {
  .menu-recruit-fix-tab-container { height: auto; padding-bottom: env(safe-area-inset-bottom, 0px); background: #356f2f; }
  .menu-recruit-fix-tab-container ul { display: flex; align-items: stretch; gap: 2px; }
  .menu-recruit-fix-tab-container ul li { flex: 1 1 0; min-width: 0; }
  .menu-recruit-fix-tab-container ul li a {
    box-sizing: border-box; height: 54px; min-height: 44px; padding: 5px 2px;
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
    font-size: clamp(10px, 3.08vw, 14px); line-height: 1.2; white-space: nowrap;
  }
  .menu-recruit-fix-tab-container ul li a::before {
    position: static; flex: 0 0 14px; width: 14px; height: 14px; transform: none;
  }
}
/* A 316px English word overflowed its 260px text column at a 320px viewport. */
@media screen and (max-width: 374px) {
  .title-and-description .col_title { min-width: 0; }
  .title-and-description .col_title h2 .t_main.en {
    font-size: clamp(30px, 10.5vw, 39px); overflow-wrap: anywhere;
  }
}
@media screen and (max-width: 374px) {
  body.post_name__health-management #header #header_row_2_col_2 .lead .t_main {
    font-size: clamp(28px, 9.6vw, 35px);
  }
}
/* Reserve space for the fixed recruitment bar so footer links remain reachable. */
@media screen and (max-width: 991px) {
  body:has(.menu-recruit-fix-tab-container) { padding-bottom: calc(50px + env(safe-area-inset-bottom, 0px)); }
}
@media screen and (max-width: 767px) {
  body:has(.menu-recruit-fix-tab-container) { padding-bottom: calc(54px + env(safe-area-inset-bottom, 0px)); }
}

/* Semantic phrase boundaries are authored as wbr, as in the reference sites. */
#top_about .dyex-phrase { word-break: keep-all; overflow-wrap: break-word; line-break: strict; text-wrap: pretty; }

/* Use one actual visible admin-bar offset for both halves of the fixed header. */
#header #header_row_1 #header_row_1_col_1 { top: var(--dyex-admin-offset, 0px); }
body.admin-bar #header #header_row_1 #header_row_1_col_1 { top: var(--dyex-admin-offset, 32px); }
.drawer_button { top: calc(10px + var(--dyex-admin-offset, 0px)); }
body.admin-bar .drawer_button { top: calc(10px + var(--dyex-admin-offset, 32px)); }
@media screen and (min-width: 1201px) {
  #menu-sidebar #menu-main { top: var(--dyex-admin-offset, 0px); }
  body.admin-bar #menu-sidebar #menu-main { top: var(--dyex-admin-offset, 32px); }
}
@media screen and (max-width: 1200px) {
  #sidebar #sidebar_container { top: var(--dyex-admin-offset, 0px); height: calc(100dvh - var(--dyex-admin-offset, 0px)); min-width: 0; box-sizing: border-box; }
  body.admin-bar #sidebar #sidebar_container { top: var(--dyex-admin-offset, 32px); height: calc(100dvh - var(--dyex-admin-offset, 32px)); }
  #sidebar #sidebar_container #menu-main { top: auto; }
}
@media screen and (max-width: 782px) {
  body.admin-bar #header #header_row_1 #header_row_1_col_1 { top: var(--dyex-admin-offset, 46px); }
  body.admin-bar .drawer_button { top: calc(10px + var(--dyex-admin-offset, 46px)); }
  body.admin-bar #sidebar #sidebar_container { top: var(--dyex-admin-offset, 46px); height: calc(100dvh - var(--dyex-admin-offset, 46px)); }
}

/* Temporary wrappers are removed after each entrance. */
.dyex-motion-line { display: block; white-space: pre; }
/* Replace the old parent fade only where this script owns content entrances. */
#content .inview--wrap.dyex-motion-owned { opacity: 1; transition: none; }
#content .dyex-motion-pending { opacity: .5; translate: 0 12px; }
@media (max-width:767px) { #content .dyex-motion-pending { translate: 0 8px; } }
@media (prefers-reduced-motion: reduce) {
  #content .dyex-motion-pending { opacity: 1 !important; translate: none !important; }
}
@media print { #content .dyex-motion-pending { opacity: 1 !important; translate: none !important; } }
/* Underlines respond without changing existing transforms, filters or transitions. */
@media (hover: hover) and (pointer: fine) {
  #content a[href]:hover { text-decoration-line: underline; text-decoration-thickness: 1px; text-underline-offset: .22em; }
  #content a[href]:hover .morelink { color: #356f2f; }
  #content input[type="submit"]:not(:disabled):hover, #content button:not(:disabled):hover { outline: 2px solid #356f2f; outline-offset: 3px; }
}
#content a[href]:focus-visible, #content button:focus-visible, #content input[type="submit"]:focus-visible { outline: 2px solid #356f2f; outline-offset: 4px; }
/* Photo interaction: small optical change, long deceleration, stable caption geometry. */
#top_about #top_about_tile li .top_about_tile__content_wrap::after,
#top_about #top_about_tile li:hover .top_about_tile__content_wrap::after {
  width: 101%; height: 101%; top: 0; left: 0; right: 0; bottom: 0;
  transition: transform 1.6s cubic-bezier(.33,0,.15,1); transform: scale(1);
}
#top_about #top_about_tile li .top_about_tile__content_wrap::before {
  transition: background-color .7s ease;
}
#top_about #top_about_tile li:hover .top_about_tile__content_wrap::before { background-color: rgba(0,15,10,.27); }
#top_service #top_service_img_link ul li::before,
#top_service #top_service_img_link ul li:hover::before,
a.tile img:not(.number_svg), a.tile:hover img:not(.number_svg),
#works_archive > li .work_main-image a img,
#works_archive > li .work_main-image a:hover img,
#activities__footer_nav #activities__footer_navigation > * a img {
  transition: transform 1.6s cubic-bezier(.33,0,.15,1); transform: scale(1);
}
#top_service #top_service_img_link ul li::after,
#top_service #top_service_img_link ul li:hover::after,
a.tile::after, a.tile:hover::after {
  transform: none; transition: opacity .7s ease; opacity: .4;
}
#top_abstract img { transform: none !important; transition: none; }
@media (hover: hover) and (pointer: fine) {
  #top_about #top_about_tile li:hover .top_about_tile__content_wrap::after,
  #top_service #top_service_img_link ul li:hover::before,
  a.tile:hover img:not(.number_svg),
  #works_archive > li .work_main-image a:hover img,
  #activities__footer_nav #activities__footer_navigation > * a:hover img { transform: scale(1.018); }
  #top_service #top_service_img_link ul li:hover::after, a.tile:hover::after { opacity: .27; }
}
@media (prefers-reduced-motion: reduce) {
  #top_abstract img { transform: none !important; transition: none; }
  #top_about #top_about_tile li .top_about_tile__content_wrap::after,
  #top_service #top_service_img_link ul li::before,
  a.tile img:not(.number_svg), #works_archive > li .work_main-image a img,
  #activities__footer_nav #activities__footer_navigation > * a img { transform: none !important; transition: none; }
}
/* The legacy works cards use the independent scale property, not transform. */
#corporate_works__archive li a img, #corporate_works__archive li a:hover img {
  scale: 1; transition: scale 1.6s cubic-bezier(.33,0,.15,1);
}
#corporate_works__archive li a::after, #corporate_works__archive li a:hover::after {
  background-color: rgba(0,15,10,.4); transition: background-color .7s ease;
}
@media (hover: hover) and (pointer: fine) {
  #corporate_works__archive li a:hover img { scale: 1.018; }
  #corporate_works__archive li a:hover::after { background-color: rgba(0,15,10,.27); }
}
@media (prefers-reduced-motion: reduce) {
  #corporate_works__archive li a img, #corporate_works__archive li a:hover img { scale: 1; transition: none; }
}
/* Logo, menu button and desktop navigation share one fixed 60px frame. */
#header #header_row_1 #header_row_1_col_1,
#header #header_row_1 #header_row_1_col_1.stuck {
  height: 60px; padding-top: 0; padding-bottom: 0;
  transition: background-color .5s ease;
}
#header #header_logo { position: absolute; top: 7px; left: 30px; translate: none; transform: none; display: flex; align-items: center; height: 46px; }
#header #header_logo img { width: 94px; height: auto; }
@media (min-width:1201px) {
  #menu-sidebar #menu-main, #menu-sidebar #menu-main.stuck { margin-top: 5px; }
}
/* Service overlays already contain alpha; keep the original combined opacity. */
#top_service #top_service_img_link ul li::after,
#top_service #top_service_img_link ul li:hover::after { opacity: 1; }
#works_archive > li .work_main-image a::after,
#works_archive > li .work_main-image a:hover::after { background-color: rgba(0,15,10,.4); transition: background-color .7s ease; }
@media (hover: hover) and (pointer: fine) {
  #top_service #top_service_img_link ul li:hover::after { opacity: .675; }
  #works_archive > li .work_main-image a:hover::after { background-color: rgba(0,15,10,.27); }
}
/* This legacy theme prints the narrow-screen admin bar in its footer. */
@media (max-width:600px) {
  html.dyex-adminbar-in-footer { margin-top: 0 !important; }
}

/* NERV: meaningful colour feedback may remain under reduce, capped at 150ms. */
@media (prefers-reduced-motion: reduce) {
  #top_about #top_about_tile li .top_about_tile__content_wrap::before,
  #top_service #top_service_img_link ul li::after,
  a.tile::after, #corporate_works__archive li a::after,
  #works_archive > li .work_main-image a::after,
  #header #header_row_1 #header_row_1_col_1,
  #header #header_row_1 #header_row_1_col_1.stuck { transition-duration: .15s; }
}
/* Footer only: independent natural-height columns, with an 8px spacing rhythm.
   NERV reference: yakigaya .ft__grid/minmax columns and .ft__nav hierarchy.
   Keep the existing navigation tree, labels, destinations, logo and colours. */
#footer #footer_navi #footer_navi_content {
  display: grid;
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
  align-items: start;
  gap: 48px;
  margin-top: 64px;
  margin-bottom: 80px;
}
#footer #footer_navi #footer_navi_content #footer_navi_col_1 {
  min-width: 0;
  margin-right: 0;
  white-space: normal;
}
#footer #footer_navi #footer_navi_content #footer_navi_col_1 #footer_navi_col_1_row_1 {
  margin-bottom: 32px;
}
#footer #footer_navi #footer_navi_col_2 { min-width: 0; }
#footer #footer_navi #footer_navi_content #footer_navi_col_2 #menu-footer-container > ul {
  display: block;
  columns: 2;
  column-gap: 32px;
  column-fill: balance;
  margin: 0;
  padding: 0;
}
#footer #footer_navi #footer_navi_content #menu-footer-container > ul > li {
  break-inside: avoid;
  margin: 0 0 32px;
  padding: 0;
  line-height: 1.5;
}
#footer #footer_navi #footer_navi_content #menu-footer-container > ul > li > a {
  display: inline-block;
  font-size: 15px;
  line-height: 1.5;
}
#footer #footer_navi #footer_navi_content #menu-footer-container > ul > li > .sub-menu {
  margin: 12px 0 0;
  padding: 0;
  font-size: 13px;
  line-height: 1.8;
}
#footer #footer_navi #menu-footer-container > ul > li > .sub-menu > li { margin: 0 0 4px; }
#footer #footer_navi #menu-footer-container > ul > li > .sub-menu > li:last-child { margin-bottom: 0; }
#footer #footer_navi #menu-footer-container .dyex-footer-phrase,
#footer #footer_navi #menu-footer-container .post_name__privacy-policy > a {
  white-space: nowrap;
}
@media (min-width: 1280px) {
  #footer #footer_navi #footer_navi_content #footer_navi_col_2 #menu-footer-container > ul { columns: 3; }
}
/* Make the theme's existing compact CTA values win at its intended breakpoint. */
@media (max-width: 991px) {
  #footer #footer_contact .content a span.lead_wrap span.lead_title { font-size: 24px; }
  #footer #footer_contact .content a span.lead_wrap span.lead_sub { font-size: 13px; }
}
@media (max-width: 991px) {
  #footer #footer_navi #footer_navi_content {
    grid-template-columns: minmax(0, 1fr);
    gap: 48px;
  }
  #footer #footer_navi #footer_navi_content #footer_navi_col_1 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px;
  }
  #footer #footer_navi #footer_navi_content #footer_navi_col_1 #footer_navi_col_1_row_1,
  #footer #footer_navi #footer_navi_content #footer_navi_col_1 #footer_navi_col_1_row_2 { margin-bottom: 0; }
}
@media (max-width: 639px) {
  #footer #footer_navi #footer_navi_content {
    gap: 40px;
    margin-top: 48px;
    margin-bottom: 56px;
  }
  #footer #footer_navi #footer_navi_content #footer_navi_col_1 { grid-template-columns: minmax(0, 1fr); }
  #footer #footer_navi #footer_navi_content #footer_navi_col_2 #menu-footer-container > ul { columns: 1; }
}
/* NERV minmax(0,1fr): taxonomy labels must never determine a photo's width. */
#works_archive {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 60px 4.25%;
}
#works_archive > li,
#works_archive > li > .single_work { min-width: 0; width: 100%; }
#works_archive > li > .single_work {
  display: grid;
  grid-template-rows: auto auto 1fr;
  align-content: start;
}
#works_archive > li .work_main-image { aspect-ratio: 1; min-width: 0; width: 100%; }
#works_archive > li .work_main-image > a { display: block; width: 100%; height: 100%; }
#works_archive > li .work_main-image > a > img { display: block; width: 100%; height: 100%; object-fit: cover; }
#works_archive > li .work_terms,
#works_archive > li .work_terms > ul {
  min-width: 0;
  flex-wrap: wrap;
  height: auto;
  min-height: 24px;
  align-content: start;
  gap: 6px 8px;
}
#works_archive > li .work_terms > ul { display: contents; }
#works_archive > li .work_terms { min-height: 54px; }
#works_archive > li .work_terms li { white-space: nowrap; }
#works_archive > li h3 { min-width: 0; }
@media (max-width: 991px) {
  #works_archive { grid-template-columns: minmax(0, 1fr); }
}
/* NERV wrap.css principles, scoped only to exact build-mapped text containers. */
#content .dyex-semantic { word-break: keep-all; overflow-wrap: break-word; line-break: strict; text-wrap: pretty; }
#content h1.dyex-semantic, #content h2.dyex-semantic,
#content h3.dyex-semantic, #content h4.dyex-semantic { text-wrap: balance; }
#content .dyex-semantic .kj { white-space: nowrap; }
/* NERV flex rule: one text-bearing child, with phrase wrapping inside that child. */
body.post_name__information #philosophy_company_name_abbr > .origin_ja > .dyex-origin-content { min-width: 0; }
body.post_name__information .dyex-origin-unit,
body.post_name__information #ov_list .dyex-info-term { white-space: nowrap; }
/* Passive flex copy remains one flex item; authored balloon geometry is retained. */
#content p.baloon > .dyex-flex-copy,
#content p.col_description > .dyex-flex-copy { display: block; min-width: 0; max-width: 100%; }
/* This single post contains a URL wider than a phone. Preserve its text and target. */
body.post-4617 #content .post_content a[href="https://www.instagram.com/dyex_kashiwa_kensetsu_recruit/"] {
  overflow-wrap: anywhere; word-break: normal;
}
/* Taxonomy rows are labels, not prose; wrap whole labels without semantic markup. */
.works_singular .taxonomy_row,
.works_singular .taxonomy_row > .term_list {
  min-width: 0; max-width: 100%; height: auto; min-height: 24px;
  flex-wrap: wrap; gap: 6px 8px;
}
.works_singular .taxonomy_row > .term_list { display: contents; }
.works_singular .taxonomy_row li { white-space: nowrap; }
.works_singular table.work_info { max-width: 100%; }
.works_singular table.work_info td { min-width: 0; overflow-wrap: break-word; }
/* Keep only intrinsic-shrink constraints; the measured overflow owner is the nav. */
body.post_name__description-dyex section.recruit_description_details .title-and-description > .title-and-description_col,
body.post_name__description-techno section.recruit_description_details .title-and-description > .title-and-description_col { min-width: 0; }
body.post_name__description-dyex table.recruit_description__table,
body.post_name__description-techno table.recruit_description__table { max-width: 100%; width: 100%; }
/* A column-start margin must not be carried into the next Safari column. */
#footer #footer_navi #footer_navi_content #menu-footer-container > ul > li { margin: 0; padding: 0 0 32px; }
#footer #footer_navi #footer_navi_col_1 .dyex-company-unit { white-space: nowrap; }
/* Semantic styling for the separately filtered Japanese header paragraph only. */
#header #header_row_2_col_2 .lead > p.dyex-semantic { word-break: keep-all; overflow-wrap: break-word; line-break: strict; text-wrap: pretty; }
#header #header_row_2_col_2 .lead > p.dyex-semantic .kj { white-space: nowrap; }
#breadcrumb .dyex-semantic { word-break: keep-all; overflow-wrap: break-word; }
/* Avoid the legacy caption rule turning a newly generated tiny punctuation span into a row. */
#corporate_works__archive li h2 .kj { display: inline; }
@media (prefers-reduced-motion: reduce) {
  #content .inview--wrap { opacity: 1 !important; transition: none !important; }
}
/* Candidate only: do not append to the frozen Round 2 stylesheet yet. */
@media (max-width: 767px) {
  body.post_name__information #information__certification #cert_list > li#information_cert_kenko {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
  body.post_name__information #information__certification #information_cert_kenko > .media-and-description {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
  body.post_name__information #information__certification #information_cert_kenko .col_media,
  body.post_name__information #information__certification #information_cert_kenko .col_description {
    max-width: 100%;
    min-width: 0;
  }
  body.post_name__information #information__certification #information_cert_kenko .col_media.img-of-1 > img {
    box-sizing: border-box;
    max-width: 100%;
    height: auto;
  }
}
/* The single-column testimonial grid may shrink below its text min-content. */
@media (max-width: 991px) {
  body.post_name__ceramic-bath #more_ceramic__testimonials .list {
    grid-template-columns: minmax(0, 1fr);
  }
  body.post_name__ceramic-bath #more_ceramic__testimonials .list > .item {
    box-sizing: border-box;
    min-width: 0;
    max-width: 100%;
  }
  body.post_name__ceramic-bath #more_ceramic__testimonials .list > .item > .left,
  body.post_name__ceramic-bath #more_ceramic__testimonials .list > .item > .right {
    min-width: 0;
  }
}
/* The heading is flex for its decorative rule: keep exactly one text child. */
body.post_name__group .dyex-group-company-title > .dyex-group-company-copy {
  display: block;
  min-width: 0;
  word-break: keep-all;
  overflow-wrap: normal;
}
body.post_name__group .dyex-group-company-copy > .dyex-company-name-unit {
  white-space: nowrap;
}
/* Candidate only. Frozen R3 source and previews are unchanged.
   <=991px already presents each row as a wrapped flex card, not table columns. */
@media screen and (max-width: 991px) {
  body.post_name__accomplishment table#works_posts_noimage {
    display: block;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
  body.post_name__accomplishment table#works_posts_noimage > tbody {
    display: block;
    width: 100%;
    min-width: 0;
  }
  body.post_name__accomplishment table#works_posts_noimage > tbody > tr,
  body.post_name__accomplishment table#works_posts_noimage > tbody > tr > td {
    min-width: 0;
  }
}
/* The legacy route name missed the theme's two-company 50% sizing rule. */
body.post_name__description-dyex #recruit_description__nav_tab #menu-recruit-description,
body.post_name__description-techno #recruit_description__nav_tab #menu-recruit-description {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
body.post_name__description-dyex #recruit_description__nav_tab #menu-recruit-description > li,
body.post_name__description-techno #recruit_description__nav_tab #menu-recruit-description > li {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
}
body.post_name__description-dyex #recruit_description__nav_tab #menu-recruit-description > li > a,
body.post_name__description-techno #recruit_description__nav_tab #menu-recruit-description > li > a {
  box-sizing: border-box;
  min-width: 0;
  padding-left: 8px;
  padding-right: 8px;
}
body.post_name__description-dyex .dyex-legacy-tab-copy,
body.post_name__description-techno .dyex-legacy-tab-copy {
  display: block;
  min-width: 0;
  max-width: 100%;
  word-break: keep-all;
  overflow-wrap: normal;
  line-height: 1.5;
}
body.post_name__description-dyex .dyex-legacy-tab-unit,
body.post_name__description-techno .dyex-legacy-tab-unit { white-space: nowrap; }
/* Reuse the theme's existing description/description-techno role grid
   (460px + 660px + 80px). The old description-dyex slug missed that rule. */
@media (min-width: 992px) {
  body.post_name__description-dyex section.recruit_description_details .title-and-description,
  body.post_name__description-techno section.recruit_description_details .title-and-description { gap: 80px; }
  body.post_name__description-dyex section.recruit_description_details .title-and-description > .col_title.title-and-description_col,
  body.post_name__description-techno section.recruit_description_details .title-and-description > .col_title.title-and-description_col {
    flex: 0 1 460px;
    min-width: 0;
  }
  body.post_name__description-dyex section.recruit_description_details .title-and-description > .col_description.title-and-description_col,
  body.post_name__description-techno section.recruit_description_details .title-and-description > .col_description.title-and-description_col {
    flex: 0 1 660px;
    min-width: 0;
  }
  body.post_name__ceramic-bath #more_ceramic__testimonials .list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  body.post_name__ceramic-bath #more_ceramic__testimonials .list > .item {
    box-sizing: border-box;
    min-width: 0;
    max-width: 100%;
  }
  body.post_name__ceramic-bath #more_ceramic__testimonials .list > .item > .left,
  body.post_name__ceramic-bath #more_ceramic__testimonials .list > .item > .right {
    min-width: 0;
  }
}

/* Measured access-info flex minimum, not sentence length or the icon font. */
body.post_name__information #information_access_body > .info { min-width: 0; }

/* Mid-width testimonials need room for the original profile labels and prose. */
@media (min-width: 992px) and (max-width: 1199px) {
  body.post_name__ceramic-bath .post-content_wrap #more_ceramic__testimonials .list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  body.post_name__ceramic-bath .post-content_wrap #more_ceramic__testimonials .list > .item {
    padding: 4% 3%;
  }
}
/* Retain original prose wrapping in these six testimonials; no semantic chunks. */
body.post_name__ceramic-bath #more_ceramic__testimonials .list > .item > .right > p.txt {
  word-break: normal;
  overflow-wrap: normal;
  line-break: strict;
}
/* Reuse the existing mobile break only for the measured mid-width GROUP tile. */
@media (min-width: 992px) and (max-width: 1199px) {
  #top_about #top_about_tile li#top_about_tile__group_company a span.t_wrap .t_main br.hidden--pc {
    display: inline;
  }
}

/* Keep age and name readable at their authored space; never force nowrap. */
body.post_name__ceramic-bath .post-content_wrap #more_ceramic__testimonials .list > .item p.prof {
  word-break: keep-all;
  overflow-wrap: normal;
  line-break: strict;
  text-wrap: balance;
}

/* ===== 動きを減らす設定の写し（kit tools/reduce_copy.py が作る。ここは直さない） ===== */
html[data-motion=reduce] #content .dyex-motion-pending{ opacity: 1 !important; translate: none !important; }
html[data-motion=reduce] #top_abstract img{ transform: none !important; transition: none; }
html[data-motion=reduce] #top_about #top_about_tile li .top_about_tile__content_wrap::after,html[data-motion=reduce] #top_service #top_service_img_link ul li::before,html[data-motion=reduce] a.tile img:not(.number_svg),html[data-motion=reduce] #works_archive > li .work_main-image a img,html[data-motion=reduce] #activities__footer_nav #activities__footer_navigation > * a img{ transform: none !important; transition: none; }
html[data-motion=reduce] #corporate_works__archive li a img,html[data-motion=reduce] #corporate_works__archive li a:hover img{ scale: 1; transition: none; }
html[data-motion=reduce] #top_about #top_about_tile li .top_about_tile__content_wrap::before,html[data-motion=reduce] #top_service #top_service_img_link ul li::after,html[data-motion=reduce] a.tile::after,html[data-motion=reduce] #corporate_works__archive li a::after,html[data-motion=reduce] #works_archive > li .work_main-image a::after,html[data-motion=reduce] #header #header_row_1 #header_row_1_col_1,html[data-motion=reduce] #header #header_row_1 #header_row_1_col_1.stuck{ transition-duration: .15s; }
html[data-motion=reduce] #content .inview--wrap{ opacity: 1 !important; transition: none !important; }
/* ===== 写しここまで ===== */

/* Company submenu stays in the layout and shares the same admin-bar offset as the logo. */
.post_name__information #company_info__tabs_section,
.post_name__information #company_info__tabs_section.__reached_top {
  position: sticky;
  top: calc(60px + var(--dyex-admin-offset, 0px));
  z-index: 30;
  transition: none;
}
body.admin-bar.post_name__information #company_info__tabs_section,
body.admin-bar.post_name__information #company_info__tabs_section.__reached_top {
  top: calc(60px + var(--dyex-admin-offset, 32px));
}
/* WordPress tools can wrap at intermediate desktop widths. Contain their
   floats so the existing offset sees the full toolbar height. */
@media (min-width:783px) {
  html:has(body.post_name__information.admin-bar) {
    margin-top: var(--dyex-admin-offset, 32px) !important;
  }
  body.post_name__information #wpadminbar { height: auto; min-height: 32px; }
  body.post_name__information #wpadminbar #wp-toolbar { display: flow-root; }
}
@media (max-width:782px) {
  body.admin-bar.post_name__information #company_info__tabs_section,
  body.admin-bar.post_name__information #company_info__tabs_section.__reached_top {
    top: calc(60px + var(--dyex-admin-offset, 46px));
  }
}
@media (max-width:991px) {
  .post_name__information #company_info__tabs_section.__reached_top {
    margin-bottom: var(--dyex-company-list-space, 0px);
  }
  .post_name__information #company_info__tabs_section.__reached_top #company_info__tabs {
    position: absolute;
    inset: 100% 0 auto;
    padding-inline: 30px;
    margin: 0;
  }
}
.post_name__information .dyex-company-anchor {
  scroll-margin-top: calc(60px + var(--dyex-admin-offset, 0px) + var(--dyex-company-anchor, 88px));
}
#recruit_newgrad_notice h2 { margin-bottom: .75rem; }
#group_company__techno .dyex-techno-officers {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  column-gap: 1em;
}
#group_company__techno .dyex-techno-officer {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: subgrid;
}
#group_company__techno .dyex-techno-officer > span { overflow-wrap: anywhere; }
@supports not (grid-template-columns: subgrid) {
  #group_company__techno .dyex-techno-officer {
    grid-template-columns: 9em minmax(0, 1fr);
    column-gap: 1em;
  }
}
/* Safari otherwise sizes the stacked overview table to the widest row. */
@media (max-width:991px) {
  #information__overview #information_overview_body { min-width: 0; max-width: 100%; }
  #information__overview #ov_list { width: 100%; table-layout: fixed; }
  #information__overview #ov_list td { overflow-wrap: anywhere; }
}

/* Keep the home news ticker inside the green panel at narrow widths. */
@media (max-width: 991px) {
  section#top_news_pickup #top_news li .news_ticker {
    flex: 1 1 0;
    min-width: 0;
  }
  section#top_news_pickup #top_news li .news_ticker a {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    align-content: center;
    align-items: baseline;
    gap: 12px;
    height: 60px;
  }
  section#top_news_pickup #top_news li .news_ticker a::after {
    display: none;
  }
  section#top_news_pickup #top_news li .news_ticker .date {
    display: block;
    flex-shrink: 0;
  }
  section#top_news_pickup #top_news li .news_ticker .post_title {
    min-width: 0;
    line-height: 1.35;
    overflow-wrap: anywhere;
  }
}
@media (max-width: 600px) {
  section#top_news_pickup {
    height: 104px;
  }
  section#top_news_pickup .content {
    display: grid;
    grid-template-rows: 28px minmax(0, 1fr);
    align-items: stretch;
  }
  section#top_news_pickup h1 {
    font-size: 20px;
    justify-self: start;
  }
  section#top_news_pickup #top_news {
    height: auto;
  }
  section#top_news_pickup #top_news li {
    display: grid;
    grid-template-rows: minmax(0, 1fr) 23px;
    gap: 0;
    justify-content: stretch;
  }
  section#top_news_pickup #top_news li .news_ticker {
    align-self: center;
  }
  section#top_news_pickup #top_news li .news_ticker a {
    height: 48px;
  }
  section#top_news_pickup #top_news li > a {
    justify-self: end;
  }
}
@media (max-width: 359px) {
  section#top_news_pickup {
    height: 112px;
  }
  section#top_news_pickup #top_news li .news_ticker a {
    height: 58px;
  }
}

/* Draw the responsive menu as white strokes over the header image. */
@media (max-width: 1200px) {
  #sidebar input[type="checkbox"] + .drawer_button {
    background: transparent;
    border: 0;
    filter: drop-shadow(0 1px 2px rgba(0, 15, 10, .55));
  }
  #sidebar .drawer_button span,
  #sidebar .drawer_button span::before,
  #sidebar .drawer_button span::after {
    background-color: #fff;
  }
}

/* Keep the entry heading below the fixed mobile navigation on arrival. */
@media (max-width: 991px) {
  body.post_name__entry #page {
    scroll-margin-top: calc(80px + var(--dyex-admin-offset, 0px));
  }

  /* iOS Safari zooms on focus when editable text is smaller than 16px. */
  body:is(.post_name__contact, .post_name__contact-error, .post_name__entry, .post_name__entry-error)
    #contact__body .inquiry :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], textarea) {
    font-size: 16px;
  }
}

/* Break the recruiting tab label between the two parts of the company name. */
#menu-recruit-local .dyex-recruit-label-part {
  display: inline-block;
  max-inline-size: 100%;
  overflow-wrap: anywhere;
}

/* Keep the home link's tap area while reducing the mobile logo artwork. */
@media (max-width: 767px) {
  #header #header_logo {
    display: flex;
    align-items: center;
    height: 46px;
  }
  #header #header_logo img { width: 86px; }
}
.dyex-mobile-phrase {
  display: inline-block;
  max-inline-size: 100%;
  word-break: normal;
  overflow-wrap: anywhere;
}

/* Let the partners' activity list shrink to its mobile column. */
@media (max-width: 991px) {
  .post_name__group #group_company__partner .media-and-description .col_description { min-width: 0; }
  .post_name__group #group_partner_activities { overflow-wrap: anywhere; }
}

@media (max-width: 400px) {
  .post_name__information #header #header_row_2_col_2 .t_wrap .t_main {
    font-size: min(40px, 10vw);
  }
}

@media (max-width: 359px) {
  .post_name__personal-customers .personal-works__single_work .highlights_wrap {
    display: block;
  }
  .post_name__personal-customers .personal-works__single_work .highlights_body ul {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    line-height: 1.55;
  }
  .post_name__personal-customers .personal-works__single_work .highlights_body ul li {
    display: block;
    min-width: 0;
  }
  .post_name__recruit #recruit__interview .col_media h3::before,
  .post_name__recruit-dyex-techno #recruit__interview .col_media h3::before {
    min-width: 56px;
    width: 56px;
    height: 74px;
  }
  .post_name__recruit #recruit__interview .col_media h3 .t_main,
  .post_name__recruit-dyex-techno #recruit__interview .col_media h3 .t_main { font-size: 19px; }
  #recruit__interview h3 .t_main .dyex-mobile-phrase:first-child { white-space: nowrap; }
}

/* News on phones: a shallow image band, a type block, and the news index. */
@media (max-width: 767px) {
  body:is(.post_name__news, .news_archive) #header {
    aspect-ratio: auto;
  }
  body:is(.post_name__news, .news_archive) #header #header_row_2 {
    position: relative;
    z-index: auto;
  }
  body:is(.post_name__news, .news_archive) #header #header_row_2 #header_row_2_col_1 {
    width: 100%;
    height: clamp(168px, 53vw, 228px);
    aspect-ratio: auto;
  }
  body:is(.post_name__news, .news_archive) #header #header_row_2 #header_row_2_col_1::after {
    background: linear-gradient(to bottom, rgba(0, 15, 10, .55), rgba(0, 15, 10, .08) 70%);
    opacity: 1;
  }
  body:is(.post_name__news, .news_archive) #header #header_row_2_col_2 {
    position: static;
    display: block;
    width: auto;
    max-width: none;
    padding: 23px 30px 17px;
    color: #18261d;
    background: #fff;
  }
  body:is(.post_name__news, .news_archive) #header #header_row_2_col_2 .t_main {
    display: block;
    font-size: clamp(28px, 8.25vw, 36px);
    line-height: 1.06;
    letter-spacing: .005em;
  }
  body:is(.post_name__news, .news_archive) #header #header_row_2_col_2 .t_main .green { color: inherit; }
  body:is(.post_name__news, .news_archive) #header #header_row_2_col_2 .t_wrap .t_main .hidden--pc { display: none; }
  body:is(.post_name__news, .news_archive) #header #header_row_2_col_2 .t_sub {
    display: block;
    margin-top: 5px;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.45;
    letter-spacing: .035em;
  }
  body:is(.post_name__news, .news_archive) #news_navigation .page.content {
    padding-block: 8px 16px;
  }
  body:is(.post_name__news, .news_archive) #news_navigation #news_nav_category {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0 8px;
    font-size: 14px;
  }
  body:is(.post_name__news, .news_archive) #news_navigation #news_nav_category li {
    height: auto;
    margin: 0;
    padding: 0;
  }
  body:is(.post_name__news, .news_archive) #news_navigation #news_nav_category a {
    display: flex;
    align-items: center;
    min-height: 30px;
  }
  body:is(.post_name__news, .news_archive) #news_navigation #nav_year { margin-top: 12px; }
  body:is(.post_name__news, .news_archive) .list_news li a {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr) 30px;
    gap: 7px 13px;
    padding-block: 15px 17px;
  }
  body:is(.post_name__news, .news_archive) .list_news li a .date { color: #4d5a50; }
  body:is(.post_name__news, .news_archive) .list_news li a .tag.term_box {
    min-width: 0;
    justify-self: start;
    padding: 5px 8px;
    background: #edf3e9;
    color: #36512c;
  }
  body:is(.post_name__news, .news_archive) .list_news li a .title {
    grid-column: 1 / 3;
    margin: 0;
    padding: 0;
    overflow: visible;
    white-space: normal;
    font-size: 16px;
    line-height: 1.5;
    line-break: strict;
  }
  body:is(.post_name__news, .news_archive) .list_news .lead_button_arrow {
    grid-column: 3;
    grid-row: 1 / span 2;
    position: relative;
    top: auto;
    transform: none;
    width: 30px;
    height: 30px;
  }
}

/* Keep desktop navigation, logo, and contact aligned on one 60px row. */
@media (min-width: 1201px) {
  #header #header_logo { width: 110px; }
  #header #header_row_1 #header_row_1_col_1 {
    background: linear-gradient(to bottom, rgba(0, 15, 10, .64), rgba(0, 15, 10, .25));
  }
  #header #header_row_1 #header_row_1_col_1.stuck { background: rgba(0, 15, 10, .85); }
  #menu-sidebar #menu-main,
  #menu-sidebar #menu-main.stuck {
    right: 30px;
    min-width: 0;
    height: 60px;
    margin: 0;
  }
  #menu-sidebar #menu-main > li:not(.post_name__contact) > a {
    display: flex;
    align-items: center;
    height: 60px;
    padding: 0 clamp(9px, 1vw, 15px);
    line-height: 1.2;
    white-space: nowrap;
  }
  #menu-sidebar #menu-main > li:not(.post_name__contact) .sub-menu {
    top: calc(60px + var(--dyex-admin-offset, 0px));
    width: min(1236px, 100vw - 60px);
  }
  #menu-sidebar #menu-main > li:not(.post_name__contact):focus-within .sub-menu {
    opacity: 1;
    visibility: visible;
  }
  #menu-sidebar #menu-main > li.post_name__contact > a {
    width: 136px;
    height: 40px;
    margin-left: 12px;
    background: #82b555;
    color: #172a1a;
  }
  #menu-sidebar #menu-main > li.post_name__contact > a::before {
    display: grid;
    place-items: center;
    height: 100%;
    padding: 0;
    letter-spacing: .09em;
  }
  #menu-sidebar #menu-main > li.post_name__contact > a:is(:hover, :focus-visible) { background: #007748; color: #fff; }
  #menu-sidebar #menu-main > li > a:focus-visible { outline: 2px solid #f4f7f1; outline-offset: -3px; }
}

/* Let the data-page introduction share the row with the existing fixed tile grid. */
@media (min-width: 992px) {
  .post_name__recruit-dyex-techno #recruit__data .col_description { min-width: 0; }
}

/* Homepage headline: fixed phrase breaks and a quiet, legible image gradient. */
body.post_name__top #header #header_row_2_col_2 .lead:has(.dyex-hero-type) {
  bottom: clamp(96px, 11vw, 174px);
  height: auto;
  min-height: 0;
  display: block;
  max-width: 100%;
  font-family: "Helvetica Neue", Arial, sans-serif;
  font-size: clamp(40px, 5.15vw, 82px);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -.025em;
  color: #f8faf6;
}
body.post_name__top .dyex-hero-type { display: block; }
body.post_name__top .dyex-hero-destination { display: block; margin-top: .08em; }
body.post_name__top .dyex-hero-accent { color: #b0d589; font-weight: 600; }
body.post_name__top #header #header_row_2:has(.dyex-hero-type) #header_row_2_col_1::after {
  background: linear-gradient(to bottom, rgba(0, 15, 10, .46), rgba(0, 15, 10, .22) 27%, rgba(0, 15, 10, .52) 58%, rgba(0, 15, 10, .66) 100%);
  opacity: 1;
}
@media (max-width: 767px) {
  body.post_name__top #header #header_row_2_col_2 .lead:has(.dyex-hero-type) {
    bottom: clamp(69px, 20vw, 124px);
    font-size: clamp(27px, 8.6vw, 44px);
    line-height: 1.035;
    letter-spacing: -.018em;
  }
  body.post_name__top .dyex-hero-intro,
  body.post_name__top .dyex-hero-verb { display: block; }
  body.post_name__top .dyex-hero-destination { margin-top: 0; }
}

@media (max-width: 767px) {
  body:is(.post_name__news, .news_archive) #news_navigation #news_nav_category li.current_page {
    border-bottom-color: #548144;
  }
  body:is(.post_name__news, .news_archive) #news_navigation #news_nav_category li.current_page > a:any-link {
    color: #36512c;
    font-weight: 600;
  }
}

/* Home news: a continuous band on the same left and right grid as the hero. */
section#top_news_pickup.dyex-news-band {
  position: relative;
  height: auto;
  background: #82b555;
  color: #172a1a;
}
section#top_news_pickup.dyex-news-band .content {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr) max-content;
  align-items: center;
  gap: 0 clamp(22px, 3vw, 52px);
  width: auto;
  height: auto;
  min-height: 68px;
  margin-inline: auto;
  background: transparent;
  color: inherit;
  transform: none;
}
section#top_news_pickup.dyex-news-band h1 {
  height: auto;
  margin: 0;
  padding: 0;
  font: 700 18px/1.2 "Helvetica Neue", Arial, sans-serif;
  letter-spacing: .06em;
}
section#top_news_pickup.dyex-news-band h1 a {
  display: inline-flex;
  align-items: center;
  height: auto;
  min-height: 32px;
  margin: 0;
  padding: 0;
}
section#top_news_pickup.dyex-news-band a:any-link { color: inherit; }
section#top_news_pickup.dyex-news-band a:is(:hover, :focus-visible) { text-decoration: underline; text-underline-offset: .18em; }
section#top_news_pickup.dyex-news-band #top_news { width: 100%; height: auto; min-width: 0; }
section#top_news_pickup.dyex-news-band #top_news > li { display: block; height: auto; }
section#top_news_pickup.dyex-news-band #top_news .news_ticker a {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  align-items: baseline;
  align-content: center;
  gap: 12px;
  box-sizing: border-box;
  height: 52px;
  padding: 0;
  color: #172a1a;
}
section#top_news_pickup.dyex-news-band #top_news .news_ticker a::after { display: none; }
section#top_news_pickup.dyex-news-band #top_news .date {
  display: block;
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
section#top_news_pickup.dyex-news-band #top_news .post_title { line-height: 1.35; }
section#top_news_pickup.dyex-news-band .dyex-news-more {
  display: inline-flex;
  align-items: center;
  justify-self: end;
  min-height: 32px;
  gap: 8px;
  font: 600 13px/1.2 "Helvetica Neue", Arial, sans-serif;
  white-space: nowrap;
}
section#top_news_pickup.dyex-news-band .dyex-news-more::after { content: "→"; font: 400 18px/1 Arial, sans-serif; }
@media (max-width: 767px) {
  section#top_news_pickup.dyex-news-band .content {
    grid-template-columns: minmax(0, 1fr) max-content;
    gap: 0 12px;
    min-height: 0;
    padding-block: 6px 8px;
  }
  section#top_news_pickup.dyex-news-band h1 { font-size: 16px; }
  section#top_news_pickup.dyex-news-band #top_news { grid-column: 1 / -1; grid-row: 2; }
  section#top_news_pickup.dyex-news-band .dyex-news-more { grid-column: 2; grid-row: 1; }
  section#top_news_pickup.dyex-news-band #top_news .news_ticker a { height: 40px; }
}
@media (max-width: 359px) {
  section#top_news_pickup.dyex-news-band #top_news .news_ticker a { height: 55px; }
}

/* Moving the band into flow removes the need for the old overlap clearance. */
#top_news_pickup.dyex-news-band + #top_service .section_header {
  padding-top: clamp(58px, 7vw, 110px);
}
@media (max-width: 767px) {
  #top_news_pickup.dyex-news-band + #top_service .section_header {
    padding-top: clamp(38px, 10vw, 60px);
  }
  #top_news_pickup.dyex-news-band + #top_service .section_header .content_wrap {
    padding-top: 0;
  }
}

/* Give the ABOUT introduction the same left edge as the tiles below it. */
#top_about > .section_header {
  padding-block: clamp(28px, 4.1vw, 54px) clamp(34px, 4.1vw, 58px);
}
#top_about > .section_header .content_wrap {
  margin-right: auto;
  padding-block: 0;
}
#top_about > .section_header .content_wrap > h1 {
  height: auto;
  width: auto;
  margin: 0;
}
#top_about > .section_header h1 .h_main {
  font-size: clamp(35px, 4.1vw, 54px);
  line-height: .96;
  letter-spacing: -.042em;
}
#top_about > .section_header h1 .h_sub {
  margin-top: .5rem;
  font-size: clamp(13px, 1.22vw, 18px);
  letter-spacing: .05em;
}
#top_about > .section_header h1::after {
  position: static;
  margin-top: clamp(15px, 1.7vw, 26px);
}
#top_about > .section_header .content_wrap > p {
  max-width: 35em;
  margin: 0;
  font-size: clamp(15px, 1.23vw, 18px);
  line-height: 1.85;
}
#top_abstract {
  max-width: min(1200px, 100% - 60px);
  margin-inline: auto;
  aspect-ratio: 3.2;
}
#top_abstract img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 56% 45%;
}
@media (min-width: 992px) {
  #top_about > .section_header .content_wrap {
    display: grid;
    grid-template-columns: minmax(0, 4fr) minmax(0, 7fr);
    align-items: start;
    column-gap: clamp(28px, 4vw, 72px);
  }
  #top_about > .section_header .content_wrap > h1 { grid-column: 1; }
  #top_about > .section_header .content_wrap > p { grid-column: 2; }
}
@media (max-width: 991px) {
  #top_about > .section_header .content_wrap > p { margin-top: 22px; }
  #top_abstract { aspect-ratio: 2.2; }
}
@media (max-width: 599px) {
  #top_abstract { aspect-ratio: 16 / 9; }
}

/* Keep the original tile image below the decoded alternate and caption. */
#top_about #top_about_tile .dyex-tile-dissolve { isolation: isolate; }
#top_about #top_about_tile li .top_about_tile__content_wrap.dyex-tile-dissolve::after,
#top_about #top_about_tile li:hover .top_about_tile__content_wrap.dyex-tile-dissolve::after {
  z-index: -2;
  transform: none;
  transition: none;
}
#top_about #top_about_tile li .dyex-tile-dissolve::before {
  z-index: 0;
  background-image: linear-gradient(to top, rgba(0, 15, 10, .88), rgba(0, 15, 10, .13) 50%, transparent 76%);
  background-color: rgba(0, 15, 10, .10);
}
#top_about #top_about_tile .dyex-tile-dissolve a .t_main .green { color: #a4d877; }
#top_about #top_about_tile .dyex-tile-dissolve a:focus-visible {
  outline: 2px solid white;
  outline-offset: -5px;
}
.dyex-tile-photos,
.dyex-tile-photos img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.dyex-tile-photos { z-index: -1; }
.dyex-tile-photos img { display: block; object-fit: cover; }
.dyex-tile-grid-wrap { position: relative; }
.dyex-tile-motion {
  position: absolute;
  right: 0;
  bottom: 100%;
  min-height: 44px;
  z-index: 1;
  border: 0;
  padding: 0 4px 0 12px;
  background: transparent;
  color: #254121;
  font: inherit;
  font-size: 13px;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: .24em;
}
.dyex-tile-motion[hidden] { display: none; }
#top_abstract,
#top_about,
#top_about_tile__recruit { scroll-margin-top: 68px; }
#top_about_tile { scroll-margin-top: calc(114px + var(--dyex-admin-offset, 0px)); }

#top_about #top_about_tile li#top_about_tile__other .top_about_tile__content_wrap::after {
  background-image: url(./dyex-tile-other-reception-v1.webp);
  filter: saturate(.78);
}
