/* page-sub.css — サブページ固有スタイル */
/* ═══════════════════════════════════════════════════
   SUB PAGE COMMON
   ═══════════════════════════════════════════════════ */

/* ── PAGE HERO ── */
.ly_pageHero { background: var(--ivory); padding: 52px 0 0; }
.ly_pageHero_inner { max-width: 1180px; margin: 0 auto; padding: 0 40px; }
.bl_pageHero_label { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.bl_pageHero_labelLine { width: 20px; height: 3px; background: var(--orange); border-radius: 2px; }
.bl_pageHero_labelText { font-size: 0.6875rem; font-weight: 700; letter-spacing: .18em; color: var(--orange); text-transform: uppercase; }
.bl_pageHero_title { font-family: var(--ff-serif); font-size: clamp(28px, 3.5vw, 44px); font-weight: 800; color: var(--text); line-height: 1.3; margin-bottom: 32px; }
.ly_pageHero_img { width: 100%; height: 340px; border-radius: var(--radius); overflow: hidden; }
.ly_pageHero_img .el_imgPh { height: 100%; }

/* ── PAGE CATCH ── */
.ly_pageCatch { padding: 64px 0 72px; background: var(--ivory); }
.ly_pageCatch_inner { max-width: 1180px; margin: 0 auto; padding: 0 40px; }
.bl_pageCatch_quote { font-family: var(--ff-serif); font-size: clamp(20px, 2.5vw, 28px); font-weight: 800; color: var(--text); line-height: 1.6; margin-bottom: 24px; text-align: center; }
.bl_pageCatch_quote .el_emphasis { color: var(--orange); font-style: normal; }
.bl_pageCatch_text { font-size: 0.875rem; line-height: 2; color: var(--muted); }

/* ── Q SECTION ── */
.ly_qSection { padding: 80px 0; }
.ly_qSection--alt { background: var(--cream); }
.ly_qSection_inner { max-width: 1180px; margin: 0 auto; padding: 0 40px; }
.bl_qHeading { display: flex; align-items: center; gap: 16px; margin-bottom: 32px; }
.bl_qHeading_q { width: 44px; height: 44px; border-radius: 50%; background: var(--orange); color: #fff; font-family: var(--ff-sans); font-size: 1.125rem; font-weight: 900; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.bl_qHeading_text { font-family: var(--ff-serif); font-size: clamp(18px, 2.2vw, 26px); font-weight: 800; color: var(--text); flex: 1; padding-bottom: 14px; border-bottom: 2px dashed var(--border); }
.ly_qSection_lead { font-size: 0.875rem; line-height: 2; color: var(--muted); margin-bottom: 40px; }

/* ── FEATURE BOXES ── */
.ly_featureBoxes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 36px; }
.bl_featureBox { /* background: var(--orange-ll); */ background:#fff; border-radius: var(--radius); padding: 28px 24px; border: 1.5px solid var(--border-l); }
.bl_featureBox_num { font-family: var(--ff-serif); font-size: 2.25rem; font-weight: 800; color: var(--orange); line-height: 1; margin-bottom: 12px; }
.bl_featureBox_title { font-size: 0.875rem; font-weight: 700; color: var(--text); margin-bottom: 8px; }
.bl_featureBox_text { font-size: 0.75rem; line-height: 1.9; color: var(--muted); }

/* ── TIMELINE ── */
.bl_timeline { position: relative; padding-left: 44px; margin-top: 8px; }
.bl_timeline::before { content: ''; position: absolute; left: 13px; top: 8px; bottom: 8px; width: 2px; background: var(--border); }
.bl_timelineItem { position: relative; margin-bottom: 44px; }
.bl_timelineItem:last-child { margin-bottom: 0; }
.bl_timelineItem::before { content: ''; position: absolute; left: -35px; top: 7px; width: 14px; height: 14px; border-radius: 50%; background: var(--orange); border: 2px solid #fff; box-shadow: 0 0 0 2px var(--orange); z-index: var(--z-base); }
.bl_timelineItem_time { display: inline-block; font-family: var(--ff-sans); font-size: 0.6875rem; font-weight: 700; color: var(--orange); letter-spacing: .1em; background: var(--orange-l); padding: 2px 10px; border-radius: 100px; margin-bottom: 8px; }
.bl_timelineItem_title { font-family: var(--ff-serif); font-size: 1.125rem; font-weight: 800; color: var(--text); margin-bottom: 8px; }
.bl_timelineItem_text { font-size: 0.875rem; line-height: 2; color: var(--muted); }

/* ── WORK BLOCK ── */
.bl_workBlock { margin-bottom: 64px; }
.bl_workBlock:last-child { margin-bottom: 0; }
.bl_workBlock_header { display: flex; align-items: center; gap: 14px; margin-bottom: 6px; }
.bl_workBlock_tag { font-size: 0.625rem; font-weight: 700; background: var(--orange); color: #fff; padding: 3px 12px; border-radius: 100px; font-family: var(--ff-sans); flex-shrink: 0; }
.bl_workBlock_title { font-family: var(--ff-serif); font-size: clamp(18px, 2vw, 24px); font-weight: 800; color: var(--text); }
.bl_workBlock_divider { height: 2px; background: linear-gradient(90deg, var(--border) 0%, transparent 100%); margin-bottom: 20px; }
.bl_workBlock_text { font-size: 0.875rem; line-height: 2; color: var(--muted); }

/* ── PHOTO GRID ── */
.ly_photoGrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 24px; }
.ly_photoGrid--2 { grid-template-columns: repeat(2, 1fr); }
.ly_photoGrid_item { border-radius: var(--radius-sm); overflow: hidden; }
.ly_photoGrid_item .el_imgPh { height: 180px; }
.photo-grid__caption { font-size: 0.6875rem; color: var(--muted); margin-top: 6px; text-align: center; }

/* ── ACTIVITY BLOCK ── */
.bl_activityBlock { margin-bottom: 56px; }
.bl_activityBlock:last-child { margin-bottom: 0; }
.bl_activityBlock_label { display: flex; align-items: center; gap: 10px; font-family: var(--ff-serif); font-size: clamp(17px, 1.8vw, 22px); font-weight: 800; color: var(--text); margin-bottom: 16px; }
.bl_activityBlock_label::before { content: '●'; color: var(--orange); font-size: 0.625rem; }
.bl_activityBlock_text { font-size: 0.875rem; line-height: 2; color: var(--muted); margin-bottom: 4px; }
.bl_activityBlock_link { display: inline-flex; align-items: center; gap: 6px; font-size: 0.8125rem; font-weight: 700; color: var(--orange); text-decoration: none; border-bottom: 1.5px solid var(--orange); padding-bottom: 2px; margin-top: 12px; transition: opacity .2s; }
.bl_activityBlock_link:hover { opacity: .7; }

/* ── BTN CENTER / OUTLINE ── */
.el_btnCenter { text-align: center; margin-top: 8px; }
.el_btnOutline { display: inline-flex; align-items: center; gap: 8px; font-size: 0.875rem; font-weight: 700; color: var(--orange); text-decoration: none; padding: 14px 32px; border: 2px solid var(--orange); border-radius: 100px; transition: background .2s, color .2s; }
.el_btnOutline:hover { background: var(--orange); color: #fff; }
.ly_linkRow { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; }

/* ── CONDITION CARD (users) ── */
.bl_conditionCard { background: #fff; border-radius: var(--radius); border: 1.5px solid var(--border-l); overflow: hidden; box-shadow: var(--shadow); margin-bottom: 48px; }
.bl_conditionCard_head { background: var(--orange-l); padding: 16px 28px; display: flex; align-items: center; gap: 12px; border-bottom: 1.5px solid var(--border-l); }
.bl_conditionCard_headTitle { font-family: var(--ff-serif); font-size: 1rem; font-weight: 800; color: var(--text); }
.bl_conditionCard_body { padding: 28px; }
.bl_conditionTable { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.bl_conditionTable th { width: 160px; text-align: left; padding: 14px 20px; font-weight: 700; color: var(--brown-m); background: var(--orange-ll); border-bottom: 1px solid var(--border-l); vertical-align: top; }
.bl_conditionTable td { padding: 14px 20px; color: var(--text); border-bottom: 1px solid var(--border-l); line-height: 1.9; }
.bl_conditionTable tr:last-child th, .bl_conditionTable tr:last-child td { border-bottom: none; }
.el_tagList { display: flex; flex-wrap: wrap; gap: 8px; }
.el_tag { display: inline-block; font-size: 0.75rem; font-weight: 600; padding: 4px 12px; border-radius: 100px; background: var(--orange-l); color: var(--orange-d); }

/* ── VOICE H-CARD (users / zaitaku) ── */
.bl_voiceHCard { background: #fff; border-radius: var(--radius); border: 1.5px solid var(--border-l); overflow: hidden; display: flex; align-items: stretch; margin-bottom: 32px; box-shadow: var(--shadow); }
.bl_voiceHCard_img { width: 240px; flex-shrink: 0; overflow: hidden; }
.bl_voiceHCard_img .el_imgPh { height: 100%; width: 100%; }
.bl_voiceHCard_body { padding: 28px 32px; display: flex; flex-direction: column; flex: 1; }
.bl_voiceHCard_badge { display: inline-block; width: fit-content; font-size: 0.625rem; font-weight: 700; padding: 3px 12px; border-radius: 100px; background: var(--orange-l); color: var(--orange); margin-bottom: 14px; }
.bl_voiceHCard_quote { font-family: var(--ff-serif); font-size: 1.062rem; font-weight: 800; color: var(--text); line-height: 1.55; margin-bottom: 14px; padding-left: 12px; border-left: 3px solid var(--orange); }
.bl_voiceHCard_name { font-size: 0.8125rem; font-weight: 600; color: var(--text); margin-bottom: 4px; }
.bl_voiceHCard_info { font-size: 0.75rem; color: var(--muted); margin-bottom: 14px; line-height: 1.8; }
.bl_voiceHCard_pills { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 18px; }
.bl_voiceHCard_pill { font-size: 0.625rem; padding: 3px 10px; border: 1px solid var(--border); border-radius: 100px; color: var(--muted); }
.bl_voiceHCard_meta { font-size: 0.75rem; color: var(--muted); margin-bottom: 18px; line-height: 1.7; }
.bl_voiceHCard_qs { display: flex; flex-direction: column; gap: 14px; }
.bl_voiceHCard_q { font-size: 0.75rem; font-weight: 700; color: var(--orange); margin-bottom: 4px; }
.bl_voiceHCard_a { font-size: 0.8125rem; color: var(--text); line-height: 1.85; }

/* ── WORK SECTION (work.html) ── */
.ly_workSection { padding: 80px 0; }
.ly_workSection--alt { background: var(--cream); }
.ly_workSection_inner { max-width: 1180px; margin: 0 auto; padding: 0 40px; }
.bl_workSection_tag { display: inline-block; font-size: 0.6875rem; font-weight: 700; background: var(--orange); color: #fff; padding: 4px 14px; border-radius: 100px; margin-bottom: 14px; font-family: var(--ff-sans); }
.bl_workSection_title { font-family: var(--ff-serif); font-size: clamp(22px, 2.8vw, 36px); font-weight: 800; color: var(--text); line-height: 1.3; margin-bottom: 8px; }
.bl_workSection_divider { height: 2px; background: linear-gradient(90deg, var(--border) 0%, transparent 100%); margin-bottom: 28px; }
.bl_workSection_lead { font-size: 0.875rem; line-height: 2; color: var(--muted); margin-bottom: 40px; }
.bl_activityImg { border-radius: var(--radius); overflow: hidden; margin-top: 32px; }
.bl_activityImg .el_imgPh { height: 320px; }
.ly_pcGrid { display: grid; grid-template-columns: 1fr 360px; gap: 48px; align-items: start; }
.bl_pcCategories { display: flex; flex-direction: column; gap: 20px; }
.bl_pcCat { background: #fff; border-radius: var(--radius-sm); border: 1.5px solid var(--border-l); padding: 20px 24px; }
.bl_pcCat_label { font-size: 0.6875rem; font-weight: 700; letter-spacing: .1em; color: var(--orange); margin-bottom: 10px; text-transform: uppercase; }
.bl_pcCat_items { display: flex; flex-wrap: wrap; gap: 8px; }
.bl_pcCat_item { font-size: 0.8125rem; color: var(--text); display: flex; align-items: center; gap: 6px; }
.bl_pcCat_item::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--orange-m); flex-shrink: 0; }
.bl_pcImg { border-radius: var(--radius); overflow: hidden; }
.bl_pcImg .el_imgPh { height: 320px; }

/* PC WORK — 交互配置レイアウト */
.bl_pcRow { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; margin-bottom: 56px; }
.bl_pcRow:last-child { margin-bottom: 0; }
.bl_pcRow--reverse { direction: rtl; }
.bl_pcRow--reverse > * { direction: ltr; }
.bl_pcRow_img { border-radius: var(--radius); overflow: hidden; }
.bl_pcRow_img img { display: block; width: 100%; height: 280px; object-fit: cover; }
.bl_pcRow_body {}
.bl_pcRow_label { font-size: 0.75rem; font-weight: 700; letter-spacing: .1em; color: var(--orange); margin-bottom: 12px; }
.bl_pcRow_title { font-family: var(--ff-serif); font-size: clamp(18px, 2vw, 22px); font-weight: 800; color: var(--text); margin-bottom: 14px; }
.bl_pcRow_text { font-size: 0.8125rem; line-height: 2; color: var(--muted); margin-bottom: 18px; }
.bl_pcRow_skills { display: flex; flex-wrap: wrap; gap: 8px; }
.bl_pcRow_skill { font-size: 0.75rem; color: var(--text); background: var(--orange-ll); padding: 4px 12px; border-radius: 100px; }
/* 下段コンパクトカード */
.ly_pcSubGrid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.bl_pcSub { background: #fff; border-radius: var(--radius-sm); border: 1.5px solid var(--border-l); padding: 24px; }
.bl_pcSub_label { font-size: 0.75rem; font-weight: 700; letter-spacing: .1em; color: var(--orange); margin-bottom: 10px; }
.bl_pcSub_text { font-size: 0.8125rem; line-height: 1.9; color: var(--muted); margin-bottom: 14px; }
.bl_pcSub_skills { display: flex; flex-wrap: wrap; gap: 8px; }
.bl_pcSub_skill { font-size: 0.75rem; color: var(--text); background: var(--orange-ll); padding: 4px 12px; border-radius: 100px; }

/* ── WORK CARDS (zaitaku) ── */
.bl_workLabel { font-size: 0.8125rem; font-weight: 700; color: var(--text); letter-spacing: .06em; margin-bottom: 16px; display: flex; align-items: center; gap: 8px; }
.bl_workLabel::before { content: '●'; color: var(--orange); font-size: 0.5rem; }
.ly_workGrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.bl_workCard { background: #fff; border-radius: var(--radius); border: 1.5px solid var(--border-l); overflow: hidden; transition: transform .3s var(--ease-out), box-shadow .3s; }
.bl_workCard:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.bl_workCard_img { height: 160px; overflow: hidden; }
.bl_workCard_img .el_imgPh { height: 100%; }
.bl_workCard_body { padding: 20px 20px 24px; }
.bl_workCard_title { font-family: var(--ff-serif); font-size: 1.062rem; font-weight: 800; color: var(--text); margin-bottom: 8px; }
.bl_workCard_text { font-size: 0.75rem; line-height: 1.8; color: var(--muted); }

/* ── HOUJIN PAGE ── */
.ly_houjinSec { padding: 80px 0; }
.ly_houjinSec--alt { background: var(--cream); }
.ly_houjinSec_inner { max-width: 1180px; margin: 0 auto; padding: 0 40px; }
.bl_houjinHd { margin-bottom: 40px; }
.bl_houjinHd_en { font-size: 0.6875rem; font-weight: 700; letter-spacing: .22em; color: var(--orange); text-transform: uppercase; margin-bottom: 10px; display: flex; align-items: center; gap: 12px; }
.bl_houjinHd_en::before, .bl_houjinHd_en::after { content: ''; flex-shrink: 0; width: 20px; height: 2px; background: var(--orange); border-radius: 2px; }
.bl_houjinHd_ja { font-family: var(--ff-serif); font-size: clamp(22px, 2.5vw, 32px); font-weight: 800; color: var(--text); padding-bottom: 16px; border-bottom: 2px dashed var(--border); }
.bl_houjinAbout { display: grid; grid-template-columns: 1fr 340px; gap: 56px; align-items: start; }
.bl_houjinAbout_text { font-size: 0.9375rem; line-height: 2.1; color: var(--text); }
.bl_houjinAbout_card { background: var(--orange-ll); border: 1.5px solid var(--border-l); border-radius: var(--radius); padding: 28px 24px; }
.bl_houjinAbout_cardLabel { font-size: 0.6875rem; font-weight: 700; letter-spacing: .12em; color: var(--orange); margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px solid var(--border); }
.bl_houjinAbout_dl { display: grid; grid-template-columns: auto 1fr; gap: 10px 16px; font-size: 0.8125rem; }
.bl_houjinAbout_dt { font-weight: 700; color: var(--muted); white-space: nowrap; }
.bl_houjinAbout_dd { color: var(--text); }
.ly_enkGrid { display: block; }
.ly_accessGrid { display: grid; grid-template-columns: 1fr 380px; gap: 48px; align-items: start; }
.bl_accessMap { border-radius: var(--radius); overflow: hidden; border: 1px solid var(--border-l); }
.bl_accessMap .el_imgPh { height: 400px; background: linear-gradient(135deg, #E8F4F8, #BFD9E8); }
.bl_accessInfoCard { background: #fff; border-radius: var(--radius); border: 1px solid var(--border-l); padding: 28px 28px 24px; box-shadow: var(--shadow); }
.bl_accessInfoLogo { display: flex; align-items: center; gap: 10px; margin-bottom: 20px; }
.bl_accessInfoLogo img { height: 44px; width: auto; display: block; }
.bl_accessLogoText { display: flex; flex-direction: column; justify-content: center; height: 44px; }
.bl_accessLogoText_sub { font-family: 'BIZ UDPMincho', serif; font-size: 0.625rem; font-weight: 400; letter-spacing: .12em; color: #555; line-height: 1.2; }
.bl_accessLogoText_main { font-family: 'BIZ UDPMincho', serif; font-size: 1.25rem; font-weight: 700; letter-spacing: .06em; color: #111; line-height: 1.1; }
.bl_accessTable { width: 100%; border-collapse: collapse; font-size: 0.8125rem; }
.bl_accessTable tr { border-bottom: 1px solid var(--border-l); }
.bl_accessTable tr:last-child { border-bottom: none; }
.bl_accessTable th { padding: 12px 12px 12px 0; font-weight: 700; color: var(--muted); text-align: left; vertical-align: top; white-space: nowrap; font-size: 0.75rem; width: 52px; }
.bl_accessTable td { padding: 12px 0; color: var(--text); line-height: 1.7; }
.bl_accessTable td a { color: var(--orange); text-decoration: none; }
.bl_accessTable td a:hover { text-decoration: underline; }
.ly_kokaiList { list-style: none; }
.bl_kokaiItem { border-bottom: 1px solid var(--border-l); }
.bl_kokaiItem:first-child { border-top: 1px solid var(--border-l); }
.bl_kokaiItem_inner { display: flex; align-items: flex-start; gap: 16px; padding: 24px 0; }
.bl_kokaiItem_dot { width: 10px; height: 10px; border-radius: 50%; background: var(--orange); flex-shrink: 0; margin-top: 6px; }
.bl_kokaiItem_body { flex: 1; }
.bl_kokaiItem_title { font-size: 0.9375rem; font-weight: 700; color: var(--text); margin-bottom: 6px; }
.bl_kokaiItem_sub { font-size: 0.8125rem; color: var(--muted); line-height: 1.7; margin-bottom: 10px; }
.bl_kokaiItem_link { display: inline-flex; align-items: center; gap: 6px; font-size: 0.75rem; font-weight: 700; color: var(--orange); text-decoration: none; padding: 4px 14px; border: 1.5px solid var(--orange); border-radius: 100px; transition: background .2s, color .2s; }
.bl_kokaiItem_link:hover { background: var(--orange); color: #fff; }
.kokai-note { margin-top: 32px; padding: 20px 24px; background: var(--orange-ll); border: 1px solid var(--border-l); border-radius: var(--radius); font-size: 0.8125rem; line-height: 2; color: var(--muted); }
.kokai-note a { color: var(--orange); font-weight: 700; }


/* ── VOICE PAGE ── */
.ly_voiceListSec { padding: 60px 0 80px; }
.ly_voiceListSec_inner { max-width: 1000px; margin: 0 auto; padding: 0 40px; }
.voice-lead { max-width: 700px; margin: 0 auto 48px; text-align: center; }
.voice-lead__catch { font-family: var(--ff-serif); font-size: clamp(20px, 3vw, 26px); font-weight: 600; color: var(--text); margin-bottom: 16px; line-height: 1.6; }
.voice-lead__text { font-size: 0.875rem; line-height: 2; color: var(--muted); }
.bl_voiceFilter { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 36px; padding-bottom: 20px; border-bottom: 2px solid var(--border); }
.bl_voiceFilter_label { font-size: 0.6875rem; font-weight: 700; letter-spacing: .08em; color: var(--muted); margin-right: 4px; }
.ly_voiceList { display: flex; flex-direction: column; gap: 28px; }

/* ── STAFF PAGE ── */
.staff-sec { padding: 60px 0 80px; }
.staff-sec__inner { max-width: 1100px; margin: 0 auto; padding: 0 40px; }
.staff-lead { max-width: 680px; margin: 0 auto 48px; text-align: center; }
.staff-lead__title { font-family: var(--ff-serif); font-size: clamp(20px, 2.5vw, 24px); font-weight: 600; color: var(--text); margin-bottom: 16px; }
.staff-lead__text { font-size: 0.875rem; line-height: 2; color: var(--muted); }
.staff-filter { display: flex; align-items: center; justify-content: space-between; margin-bottom: 36px; padding-bottom: 20px; border-bottom: 2px solid var(--border); }
.staff-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-bottom: 48px; }
.staff-card { background: #fff; border-radius: var(--radius); border: 1.5px solid var(--border-l); overflow: hidden; text-align: center; padding-bottom: 28px; transition: transform .3s var(--ease-out), box-shadow .3s; }
.staff-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.staff-card__img { height: 220px; overflow: hidden; margin-bottom: 20px; }
.staff-card__img .el_imgPh { height: 100%; }
.staff-card__dept { font-size: 0.6875rem; font-weight: 700; letter-spacing: .08em; color: var(--muted); margin-bottom: 4px; }
.staff-card__name { font-family: var(--ff-serif); font-size: 1.125rem; font-weight: 600; color: var(--text); margin-bottom: 16px; }
.staff-card__motto { font-size: 0.8125rem; line-height: 1.9; color: var(--muted); padding: 0 24px; margin-bottom: 20px; }
.staff-card__btn { display: inline-flex; align-items: center; gap: 6px; font-size: 0.75rem; font-weight: 700; color: var(--orange); text-decoration: none; padding: 8px 20px; border: 1.5px solid var(--orange); border-radius: 100px; transition: background .2s, color .2s; }
.staff-card__btn:hover { background: var(--orange); color: #fff; }

/* ── PORTFOLIO PAGE ── */
.ly_portfolioSec { padding: 60px 0 80px; }
.ly_portfolioSec_inner { max-width: 1100px; margin: 0 auto; padding: 0 40px; }
.bl_portfolioLead { max-width: 680px; margin: 0 auto 48px; text-align: center; }
.bl_portfolioLead_text { font-size: 0.9375rem; line-height: 2; color: var(--muted); }
.bl_portfolioFilter { display: flex; gap: 0; border-radius: var(--radius-sm); overflow: hidden; border: 1.5px solid var(--border); margin-bottom: 40px; }
.bl_portfolioFilter_tab { flex: 1; text-align: center; padding: 14px 20px; font-size: 0.8125rem; font-weight: 700; text-decoration: none; color: var(--muted); background: #fff; border-right: 1px solid var(--border); transition: background .2s, color .2s; }
.bl_portfolioFilter_tab:last-child { border-right: none; }
.bl_portfolioFilter_tab.is-active, .bl_portfolioFilter_tab:hover { background: var(--orange); color: #fff; }
.ly_portfolioGrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-bottom: 48px; }
.bl_portfolioCard { background: #fff; border-radius: var(--radius); border: 1.5px solid var(--border-l); overflow: hidden; transition: transform .3s var(--ease-out), box-shadow .3s; text-decoration: none; }
.bl_portfolioCard:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.bl_portfolioCard_img { height: 180px; overflow: hidden; }
.bl_portfolioCard_img .el_imgPh { height: 100%; }
.bl_portfolioCard_body { padding: 20px; }
.bl_portfolioCard_client { font-size: 0.6875rem; font-weight: 700; letter-spacing: .06em; color: var(--muted); margin-bottom: 6px; }
.bl_portfolioCard_title { font-size: 0.875rem; font-weight: 700; color: var(--text); margin-bottom: 8px; line-height: 1.5; }
.bl_portfolioCard_text { font-size: 0.75rem; line-height: 1.8; color: var(--muted); display: -webkit-box; -webkit-line-clamp: 3; line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* ── CONTACT PAGE ── */
.ly_contactSec { padding: 60px 0 80px; }
.ly_contactSec_inner { max-width: 800px; margin: 0 auto; padding: 0 40px; }
.bl_contactTelBlock { text-align: center; padding: 48px 40px; /*background: var(--ivory);*/ background: #fff; border-radius: var(--radius); border: 1px solid var(--border-l); margin-bottom: 60px; }
.bl_contactTelBlock_lead { font-size: 0.9375rem; color: var(--text); line-height: 2; margin-bottom: 28px; }
.bl_contactTelBlock_num { display: inline-flex; align-items: center; gap: 10px; font-family: var(--ff-sans); font-size: 2.75rem; font-weight: 700; color: var(--text); text-decoration: none; letter-spacing: .04em; transition: color .2s; }
.bl_contactTelBlock_num:hover { color: var(--orange); }
.bl_contactTelBlock_hours { font-size: 0.8125rem; color: var(--muted); margin-top: 12px; }
.bl_contactTelBlock_privacy { font-size: 0.75rem; color: var(--muted); margin-top: 16px; }
.bl_contactTelBlock_privacy a { color: var(--orange); font-weight: 700; }
.bl_contactAccessTitle { font-family: var(--ff-serif); font-size: 1.25rem; font-weight: 600; color: var(--text); margin-bottom: 24px; padding-left: 14px; border-left: 4px solid var(--orange); }
.bl_contactMap { border-radius: var(--radius); overflow: hidden; margin-bottom: 28px; }
.bl_contactMap .el_imgPh { height: 380px; }
.bl_contactInfo { /*background: var(--ivory);*/ background: #fff; border: 1px solid var(--border-l); border-radius: var(--radius); padding: 28px 32px; }
.bl_contactInfo_name { font-family: var(--ff-serif); font-size: 1.062rem; font-weight: 600; color: var(--text); margin-bottom: 4px; }
.bl_contactInfo_sub { font-size: 0.75rem; color: var(--muted); margin-bottom: 16px; }
.bl_contactInfo_table { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.bl_contactInfo_table th { width: 100px; padding: 10px 0; color: var(--muted); font-weight: 600; text-align: left; vertical-align: top; }
.bl_contactInfo_table td { padding: 10px 0; color: var(--text); border-bottom: 1px solid var(--border-l); line-height: 1.7; }
.bl_contactInfo_table tr:last-child td { border-bottom: none; }

/* ── SCHEDULE PAGE ── */
.ly_scheduleSec { padding: 60px 0 80px; }
.ly_scheduleSec_inner { max-width: 900px; margin: 0 auto; padding: 0 40px; }
.schedule-block { margin-bottom: 72px; }
.schedule-block__head { display: flex; align-items: center; gap: 16px; padding: 20px 24px; background: var(--ivory); border-radius: var(--radius); border: 1px solid var(--border-l); margin-bottom: 36px; flex-wrap: wrap; }
.schedule-block__tag { font-size: 0.6875rem; font-weight: 700; letter-spacing: .08em; padding: 4px 14px; border-radius: 100px; background: var(--orange); color: #fff; white-space: nowrap; }
.schedule-block__tag--tele { background: var(--leaf); }
.schedule-block__name { font-family: var(--ff-serif); font-size: 1.125rem; font-weight: 600; color: var(--text); }
.schedule-block__detail { font-size: 0.8125rem; color: var(--muted); margin-left: auto; }
.schedule-timeline { position: relative; padding-left: 88px; }
.schedule-timeline::before { content: ''; position: absolute; left: 32px; top: 12px; bottom: 12px; width: 2px; background: var(--border); border-radius: 2px; }
.schedule-item { position: relative; display: grid; grid-template-columns: 1fr; gap: 6px; margin-bottom: 32px; }
.schedule-item::before { content: ''; position: absolute; left: -64px; top: 14px; width: 12px; height: 12px; border-radius: 50%; background: var(--orange); border: 3px solid #fff; box-shadow: 0 0 0 2px var(--orange-m); }
.schedule-item__time { position: absolute; left: -88px; top: 10px; font-family: var(--ff-sans); font-size: 0.75rem; font-weight: 700; color: var(--orange); width: 46px; text-align: right; }
.schedule-item__header { display: flex; align-items: center; gap: 10px; }
.schedule-item__icon { font-size: 1.25rem; flex-shrink: 0; }
.schedule-item__title { font-size: 0.9375rem; font-weight: 700; color: var(--text); }
.schedule-item__text { font-size: 0.8125rem; line-height: 1.9; color: var(--muted); }
.schedule-item__img { margin-top: 12px; border-radius: var(--radius-sm); overflow: hidden; }
.schedule-item__img .el_imgPh { height: 160px; }

/* ── SCHEDULE PAGE (tab layout) ── */
.bl_schTabs { display: flex; border: 2px solid var(--orange); border-radius: var(--radius-sm); overflow: hidden; margin-bottom: 52px; }
.bl_schTab { flex: 1; padding: 18px 16px; background: #fff; border: none; border-right: 1.5px solid var(--orange); cursor: pointer; text-align: center; transition: background .2s; }
.bl_schTab:last-child { border-right: none; }
.bl_schTab_name { display: block; font-size: 0.9375rem; font-weight: 700; color: var(--orange); transition: color .2s; }
.bl_schTab_type { display: block; font-size: 0.6875rem; color: var(--muted); margin-top: 4px; transition: color .2s; }
.bl_schTab.is-active { background: var(--orange); }
.bl_schTab.is-active .bl_schTab_name { color: #fff; }
.bl_schTab.is-active .bl_schTab_type { color: rgba(255,255,255,.8); }
.bl_schPanel { display: none; }
.bl_schPanel.is-active { display: block; }
.bl_schProfile { display: flex; align-items: center; gap: 14px; padding: 18px 24px; background: var(--ivory); border-radius: var(--radius); margin-bottom: 40px; flex-wrap: wrap; }
.bl_schProfile_tag { flex-shrink: 0; font-size: 0.6875rem; font-weight: 700; letter-spacing: .08em; padding: 5px 14px; border-radius: 100px; background: var(--orange); color: #fff; }
.bl_schProfile_tag--tele { background: var(--leaf); }
.bl_schProfile_name { font-family: var(--ff-serif); font-size: 1.125rem; font-weight: 600; color: var(--text); }
.bl_schProfile_detail { margin-left: auto; font-size: 0.8125rem; color: var(--muted); }
.bl_schTimeline { position: relative; max-width: 760px; }
.bl_schTimeline::before { content: ''; position: absolute; left: 106px; top: 28px; bottom: 20px; width: 2px; background: linear-gradient(to bottom, var(--orange-l), var(--border-l)); border-radius: 2px; }
.bl_schItem { display: flex; align-items: flex-start; margin-bottom: 28px; }
.bl_schItem:last-child { margin-bottom: 0; }
.bl_schItem_time { width: 88px; flex-shrink: 0; font-family: var(--ff-sans); font-size: 1.312rem; font-weight: 900; color: var(--orange); text-align: right; padding-top: 5px; line-height: 1; letter-spacing: -.01em; }
.bl_schItem_conn { width: 36px; flex-shrink: 0; display: flex; justify-content: center; padding-top: 11px; z-index: var(--z-base); }
.bl_schItem_dot { width: 12px; height: 12px; border-radius: 50%; background: var(--orange); border: 2px solid #fff; box-shadow: 0 0 0 2px var(--orange-l); flex-shrink: 0; }
.bl_schItem_body { flex: 1; display: flex; gap: 14px; align-items: flex-start; }
.bl_schItem_icon { flex-shrink: 0; width: 38px; height: 38px; border-radius: 50%; background: var(--ivory); border: 1.5px solid var(--border-l); display: flex; align-items: center; justify-content: center; color: var(--orange); }
.bl_schItem_content { flex: 1; padding-top: 2px; }
.bl_schItem_title { font-size: 0.9375rem; font-weight: 700; color: var(--text); margin-bottom: 6px; line-height: 1.4; }
.bl_schItem_text { font-size: 0.8125rem; line-height: 1.9; color: var(--muted); margin: 0; }
.bl_schItem_img { margin-top: 12px; border-radius: var(--radius-sm); overflow: hidden; }
.bl_schItem_img .el_imgPh { height: 160px; }

/* ── PRIVACY PAGE ── */
.ly_policySec { padding: 60px 0 80px; }
.ly_policySec_inner { max-width: 780px; margin: 0 auto; padding: 0 40px; }
.bl_policyIntro { font-size: 0.875rem; line-height: 2.1; color: var(--text); margin-bottom: 48px; padding-bottom: 32px; border-bottom: 1px solid var(--border); }
.bl_policyItem { margin-bottom: 40px; padding-bottom: 40px; border-bottom: 1px solid var(--border-l); }
.bl_policyItem:last-of-type { border-bottom: none; }
.bl_policyItem_title { font-family: var(--ff-serif); font-size: 1.188rem; font-weight: 600; color: var(--text); margin-bottom: 16px; padding-left: 14px; border-left: 4px solid var(--orange); }
.policy-item__text { font-size: 0.875rem; line-height: 2.1; color: var(--text); }
.bl_policyDate { font-size: 0.8125rem; color: var(--muted); margin-top: 48px; text-align: right; }
.bl_policyContactBox { background: var(--ivory); border-radius: var(--radius-sm); padding: 24px 28px; margin-top: 20px; font-size: 0.875rem; line-height: 2; }
.bl_policyContactBox_name { font-weight: 700; margin-bottom: 4px; }


/* ── NEWS LIST PAGE ── */
.ly_newsListSec { padding: 60px 0 80px; }
.ly_newsListSec_inner { max-width: 1100px; margin: 0 auto; padding: 0 40px; }

.bl_newsFilter {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 36px;
  padding-bottom: 20px;
  border-bottom: 2px solid var(--border);
}
.bl_newsFilter_tabs { display: flex; gap: 8px; flex-wrap: wrap; }
.bl_newsFilter_tab {
  font-size: 0.75rem; font-weight: 700; letter-spacing: .06em;
  padding: 8px 20px; border-radius: 100px;
  border: 1.5px solid var(--border);
  background: #fff; color: var(--muted);
  cursor: pointer; text-decoration: none;
  transition: background .2s, color .2s, border-color .2s;
}
.bl_newsFilter_tab.is-active,
.bl_newsFilter_tab:hover { background: var(--orange); color: #fff; border-color: var(--orange); }
.bl_newsFilter_sort {
  display: flex; align-items: center; gap: 6px;
  font-size: 0.75rem; color: var(--muted); white-space: nowrap;
}

.ly_newsGrid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-bottom: 48px;
}
.bl_newsCard {
  background: #fff; border-radius: var(--radius);
  border: 1.5px solid var(--border-l);
  overflow: hidden; text-decoration: none; color: inherit;
  display: flex; flex-direction: column;
  transition: transform .3s var(--ease-out), box-shadow .3s;
}
.bl_newsCard:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.bl_newsCard_img { position: relative; height: 155px; overflow: hidden; }
.bl_newsCard_thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.bl_newsCard_img .el_imgPh { height: 100%; }
.bl_newsCard_badge {
  position: absolute; top: 10px; left: 10px;
  font-size: 0.625rem; font-weight: 700; letter-spacing: .06em;
  padding: 3px 10px; border-radius: 100px; color: #fff;
}
.bl_newsCard_badge.el_tagEvent, .bl_newsCard_badge.el_tagAbilympics { background: var(--orange); }
.bl_newsCard_badge.el_tagInfo  { background: var(--leaf); }
.bl_newsCard_badge.el_tagTrain { background: #4A7A18; }
.bl_newsCard_body { padding: 16px; flex: 1; display: flex; flex-direction: column; gap: 8px; }
.bl_newsCard_title {
  font-size: 0.8125rem; font-weight: 500; line-height: 1.65; color: var(--text); flex: 1;
  display: -webkit-box; -webkit-line-clamp: 3; line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.bl_newsCard_date { font-family: var(--ff-sans); font-size: 0.6875rem; font-weight: 600; color: var(--muted); }

/* ── PAGINATION ── */
.bl_pagination, .wp-pagenavi { display: flex; justify-content: center; align-items: center; gap: 8px; margin-top: 12px; }
.bl_pagination_item, .current, .wp-pagenavi .page, .wp-pagenavi .previouspostslink, .wp-pagenavi .nextpostslink {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: 50%;
  border: 1.5px solid var(--border); background: #fff;
  font-size: 0.875rem; font-weight: 600; color: var(--text);
  text-decoration: none; transition: background .2s, color .2s, border-color .2s;
}
.bl_pagination_item:hover,
.wp-pagenavi .page:hover,
.wp-pagenavi .previouspostslink:hover,
.wp-pagenavi .nextpostslink:hover,
.bl_pagination_item.is-current, .current { background: var(--orange); color: #fff; border-color: var(--orange); }
.bl_pagination_item--arrow { font-size: 1rem; color: var(--muted); }

/* ── NEWS ARTICLE (detail page) ── */
/* ── VOICE ARTICLE ── */
.ly_voiceArticleSec { padding: 60px 0 80px; }
.bl_voiceArticle { /* max-width: 800px; */ max-width: 1180px; margin: 0 auto; padding: 0 40px; }
.bl_voiceArticle_breadcrumb { display: flex; align-items: center; gap: 8px; font-size: 0.75rem; color: var(--muted); margin-bottom: 36px; }
.bl_voiceArticle_breadcrumb a { color: var(--orange); text-decoration: none; }
.bl_voiceArticle_breadcrumb a:hover { text-decoration: underline; }
.bl_voiceArticle_profile {
  display: grid; grid-template-columns: 200px 1fr; gap: 32px;
  background: #fff; border-radius: var(--radius); border: 1.5px solid var(--border-l);
  overflow: hidden; margin-bottom: 56px; box-shadow: var(--shadow);
}
.bl_voiceArticle_profileImg { overflow: hidden; }
.bl_voiceArticle_profileImg .el_imgPh { height: 100%; min-height: 240px; }
.bl_voiceArticle_profileImg img { width: 100%; height: 100%; min-height: 240px; object-fit: cover; object-position: center top; display: block; }
.bl_voiceHCard_img img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
.bl_voiceArticle_profileBody { padding: 28px 28px 28px 0; }
.bl_voiceArticle_profileBadge { display: inline-block; font-size: 0.625rem; font-weight: 700; padding: 3px 12px; border-radius: 100px; background: var(--orange-l); color: var(--orange); margin-bottom: 12px; }
.bl_voiceArticle_profileQuote { font-family: var(--ff-serif); font-size: 1.25rem; font-weight: 800; color: var(--text); line-height: 1.55; margin-bottom: 16px; padding-left: 14px; border-left: 3px solid var(--orange); }
.bl_voiceArticle_profileName { font-size: 0.8125rem; font-weight: 700; color: var(--text); margin-bottom: 16px; }
.bl_voiceArticle_profileDl { display: grid; grid-template-columns: auto 1fr; gap: 6px 16px; font-size: 0.75rem; }
.bl_voiceArticle_profileDl dt { color: var(--muted); font-weight: 500; white-space: nowrap; }
.bl_voiceArticle_profileDl dd { color: var(--text); margin: 0; }
.bl_voiceArticle_body { display: flex; flex-direction: column; gap: 40px; }
.bl_voiceArticle_qa { background: var(--bg); border-radius: 12px; padding: 28px 32px; }
.bl_voiceArticle_q {
  display: flex; align-items: flex-start; gap: 14px;
  font-size: 1rem; font-weight: 700; color: var(--text); margin-bottom: 20px;
  padding-bottom: 16px; border-bottom: 1px solid var(--border-l);
}
.bl_voiceArticle_qLabel {
  flex-shrink: 0; width: 32px; height: 32px; border-radius: 50%;
  background: var(--orange); color: #fff; font-family: var(--ff-sans);
  font-size: 0.875rem; font-weight: 800; display: flex; align-items: center; justify-content: center;
}
.bl_voiceArticle_a { display: flex; align-items: flex-start; gap: 14px; font-size: 0.9375rem; line-height: 2; color: var(--text); }
.bl_voiceArticle_aLabel {
  flex-shrink: 0; width: 32px; height: 32px; border-radius: 50%;
  background: var(--leaf-l); color: var(--leaf); font-family: var(--ff-sans);
  font-size: 0.875rem; font-weight: 800; display: flex; align-items: center; justify-content: center;
}
.bl_voiceArticle_a p { margin-bottom: 16px; }
.bl_voiceArticle_a p:last-child { margin-bottom: 0; }

/* ── voice.html カードにリンクを追加するためのホバースタイル ── */
.bl_voiceHCard--link { cursor: pointer; transition: box-shadow .3s, transform .3s; }
.bl_voiceHCard--link:hover { box-shadow: var(--shadow-lg); transform: translateY(-3px); border-color: var(--orange-m); }
.bl_voiceHCard_readMore { display: inline-flex; align-items: center; gap: 6px; font-size: 0.75rem; font-weight: 700; color: var(--orange); text-decoration: none; margin-top: auto; align-self: flex-end; padding-top: 16px; }
.bl_voiceHCard_readMore:hover { text-decoration: underline; }
.bl_voiceHCard_body .el_btnTextLink { margin-top: auto; align-self: flex-end; padding-top: 16px; }

.ly_newsArticleSec { padding: 60px 0 80px; }
.bl_newsArticle { /*max-width: 800px;*/ max-width: 1180px; margin: 0 auto; padding: 0 40px; }
.bl_newsArticle_header {
  position: static;
  z-index: auto;
  background: none;
  border-bottom: 1px solid var(--border);
  padding-bottom: 28px;
  margin-bottom: 48px;
}

/* ── 404 エラーページ ── */
.ly_404Sec { padding: 80px 0 100px; }
.ly_404Sec_inner { max-width: 640px; margin-inline: auto; padding-inline: var(--space-md, 24px); text-align: center; }
.bl_404_text { font-size: 1rem; line-height: 1.9; color: var(--clr-text-secondary, #555); margin-bottom: 40px; }
.bl_newsArticle_meta { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.bl_newsArticle_date { font-family: var(--ff-sans); font-size: 0.8125rem; font-weight: 600; color: var(--muted); }
.bl_newsArticle_title { font-family: var(--ff-serif); font-size: clamp(20px, 3vw, 28px); font-weight: 600; line-height: 1.5; color: var(--text); }
.bl_newsArticle_body { font-size: 0.9375rem; line-height: 2.1; color: var(--text); }
.bl_newsArticle_body p { margin-bottom: 28px; }
.bl_newsArticle_body h2 {
  font-family: var(--ff-serif); font-size: 1.188rem; font-weight: 600;
  margin: 48px 0 16px; padding-left: 16px;
  border-left: 4px solid var(--orange); color: var(--text);
}
.bl_newsArticle_body h3 { font-size: 1rem; font-weight: 700; margin: 36px 0 12px; color: var(--brown); }
.bl_newsArticle_img { margin: 40px 0; border-radius: var(--radius); overflow: hidden; }
.bl_newsArticle_img .el_imgPh { height: 400px; }

/* ── NEWS PAGER ── */
.bl_newsPager {
  display: flex; justify-content: space-between; align-items: center;
  max-width: 800px; margin: 64px auto 0; padding: 32px 40px 0;
  border-top: 1px solid var(--border); gap: 12px;
}
.bl_newsPager_link {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 0.8125rem; font-weight: 700; color: var(--orange);
  text-decoration: none; padding: 12px 20px;
  border: 1.5px solid var(--border); border-radius: 100px;
  transition: background .2s, color .2s, border-color .2s;
}
.bl_newsPager_link:hover { background: var(--orange); color: #fff; border-color: var(--orange); }
.bl_newsPager_back {
  font-size: 0.8125rem; font-weight: 700; color: var(--muted);
  text-decoration: none; transition: color .2s;
}
.bl_newsPager_back:hover { color: var(--orange); }

