/*
 Theme Name: ELMAPA
 Template: x-t9
 Version: 0.0.4
 Author: ELMAPA
 Description: X-T9ベースの子テーマ。theme.json主導で色・余白・タイポを管理。
*/

/* =========================================================
   01. HEADER
   --------------------------------------------------------- */

/* 01-01. Visibility helpers */
.only-sm    { display:none; }   /* 既定はPC */
.only-md-up { display:block; }
@media (max-width: 767.98px) {
  .only-sm    { display:block; }
  .only-md-up { display:none; }
}

/* 01-02. Navigation (header scope only) */
/* サブメニューの右側からスタートで表示させる */
.em-header-outer .wp-block-navigation .wp-block-navigation__submenu-container {
  left: auto !important;
  right: 0 !important;
}

/* 01-03. Header container */
header.wp-block-template-part {
  padding-top: var(--wp--custom--spacing--em-md);
  padding-bottom: var(--wp--custom--spacing--em-sm);
  min-height: 120px;
  box-sizing: border-box;
}
@media (max-width: 767.98px) {
  header.wp-block-template-part {
    /* padding-top: var(--wp--custom--spacing--em-md);  */
    padding-left: var(--wp--custom--spacing--em-md);
    min-height: 60px;
    box-sizing: border-box;
  }
}

/* 01-04. Zero out block gaps inside header */
/* header.wp-block-template-part .em-header-outer {
  --wp--style--block-gap: 0 !important;
} */

/* header.wp-block-template-part .em-header-outer .wp-block-columns {
  gap: 0 !important;
  row-gap: 0 !important;
  margin-block-start: 0;
  margin-block-end: 0;
} */

header.wp-block-template-part .sp-logo {
  gap: 0 !important;
}

/* 01-05. Title group (vertical stack) */
.title-group{
  gap: 0 !important;
}
/* 行ごとの余白をゼロにし、左だけ微調整 */
.title-group .title-en,
.title-group .title-jp{ margin:0 0 0 var(--wp--custom--spacing--em-xs) !important; }

/* 01-06. Company logo */
.company-logo {
  margin-left: var(--wp--custom--spacing--em-md);
  margin-bottom:0;
}
.company-logo img {
  width: 240px;
  height: auto;
  display: block;
}
.only-sm .company-logo-only img {
  height: auto;
  width: 40px;
  display: block;
}

/* 01-07. Title typography (common/pc/sp) */
.title-en,
.title-jp {
  font-family: var(--wp--preset--font-family--zen-old-mincho);
  font-weight: 400;
  color: var(--wp--preset--color--ink);
  margin-left: var(--wp--custom--spacing--em-md);
}
/* PC用 */
.title-en { font-size: clamp(1.75rem, 1rem + 1vw, 2rem); line-height: 1.5; }
.title-jp { font-size: clamp(1.125rem, 1rem + 0.5vw, 1.375rem); line-height: 1.3; }
/* SP用 */
.only-sm .title-en { font-size: 0.875rem !important; line-height: 1.3; letter-spacing: -0.05em; }
.only-sm .title-jp { font-size: 0.75rem !important;  line-height: 1.2; }

/* 01-08. Partner logos (header) */
.wrapp-partner-logos{}
.wrapp-partner-logos figure.pjla-logo img{ height:60px; width:auto; }
.wrapp-partner-logos figure.ilac-MRA-logo img{ height:60px; width:auto; }
.wrapp-partner-logos figure.apac-logo img{ height:40px;  width:auto; }

/* 01-09. iPad- and-down: nav paddings */
@media (max-width: 1024px) {
  .wp-block-navigation
    :where(:not(.is-vertical,
                .is-style-nav--vertical-with-hr-and-no-fold,
                .is-style-nav--vertical-with-hr))
    .wp-block-navigation-item__content {
    padding-left: 0.1rem;
    padding-right: 0.1rem;
  }
}

/* =========================================================
   02. SP MENU DESIGN
   --------------------------------------------------------- */

@media (max-width: 767.98px){
  nav.em-spnav > button.wp-block-navigation__responsive-container-open{
    position: fixed !important;
    right: calc(8px + env(safe-area-inset-right)) !important;
    top: calc( (90px - 64px) / 2 + env(safe-area-inset-top) ) !important;
    width: 64px !important; height: 64px !important; border-radius: 9999px !important;
    background: var(--wp--preset--color--brand-1) !important; color: #fff !important; z-index: 1000 !important;
    display: inline-flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important;
    box-shadow: 0 8px 20px rgba(0,0,0,.18) !important;
  }
  body.admin-bar nav.em-spnav > button.wp-block-navigation__responsive-container-open{
    top: calc( (90px - 76px) / 2 + 46px + env(safe-area-inset-top) ) !important;
  }
  nav.em-spnav > button.wp-block-navigation__responsive-container-open svg{ display: none !important; }
  nav.em-spnav > button.wp-block-navigation__responsive-container-open::before{
    --bar-w: 32px; --bar-h: 1px; --bar-gap: 7px;
    content: ""; display: block; width: var(--bar-w); height: var(--bar-h); background: currentColor;
    box-shadow: 0 calc(var(--bar-gap)) 0 currentColor, 0 calc(-1 * var(--bar-gap)) 0 currentColor;
    margin-top: 8px; margin-bottom: 16px;
  }
  nav.em-spnav > button.wp-block-navigation__responsive-container-open::after{
    content: "Menu";
    font-family: var(--wp--preset--font-family--zen-old-mincho);
    font-size: 13px; letter-spacing: .1em; line-height: 1;
  }
  @media (max-width: 360px){
    nav.em-spnav > button.wp-block-navigation__responsive-container-open{ width: 64px !important; height: 64px !important; }
  }
  .wp-block-navigation__responsive-container-close {
    top: 12px; right: 12px; width: 36px; height: 36px; padding: 6px;
  }
  .wp-block-navigation__responsive-container-close svg { width: 28px; height: 28px; }
}
/* Admin bar 32px 保険 */
@media (min-width: 782px){
  body.admin-bar nav.em-spnav > button.wp-block-navigation__responsive-container-open{
    top: calc( (90px - 76px) / 2 + 32px + env(safe-area-inset-top) ) !important;
  }
}

/* =========================================================
   03. BREADCRUMBS
   --------------------------------------------------------- */
.breadcrumbs { font-size:.9rem; color: color-mix(in oklab, var(--wp--preset--color--ink, #333) 65%, transparent); line-height:1.6; }
.breadcrumbs .home{ margin-right: 1em; }
.breadcrumbs .post, .breadcrumbs .notice_cat{ margin-left: 1em; margin-right: 1em; }
.breadcrumbs a{ color:inherit; text-decoration:none; }
.breadcrumbs a:hover{ text-decoration:underline; }
.breadcrumbs .separator{ margin:0 .45em; color:inherit; font-weight:400; }
.breadcrumbs .current-item{ font-weight:400; color:var(--wp--preset--color--ink); }

/* =========================================================
   04. HERO TITLES
   --------------------------------------------------------- */
.em-hero{ white-space:nowrap; overflow:hidden; text-overflow:clip; margin:0; }
.em-hero.en{ font-weight:400; line-height:1.2; color: var(--wp--preset--color--paper); font-size: clamp(18px, 3.2vw, 48px); }
.em-hero.ja{
  font-weight:800; color: var(--wp--preset--color--ink); letter-spacing:.03em; line-height:1.2;
  font-size: clamp(14px, 2.4vw, 24px); margin-top:.45em;
}
.em-hero.en-split{ display:flex; flex-wrap:wrap; gap: .25em; }
@media (max-width: 600px){
  .em-hero.en-split{
    flex-direction: column; align-items:left; gap:.1em;
    font-weight:400; line-height:1.2; letter-spacing:.05em; color:var(--wp--preset--color--paper);
    font-size: clamp(20px, 3.6vw, 52px);
  }
}
@media (min-width: 740px) and (max-width: 760px){
  .em-hero.en{ font-size: clamp(17px, 3.9vw, 42px); }
  .em-hero.ja{ font-size: clamp(14px, 2.6vw, 24px); font-weight:800; }
}
@media (min-width: 1024px){
  .em-hero.en{ font-size: clamp(18px, 2.9vw, 46px); }
  .em-hero.ja{ font-size: clamp(14px, 2.0vw, 26px); }
}
@media (min-width: 1024px) and (max-width: 1366px){
  .em-hero.en{ font-size: clamp(20px, 3.6vw, 52px); }
  .em-hero.ja{ font-size: clamp(16px, 2.8vw, 28px); }
}

/* スライダーの保険 ハック的スタイル 削除無用 */
.vk_slider_item_container{ padding-inline: max(16px, var(--wp--style--root--padding-left,16px)); }

/* =========================================================
   05. HEADINGS
   --------------------------------------------------------- */
/* 05-01. H2（左グレー線） */
h2.wp-block-heading.is-style-h2-default{
  font-family: var(--wp--preset--font-family--zen-old-mincho);
  font-size: clamp(1.5rem, 2.2vw, 2rem);
  font-weight: 400; letter-spacing: .2rem; line-height: 1.3;
  border-left: 5px solid var(--wp--preset--color--gray);
  padding: var(--wp--custom--spacing--em-md);
  color: var(--wp--preset--color--ink);
}
/* 05-02. H3（強調ボックス） */
h3.wp-block-heading.is-style-h3-default {
  background-color: var(--wp--preset--color--brand-1);
  color: var(--wp--preset--color--paper);
  border-radius: 4px;
  padding: var(--wp--custom--spacing--em-md) var(--wp--custom--spacing--em-md);
  font-size: clamp(1.15rem, 1.4vw, 1.35rem);
  font-weight: 400; line-height: 1.4; letter-spacing: 0.2rem;
}
/* 05-03. H4（下線） */
h4.wp-block-heading.is-style-h4-default {
  font-family: var(--wp--preset--font-family--noto-serif-jp);
  font-size: clamp(1rem, 1.1vw, 1.15rem);
  font-weight: 700; font-style: normal;
  border-bottom: 1px solid var(--wp--preset--color--border-normal);
  padding-bottom: var(--wp--custom--spacing--em-sm);
  line-height: 1.5;
}

/* 段落の左右余白（Desktopのみ） */
/* @media (min-width: 1024px) {
  p.wp-block-paragraph {
    margin-left: 1.5rem;
    margin-right: 1.5rem;
    max-width: calc(var(--wp--style--global--content-size) - 3rem);
  }
} */

/* =========================================================
   06. BANNER AREA (TOP)
   --------------------------------------------------------- */
/* .banner { flex:0 0 640px; height:240px; display:flex; flex-direction:column; gap:.5rem; overflow:hidden; border-radius:8px; background:#dff9c3; }
.banner .wp-block-cover{ flex:0 0 auto; width:100%; height:100%; padding:0; background:#ddd; }
.banner .wp-block-cover__inner-container{ padding:0; }
.banner img{ width:100%; height:100%; object-fit:cover; display:block; }
.banner p{ margin:0 .5rem .5rem; font-size:.9rem; line-height:1.4; }
@media (max-width:480px){ .banner { flex-basis:100%; height:200px; } } */

/* =========================================================
   07. GREETING (ご挨拶)
   --------------------------------------------------------- */
/* .el-related{ border:1px solid #e5e7eb; border-radius:8px; padding:12px 14px; margin:12px 0 16px; background:#fafafa; }
.el-related__title{ margin:0 0 6px; font-weight:600; font-size:.9rem; color:#555; }
.el-related ul{ margin:0; padding-left:20px; }
.el-related a{ text-decoration:underline; } */

/* =========================================================
   08. TABLES (汎用)
   --------------------------------------------------------- */
/* .wp-block-table table.general-table { border-top:1px solid #ccc; border-left:1px solid #ccc; }
.wp-block-table.table.general-table th,
.wp-block-table.table.general-table td { border-right:1px solid #ccc; border-bottom:1px solid #ccc; }
.wp-block-table.table.general-table th,
.wp-block-table.table.general-table td { padding:8px 12px; } */

/* =========================================================
   09. PJLA QUICK SKIN
   --------------------------------------------------------- */
/* .pjla-hero .wp-block-cover__inner-container { max-width: 1100px; padding: 6rem 1.5rem; }
.pjla-cta-buttons .wp-block-button + .wp-block-button { margin-left: .75rem; }
.pjla-section h2 { text-align:center; margin-bottom: 2rem; }
.pjla-cards { gap: 1.5rem; }
.pjla-card { border:1px solid #e6e8ee; border-radius:14px; padding:1rem; box-shadow:0 6px 24px rgba(0,0,0,.06); background:#fff; }
.pjla-card h3 { margin-top: .75rem; }
.pjla-metrics { background: linear-gradient(180deg,#fafbff, #f4f6fb); text-align: center; }
.pjla-metrics p { font-weight: 600; }
.pjla-news .wp-block-group { padding: .75rem 0; border-bottom: 1px solid #eee; }
.pjla-cta { background:#0b1b4a; color:#fff; border-radius:16px; margin:2rem 0; padding-left:2rem !important; padding-right:2rem !important; }
.pjla-cta .wp-block-button__link { background:#00b47b; border-radius:999px; padding:.85rem 1.5rem; }
.pjla-cta .is-style-fill .wp-block-button__link:hover { opacity:.9; } */

/* =========================================================
   10. CALLOUTS / LISTS / ICONS
   --------------------------------------------------------- */
.callout--band { background:var(--wp--preset--color--brand-1); color:#fff; font-weight:700; border-radius:6px; padding:.85rem 1rem; margin:1.5rem 0 .75rem; }
.callout--panel { background:var(--wp--preset--color--light-gray); border-radius:10px; padding:1.2rem 1.2rem .9rem; box-shadow:0 2px 0 rgba(0,0,0,.08); margin-bottom:1.5rem; }

@media (max-width: 600px){ .entry-content{ padding-inline:16px; } .callout--panel{ padding:1rem; } }
@media (max-width:600px){ .em-hero-wrap{ padding-inline:0 !important; } }

.iconlist { list-style:none; margin:0; padding:0; }
.iconlist li { display:flex; gap:.6rem; align-items:flex-start; margin:.4rem 0; }
.iconlist li::before{
  font-family:"Material Symbols Outlined";
  font-variation-settings:'FILL' 0, 'wght' 600, 'GRAD' 0, 'opsz' 24;
  font-size:1.15em; line-height:1; color: var(--wp--preset--color--Gray); margin-top:.2em;
  content:"check_circle";
}
.iconlist--check li::before{ content:"check_circle"; }
.iconlist--arrow li::before{ content:"chevron_right"; }
.iconlist--dot   li::before{ content:"lens"; font-size:.6em; margin-top:.6em; }
.iconlist--star  li::before{ content:"grade"; }
.iconlist--info  li::before{ content:"info"; }
.iconlist--done  li::before{ content:"done"; }
.iconlist--alert li::before{ content:"warning"; color:#e67e22; }
.callout--panel .iconlist li { padding:.35rem .25rem; }

/* Icons */
.icon { width:1em; height:1em; display:inline-block; }
.icon--arrow-r { width:14px; height:18px; }


/* =========================================================
   11. BIZCARD (一覧カード)
   --------------------------------------------------------- */
/* 11-01. Grid wrapper */
.em-bizcardlist{
  --cols:2; --gap:16px; --card-max:560px;
  display:grid; grid-template-columns:repeat(var(--cols), minmax(0,1fr));
  gap:var(--gap); justify-content:center;
  max-width: calc(var(--card-max) * var(--cols) + var(--gap));
  margin-left:auto; margin-right:auto;
}
.em-bizcardlist > .wp-block-shortcode{ display:contents; }
.em-bizcardlist > .em-bizcard{ width:100%; max-width:var(--card-max); }
.em-bizcardlist > .em-bizcard:last-child:nth-child(odd){ grid-column:1 / -1; justify-self:center; width:100%; max-width:var(--card-max); }
@media (max-width:1024px){ .em-bizcardlist.is-compact{ --card-max:320px; } }
@media (max-width:600px){  .em-bizcardlist.is-compact{ --card-max:100%; } }

/* 11-02. Card base */
.em-bizcard{
  position:relative; background:var(--wp--preset--color--paper,#fff);
  border-radius:0; overflow:hidden; border:1px solid var(--wp--preset--color--light-gray,#e8e8e8);
}
.em-bizcard__link{
  display:grid; grid-template:
    "img img"         max-content
    "title arrow"     max-content
    "subtitle arrow"  max-content
    / 1fr auto;
  gap:.5rem .8rem; text-decoration:none; padding:1rem 1.25rem 1.25rem; position:relative;
}
.em-bizcardlist{ --card-max:560px; --wp--style--block-gap:0 !important; align-items:stretch; }
.em-bizcardlist > *{ margin:0 !important; }
/* .em-bizcard, .em-bizcard__link{ height:100%; } */

/* 11-03. Card typography/arrow */
.em-bizcard__title{ grid-area:title; margin:0; color:var(--wp--preset--color--ink,#334886); font-weight:400; font-size:1.5rem; line-height:1.25; letter-spacing:.1em; }
.em-bizcard__titleBody{ position:relative; border-bottom:none; padding-bottom:.25em; }
.em-bizcard__titleBody::after{ content:""; position:absolute; left:0; bottom:0; width:100%; height:1px; background:#aaa; transform:scaleX(0); transform-origin:left; transition:transform .3s ease; }
.em-bizcard:hover .em-bizcard__titleBody::after{ transform:scaleX(1); }
.em-bizcard__subtitle{ grid-area:subtitle; margin:.35rem 0 0; color:#666; font-size:.95rem; line-height:1.4; }
.em-bizcard__arrow{ grid-area:arrow; justify-self:end; align-self:center; color:var(--wp--preset--color--brand-1,#334886); }
.em-bizcard__arrowIcon{ display:block; width:14px; height:18px; fill:currentColor; stroke:currentColor; transition:color .25s ease; }
@media (hover:hover){ .em-bizcard:hover .em-bizcard__arrow{ color:var(--wp--preset--color--brand-3,#35ac76); } }

/* 11-04. Image / overlay */
.em-bizcard__img{ grid-area:img; position:relative; }
.em-bizcard__imgBody{ margin:0; overflow:hidden; border-radius:0; aspect-ratio:16/9; }
.em-bizcard__imgBody img{ width:100%; height:100%; object-fit:cover; display:block; transform:scale(1.015); transition:transform .8s cubic-bezier(.23,1,.32,1); }
@media (hover:hover){ .em-bizcard:hover .em-bizcard__imgBody img{ transform:scale(1.085); } }
@media (hover:hover){ .em-bizcard__link:hover .em-bizcard__imgTxt{ opacity:1; transform:none; } }
.em-bizcard__overlay{
  position:absolute; left:0; right:0; bottom:0; height:45%;
  background: linear-gradient(to top, rgba(0,0,0,.85), rgba(0,0,0,0));
  display:flex; align-items:flex-end; justify-content:flex-start; padding:12px 14px 14px;
  color:#fff; text-align:left; text-shadow:0 2px 4px rgba(0,0,0,.35);
  opacity:0; transition:opacity .3s ease; z-index:2; pointer-events:none;
}
.em-bizcard:hover .em-bizcard__overlay{ opacity:1; }
.em-bizcard:hover .em-bizcard__imgBody img{ filter:none; }

/* 11-05. Odd row tweaks */
@media (min-width:740px) and (max-width:820px){
  .em-bizcardlist > .em-bizcard:last-child:nth-child(odd){ max-width:50%; }
}
@media (max-width:600px){
  .em-bizcardlist > .em-bizcard:last-child:nth-child(odd){ max-width:50%; }
  .em-bizcard__title{ font-size:1.125rem; line-height:1.3; letter-spacing:0; }
  .em-bizcard__subtitle{ font-size:.875rem; line-height:1.4; }
  .em-bizcard__link{ padding:.5rem; }
  .em-bizcard__imgBody{ aspect-ratio:4/3; }
  .em-bizcard__overlay{ height:55%; padding:10px 12px; font-size:.9rem; }
}

/* 11-06. Compact variants (3→2→1 columns) */
/* …（以下、元の compact 一式そのまま）… */
.em-bizcardlist.is-compact{ display:flex !important; flex-wrap:wrap; --cgap:16px; gap:var(--cgap); justify-content:center; align-items:stretch; --wp--style--block-gap:0 !important; margin-inline:auto; padding:0; }
.em-bizcardlist.is-compact > .em-bizcard{ flex:0 0 calc((100% - var(--cgap) * 2) / 3); max-width: calc((100% - var(--cgap) * 2) / 3); display:flex; flex-direction:column; }
.em-bizcard.is-compact .em-bizcard__link{ display:grid; grid-template: "img img" auto "title arrow" auto "summary arrow" 1fr / 1fr auto; gap:.5rem .7rem; padding:.9rem 1rem 1.1rem; height:100%; }
.em-bizcard.is-compact .em-bizcard__imgBody{ aspect-ratio:4/3; border-radius:8px; overflow:hidden; }
.em-bizcard.is-compact .em-bizcard__imgBody img{ width:100%; height:100%; object-fit:cover; display:block; }
.em-bizcardlist.is-compact { align-items: stretch; }
.em-bizcard.is-compact { display:flex; }
.em-bizcard.is-compact .em-bizcard__link{ display:grid !important; grid-template-areas:"img" "title" "summary" "arrow"; grid-template-rows:auto auto 1fr auto; gap:.6rem .7rem; height:100%; }
.em-bizcard.is-compact .em-bizcard__img{ grid-area:img; }
.em-bizcard.is-compact .em-bizcard__title{ grid-area:title; }
.em-bizcard.is-compact .em-bizcard__summary{ grid-area:summary; }
.em-bizcard.is-compact .em-bizcard__arrow{ grid-area:arrow; justify-self:end; align-self:end; }
.em-bizcard.is-compact .em-bizcard__imgBody{ aspect-ratio:4/3; }
.em-bizcard.is-compact .em-bizcard__imgBody img{ width:100%; height:100%; object-fit:cover; }
.em-bizcardlist.is-compact .em-bizcard__title{ font-size:clamp(16px,1.6vw,18px) !important; line-height:1.35; font-weight:500; margin:0; color:var(--wp--preset--color--ink,#333); }
.em-bizcardlist.is-compact .em-bizcard__summary{ font-size:.95rem; line-height:1.7; margin:0; color:#444; }
.em-bizcard.is-compact .em-bizcard__link{ padding:.9rem 1rem 1.1rem; }
.em-bizcardlist.is-compact{ display:flex !important; flex-wrap:wrap; --cgap:16px; gap:var(--cgap); justify-content:center; align-items:stretch; --wp--style--block-gap:0 !important; }
.em-bizcardlist.is-compact > .em-bizcard{ flex:0 0 calc((100% - var(--cgap) * 2) / 3); max-width: calc((100% - var(--cgap) * 2) / 3); margin:0 !important; display:block; }
@media (max-width:1024px){ .em-bizcardlist.is-compact > .em-bizcard{ flex:0 0 calc((100% - var(--cgap)) / 2); max-width: calc((100% - var(--cgap)) / 2); } }
@media (max-width:600px){ .em-bizcardlist.is-compact > .em-bizcard{ flex:0 0 100%; max-width:100%; } }
.em-bizcard.is-compact .em-bizcard__link{ display:grid !important; grid-template-columns:1fr auto; grid-template-rows:auto auto 1fr; grid-template-areas:"img img" "title arrow" "summary summary"; align-items:start; min-height:100%; }
.em-bizcard.is-compact .em-bizcard__img{ grid-area:img; }
.em-bizcard.is-compact .em-bizcard__title{ grid-area:title; margin:.4rem 0 0; }
.em-bizcard.is-compact .em-bizcard__summary{ grid-area:summary; margin-top:.35rem; }
.em-bizcard.is-compact .em-bizcard__arrow{ grid-area:arrow; align-self:center; }
.em-bizcard.is-compact .em-bizcard__arrowIcon{ width:12px; height:16px; }
.em-bizcard.is-compact .em-bizcard__imgBody{ aspect-ratio:4/3; overflow:hidden; }
.em-bizcard.is-compact .em-bizcard__imgBody img{ width:100%; height:100%; object-fit:cover; display:block; }
.em-bizcardlist.is-compact .em-bizcard .em-bizcard__overlay,
.em-bizcardlist.is-compact .em-bizcard:hover .em-bizcard__overlay{ display:none !important; opacity:0 !important; pointer-events:none !important; }
.em-bizcardlist.is-compact .em-bizcard__imgTxt{ display:none !important; opacity:0 !important; }
.em-bizcard.is-compact .em-bizcard__title{ font-size:1rem; }
.em-bizcard.is-compact .em-bizcard__summary{ font-size:.875rem; line-height:1.6; color:#666; overflow:hidden; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; }
.em-bizcardlist.is-compact > .em-bizcard{ display:flex; flex-direction:column; }
.em-bizcard.is-compact .em-bizcard__link{ flex:1; display:grid !important; grid-template-rows:auto auto 1fr; grid-template-columns:1fr; align-items:start; }
.em-bizcard.is-compact .em-bizcard__title{ font-size:1.125rem; line-height:1.3; letter-spacing:.02em; margin:.5rem 0 0; }
.em-bizcard.is-compact .em-bizcard__summary{ margin-top:.35rem; font-size:.9rem; line-height:1.5; }
.em-bizcard.is-compact .em-bizcard__arrow{ display:none !important; }
.em-bizcardlist.is-compact{ display:flex !important; flex-wrap:wrap; --cgap:16px; gap:var(--cgap); justify-content:center; align-items:stretch; --wp--style--block-gap:0 !important; }
.em-bizcardlist.is-compact > *{ margin:0 !important; }
.em-bizcardlist.is-compact > .em-bizcard{ flex:0 1 calc((100% - var(--cgap) * 2) / 3); max-width: calc((100% - var(--cgap) * 2) / 3); display:flex; flex-direction:column; }
@media (max-width:1024px){ .em-bizcardlist.is-compact > .em-bizcard{ flex-basis: calc((100% - var(--cgap)) / 2); max-width: calc((100% - var(--cgap)) / 2); } }
@media (max-width:600px){  .em-bizcardlist.is-compact > .em-bizcard{ flex-basis:100%; max-width:100%; } }
.em-bizcard.is-compact .em-bizcard__link{
  flex:1; display:grid !important;
  grid-template:"img" auto "title" auto "summary" 1fr / 1fr;
  gap:.6rem .8rem; padding:.9rem 1rem 1.1rem; min-height:100%;
}
.em-bizcard.is-compact .em-bizcard__img{ grid-area:img; }
.em-bizcard.is-compact .em-bizcard__imgBody{ aspect-ratio:4 / 3; border-radius:8px; overflow:hidden; }
.em-bizcard.is-compact .em-bizcard__imgBody img{ width:100%; height:100%; object-fit:cover; }
.em-bizcard.is-compact .em-bizcard__title{ grid-area:title; margin:.5rem 0 0; font-size:1.125rem; line-height:1.3; letter-spacing:.02em; }
.em-bizcard.is-compact .em-bizcard__summary{ grid-area:summary; margin:.35rem 0 0; font-size:.9rem; line-height:1.5; overflow-wrap:anywhere; }
.em-bizcard.is-compact .em-bizcard__arrow,
.em-bizcard.is-compact .em-bizcard__overlay,
.em-bizcardlist.is-compact .em-bizcard__overlay,
.em-bizcardlist.is-compact .em-bizcard__imgTxt{ display:none !important; }

/* =========================================================
   12. COMPANY TABLE (reserved)
   --------------------------------------------------------- */
/* (現在記述なし) */

/* =========================================================
   13. BLOCK PARTS CUSTOMIZE
   --------------------------------------------------------- */
.is-canvas-separator {
  border: none;
  border-top: 1px solid var(--wp--preset--color--border-normal, #cccccc);
  margin: 2em 0;
}

/* =========================================================
   14. NEWS CATEGORY BADGE
   --------------------------------------------------------- */
.taxonomy-notice_cat.wp-block-post-terms a {
  display:inline-block; padding:.25rem .6rem; border-radius:9999px;
  font-size:.75rem; font-weight:600; line-height:1.2; text-decoration:none; margin-right:.4rem;
}
.taxonomy-notice_cat.wp-block-post-terms a[href*="/news/category/info/"]{ background:#f0f0f0; color:#333; border-color:#d9d9d9; }
.taxonomy-notice_cat.wp-block-post-terms a[href*="/news/category/important/"]{ background:#fee; color:#d33; border-color:#f5b5b5; }
.taxonomy-notice_cat.wp-block-post-terms a[href*="/news/category/event/"]{ background:#e6fff2; color:#0a6; border-color:#b3e6cc; }
.taxonomy-notice_cat.wp-block-post-terms a[href*="/news/category/ir/"]{ background:#eef5ff; color:#0366d6; border-color:#b5cfff; }
.taxonomy-notice_cat.wp-block-post-terms a[href*="/news/category/seminar/"]{ background:#f7f0ff; color:#8a2be2; border-color:#d1b3f0; }

/* =========================================================
   15. TOP: NEWS / LEARNING
   --------------------------------------------------------- */
/* 15-01. News */
.em-top__newsBody { padding:2em; min-height:480px; }
.em-top__newsBodyTitle { font-size: var(--wp--preset--font-size--xx-large); letter-spacing:.2em; color:#484848; font-weight:400; }
.em-top__newsBodyList { grid-area:list; }
.em-top__newsBodyLink { width:80% }
.em-top__newsBodyLink .wp-block-button__link{ position:relative; display:inline-block; padding:.75em 1.5em; background:#fff; color:#111; border:1px solid #111; border-radius:6px; text-decoration:none; overflow:hidden; transition:color .3s ease, border-color .3s ease; z-index:0; }
.em-top__newsBodyLink .wp-block-button__link::before{ content:""; position:absolute; left:0; right:0; bottom:0; height:100%; transform:translateY(100%); background:var(--wp--preset--color--brand-1); transition:transform .35s ease; z-index:-1; }
.em-top__newsBodyLink .wp-block-button__link:hover,
.em-top__newsBodyLink .wp-block-button__link:focus-visible{ color:#fff; border-color:#111; }
.em-top__newsBodyLink .wp-block-button__link:hover::before,
.em-top__newsBodyLink .wp-block-button__link:focus-visible::before{ transform:translateY(0); }
.em-top__newsBodyLink .wp-block-button__link:focus-visible{ outline:2px solid #111; outline-offset:2px; }
@media (prefers-reduced-motion: reduce){
  .em-top__newsBodyLink .wp-block-button__link,
  .em-top__newsBodyLink .wp-block-button__link::before{ transition:none; }
}

.em-top__newsBody .wp-block-post-title{ font-weight:400; font-size: var(--wp--preset--font-size--medium); }
.em-news__postTargetTitle{ margin:1em 1.5em 0 0; padding:1em 0; line-height:1.5; }
.em-news__postTargetTitle a{ color:var(--wp--preset--color--brand-1); }
.em-news__postTargetDate{ font-size: var(--wp--preset--font-size--medium); color:var(--wp--preset--color--ink); font-variant-numeric:tabular-nums; }
.em-news__postTargetTitle a{ position:relative; color:var(--wp--preset--color--ink); text-decoration:none; transition:color .3s ease; }
.em-news__postTargetTitle a::after{ content:""; position:absolute; left:0; bottom:-2px; width:100%; height:.5px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .5s ease; }
.em-news__postTargetTitle a:hover{ color:var(--wp--preset--color--brand-1); }
.em-news__postTargetTitle a:hover::after{ transform:scaleX(1); }
.em-news__postTarget{
  display:grid; grid-template:
    "img info arrow"  max-content
    "img title arrow" max-content
    / 190px 1fr 24px;
  gap:8px 12px; padding:16px 0; border-bottom:1px solid #eee; text-decoration:none; color:inherit;
}
.em-news__postTargetInfo{ grid-area:info; display:flex; gap:12px; align-items:flex-end; margin:0; padding:0; list-style:none; color:#666; }
.em-news__postTargetInfo .time{ font-variant-numeric:tabular-nums; }
.em-news__postTargetInfo .cat{ background:#f5f5f5; border:1px solid #e5e7eb; border-radius:9999px; padding:2px 8px; font-size:.85rem; }
.em-news__postTargetImg{ grid-area:img; overflow:hidden; }
.em-news__postTargetImg img{ display:block; width:190px; height:120px; object-fit:cover; }
.em-news__postTargetArrow{ grid-area:arrow; align-self:center; width:9px; height:9px; transition:transform .2s; }
.em-news__postTarget:hover .em-news__postTargetArrow{ transform:translateX(2px); }

/* 15-02. Learning */
.em-top__learningBody { padding:2em; min-height:480px; }
.em-top__learningBody .wp-block-embed { flex:1 1 48%; }
.em-top__learningBody .wp-block-embed__wrapper { aspect-ratio:16 / 9; }
.em-top__learningBody iframe { width:100%; height:100%; }
.em-top__learningBodyTitle { font-size: var(--wp--preset--font-size--xx-large); letter-spacing:.2em; color:#484848; font-weight:400; }
.em-top__learningBodyList { grid-area:list; }
.em-top__learningBodyLink { width:80% }
.em-top__learningBodyLink .wp-block-button__link{ position:relative; display:inline-block; padding:.75em 1.5em; background:#fff; color:#111; border:1px solid #111; border-radius:6px; text-decoration:none; overflow:hidden; transition:color .3s ease, border-color .3s ease; z-index:0; }
.em-top__learningBodyLink .wp-block-button__link::before{ content:""; position:absolute; left:0; right:0; bottom:0; height:100%; transform:translateY(100%); background:var(--wp--preset--color--brand-3); transition:transform .35s ease; z-index:-1; }
.em-top__learningBodyLink .wp-block-button__link:hover,
.em-top__learningBodyLink .wp-block-button__link:focus-visible{ color:#fff; border-color:#111; }
.em-top__learningBodyLink .wp-block-button__link:hover::before,
.em-top__learningBodyLink .wp-block-button__link:focus-visible::before{ transform:translateY(0); }
.em-top__learningBodyLink .wp-block-button__link:focus-visible{ outline:2px solid #111; outline-offset:2px; }
@media (prefers-reduced-motion: reduce){
  .em-top__learningBodyLink .wp-block-button__link,
  .em-top__learningBodyLink .wp-block-button__link::before{ transition:none; }
}

/* =========================================================
   16. FOOTER
   --------------------------------------------------------- */
.em-footer-inner{ max-width:1200px; margin-inline:auto; padding-top:clamp(14px,2vw,28px); padding-bottom:clamp(8px,1.2vw,14px); }
.em-footer-columns{ display:grid; gap:clamp(16px,2.5vw,32px); grid-template-columns:minmax(260px,1fr) minmax(0,2fr); align-items:start; }
.em-footer-col--navgrid .em-footer-navgrid{ display:grid; gap:1.5em clamp(30px, 2.2vw, 40px); grid-template-columns:auto 1fr; }
.em-footer-group{ display:grid; gap:.28rem; min-width:0; }
.em-footer-heading{ margin:0 0 .2rem !important; font-weight:600; font-size:clamp(.9rem, 1.1vw, 1rem); line-height:1.4; text-align:left !important; color:inherit; }
.em-footer-heading a{ color:inherit; text-decoration:none; }
.em-footer-heading a:hover{ text-decoration:underline; text-underline-offset:.2em; }
/* nav list */
.em-footer-menu .wp-block-navigation__container{
  display:flex !important; flex-direction:column; align-items:flex-start; gap:.3rem; margin:0; padding:0 !important; list-style:none; text-align:left;
}
.em-footer-menu .wp-block-navigation-item{ align-items:flex-start !important; }
.em-footer-menu .wp-block-navigation-item__content,
.em-footer-menu .wp-block-navigation__container a{
  display:block; width:100%; font-size:.9em; font-weight:400; color:inherit; text-decoration:none; line-height:1.6;
  white-space:normal; overflow-wrap:anywhere; word-break:break-word; text-align:left !important;
}
.em-footer-menu .wp-block-navigation__container a:hover{ text-decoration:underline; }
.em-footer-group .em-footer-heading + .em-footer-menu .wp-block-navigation__container{ margin-top:.25rem; }

/* brand column */
.em-footer-logo img{ display:block; max-width: clamp(240px, 62vw, 300px); width:100%; height:auto; }
.em-footer-address{ font-size:1em; line-height:1.8; color:#333; }
@media (max-width:600px){ .em-footer-col--brand p{ font-size:.92rem; } }
.em-footer-sns.wp-block-social-links{ gap:1rem; }
.em-footer-sns .wp-block-social-link a{ padding:.25rem; line-height:1; }

/* CTA */
.em-footer-cta.wp-block-buttons{ justify-content:flex-start !important; }
.em-footer-btn--17025.wp-block-button{ flex: 0 0 clamp(200px, 22vw, 280px); max-width:100%; }
.em-footer-cta--17025 .wp-block-button__link{
  position:relative; display:block; width:100%; padding:.55em 1em;
  background:var(--wp--preset--color--light-gray); color:#111; border:1px solid #111; border-radius:6px; box-shadow:none; text-decoration:none; font-size:.85rem; overflow:hidden;
  transition:color .3s ease, border-color .3s ease, opacity .2s ease; opacity:.95; z-index:0;
}
.em-footer-cta--17025 .wp-block-button__link::before{ content:""; position:absolute; inset:0; transform:translateY(100%); background:var(--wp--preset--color--brand-3,#111); transition:transform .35s ease; z-index:-1; }
.em-footer-cta--17025 .wp-block-button__link:hover,
.em-footer-cta--17025 .wp-block-button__link:focus-visible{ color:#fff; border-color:#111; opacity:1; }
.em-footer-cta--17025 .wp-block-button__link:hover::before,
.em-footer-cta--17025 .wp-block-button__link:focus-visible::before{ transform:translateY(0); }
.em-footer-cta--17025 .wp-block-button__link:focus-visible{ outline:2px solid #111; outline-offset:2px; }

/* bottom */
@media (max-width:600px){
  .em-footer-cta{ margin-top:.7rem; }
  .em-footer-cta--quote .wp-block-button__link{ width:100%; text-align:center; }
}
.em-footer-bottom{ display:flex; gap:1rem; justify-content:space-between; align-items:center; flex-wrap:wrap; border-top:1px solid #ccc; margin-top:1rem; padding-top:clamp(5px,.8vw,9px); }
.em-footer-menu--legal .wp-block-navigation__container{ display:grid !important; grid-auto-rows:min-content; gap:.4rem; margin:0; padding:0; }
.em-footer-copy{ font-size:.875em; color:#666; text-align:center; padding:.5rem .2rem; margin:0; }
@media (max-width:960px){ .em-footer-columns{ grid-template-columns:1fr; } }
@media (max-width:600px){ .em-footer-heading{ font-size:clamp(.9rem, 1vw, .95rem); } .em-footer-inner{ padding-inline:16px; } }

/* =========================================================
   17. FORMS (PJLA / CF7)
   --------------------------------------------------------- */
.em-form--pjla{
  --em-ink: var(--wp--preset--color--ink, currentColor);
  --em-accent: var(--wp--preset--color--brand-3, #207a56);
  --em-accent2: var(--wp--preset--color--brand-1, #004a99);
  --em-muted:#666; --em-bd:#dcdcdc;
  font-size: clamp(15px, .95vw, 16px); line-height:1.7; color: var(--em-ink);
}
.em-form__intro{ margin:0 0 1.8rem; }
.em-form__set{ margin:1.8rem 0; padding:0; border:none; }
.em-form__legend{ margin:0 0 .8rem; font-weight:500; font-size:clamp(22px, 2vw, 28px); letter-spacing:.08em; color:var(--em-ink); }
.em-form__static{ background:#e8e8e8; border:1px solid var(--em-bd); padding:1rem 1.2rem; border-radius:8px; color:var(--em-ink); font-weight:400; font-size:1.2em; }
.em-form__rows{ display:grid; gap:1.2rem; }
.em-form__row{ display:flex; gap:1.2rem; align-items:center; padding:.45rem 0; }
@media (max-width:760px){ .em-form__row{ flex-direction:column; align-items:flex-start; } }
.em-form__title{ min-width:220px; font-weight:500; color:var(--em-ink); }
.em-required{ color:#c62828; font-size:.8em; vertical-align:text-top; margin-left:.2em; }
.em-input,
.em-form--pjla input[type="text"],
.em-form--pjla input[type="email"],
.em-form--pjla input[type="tel"],
.em-form--pjla textarea{
  width:100%; padding:.75em 1em; border:1px solid var(--em-bd); border-radius:8px; background:#fff; font-size:1em; transition:border-color .2s, box-shadow .2s;
}
.em-form--pjla textarea{ min-height:8.5rem; resize:vertical; }
.em-form--pjla ::placeholder{ font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN","MS PMincho",serif; color:#9a9a9a; }
.em-input:focus,
.em-form--pjla input:focus,
.em-form--pjla textarea:focus{ outline:none; background:#fff; box-shadow:0 0 0 3px color-mix(in oklab, var(--em-accent) 20%, transparent); }
.em-form__check{ text-align:center; margin:2rem 0; padding:1rem 1.2rem; border:1px solid #f5b5b5; border-radius:8px; background:#fff0f0; }
.em-form__check label{ display:inline-flex; align-items:center; gap:.6rem; font-size:1.05em; font-weight:500; color:var(--em-ink); }
.em-check__input{ width:1.2em; height:1.2em; accent-color:var(--em-accent); }
.em-form__note{ margin:1.4rem 0; color:var(--em-muted); font-size:.92em; }
.em-form__actions{ text-align:center; margin:4rem 0; }
.em-btn{
  display:inline-grid; place-items:center; font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN","MS PMincho",serif;
  width:clamp(280px, 60vw, 500px); min-height:clamp(64px, 12vw, 100px);
  padding:1.2em 1.5em; border-radius:12px; border:1px solid transparent;
  font-weight:400; font-size:clamp(24px, 1.4vw, 32px); letter-spacing:.2em;
  color:#fff; background:var(--em-accent); transition:transform .12s ease, filter .2s ease;
}
.em-btn:hover, .em-btn:focus-visible{ transform:scale(.985); filter:brightness(1.1); }

/* select / checkbox / textarea / file */
.em-select, .em-form--pjla select{
  width:100%; padding:.75em 2.5em .75em 1em; border:1px solid var(--em-bd); border-radius:8px; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23666' d='M6 8L0 0h12z'/%3E%3C/svg%3E") no-repeat right .8em center/12px auto; font-size:1em; appearance:none; -webkit-appearance:none; -moz-appearance:none;
}
@media (max-width:600px){ .em-select, .em-form--pjla select{ font-size:1.05em; padding:.9em 2.5em .9em 1em; } }
.em-check__input input[type="checkbox"]{ width:1.1em; height:1.1em; accent-color:var(--em-accent); margin-right:.5em; }
.em-form--pjla textarea{ min-height:10rem; resize:vertical; }
.em-file, .em-form--pjla input[type="file"]{
  display:block; width:100%; max-width:100%; padding:.9em 1em; border:1px solid var(--em-bd); border-radius:8px; background:#fff; font-size:1em; color:var(--em-ink); cursor:pointer; transition:border-color .2s, box-shadow .2s;
}
.em-form--pjla input[type="file"]::-webkit-file-upload-button,
.em-form--pjla input[type="file"]::file-selector-button{
  font-family:inherit; font-size:.95em; padding:.45em .9em; margin-right:.8em; border:1px solid var(--em-bd); border-radius:6px; background:var(--em-accent); color:#fff; cursor:pointer; transition: filter .2s ease, transform .12s ease;
}
.em-form--pjla input[type="file"]::-webkit-file-upload-button:hover,
.em-form--pjla input[type="file"]::file-selector-button:hover{ filter:brightness(1.08); transform:scale(.985); }
.em-form--pjla input[type="file"]{ color:var(--em-muted); }
.em-form--pjla .em-form__row{ align-items:flex-start; }

/* 強調チェック */
.em-form__check{ margin:2rem 0; padding:1rem 1.2rem; border-radius:8px; background:#fdf7f7; border:1px solid #f1c7c7; text-align:center; font-size:1.05em; }
.em-form__check input[type="checkbox"]{ transform:scale(1.2); margin-right:.5em; }

/* 提出ファイル注意 */
.em-form__files-note{
  margin:.8rem 0 1.2rem; padding:.8rem 1rem; font-size:.9em; color:#333;
  background: color-mix(in srgb, var(--em-accent) 10%, #fff);
  border: 1px solid color-mix(in srgb, var(--em-accent) 35%, #fff);
  border-radius:6px;
}



/* PC時のみ追従 */
@media (min-width: 768px) {
  .wp-block-column.is-style-default {
    position: sticky;
    top: 4rem; /* 調整 */
    align-self: flex-start;
  }
}

/* =========================================================
   18. PASSWORD FORM
   --------------------------------------------------------- */
.post-password-form{
  background:#f9f9f9; border:1px solid #ddd; border-radius:8px; padding:2rem;
  box-shadow:0 4px 12px rgba(0,0,0,0.05); max-width:500px; margin:2rem auto;
}
.post-password-form label,
.post-password-form input[type="password"],
.post-password-form input[type="submit"]{ display:inline-block; vertical-align:middle; margin:0 .5rem 0 0; }
.post-password-form label{ font-weight:bold; }
.post-password-form input[type="password"]{ width:60%; padding:.5rem; font-size:1rem; border:1px solid #ccc; border-radius:4px; }
.post-password-form input[type="submit"]{ padding:.5rem 1rem; font-size:1rem; background-color:#0073aa; color:#fff; border:none; border-radius:4px; font-weight:bold; cursor:pointer; }
.post-password-form input[type="submit"]:hover{ background-color:#005e8a; }

/* =========================================================
   19. UTILITIES (width helpers)
   --------------------------------------------------------- */
@media screen and (min-width: 768px) {
  .pc-w100per{ width:100%!important; } .pc-w90per{ width:90%!important; } .pc-w80per{ width:80%!important; }
  .pc-w75per{ width:75%!important; } .pc-w70per{ width:70%!important; } .pc-w65per{ width:65%!important; }
  .pc-w60per{ width:60%!important; } .pc-w55per{ width:55%!important; } .pc-w50per{ width:50%!important; }
}
@media screen and (max-width: 768px) {
  .sp-w100per{ width:100%!important; } .sp-w95per{ width:95%!important; } .sp-w90per{ width:90%!important; }
  .sp-w85per{ width:85%!important; } .sp-w80per{ width:80%!important; } .sp-w75per{ width:75%!important; }
  .sp-w70per{ width:70%!important; } .sp-w65per{ width:65%!important; } .sp-w60per{ width:60%!important; }
  .sp-w55per{ width:55%!important; } .sp-w50per{ width:50%!important; } .sp-w45per{ width:45%!important; }
  .sp-w40per{ width:40%!important; } .sp-w35per{ width:35%!important; } .sp-w30per{ width:30%!important; }
  .sp-w25per{ width:25%!important; } .sp-w20per{ width:20%!important; } .sp-w18per{ width:18%!important; }
  .sp-w16per{ width:16%!important; } .sp-w15per{ width:15%!important; } .sp-w14per{ width:14%!important; }
  .sp-w12per{ width:12%!important; } .sp-w10per{ width:10%!important; }
  .sp-max-w180px{ max-width:180px; }
  .sp-max-w400px{ max-width:400px!important; } .sp-max-w450px{ max-width:450px!important; }
  .sp-max-w500px{ max-width:500px!important; } .sp-max-w550px{ max-width:550px!important; }
  .sp-max-w600px{ max-width:600px!important; } .sp-max-w650px{ max-width:650px!important; }
  .sp-max-w700px{ max-width:700px!important; } .sp-max-w750px{ max-width:750px!important; }
}