/* 全ページで使う写真・図解・体験UI。既存の色と文字のルールを引き継ぐ。 */
[data-enhance] { display:none; }
.js [data-enhance] { display:flex; }
figure figcaption { font-size:14px; }
.photo-page-hero,.culture-page-hero,.projects-hero,.contact-visual-hero { padding:132px 0 65px; background:#edf3fb; }
.photo-hero-grid { display:grid; grid-template-columns:1.05fr 1fr; gap:55px; align-items:center; }
.photo-hero-copy h1,.culture-title h1,.projects-title h1,.contact-hero-grid h1 { font-size:clamp(35px,4.3vw,59px); line-height:1.6; }
.photo-hero-copy>p:not(.eyebrow) { margin-top:25px; font-size:17px; }
.photo-hero-visual { position:relative; min-width:0; }
.photo-hero-visual>img { height:480px; object-fit:cover; border-radius:100px 20px 20px 20px; }
.photo-hero-visual figcaption { display:flex; justify-content:space-between; gap:15px; margin-top:14px; font-size:14px; letter-spacing:.045em; color:var(--blue); font-weight:700; }
.photo-badge { position:absolute; bottom:80px; left:-34px; display:grid; align-content:center; width:145px; height:145px; padding:24px; border-radius:50%; transform:rotate(-10deg); background:var(--lime); color:var(--ink); font-size:31px; line-height:1.15; font-weight:800; box-shadow:0 8px 20px #102b4210; }
.photo-badge>span { position:absolute; right:25px; bottom:25px; font-size:58px; }
.compact-badge { font-size:25px; line-height:1.3; padding:24px 30px; }
.hero-topic-links { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.hero-topic-links>a { display:flex; align-items:center; gap:22px; border:1px solid #b5c8e3; padding:7px 15px; border-radius:30px; font-size:14px; color:var(--blue); font-weight:700; }
.hero-topic-links>a:hover { background:#fff; }
/* TOP: 左側の写真、制作風景、構想への導線 */
.about-making { margin-top:48px; }
.about-making img { height:350px; border-radius:100px 18px 18px 18px; object-fit:cover; object-position:45% center; }
.about-making figcaption { margin-top:12px; color:var(--muted); letter-spacing:.035em; }
.about-detail-link { grid-column:2; justify-self:start; margin-top:0; }
.approach-making { margin-top:40px; max-width:450px; }
.approach-making img { height:260px; object-fit:cover; border-radius:18px; }
.approach-making figcaption { font-size:14px; color:#e6efff; margin-top:12px; letter-spacing:.025em; }
.home-exploration { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.exploration-visual { position:relative; padding-bottom:68px; }
.exploration-visual>img { height:455px; object-fit:cover; border-radius:50% 50% 24px 24px; }
.exploration-note { position:absolute; right:-20px; bottom:0; display:flex; flex-direction:column; padding:27px 32px; background:var(--blue); color:#fff; min-width:245px; border-radius:20px; transform:rotate(-5deg); }
.exploration-note strong { font-size:42px; letter-spacing:-.03em; }
.exploration-note>span:last-child { font-size:16px; }
.exploration-tags { display:flex; flex-wrap:wrap; gap:12px; margin:25px 0; }
.exploration-tags>span { font-size:14px; padding:3px 13px; border:1px solid var(--line); border-radius:25px; }
/* 事業ページ */
.question-stack { margin-top:45px; width:230px; transform:rotate(-5deg); display:flex; flex-direction:column; align-items:center; gap:10px; }
.question-stack>span,.question-stack>strong { font-size:17px; line-height:1.6; width:100%; padding:19px; background:#edf3ff; border:1px solid #d3e1fa; border-radius:12px; text-align:center; letter-spacing:.03em; }
.question-stack>span:nth-of-type(2) { background:#e5f8f4; }
.question-stack>strong { background:var(--blue); color:#fff; border-color:var(--blue); }
.question-stack>i { font-style:normal; color:var(--blue); font-size:22px; line-height:1; }
.workspace-try { display:flex; justify-content:space-between; align-items:center; gap:18px; padding-top:22px; color:var(--blue); font-weight:700; font-size:14px; }
.workspace-try>span { font-size:22px; }
.co-creation-content { display:grid; grid-template-columns:.9fr 1.1fr; gap:65px; align-items:start; }
.co-creation-content>figure { position:sticky; top:30px; }
.co-creation-content>figure>img { height:520px; object-fit:cover; object-position:60% center; border-radius:20px; }
.co-creation-content figcaption { position:absolute; left:25px; bottom:25px; background:#fff; color:var(--blue); padding:14px 20px; border-radius:8px; font-size:17px; font-weight:800; line-height:1.6; }
.co-creation-content .service-rows article { grid-template-columns:27px 1fr; gap:15px; padding:25px 0; }
.co-creation-content .service-rows p,.co-creation-content .service-rows .tag { grid-column:2; }
.co-creation-content .service-rows .tag { justify-self:start; }
.process-pictogram { color:var(--blue); font-size:52px; line-height:1; height:90px; display:flex; align-items:center; justify-content:center; background:#dceaff; border-radius:14px; margin-bottom:22px; }
/* 会社紹介 */
.mission-grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:85px; }
.sculpture-frame { position:relative; }
.sculpture-frame>img { height:530px; object-fit:cover; border-radius:24px; }
.sculpture-frame figcaption { position:absolute; bottom:24px; left:24px; font-size:14px; letter-spacing:.08em; color:var(--blue); }
.mission-grid .lead-copy { margin-bottom:25px; }
.mission-signature { display:flex; align-items:center; gap:20px; color:var(--blue); margin-top:30px; font-weight:700; font-size:14px; letter-spacing:.06em; }
.manifesto-section { background:var(--paper); }
.manifesto-grid { display:grid; grid-template-columns:1.05fr 1fr; gap:22px; }
.manifesto-grid article { position:relative; border-radius:24px; padding:35px; background:#fff; overflow:hidden; }
.manifesto-grid .manifesto-main { grid-row:span 2; background:var(--blue); color:#fff; min-height:565px; }
.manifesto-grid h3 { margin:26px 0 15px; font-size:25px; }
.manifesto-main h3 { margin-top:260px; font-size:34px; }
.manifesto-main .small-label { color:var(--cyan); }
.human-art { position:absolute; top:125px; left:50%; transform:translateX(-50%); width:270px; height:170px; }
.human-art span { position:absolute; width:80px; height:105px; border-radius:50px 50px 10px 10px; background:var(--cyan); left:0; bottom:0; }
.human-art span:before { content:""; position:absolute; width:52px; height:52px; border-radius:50%; background:inherit; top:-64px; left:14px; }
.human-art span:nth-child(2) { left:96px; bottom:15px; background:#fff; }
.human-art span:nth-child(3) { left:192px; background:var(--lime); }
.principle-art { position:absolute; right:25px; top:24px; width:130px; height:62px; display:flex; gap:7px; align-items:center; justify-content:end; opacity:.9; }
.principle-art>i { display:block; width:29px; height:40px; background:#d8e6ff; transform:rotate(-12deg); border-radius:5px; }
.art-blocks>i:nth-child(2) { height:50px; background:var(--cyan); }
.art-blocks>i:nth-child(3) { height:60px; background:var(--blue); }
.art-circles>i { border:2px solid var(--blue); width:46px; height:46px; border-radius:50%; background:none; margin-left:-22px; }
.art-circles>i:nth-child(2) { border-color:#55b4c3; }
.art-circles>i:nth-child(3) { background:var(--lime); border-color:var(--lime); }
.manifesto-grid article:not(.manifesto-main)>.small-label { display:block; max-width:70%; }
.team-system { display:grid; grid-template-columns:1fr 1fr; gap:65px; align-items:center; }
.team-map { position:relative; min-width:0; height:450px; background:radial-gradient(circle,#eaf2ff 0%,#f8fbff 65%,#fff 72%); }
.map-ring { position:absolute; top:65px; left:50%; width:290px; height:290px; border:1px dashed #9eb9e6; border-radius:50%; transform:translateX(-50%); }
.map-center { position:absolute; top:146px; left:50%; transform:translateX(-50%); background:var(--blue); color:#fff; width:130px; height:130px; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; }
.map-center span { font-size:14px; letter-spacing:.1em; }
.map-center strong { font-size:25px; }
.map-node { position:absolute; width:174px; padding:18px 10px; border:1px solid #c3d5ec; background:#fff; border-radius:16px; text-align:center; box-shadow:0 9px 24px #102b4208; }
.map-node>span { display:block; color:var(--blue); font-size:14px; letter-spacing:.04em; }
.map-node>strong { display:block; font-size:16px; margin-top:5px; }
.node-business { top:5px; left:50%; transform:translateX(-50%); }
.node-design { bottom:70px; left:0; }
.node-engineering { bottom:70px; right:0; }
.map-caption { position:absolute; bottom:0; width:100%; text-align:center; font-size:14px; color:var(--muted); }
.company-profile { background:#f1f5fa; }
.profile-grid { display:grid; grid-template-columns:1fr 1.45fr; gap:85px; }
.brand-tile { border-radius:18px; background:var(--blue); color:#fff; padding:35px; margin-top:32px; max-width:350px; transform:rotate(-4deg); }
.brand-tile>.brand-mark { margin-bottom:25px; transform:scale(1.5); transform-origin:left; }
.brand-tile>span:not(.brand-mark) { display:block; font-size:42px; font-weight:800; letter-spacing:-.05em; }
.brand-tile p { margin-top:18px; }
.profile-note { padding-top:0; }
.profile-table { margin-top:28px; }
.profile-table>div { display:grid; grid-template-columns:130px 1fr; gap:25px; padding:23px 0; border-top:1px solid #cdd9e7; }
.profile-table dt { font-size:14px; font-weight:700; }
.profile-table dd { font-size:16px; margin:0; }
.split-destinations { display:grid; grid-template-columns:1fr 1fr; gap:30px; padding-block:65px; }
.split-destinations>a { border-top:2px solid var(--blue); position:relative; padding:30px 65px 10px 0; }
.split-destinations .eyebrow { display:block; }
.split-destinations h2 { font-size:29px; }
.split-destinations p { margin-top:14px; }
.destination-arrow { position:absolute; top:68px; right:15px; color:var(--blue); font-size:42px; transition:transform .2s; }
.split-destinations>a:hover .destination-arrow { transform:translate(5px,-5px); }
/* カルチャー */
.culture-page-hero { background:#f1f5f7; }
.culture-title { display:flex; justify-content:space-between; align-items:end; gap:35px; margin-bottom:40px; }
.culture-title>p { font-size:17px; }
.culture-mosaic { display:grid; grid-template-columns:1.6fr 1fr; gap:24px; position:relative; }
.culture-mosaic figure { position:relative; }
.culture-mosaic figure:first-child img { height:420px; object-fit:cover; border-radius:24px; }
.culture-mosaic figure:nth-child(2) { padding-top:60px; }
.culture-mosaic figure:nth-child(2) img { height:360px; object-fit:cover; object-position:60%; border-radius:140px 140px 24px 24px; }
.culture-mosaic figcaption { position:absolute; left:24px; bottom:22px; background:#fff; border-radius:20px; padding:5px 14px; color:var(--blue); font-weight:700; }
.mosaic-sticker { position:absolute; left:54%; top:8px; transform:rotate(8deg); background:var(--lime); border-radius:50%; width:130px; height:130px; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:16px; line-height:1.3; font-weight:800; }
.mosaic-sticker>span { font-size:39px; line-height:1; }
.beliefs-intro { display:flex; justify-content:space-between; gap:40px; align-items:end; margin-top:35px; }
.beliefs-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:30px; margin-top:45px; }
.beliefs-grid article { padding:28px; border:1px solid var(--line); border-radius:18px; }
.beliefs-grid article:nth-child(2) { background:#edf3ff; border-color:#edf3ff; margin-top:35px; margin-bottom:-35px; }
.beliefs-grid article:nth-child(3) { background:#e7f3ed; border-color:#e7f3ed; }
.beliefs-grid article>span { color:var(--blue); font-size:44px; line-height:1; font-weight:700; }
.beliefs-grid h3 { font-size:23px; line-height:1.65; margin:28px 0 18px; }
.day-section { background:#eaf1fa; }
.switch-controls { gap:0; margin-bottom:27px; }
.switch-controls>button { color:var(--muted); background:transparent; border:0; border-bottom:2px solid #bdcce1; padding:20px; font-size:16px; font-weight:700; flex:1; }
.switch-controls>button>span { margin-left:15px; }
.switch-controls>button[aria-selected=true] { border-color:var(--blue); color:var(--blue); background:#fff; border-radius:14px 14px 0 0; }
.day-panel { display:grid; grid-template-columns:1.2fr 1fr; background:#fff; border-radius:22px; overflow:hidden; margin-bottom:25px; }
.day-panel>img { height:460px; object-fit:cover; }
.day-panel>div { padding:42px; position:relative; }
.day-panel h3 { font-size:32px; margin-bottom:20px; }
.day-panel .pill { margin-top:24px; color:var(--blue); }
.day-symbol { position:absolute; right:25px; top:25px; color:#aac9ff; font-size:50px; line-height:1; }
.day-panel .eyebrow { max-width:80%; }
.space-grid { display:grid; grid-template-columns:1.25fr 1fr; gap:35px; align-items:start; }
.space-grid figure:last-child { margin-top:90px; }
.space-grid img { height:390px; object-fit:cover; border-radius:20px; }
.space-grid figure:last-child img { height:305px; }
.space-grid figcaption { margin-top:20px; }
.space-grid figcaption>span { color:var(--blue); font-size:14px; font-weight:700; }
.space-grid h3 { font-size:24px; margin-top:10px; }
.culture-promises { background:var(--blue); color:#fff; }
.culture-promises .eyebrow { color:var(--cyan); }
.promise-list { margin-top:50px; }
.promise-list article { display:grid; grid-template-columns:80px 1fr 1.2fr; gap:28px; align-items:center; border-top:1px solid #ffffff45; padding:30px 0; }
.promise-list article>span { color:var(--cyan); font-size:46px; line-height:1; }
.promise-list h3 { font-size:28px; }
.photo-cta { position:relative; padding:110px 0; color:#fff; overflow:hidden; }
.photo-cta>img { position:absolute; inset:0; height:100%; object-fit:cover; }
.photo-cta:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#063a77e8,#063a7780); }
.photo-cta>.container { position:relative; z-index:1; }
.photo-cta .eyebrow { color:var(--cyan); }
.photo-cta h2 { font-size:48px; }
.photo-cta .button { margin-top:30px; }
/* プロジェクトとローカル体験 */
.projects-hero { background:#f1f5fc; }
.projects-title { display:grid; grid-template-columns:1fr 1fr; gap:55px; align-items:center; }
.projects-title h1 { font-size:62px; }
.projects-title>div>p:not(.eyebrow) { margin-top:25px; }
.project-disclaimer { display:inline-block; background:var(--lime); font-size:14px; border-radius:6px; padding:6px 13px; margin-top:25px; }
.projects-hero-art { position:relative; }
.projects-hero-art>img { height:480px; border-radius:180px 180px 20px 20px; object-fit:cover; }
.projects-hero-art>span { position:absolute; left:20px; bottom:24px; font-size:42px; font-weight:800; line-height:1.08; letter-spacing:-.04em; color:var(--blue); }
.projects-hero-art strong { background:var(--lime); }
.project-lens>div { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.project-lens .demo-callout { margin:40px 0 0; font-size:14px; padding-block:15px; }
.project-gallery { background:var(--paper); }
.project-filters { justify-content:space-between; align-items:end; gap:25px; margin-bottom:17px; }
.filter-buttons { display:flex; gap:8px; flex-wrap:wrap; }
.filter-buttons>button { background:#fff; color:var(--ink); border:1px solid #cad7e3; border-radius:40px; padding:10px 18px; font-size:14px; font-weight:700; }
.filter-buttons>button[aria-pressed=true] { background:var(--blue); border-color:var(--blue); color:#fff; }
.project-search { display:flex; flex-direction:column; gap:7px; font-size:14px; }
.project-search input { border:1px solid #b8c9d7; padding:12px 15px; background:#fff; border-radius:8px; font-size:16px; width:255px; }
.filter-count { font-size:14px; color:var(--muted); margin-bottom:22px; }
.project-grid { display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.concept-card { background:#fff; border-radius:22px; overflow:hidden; min-width:0; }
.featured-concept { grid-column:1/-1; display:grid; grid-template-columns:1.05fr 1fr; }
.concept-visual { position:relative; min-height:285px; overflow:hidden; }
.concept-visual>img { height:305px; object-fit:cover; }
.featured-concept .concept-visual { min-height:450px; }
.concept-workspace { background:#dce9ff; display:flex; align-items:center; justify-content:center; padding:45px; }
.concept-mini-window { width:100%; border-radius:14px; background:#fff; padding:28px; transform:rotate(-7deg); box-shadow:0 20px 45px #3768b826; }
.mini-window-label { font-size:14px; color:var(--blue); font-weight:700; }
.mini-window-heading { font-size:29px; font-weight:800; letter-spacing:-.03em; line-height:1.3; margin:25px 0; }
.mini-search-bar { display:flex; justify-content:space-between; align-items:center; gap:20px; border:1px solid #bed2ef; border-radius:10px; padding:16px; }
.mini-search-bar span { color:var(--blue); font-size:25px; line-height:1; }
.mini-search-bar i { height:8px; flex:1; border-radius:5px; background:#dce7f6; }
.mini-documents { display:flex; gap:14px; margin-top:24px; }
.mini-documents i { height:54px; flex:1; border-radius:7px; background:#edf3fb; border-left:3px solid #b0caf0; }
.concept-floating-chip { position:absolute; bottom:30px; right:22px; padding:7px 14px; border-radius:20px; background:var(--blue); color:#fff; font-size:14px; font-weight:700; transform:rotate(5deg); }
.concept-content { padding:33px; }
.concept-meta { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:14px; color:var(--blue); margin-bottom:23px; font-weight:700; }
.concept-meta>span:last-child { font-weight:400; border:1px solid #c5d6ec; padding:0 8px; border-radius:4px; }
.concept-content h3 { font-size:27px; margin-bottom:18px; line-height:1.65; }
.concept-content summary { font-size:15px; color:var(--blue); min-height:66px; padding:17px 0; }
.concept-content details { border-bottom:0; border-top:1px solid var(--line); margin-top:24px; }
.concept-content details>div { font-size:16px; }
.concept-content details>div>p+p { margin-top:18px; }
.image-tag { position:absolute; left:24px; bottom:24px; background:#fff; border-radius:30px; font-size:14px; font-weight:700; padding:5px 13px; }
.concept-learning { min-height:305px; background:#e5f3eb; padding:28px 35px; }
.learning-track { display:flex; align-items:center; gap:15px; color:#286646; font-size:14px; font-weight:700; }
.learning-track i { flex:1; height:1px; background:#9ac4ab; }
.learning-orbs { display:flex; gap:15px; align-items:center; justify-content:end; margin-top:26px; }
.learning-orbs span { width:62px; height:62px; border-radius:50%; display:grid; place-items:center; color:var(--blue); border:1px solid #9abeaa; font-size:35px; }
.learning-orbs span:nth-child(2) { background:var(--blue); color:#fff; border-color:var(--blue); transform:translateY(-13px); }
.learning-orbs span:last-child { background:var(--lime); border-color:var(--lime); }
.concept-learning>strong { display:block; font-size:38px; line-height:1.1; margin-top:20px; color:#246547; letter-spacing:-.04em; }
.filter-empty { background:#fff; border:1px dashed #acc4df; border-radius:20px; text-align:center; padding:50px 24px; }
.filter-empty>span { color:var(--blue); font-size:70px; line-height:1; }
.filter-empty h3 { margin:17px 0; }
.filter-empty .button { margin-top:25px; }
.experience-frame { border:1px solid #c8d8ec; border-radius:20px; overflow:hidden; box-shadow:0 25px 60px #18407712; }
.experience-chrome { display:flex; justify-content:space-between; align-items:center; gap:20px; background:#edf3ff; border-bottom:1px solid #c8d8ec; padding:23px 30px; }
.experience-chrome .pill { color:var(--blue); }
.experience-layout { display:grid; grid-template-columns:270px 1fr; }
.experience-sidebar { background:#f7f9fc; padding:30px 24px; border-right:1px solid #dbe4ee; }
.vertical-controls { flex-direction:column; gap:10px; margin-top:28px; }
.vertical-controls>button { display:flex; align-items:center; gap:15px; text-align:left; border:1px solid transparent; border-radius:10px; padding:13px 10px; font-size:15px; font-weight:400; }
.vertical-controls>button[aria-selected=true] { border:1px solid #c3d6f5; background:#e4eeff; border-radius:10px; font-weight:700; }
.vertical-controls>button>span { margin:0; color:var(--blue); font-size:23px; line-height:1; }
.experience-sidebar>p { font-size:16px; color:var(--muted); margin-top:90px; }
.experience-panels { min-width:0; padding:35px; }
.experience-panels>article+article:not([hidden]) { border-top:1px solid var(--line); margin-top:35px; padding-top:35px; }
.sample-question { background:#edf3fb; border-radius:14px 14px 0 14px; padding:18px 22px; margin-left:50px; font-size:16px; }
.sample-answer { display:flex; gap:23px; margin-top:34px; }
.answer-mark { color:var(--blue); font-size:32px; line-height:1; flex:none; padding-top:6px; }
.sample-answer>div { min-width:0; flex:1; }
.sample-answer .eyebrow { margin-bottom:13px; font-size:14px; }
.sample-answer h3 { font-size:27px; margin-bottom:23px; }
.sample-answer ul { display:grid; gap:17px; }
.sample-answer li { display:flex; flex-direction:column; gap:5px; font-size:16px; }
.sample-answer li strong { color:var(--blue); font-size:16px; }
.source-chip { display:inline-block; font-size:14px; color:var(--muted); border:1px solid var(--line); background:#fafbfd; border-radius:6px; padding:7px 12px; margin-top:28px; }
.prototype-story { display:grid; grid-template-columns:1.1fr 1fr; gap:80px; align-items:center; }
.prototype-story>figure { position:relative; }
.prototype-story img { height:470px; object-fit:cover; border-radius:24px; }
.prototype-story figcaption { position:absolute; left:25px; bottom:25px; background:#fff; padding:6px 15px; border-radius:20px; color:var(--blue); font-weight:700; }
.prototype-story .lead-copy { margin-bottom:20px; }
/* 採用とお問い合わせ */
.values-visual article { grid-template-columns:100px 1fr 1.15fr; }
.value-icon { display:flex; flex-direction:column; gap:10px; font-size:14px; font-weight:700; }
.value-icon>b { display:grid; place-items:center; width:78px; height:78px; border:1px solid #bfd1e9; border-radius:50%; color:var(--blue); background:#edf3ff; font-size:43px; line-height:1; }
.role-en { display:flex; align-items:center; gap:13px; }
.role-symbol { display:grid; place-items:center; font-size:28px; font-style:normal; width:45px; height:45px; border-radius:12px; background:#dce9fc; flex:none; }
.work-style-stories { display:grid; grid-template-columns:1.2fr 1fr; gap:28px; }
.work-style-stories article { background:#f1f5fa; border-radius:24px; overflow:hidden; }
.work-style-stories article>img { height:320px; object-fit:cover; }
.work-style-stories article>div { padding:30px; }
.work-style-stories .eyebrow { display:block; margin-bottom:16px; }
.work-style-stories h3 { font-size:24px; margin-bottom:16px; }
.contact-visual-hero { background:#eef4ff; }
.contact-hero-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:80px; align-items:center; }
.contact-hero-grid>div>p:not(.eyebrow) { margin-top:25px; }
.contact-hero-grid figure { position:relative; }
.contact-hero-grid img { height:310px; object-fit:cover; border-radius:150px 150px 20px 20px; }
.contact-hero-grid figcaption { color:var(--blue); font-weight:700; font-size:14px; letter-spacing:.045em; text-align:center; margin-top:15px; }
.contact-routes { padding-top:58px; }
.route-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:24px; }
.route-heading .eyebrow { margin-bottom:0; }
.route-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.route-grid>a { display:flex; gap:15px; align-items:center; padding:23px 20px; border:1px solid #c9d7e7; border-radius:16px; transition:border-color .2s,background .2s; }
.route-grid>a:hover,.route-grid>a.is-selected { border-color:var(--blue); background:#edf3ff; }
.route-icon { display:grid; place-items:center; background:#e6f0ff; color:var(--blue); border-radius:50%; width:43px; height:43px; font-size:27px; flex:none; }
.route-grid>a>span:nth-child(2) { flex:1; min-width:0; }
.route-grid strong { display:block; font-size:16px; }
.route-grid small { display:block; font-size:14px; color:var(--muted); margin-top:5px; }
.route-grid>a>span:last-child { color:var(--blue); font-size:22px; }
.contact-page .contact-layout { padding-top:70px; gap:60px; grid-template-columns:1fr 1.8fr; }
.contact-page .form-area { background:#f7f9fc; border:1px solid #dae3ec; padding:40px; border-radius:22px; min-width:0; }
.contact-aside-photo { margin-top:28px; }
.contact-aside-photo img { height:190px; object-fit:cover; border-radius:16px; }
.contact-aside-photo figcaption { margin-top:10px; color:var(--blue); font-size:14px; line-height:1.6; }
/* タブレット */
@media (max-width:1100px) {
  .photo-hero-grid { gap:35px; }
  .photo-hero-copy h1 { font-size:43px; }
  .photo-hero-visual>img { height:420px; }
  .photo-badge { width:120px; height:120px; left:-20px; font-size:25px; }
  .photo-badge>span { font-size:45px; right:18px; }
  .compact-badge { font-size:21px; }
  .home-exploration,.mission-grid,.team-system,.prototype-story { gap:48px; }
  .co-creation-content { gap:40px; }
  .profile-grid { gap:55px; }
  .principle-art { width:80px; }
  .manifesto-grid article { padding:28px; }
  .manifesto-main h3 { margin-top:250px; }
  .beliefs-grid { gap:20px; }
  .beliefs-grid article { padding:23px; }
  .day-panel>div { padding:32px; }
  .day-panel h3 { font-size:28px; }
  .projects-title h1 { font-size:52px; }
  .experience-layout { grid-template-columns:245px 1fr; }
  .concept-content { padding:27px; }
  .concept-content h3 { font-size:25px; }
  .contact-hero-grid { gap:40px; }
  .route-grid { gap:12px; }
  .route-grid>a { padding:20px 15px; gap:10px; }
  .contact-page .contact-layout { gap:40px; }
  .contact-page .form-area { padding:30px; }
  .footer-top nav { flex-wrap:wrap; justify-content:end; }
}
@media (max-width:980px) {
  .photo-page-hero,.culture-page-hero,.projects-hero,.contact-visual-hero { padding-top:245px; }
  .js .photo-page-hero,.js .culture-page-hero,.js .projects-hero,.js .contact-visual-hero { padding-top:132px; }
  .photo-hero-grid { gap:30px; }
  .photo-hero-copy h1 { font-size:35px; }
  .photo-hero-copy>p:not(.eyebrow) { font-size:16px; }
  .photo-hero-visual>img { height:390px; }
  .photo-hero-visual figcaption { flex-direction:column; gap:0; }
  .about-making img { height:280px; }
  .about-making figcaption { font-size:14px; line-height:1.6; }
  .approach-making img { height:210px; }
  .home-exploration { gap:40px; }
  .home-exploration h2 { font-size:33px; }
  .exploration-visual>img { height:390px; }
  .exploration-note { padding:23px; min-width:220px; right:-10px; }
  .home-exploration .button { gap:15px; padding-inline:20px; }
  .co-creation-content { grid-template-columns:1fr 1.2fr; gap:30px; }
  .co-creation-content>figure>img { height:500px; }
  .co-creation-content figcaption { left:15px; right:15px; font-size:16px; padding:12px; }
  .mission-grid { gap:38px; }
  .mission-grid h2 { font-size:33px; }
  .sculpture-frame>img { height:460px; }
  .manifesto-grid { gap:18px; }
  .manifesto-grid h3 { font-size:23px; }
  .manifesto-main h3 { font-size:29px; }
  .principle-art { top:30px; right:16px; width:70px; }
  .principle-art>i { width:22px; }
  .art-circles>i { width:40px; height:40px; }
  .human-art { transform:translateX(-50%) scale(.83); }
  .team-system { grid-template-columns:1fr; gap:35px; }
  .team-map { width:100%; max-width:500px; margin-inline:auto; }
  .profile-grid { grid-template-columns:1fr 1.5fr; gap:35px; }
  .profile-table>div { grid-template-columns:1fr; gap:8px; padding-block:19px; }
  .brand-tile { padding:25px; }
  .brand-tile>span:not(.brand-mark) { font-size:36px; }
  .split-destinations h2 { font-size:25px; }
  .culture-title { align-items:start; }
  .culture-title h1 { font-size:42px; }
  .culture-title>p { font-size:16px; max-width:275px; padding-top:45px; }
  .culture-mosaic { grid-template-columns:1.25fr 1fr; gap:18px; }
  .culture-mosaic figure:first-child img { height:350px; }
  .culture-mosaic figure:nth-child(2) img { height:290px; }
  .mosaic-sticker { left:48%; width:100px; height:100px; font-size:14px; }
  .mosaic-sticker>span { font-size:30px; }
  .culture-mosaic figcaption { left:15px; font-size:14px; padding-inline:10px; }
  .beliefs-grid { grid-template-columns:1fr; gap:18px; }
  .beliefs-grid article { display:grid; grid-template-columns:50px 1fr 1.3fr; gap:24px; align-items:center; }
  .beliefs-grid article:nth-child(2) { margin:0; }
  .beliefs-grid h3 { margin:0; font-size:21px; }
  .beliefs-grid article>span { font-size:35px; }
  .day-panel { grid-template-columns:1fr 1fr; }
  .day-panel>img { height:480px; }
  .day-panel>div { padding:30px 25px; }
  .day-symbol { display:none; }
  .day-panel .eyebrow { max-width:100%; }
  .day-panel h3 { font-size:28px; }
  .switch-controls>button { padding-inline:12px; }
  .switch-controls>button>span { margin-left:8px; }
  .space-grid { gap:25px; }
  .space-grid img { height:300px; }
  .space-grid figure:last-child img { height:250px; }
  .space-grid h3 { font-size:22px; }
  .promise-list article { grid-template-columns:55px 1fr 1.3fr; gap:20px; }
  .promise-list h3 { font-size:24px; }
  .projects-title { gap:35px; }
  .projects-title h1 { font-size:43px; }
  .projects-hero-art>img { height:400px; }
  .projects-hero-art>span { font-size:33px; }
  .project-lens>div { gap:40px; }
  .project-lens h2 { font-size:30px; }
  .project-filters { align-items:start; flex-direction:column; }
  .project-search { width:100%; }
  .project-search input { width:100%; }
  .project-grid { gap:20px; }
  .featured-concept { grid-template-columns:1fr; }
  .featured-concept .concept-visual { min-height:330px; }
  .concept-mini-window { max-width:410px; }
  .concept-floating-chip { right:30px; bottom:28px; }
  .concept-learning { padding:25px; }
  .concept-learning>strong { font-size:32px; }
  .learning-track { gap:10px; font-size:14px; }
  .concept-content h3 { font-size:23px; }
  .experience-layout { grid-template-columns:1fr; }
  .experience-sidebar { border:0; padding:25px; }
  .vertical-controls { flex-direction:row; margin-block:18px 0; }
  .vertical-controls>button { justify-content:center; gap:9px; }
  .experience-sidebar>p { display:none; }
  .experience-panels { padding:30px; }
  .prototype-story { gap:35px; }
  .prototype-story img { height:420px; }
  .prototype-story h2 { font-size:34px; }
  .values-visual article { grid-template-columns:85px 1fr 1.3fr; gap:20px; }
  .work-style-stories { gap:22px; }
  .work-style-stories article>img { height:270px; }
  .work-style-stories article>div { padding:25px; }
  .work-style-stories h3 { font-size:22px; }
  .work-style-stories p br { display:none; }
  .contact-hero-grid h1 { font-size:43px; }
  .route-grid { grid-template-columns:1fr; gap:13px; }
  .route-grid>a { padding:20px; }
  .route-grid small { margin-top:2px; }
  .contact-page .contact-layout { grid-template-columns:1fr; gap:40px; }
  .contact-aside-photo { max-width:430px; }
  .footer-top nav { justify-content:start; }
}
/* スマートフォン */
@media (max-width:640px) {
  .photo-page-hero,.culture-page-hero,.projects-hero,.contact-visual-hero { padding:300px 0 45px; }
  .js .photo-page-hero,.js .culture-page-hero,.js .projects-hero,.js .contact-visual-hero { padding-top:118px; }
  .photo-hero-grid,.mission-grid,.home-exploration,.profile-grid,.projects-title,.prototype-story,.contact-hero-grid { grid-template-columns:1fr; gap:35px; }
  .photo-hero-copy h1 { font-size:clamp(29px,8vw,43px); line-height:1.7; }
  .photo-hero-copy>p:not(.eyebrow) { margin-top:23px; }
  .photo-hero-visual { padding-left:15px; }
  .photo-hero-visual>img { height:320px; border-radius:80px 18px 18px 18px; }
  .photo-hero-visual figcaption { flex-direction:row; flex-wrap:wrap; gap:0 12px; font-size:14px; line-height:1.7; }
  .photo-badge { left:-8px; bottom:62px; width:105px; height:105px; font-size:23px; padding:19px; }
  .photo-badge>span { font-size:37px; right:17px; bottom:17px; }
  .compact-badge { font-size:20px; padding-left:24px; }
  .hero-topic-links { gap:10px; }
  .hero-topic-links>a { padding:6px 11px; gap:12px; font-size:14px; }
  .about-side { display:contents; }
  .about-making { margin-top:28px; margin-bottom:30px; }
  .about-making img { height:235px; border-radius:18px 75px 18px 18px; object-position:center; }
  .about-making figcaption { margin-top:9px; font-size:14px; }
  .about-detail-link { margin-top:27px; }
  .approach-making { margin-top:28px; }
  .approach-making img { height:220px; }
  .approach-making figcaption { font-size:14px; line-height:1.6; }
  .exploration-visual { padding-bottom:57px; }
  .exploration-visual>img { height:340px; }
  .exploration-note { min-width:215px; padding:20px 25px; right:0; bottom:4px; }
  .exploration-note strong { font-size:37px; }
  .home-exploration h2 { font-size:34px; }
  .home-exploration .lead-copy br { display:block; }
  .home-exploration .button { gap:24px; }
  .question-stack { display:flex; flex-direction:row; width:100%; gap:8px; transform:none; margin:30px 0; }
  .question-stack>span,.question-stack>strong { padding:15px 8px; font-size:14px; border-radius:8px; overflow-wrap:anywhere; }
  .question-stack>i { display:none; }
  .business-intro>div:nth-child(2)>h2 { margin-top:0; }
  .co-creation-content { grid-template-columns:1fr; gap:30px; }
  .co-creation-content>figure { position:relative; top:auto; }
  .co-creation-content>figure>img { height:300px; object-position:center; }
  .co-creation-content figcaption { left:20px; right:auto; bottom:20px; padding:10px 16px; }
  .co-creation-content .service-rows article { padding-block:25px; }
  .process-pictogram { height:100px; margin-bottom:20px; }
  .sculpture-frame>img { height:330px; }
  .sculpture-frame figcaption { font-size:14px; left:20px; bottom:20px; }
  .mission-grid h2 { font-size:31px; }
  .mission-grid .lead-copy { margin-block:22px; }
  .mission-signature { margin-top:28px; }
  .manifesto-grid { grid-template-columns:1fr; }
  .manifesto-grid article { padding:27px; }
  .manifesto-grid .manifesto-main { min-height:535px; }
  .manifesto-grid article:not(.manifesto-main)>.small-label { max-width:72%; font-size:14px; }
  .manifesto-main h3 { margin-top:255px; font-size:30px; }
  .manifesto-grid h3 { line-height:1.6; }
  .human-art { top:140px; transform:translateX(-50%) scale(.83); }
  .principle-art { top:25px; right:20px; }
  .team-system { gap:30px; }
  .team-system h2 { font-size:33px; }
  .team-system .lead-copy br { display:none; }
  .team-map { height:420px; }
  .map-ring { width:255px; height:255px; top:75px; }
  .map-node { width:150px; padding:14px 8px; }
  .map-node>span { font-size:14px; letter-spacing:0; }
  .map-node>strong { font-size:15px; }
  .map-center { top:145px; width:112px; height:112px; }
  .map-center strong { font-size:23px; }
  .node-design,.node-engineering { bottom:60px; }
  .map-caption { font-size:14px; line-height:1.7; }
  .profile-grid { gap:45px; }
  .brand-tile { margin-top:26px; max-width:300px; padding:32px; }
  .brand-tile>span:not(.brand-mark) { font-size:44px; }
  .profile-table>div { grid-template-columns:95px 1fr; gap:16px; }
  .profile-table dt { font-size:14px; }
  .profile-table dd { font-size:16px; }
  .split-destinations { grid-template-columns:1fr; gap:32px; padding-block:45px; }
  .split-destinations>a { padding-top:25px; }
  .split-destinations h2 { font-size:27px; }
  .destination-arrow { top:60px; right:10px; font-size:37px; }
  .culture-title { display:block; margin-bottom:28px; }
  .culture-title h1 { font-size:39px; }
  .culture-title>p { padding:0; max-width:none; margin-top:22px; font-size:16px; }
  .culture-mosaic { grid-template-columns:1fr 1fr; gap:13px; }
  .culture-mosaic figure:first-child img { height:275px; }
  .culture-mosaic figure:nth-child(2) { padding-top:45px; }
  .culture-mosaic figure:nth-child(2) img { height:230px; border-radius:90px 90px 18px 18px; }
  .culture-mosaic figcaption { position:static; background:none; padding:9px 0 0; font-size:14px; line-height:1.5; }
  .mosaic-sticker { left:calc(50% - 40px); top:0; width:90px; height:90px; font-size:14px; z-index:1; }
  .mosaic-sticker>span { font-size:24px; }
  .beliefs-intro { display:block; margin-top:28px; }
  .beliefs-intro h2 { font-size:32px; }
  .beliefs-intro>p { margin-top:24px; }
  .beliefs-grid { margin-top:30px; gap:17px; }
  .beliefs-grid article { grid-template-columns:35px 1fr; gap:20px; padding:25px 22px; }
  .beliefs-grid article>span { font-size:28px; align-self:start; margin-top:5px; }
  .beliefs-grid h3 { font-size:24px; }
  .beliefs-grid article>p { grid-column:2; }
  .switch-controls { margin-bottom:22px; gap:5px; }
  .switch-controls>button { padding:14px 7px; font-size:14px; display:flex; flex-direction:column; gap:6px; line-height:1.6; }
  .switch-controls>button>span { margin:0; font-size:14px; }
  .day-panel { grid-template-columns:1fr; border-radius:18px; }
  .day-panel>img { height:265px; }
  .day-panel>div { padding:29px 24px; }
  .day-panel h3 { font-size:29px; }
  .day-symbol { display:block; font-size:43px; }
  .space-grid { grid-template-columns:1fr; gap:34px; }
  .space-grid figure:last-child { margin-top:0; }
  .space-grid img,.space-grid figure:last-child img { height:290px; }
  .space-grid h3 { font-size:23px; line-height:1.65; }
  .promise-list { margin-top:35px; }
  .promise-list article { grid-template-columns:40px 1fr; gap:18px; padding:25px 0; }
  .promise-list article>span { font-size:33px; }
  .promise-list article>p { grid-column:2; }
  .promise-list h3 { font-size:24px; }
  .photo-cta { padding-block:80px; }
  .photo-cta h2 { font-size:32px; }
  .photo-cta .eyebrow { font-size:14px; }
  .projects-title h1 { font-size:42px; }
  .projects-hero-art>img { height:325px; border-radius:145px 145px 18px 18px; }
  .projects-hero-art>span { font-size:35px; }
  .project-disclaimer { font-size:14px; }
  .project-lens>div { grid-template-columns:1fr; gap:24px; }
  .project-lens h2 { font-size:32px; }
  .project-lens .demo-callout { margin-top:28px; }
  .filter-buttons { gap:7px; }
  .filter-buttons>button { padding:9px 13px; font-size:14px; }
  .project-grid { grid-template-columns:1fr; gap:24px; }
  .featured-concept { grid-column:auto; }
  .featured-concept .concept-visual { min-height:300px; }
  .concept-workspace { padding:28px; }
  .concept-mini-window { padding:23px; }
  .mini-window-heading { font-size:25px; margin:20px 0; }
  .mini-search-bar { padding:12px; gap:13px; }
  .mini-documents { gap:10px; margin-top:18px; }
  .mini-documents i { height:42px; }
  .concept-floating-chip { font-size:14px; right:15px; bottom:15px; padding:6px 11px; }
  .concept-visual>img { height:275px; }
  .concept-content { padding:25px 22px; }
  .concept-content h3 { font-size:24px; line-height:1.6; }
  .concept-meta { font-size:14px; gap:8px; margin-bottom:20px; }
  .concept-learning { min-height:280px; padding:26px; }
  .learning-orbs { gap:12px; }
  .learning-orbs span { width:58px; height:58px; }
  .concept-learning>strong { font-size:33px; }
  .image-tag { left:15px; bottom:17px; padding-inline:11px; font-size:14px; }
  .filter-empty h3 { font-size:22px; }
  .experience-chrome { padding:20px; flex-wrap:wrap; gap:11px; }
  .experience-chrome .pill { font-size:14px; }
  .experience-sidebar { padding:22px 18px; }
  .vertical-controls { flex-direction:column; margin-top:18px; gap:8px; }
  .vertical-controls>button { flex-direction:row; justify-content:start; padding:12px; gap:13px; font-size:16px; }
  .vertical-controls>button>span { font-size:23px; }
  .experience-panels { padding:25px 18px; }
  .sample-question { margin-left:20px; padding:14px 16px; font-size:16px; }
  .sample-answer { gap:12px; margin-top:28px; }
  .answer-mark { font-size:25px; }
  .sample-answer h3 { font-size:24px; }
  .source-chip { padding:7px 10px; font-size:14px; }
  .prototype-story { gap:32px; }
  .prototype-story img { height:325px; }
  .prototype-story figcaption { left:20px; bottom:20px; font-size:14px; }
  .prototype-story h2 { font-size:33px; }
  .values-visual article { grid-template-columns:60px 1fr; gap:20px; }
  .value-icon>b { width:59px; height:59px; font-size:35px; }
  .values-visual h3 { font-size:25px; }
  .role-symbol { width:34px; height:34px; font-size:24px; border-radius:9px; }
  .work-style-stories { grid-template-columns:1fr; gap:24px; }
  .work-style-stories article>img { height:275px; }
  .work-style-stories article>div { padding:26px; }
  .work-style-stories h3 { font-size:23px; }
  .contact-hero-grid { gap:27px; }
  .contact-hero-grid h1 { font-size:40px; }
  .contact-hero-grid img { height:240px; border-radius:110px 110px 18px 18px; }
  .contact-hero-grid figcaption { font-size:14px; letter-spacing:0; }
  .contact-routes { padding-top:40px; }
  .route-heading { display:block; margin-bottom:20px; }
  .route-heading>p:last-child { margin-top:10px; }
  .route-grid>a { padding:19px 17px; gap:14px; }
  .route-grid strong { font-size:16px; }
  .route-grid small { font-size:14px; }
  .contact-page .contact-layout { padding-top:45px; gap:35px; }
  .contact-page .form-area { padding:27px 19px; border-radius:18px; }
  .contact-aside-photo img { height:200px; }
  .contact-aside-photo figcaption { font-size:14px; }
  .contact-page .form-heading { font-size:14px; gap:9px; }
  .contact-page .confirmation h2 { font-size:27px; }
  .contact-page .form-area .button { font-size:14px; padding-inline:19px; gap:20px; }
  .footer-top nav { gap:18px; }
}
@media (max-width:360px) {
  .photo-hero-copy h1 { font-size:28px; }
  .projects-title h1,.contact-hero-grid h1,.culture-title h1 { font-size:34px; }
  .filter-buttons>button { padding-inline:10px; }
  .map-node { width:133px; }
  .map-node>strong { font-size:14px; }
  .map-caption { font-size:14px; }
  .map-ring { width:225px; height:245px; }
  .values-visual article { gap:15px; grid-template-columns:50px 1fr; }
  .value-icon>b { width:48px; height:48px; font-size:29px; }
  .values-visual h3 { font-size:22px; }
  .contact-page .form-area { padding-inline:14px; }
  .contact-page .form-heading { flex-direction:column; gap:6px; }
  .concept-meta>span { font-size:14px; }
  .concept-learning { padding:23px; }
  .learning-orbs span { width:52px; height:52px; }
  .sample-answer h3 { font-size:21px; }
}
@media (prefers-reduced-motion:reduce) {
  .destination-arrow,.route-grid>a { transition:none; }
}
