body{background-color:#080808;background-image:radial-gradient(rgba(255,255,255,.055) 1px,transparent 1px);background-size:18px 18px}
.section,.page-hero,.cta{position:relative;isolation:isolate;overflow:hidden}.section>*:not(.ce-panel),.page-hero>*,.cta>*{position:relative;z-index:1}
.section:before,.page-hero:before,.cta:before{content:"";position:absolute;z-index:0;inset:0;pointer-events:none;background-image:radial-gradient(rgba(255,255,255,.15) 1px,transparent 1.1px);background-size:21px 21px;opacity:.4;mask-image:linear-gradient(130deg,transparent 0%,#000 45%,#000 100%)}
.section.section-light:before{background-image:radial-gradient(rgba(0,0,0,.14) 1px,transparent 1.1px);opacity:.6}
.page-hero:before{background-image:radial-gradient(rgba(255,255,255,.11) 1px,transparent 1.1px);background-size:25px 25px;opacity:.68}.page-hero .symbol{z-index:0}
.hero:after{z-index:0;opacity:.43;background-image:radial-gradient(rgba(255,255,255,.18) 1px,transparent 1.1px);background-size:28px 28px;mask-image:linear-gradient(90deg,#000 0%,rgba(0,0,0,.42) 62%,transparent 100%)}.hero>*:not(.hero-slideshow){z-index:1}
.cta:before{background-image:radial-gradient(rgba(0,0,0,.24) 1px,transparent 1.1px);background-size:22px 22px;opacity:.72;mask-image:linear-gradient(120deg,transparent 0%,#000 42%,#000 100%)}
body:not([data-page="top"]) main>.section{background:var(--paper);color:#111}body:not([data-page="top"]) main>.section:before{background-image:radial-gradient(rgba(0,0,0,.14) 1px,transparent 1.1px);opacity:.6}
body[data-page="about"] .page-hero,body[data-page="about"] main>.section{padding-left:max(22px,calc((100vw - 1200px)/2));padding-right:max(22px,calc((100vw - 1200px)/2))}body[data-page="about"] main>.section>*:not(.ce-panel){width:min(100%,1200px);margin-left:auto;margin-right:auto}
.mission-vision{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid #c7c4bd}.mission-vision article{min-width:0;padding:30px 45px 8px}.mission-vision article+article{border-left:1px solid #c7c4bd}.mission-vision span{font:700 14px "Barlow Condensed",sans-serif;letter-spacing:.14em;color:var(--red)}.mission-vision h2{font-size:clamp(46px,5.4vw,84px);line-height:1;margin:26px 0 22px}.mission-vision p{width:100%;max-width:none;margin:0;font-size:14px;line-height:1.5}
.mission-vision-section>.eyebrow,.about-aligned-section .eyebrow,.about-aligned-section>h2{position:relative!important;left:0!important;margin-left:0!important;transform:none!important}
.about-aligned-section,.about-aligned-section .eyebrow,.about-aligned-section h2,.about-aligned-section h2 i,.about-aligned-section h3,.about-aligned-section p,.about-aligned-section dt,.about-aligned-section dd,.about-aligned-section a,.mission-vision-section,.mission-vision-section .eyebrow,.mission-vision-section .mission-vision span,.mission-vision-section .mission-vision h2,.mission-vision-section .mission-vision h2 i,.mission-vision-section .mission-vision p{color:#111}.about-aligned-section .eyebrow:before,.mission-vision-section .eyebrow:before{background:#111}.about-aligned-section .profile-table dt{color:#111}.about-aligned-section .achievement-categories p{color:#111}
.mission-vision-section .mission-vision h2 i{color:var(--red)}
.about-aligned-section .about-grid .eyebrow{color:var(--red)}.about-aligned-section .about-grid .eyebrow:before{background:#111}
.representative-greeting .eyebrow,.achievements-section .eyebrow{color:var(--red)!important}
.representative-greeting{color:#111}.representative-greeting .eyebrow{color:#111}.representative-greeting .eyebrow:before{background:#111}.representative-greeting>.eyebrow{position:relative!important;left:0!important;transform:none!important;margin:0 auto 40px!important}.representative-layout{display:grid;grid-template-columns:minmax(160px,.42fr) minmax(0,1.58fr);gap:clamp(32px,6vw,100px);align-items:center}.representative-photo-frame{width:min(100%,260px);aspect-ratio:4/5;position:relative;display:grid;place-items:center;overflow:hidden;border:1px solid #c7c4bd;background:linear-gradient(135deg,#e3e0da,#faf9f6)}.representative-photo-frame:before{content:"";position:absolute;inset:14px;border:1px solid #c7c4bd}.representative-photo-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}.representative-photo-frame img:not([src]){display:none}.representative-photo-frame span{position:relative;z-index:0;font:700 18px "Barlow Condensed",sans-serif;letter-spacing:.22em;color:#777}.representative-photo-frame:has(img[src]) span{display:none}.representative-copy{min-height:330px;display:flex;flex-direction:column;align-items:flex-start}.representative-role{margin:auto 0 0;font:700 clamp(26px,3vw,48px) "Noto Sans JP",sans-serif;letter-spacing:.08em;align-self:center}.representative-copy h2{font-size:clamp(54px,6vw,96px);color:#111;margin:0 0 24px}.representative-copy h2 i{color:var(--red)}.representative-copy>p:not(.representative-role){max-width:720px;margin:0 0 14px;font-size:15px;line-height:1.8}
.representative-copy h2,.representative-copy>p:not(.representative-role){margin-left:clamp(20px,3vw,60px)}
.representative-copy h2{font-weight:900}
.representative-copy h2 i{color:var(--red)!important}
.representative-copy h2{white-space:nowrap;font-size:clamp(40px,5vw,76px)}
.representative-photo-frame{margin-top:-68px}.representative-copy h2{margin-top:-36px}
.achievement-categories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin-top:56px;border-top:1px solid #c7c4bd;border-left:1px solid #c7c4bd}.achievement-categories article{min-height:160px;padding:25px 28px;border-right:1px solid #c7c4bd;border-bottom:1px solid #c7c4bd}.achievement-categories article:last-child{grid-column:1/-1}.achievement-categories h3{font-size:clamp(30px,3.2vw,48px);margin:0 0 15px;color:#111}.achievement-categories p{max-width:520px;margin:0;color:#5d5b57;font-size:14px;line-height:1.9}
.achievement-categories p[data-achievement-item]{margin-top:15px;padding-top:15px;border-top:1px solid #d7d4cf}
@media(max-width:760px){.mission-vision{grid-template-columns:1fr}.mission-vision article,.mission-vision article+article{padding:24px 0;border-left:0}.mission-vision article+article{border-top:1px solid #c7c4bd}.mission-vision h2{font-size:52px}}
@media(max-width:760px){.achievement-categories{grid-template-columns:1fr;margin-top:38px}.achievement-categories article,.achievement-categories article:last-child{grid-column:auto;min-height:0;padding:22px 0;border-right:0;border-left:0}.achievement-categories h3{font-size:34px}}
@media(max-width:760px){.representative-layout{grid-template-columns:1fr;gap:30px}.representative-photo-frame{width:min(60%,220px);margin-top:0}.representative-copy{min-height:0}.representative-role{align-self:flex-start;margin-top:28px}.representative-copy h2{font-size:clamp(30px,10vw,44px);margin-top:0;white-space:nowrap}.representative-copy h2,.representative-copy>p:not(.representative-role){margin-left:0}}
@media(max-width:760px){.section:before{opacity:.28}.section.section-light:before{opacity:.4}.hero:after{opacity:.3}}
.achievement-categories article[data-achievement-extra]{grid-column:auto!important;min-height:160px}
.achievement-categories article[hidden]{display:none!important}
/* ABOUT USと同じ1200px基準で、ほかのページの本文も画面中央へ揃える。 */
body:not([data-page="about"]) .page-hero,body[data-page="top"] .hero,body:not([data-page="about"]) main>.section,body[data-page="top"] .cta{padding-left:max(22px,calc((100vw - 1200px)/2));padding-right:max(22px,calc((100vw - 1200px)/2))}
body:not([data-page="about"]) main>.section>*:not(.ce-panel){width:min(100%,1200px);margin-left:auto;margin-right:auto}
/* 本文の「— 見出し」はABOUT USの配色（黒線・赤文字）へ統一する。 */
body:not([data-page="about"]) main>.section .eyebrow{color:var(--red)}
body:not([data-page="about"]) main>.section .eyebrow:before{background:#111}
.team-empty{grid-column:1/-1;margin:0;padding:30px 0;color:#777;border-top:1px solid #c7c4bd;border-bottom:1px solid #c7c4bd}
.team-filter button{font:700 14px "Barlow Condensed",sans-serif;letter-spacing:.1em;border:1px solid #555;padding:7px 12px;background:transparent;color:inherit;cursor:pointer}.team-filter button.is-active{background:var(--red);border-color:var(--red);color:#fff}.team-group[hidden]{display:none!important}
body[data-page="team"] .team-group{margin-top:46px}body[data-page="team"] .team-group+.team-group{margin-top:72px}body[data-page="team"] .roster-name{font-size:clamp(40px,4.5vw,60px)!important;line-height:1!important;margin:0 0 26px!important;color:#111!important;transform:none!important}
@media(max-width:760px){body[data-page="team"] .team-group{margin-top:42px}body[data-page="team"] .team-group+.team-group{margin-top:58px}body[data-page="team"] .roster-name{font-size:40px!important;margin-bottom:20px!important}}
/* TEAM一覧：添付背景をカード領域に合わせてトリミングし、メンバー画像は丸型アイコンで表示する。 */
body[data-page="team"] [data-team-list]{background-image:linear-gradient(rgba(244,242,238,.82),rgba(244,242,238,.9)),url("assets/team-roster-background.webp");background-position:center;background-size:cover;background-repeat:no-repeat}
body[data-page="team"] .member{min-height:320px;justify-content:flex-start;align-items:center;padding:32px 20px 24px;background:rgba(255,255,255,.84);border-color:rgba(17,17,17,.18);text-align:center}
body[data-page="team"] .member{transition:transform .24s cubic-bezier(.2,.8,.2,1),box-shadow .24s ease,border-color .24s ease}
@media(hover:hover){body[data-page="team"] .member:hover{transform:translateY(-9px);border-color:var(--red);box-shadow:0 20px 30px rgba(0,0,0,.2)}}
@media(prefers-reduced-motion:reduce){body[data-page="team"] .member{transition:none}}

/* Phone layout: desktop editor measurements are deliberately replaced with
   readable single-column proportions below. */
@media(max-width:760px){
  html,body{max-width:100%;overflow-x:hidden}
  .section,.page-hero,.hero,.cta{max-width:100%}
  .page-hero{min-height:310px;padding:44px 24px 38px}
  .page-hero h1{font-size:clamp(54px,16vw,74px)!important;line-height:.86!important;overflow-wrap:anywhere}
  .page-hero>p{font-size:13px;line-height:1.75}
  .hero{min-height:590px;height:calc(100svh - 66px);padding:48px 24px}
  .hero h1{font-size:clamp(58px,17vw,84px)!important;line-height:.84!important;letter-spacing:-.045em!important}
  .hero-lead{font-size:13px;line-height:1.8}
  .hero-symbol{width:92vw;right:-25%;top:52%}
  .hero-wordmark{width:52vw;right:5%;bottom:9%}
  .hero-note{font-size:10px}
  .section{padding:62px 24px}
  .section-head h2,.section>h2,.brand-intro h2,.about-grid h2,.contact-layout h2{font-size:clamp(42px,14vw,64px)!important;line-height:.88!important;overflow-wrap:anywhere}
  .eyebrow{font-size:12px;margin-bottom:13px}
  .brand-intro div>p,.contact-layout p{font-size:14px;line-height:1.85}
  .profile-table div{padding:16px 0;gap:5px;min-width:0}
  .profile-table dd,.profile-table a,.contact-meta b,.contact-meta a{overflow-wrap:anywhere;word-break:break-word}
  .mission-vision h2{font-size:clamp(36px,11vw,48px)!important;line-height:1!important;margin:18px 0}
  .mission-vision p{font-size:14px!important;line-height:1.65!important}
  .representative-greeting>.eyebrow{margin-bottom:26px!important}
  .representative-layout{gap:26px}
  .representative-photo-frame{width:min(74vw,250px);margin:0 auto}
  .representative-copy h2{font-size:clamp(34px,10vw,44px)!important;line-height:1!important;white-space:normal!important;margin:0 0 18px!important}
  .representative-copy>p:not(.representative-role){font-size:14px!important;line-height:1.8!important;margin:0 0 16px!important;max-width:100%}
  .representative-role{font-size:24px!important;line-height:1.45!important;margin-top:20px!important;align-self:flex-start!important}
  .achievement-categories{margin-top:30px}
  .achievement-categories article,.achievement-categories article:last-child{padding:20px 0!important;min-height:0!important}
  .achievement-categories h3{font-size:34px!important;line-height:1!important;margin-bottom:14px!important;overflow-wrap:anywhere}
  .achievement-categories p,.achievement-categories p[data-achievement-item]{font-size:14px!important;line-height:1.7!important;overflow-wrap:anywhere;word-break:break-word}
  .achievement-categories p[data-achievement-item]{margin-top:13px!important;padding-top:13px!important}
  .news-list{width:100%}
  .news-item.news-card{grid-template-columns:96px minmax(0,1fr)!important;gap:13px!important;padding:15px 0!important}
  .news-card-copy time{font-size:12px!important}
  .news-card-copy h3{font-size:14px!important;line-height:1.55!important;word-break:break-word}
  .news-detail h2{font-size:clamp(28px,9vw,38px)!important;line-height:1.15!important;word-break:break-word}
  .news-detail>p:last-child{font-size:14px!important;line-height:1.7!important}
  .contact-layout>form{margin-top:38px}
  .contact-meta{margin-top:30px}
  .contact-meta div{padding:15px 0}
  .site-header{padding-left:20px!important;padding-right:20px!important}
  .wordmark{width:104px!important;height:32px!important}
  .site-footer{padding:22px 20px!important;text-align:left!important}
  .site-footer>*{margin:10px 0!important}
  .footer-mark{width:92px!important;height:29px!important;margin-left:0!important;margin-right:0!important}
  .site-footer .footer-copyright{font-size:11px!important}
  .social-links{justify-content:flex-start!important;gap:8px!important}
}

/* 各ページの上部に重なっていた旧CPDシンボルは、背景写真を隠すため非表示にする。 */
.page-hero .symbol,.hero-symbol{display:none!important}
body[data-page="team"] .member:before{display:none}
body[data-page="team"] .member-avatar-frame{position:relative!important;inset:auto!important;display:block!important;width:150px!important;height:150px!important;max-width:none!important;flex:0 0 150px!important;margin:0 0 24px!important;overflow:hidden!important;background:#fff!important;border:3px solid var(--red);border-radius:50%;box-shadow:0 0 0 8px rgba(235,238,242,.42),0 0 28px 10px rgba(225,230,236,.72),0 12px 24px rgba(0,0,0,.2)}
body[data-page="team"] .member-avatar-frame .member-avatar{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;margin:0!important;opacity:1!important;object-fit:cover!important;object-position:center!important;transform:none!important;background:#fff!important;border:0!important;border-radius:0!important;box-shadow:none!important}
body[data-page="team"] .member-avatar-frame.is-r6 .member-avatar{transform:scale(1.32)!important}
body[data-page="team"] .member-avatar-frame.is-placeholder .member-avatar{padding:24px!important;object-fit:contain!important;background:#111}
body[data-page="team"] .member p,body[data-page="team"] .member h2,body[data-page="team"] .member span{position:relative;color:#111}
body[data-page="team"] .member p{color:var(--red);margin:0 0 12px}
body[data-page="team"] .member h2{margin:0 0 14px}
body[data-page="team"] .member span{color:#555;margin:0}
body[data-page="team"] .member-x{position:relative!important;inset:auto!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;align-self:center!important;width:auto!important;height:auto!important;min-height:0!important;margin:16px 0 0!important;padding:6px 12px!important;transform:none!important;white-space:nowrap!important;border:1px solid #111;color:#111!important;text-decoration:none;font:700 13px "Barlow Condensed",sans-serif;letter-spacing:.12em;line-height:1!important;transition:.2s ease}body[data-page="team"] .member-x:hover{background:#111;color:#fff!important}body[data-page="team"] .member-x b{position:static!important;display:inline!important;width:auto!important;height:auto!important;margin:0!important;padding:0!important;transform:none!important;color:inherit!important;font-size:16px!important;line-height:1!important}
@media(max-width:760px){body[data-page="team"] .member{min-height:250px;padding:24px 12px 18px}body[data-page="team"] .member-avatar-frame{width:108px!important;height:108px!important;flex-basis:108px!important;margin-bottom:16px!important}body[data-page="team"] .member h2{font-size:32px}}
