/* YADOKARI 会社サイト（yadokari.net/company/）の見た目。1本だけ。
   前の Studio 版のデザインを踏襲（値は 2026-11-03 に前の版を測って写した）。
   書体：英数字 Helvetica Neue → Inter、日本語 Noto Sans JP。太さは 400 と 700 の2種類だけ。 */
:root{
  --font:"Helvetica Neue",Inter,"Noto Sans JP",sans-serif;
  --ink:#000;--ink-2:#333;--ink-3:#666;--ink-4:#999;--line:#e5e5e5;--bg-2:#eee;--bg-3:#fbfaf9;--bg-4:#d9d9d9;
  --w:1140px;--w-narrow:1032px;--w-text:700px;--gutter:70px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:80px}
html,body{overflow-x:hidden}  /* 1画面目の動画（画面より横に大きい）が横スクロールを作らないように */
body{font-family:var(--font);font-weight:400;font-kerning:normal;font-feature-settings:"palt";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-synthesis:none;color:var(--ink-2);background:#fff;line-height:2;font-size:16px;padding-top:72px}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
strong,b,h1,h2,h3,h4,th{font-weight:700}
.container{max-width:var(--w);margin:0 auto;padding:0 var(--gutter)}
.container.narrow{max-width:calc(var(--w-narrow) + 124px*2);padding:0 124px}
.container.text{max-width:calc(var(--w-text) + 48px);padding:0 24px}
section{padding:0}
.sec-en{font-size:min(104px,8.1vw);font-weight:700;line-height:1;letter-spacing:0;margin-bottom:60px;color:var(--ink)}
.sec-en.light,.sec-ja.light,.light{color:#fff}
.sec-ja{font-size:32px;font-weight:700;line-height:1.2;margin-bottom:48px;color:var(--ink)}
.en{color:var(--ink-3);font-size:14px;line-height:1.6}
.prose p{margin:0 0 1.6em}
.prose h2{font-size:24px;line-height:1.8;color:var(--ink);margin:2.4em 0 .4em}
.prose h3{font-size:24px;line-height:1.8;color:var(--ink);margin:2em 0 .4em}
.prose img,.prose figure{margin:2em 0}
.prose a{text-decoration:underline}
.prose ul{list-style:disc;padding-left:1.4em;margin:0 0 1.6em}
.prose ol{list-style:decimal;padding-left:1.4em;margin:0 0 1.6em}
.prose strong{color:var(--ink)}

/* ボタン：ページへ移るものは白地・1pxの黒枠・黒文字（幅320・高さ66）。CTA（メルマガ・求人）は黒。相談は白・枠なし */
.btn{display:flex;align-items:center;justify-content:center;width:320px;max-width:100%;height:66px;margin:64px auto 0;border:1px solid var(--ink);border-radius:80px;background:#fff;color:var(--ink);font-weight:700;font-size:18px;letter-spacing:.04em;line-height:1;transition:opacity .2s}
.btn:hover{opacity:.7}
.btn.btn-dark{background:#111;color:#fff;border-color:#111}
.btn.btn-plain{border:0;color:var(--ink-2);width:max-content;min-width:265px;padding:0 40px;letter-spacing:0}
.btn.btn-arrow{position:relative;width:264px;height:62px;border-color:#9b9b9b;font-size:16px;justify-content:flex-start;padding-left:28px}
.btn.btn-arrow::after{content:"";position:absolute;right:16px;top:50%;width:24px;height:24px;margin-top:-12px;border-radius:50%;background:#000 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M9 6l6 6-6 6' fill='none' stroke='white' stroke-width='2'/></svg>") center/14px no-repeat}
.btn.btn-sm{height:50px;font-size:16px;width:280px}

/* ヘッダー */
.site-header{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;height:72px;padding:0 24px;background:#fff}
.site-header .logo img{width:160px;height:34px}
.gnav{margin-left:auto;display:flex;align-items:center;gap:40px;font-size:13px;font-weight:700;letter-spacing:.14em}
.gnav .btn-contact{background:#111;color:#fff;border-radius:80px;padding:12px 28px;margin-left:8px}
.menu-btn{display:none;margin-left:auto;width:44px;height:44px;border:0;background:none;cursor:pointer;flex-direction:column;justify-content:center;gap:6px;padding:10px}
.menu-btn span{display:block;height:2px;background:var(--ink)}

/* ページの頭（パンくず＋大見出し 64px） */
.page-head{padding:36px 124px 0;max-width:calc(var(--w-narrow) + 248px);margin:0 auto}
.crumb{font-size:12px;letter-spacing:.1em;color:var(--ink-2);margin-bottom:24px}
.crumb span{margin:0 14px}
.page-head h1{font-size:64px;line-height:1.2;color:var(--ink);white-space:nowrap}

/* TOP：1画面目 */
.hero{position:relative;height:calc(100vh - 72px);height:calc(100svh - 72px);background:#000;overflow:hidden;contain:paint}
.hero .video{position:absolute;inset:0;overflow:hidden;clip-path:inset(0)}
.hero .video iframe{position:absolute;top:50%;left:50%;width:max(100%,177.78vh);width:max(100%,177.78svh);height:max(100%,56.25vw);transform:translate(-50%,-50%) scale(1.8);border:0;pointer-events:none}
.hero .video{overflow:hidden}
.hero .hero-text{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);color:#fff;text-align:center;padding:0 24px}
.hero .eyebrow{font-size:16px;letter-spacing:.1em;margin-bottom:12px;line-height:1.2}
.hero .tagline{font-size:50px;font-weight:700;letter-spacing:.1em;line-height:1.2;white-space:nowrap}
.whatis{text-align:center;padding:200px 0 0}
.label-img{width:805px;max-width:100%;margin:0 auto 100px}
.whatis h2{font-size:40px;line-height:1.6;color:var(--ink);margin:0 auto 100px}
.whatis .lead{font-size:18px;line-height:2;max-width:723px;margin:0 auto}
.whatis .lead p{margin-bottom:1em}
.whatis .lead p:last-child{margin-bottom:0}
.whatis .btn{margin-top:100px}
.divider{max-width:1032px;margin:120px auto 0;border:0;border-top:1px solid var(--line)}

/* 事業 */
.business-sec{padding:120px 0 120px}
.business-sec .sec-en{font-size:64px;margin-bottom:60px}
.biz-grid{display:grid;grid-template-columns:431px 611px;justify-content:space-between;gap:40px;align-items:start}
.biz-text h2{font-size:32px;line-height:1.2;color:var(--ink);margin-bottom:40px}
.biz-lead{font-size:22px;font-weight:700;line-height:1.5;color:var(--ink);margin-bottom:40px}
.biz-body{font-size:16px;line-height:2;color:var(--ink-2)}
.biz-text .btn{margin:64px 0 0}
.diagram{position:relative;width:100%;max-width:611px;aspect-ratio:611/682;margin:0 0 0 auto;container-type:inline-size}
.diagram .circle{position:absolute;width:46.2%;aspect-ratio:1/1;border-radius:50%;background:#ddd center/cover no-repeat;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:6%;z-index:1;color:var(--ink)}
.diagram .circle strong{font-size:5.24cqw;line-height:1;margin-bottom:.45em}
.diagram .circle span{font-size:2.3cqw;line-height:1.7;letter-spacing:-.05em;white-space:nowrap}
.diagram .c1{left:26.8%;top:0}
.diagram .c2{left:0;bottom:0}
.diagram .c3{right:0;bottom:0}
.diagram .center{position:absolute;left:50%;top:44.9%;transform:translateX(-50%);text-align:center;z-index:2;color:var(--ink);width:40.4%}
.diagram .center strong{display:block;font-size:3.93cqw;line-height:1.5;white-space:nowrap}
.diagram .center span{font-size:2.95cqw;display:block;margin-top:.9em;line-height:1.8}
.diagram .lines{position:absolute;left:12.3%;top:18.9%;width:75.3%;height:auto}
.diagram-sp{display:none}

/* ニュース（TOP） */
.news-sec{background:var(--bg-3);padding:160px 0 200px;margin-top:0}
.news-sec .sec-en{font-size:32px;text-align:center;margin-bottom:90px}
.news-list{max-width:700px;margin:0 auto}
.news-row{display:grid;grid-template-columns:143px 1fr;gap:0;padding:22px 0;border-bottom:1px solid var(--line);color:var(--ink-2);font-size:18px;line-height:2}
.news-row:first-child{border-top:1px solid var(--line)}
.news-row time{font-weight:700;font-size:19px;line-height:1.9;color:var(--ink-2)}
.news-row span{font-size:18px;line-height:2}
.news-row:hover span{opacity:.6}
.btn.btn-gray{width:240px;height:66px;background:var(--bg-2);border:0;border-radius:40px;color:var(--ink-2);font-size:16px;font-weight:700;letter-spacing:0;margin-top:40px}

/* ニュース一覧・ニュース詳細（最初の作り直しのまま。澤田さん「悪くないのでそのまま」） */
.news-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:64px 48px}
.news-card .thumb{display:block;aspect-ratio:16/9;background:#eee center/cover no-repeat;border-radius:6px;margin-bottom:16px}
.news-card time{font-size:12px;font-weight:700;color:var(--ink-2)}
.news-card strong{display:block;font-size:20px;line-height:1.6;margin:8px 0 12px}
.news-card .excerpt{display:block;font-size:14px;color:var(--ink-3);line-height:1.8;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.news-detail .hero-img{width:100%;border-radius:6px;margin-bottom:40px}
.news-detail time{font-weight:700;color:var(--ink-2)}
.news-detail h1{font-size:28px;line-height:1.4;margin:8px 0 40px}
.news-detail .prose{font-size:16px}

/* ニュース一覧・詳細は最初の作り直し（PR #548）の寸法のまま：節の上下96、左右24、本文760幅 */
.news,.news-detail{padding:96px 0}
.news .container{max-width:calc(var(--w-narrow) + 48px);padding:0 24px}
.news{padding-top:200px}  /* 見出しから中身まで COMPANY と同じ 200px */
.news-detail .container.narrow{max-width:808px;padding:0 24px}
.news-detail .btn{margin-top:64px}

/* カルチャーデッキ */
.deck-sec{padding:140px 0 60px;text-align:center}
.deck-title{font-size:min(calc(100vw / 5.3),241px);line-height:.9;letter-spacing:-.05em;white-space:nowrap;color:var(--ink);margin:0 0 60px;padding:0}
.deck-sec .container{padding:0;max-width:1280px}  /* 文字は左ぞろえのまま、1280の箱ごと中央に */
.deck{aspect-ratio:1000/563;max-width:1000px;margin:0 auto;background:#d8d8d8}
.deck iframe{width:100%;height:100%;border:0}
.team-sec{text-align:center;padding:120px 0 180px}
.team-sec .sec-en{font-size:48px;margin-bottom:60px;color:var(--ink)}
.team-sec p{max-width:700px;margin:0 auto;font-size:16px}
.team-sec .btn{margin-top:60px}

/* COMPANY の下位ページへのカード（470×260、2列） */
.company-nav{padding:70px 0 0}
.phil-values+.company-nav{padding-top:160px}
.grid-cards{display:grid;grid-template-columns:repeat(2,470px);justify-content:center;gap:72px 80px;padding:0 24px 60px}
.nav-card .thumb{display:block;aspect-ratio:470/260;background:#eee center/cover no-repeat;border-radius:6px}
.nav-card .label{display:flex;align-items:center;gap:8px;font-size:24px;font-weight:700;color:var(--ink);margin-top:24px}
.chev{width:9px;height:9px;border-right:2px solid;border-top:2px solid;transform:rotate(45deg)}
.company .sec-ja{font-size:48px;color:var(--ink);margin:200px 0 0}

/* フィロソフィー */
.phil{position:relative;text-align:center;padding:200px 0 0;overflow:hidden}
.phil-item{margin-bottom:200px;position:relative;z-index:1}
.phil-item .sec-en,.phil-purpose .sec-en,.phil-values .sec-en{font-size:22px;color:var(--ink);margin-bottom:24px;line-height:1.6}
.phil-item h2{font-size:54px;line-height:1.4;color:var(--ink);margin-bottom:16px}
.phil-item+.phil-item h2{font-size:40px;line-height:1.8}
.phil-purpose{background:#464646;color:#fff;text-align:center;padding:120px 0}
.phil-purpose .sec-en{color:#fff}
.phil-purpose h2{font-size:60px;line-height:1.8;margin-bottom:8px}
.phil-purpose .en{color:#999}
.phil-photo{display:block;width:100%;aspect-ratio:1440/1150;object-fit:cover;object-position:50% 85%;margin:0 auto}  /* 縦長の写真なので、植物と鉢が全部入る位置を見せる */
.phil-values{text-align:center;padding:200px 0 0}
.phil-values h2{font-size:48px;color:var(--ink);margin-bottom:110px}
.values{display:grid;gap:64px;max-width:1032px;margin:0 auto}
.values h3{font-size:32px;line-height:1.6;color:var(--ink);margin-bottom:12px}
.values p{font-size:14px;line-height:1.9;color:var(--ink-2);max-width:760px;margin:0 auto}

/* メッセージ・会社概要・メンバー */
.message{padding:120px 0 0}
.message .sec-ja{font-size:48px;color:var(--ink);margin-bottom:60px}
.message .photo{width:100%;aspect-ratio:3/2;object-fit:cover;margin:0 0 70px}
.message .inner{max-width:826px;margin:0 auto}
.msg-title{font-size:36px;line-height:1.4;color:var(--ink);margin-bottom:8px}
.message .en{margin-bottom:40px;line-height:1.4}
.message .prose{font-size:14px;line-height:2}
.profile{padding:120px 0 0}
.profile .sec-ja{font-size:48px;color:var(--ink);margin-bottom:60px}
.profile-table{width:100%;border-collapse:collapse}
.profile-table th,.profile-table td{padding:12px 0;border-bottom:1px solid var(--line);vertical-align:top;text-align:left;font-size:14px;line-height:1.9;color:var(--ink-2)}
.profile-table th{width:120px;padding-right:24px}
.profile-table td{padding-left:24px}
.members .sec-en.small{font-size:14px;font-weight:700;color:var(--ink);margin:120px 0 24px;line-height:1.6}
.members .sec-ja{font-size:48px;color:var(--ink);margin-bottom:40px}
.members .lead{font-size:14px;line-height:1.9;color:var(--ink-2);margin-bottom:120px}
.member-grid{display:grid;grid-template-columns:repeat(3,322px);justify-content:center;gap:0 33px}
.member-card{display:block;padding:40px 70px 60px;text-align:left;color:var(--ink-2)}
.member-card .thumb{display:block;width:182px;height:182px;background:#eee center 30%/cover no-repeat;border-radius:6px;margin:0 auto 24px}
.member-card .name{display:block;font-size:20px;font-weight:700;line-height:1;text-align:center}
.member-card .role{display:block;font-size:14px;font-weight:700;color:var(--ink-4);text-align:center;line-height:1.4;margin-top:16px}
a.member-card:hover .thumb{opacity:.85}
.member-detail{padding:60px 0 0}
.member-detail .container.text{max-width:748px}
.member-detail .statement{font-size:36px;font-weight:700;line-height:1.4;color:var(--ink);margin-bottom:60px}
.member-detail .prose{font-size:16px;line-height:2;color:var(--ink-2)}
.member-detail .prose h2,.member-detail .prose h3{font-size:24px;line-height:1.8;margin:1.6em 0 .4em}
.member-detail .prose h2:first-child{margin-top:0}
.member-detail .btn{margin-top:140px;height:52px;font-size:16px}

/* BUSINESS */
.business-intro{padding:88px 0 0}
.business-intro .container{max-width:calc(var(--w-narrow) + 48px);padding:0 24px}
.business-intro .biz-grid{grid-template-columns:minmax(0,440px) minmax(0,540px);justify-content:space-between;gap:0}
.business-intro .biz-text{padding:112px 0 0}
.business-intro .biz-body{max-width:385px}
.business-intro .biz-text h2{font-size:36px;margin-bottom:40px}
.biz-block{text-align:center;padding:0 0 60px}
.biz-block:last-of-type{padding-bottom:200px}
.biz-block .container.narrow{max-width:1188px;padding:0 24px}
/* 事業の見出し：画像をやめて文字に。色は元の画像から拾った流れをなめらかに塗る */
.biz-label{display:block;width:max-content;max-width:100%;margin:100px auto 60px;font-size:80px;font-weight:700;line-height:1;letter-spacing:-.03em;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.lbl-products{background-image:linear-gradient(90deg,#3366b5 0%,#1836cc 25%,#1072c8 45%,#0f9bcb 62%,#16a2cb 80%,#69a0c5 100%);margin-top:180px}
.lbl-produce{background-image:linear-gradient(90deg,#d7653b 0%,#d8857f 25%,#d692a9 42%,#a96bbb 58%,#2d1bba 78%,#4029ba 100%)}
.lbl-village{background-image:linear-gradient(90deg,#b5633e 0%,#8c434c 25%,#a04139 42%,#cf4716 58%,#d45422 78%,#c58c68 100%)}
.biz-block h2{font-size:36px;line-height:1.2;color:var(--ink);margin:0 auto 40px;max-width:963px}  /* 963：前の版の最大幅。「〜拠点づく／り」と割れない */
.biz-block .kicker{font-size:64px;font-weight:700;color:var(--ink);margin:100px 0 60px;line-height:1.2}
.biz-block .kicker.sm{font-size:48px;margin-bottom:16px}
.biz-block .sub{font-size:48px;font-weight:700;color:var(--ink);line-height:1.2;margin-bottom:8px}
.biz-block .biz-body{text-align:left;max-width:804px;margin:0 auto 100px;color:var(--ink);line-height:1.6}
.biz-block .shot{width:100%;max-width:1138px;margin:0 auto;border:1px solid var(--line)}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:0;max-width:1140px;margin:0 auto}  /* 前の版と同じ1140幅 */
.gallery .g{display:block;aspect-ratio:380/300;background:#ddd center/cover no-repeat}
.biz-block .btn{margin-top:100px}
.cases{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:20px auto 0;text-align:left;max-width:1140px}
.case{border:1px solid var(--line)}
.case+.case{border-left:0}
.case img{aspect-ratio:284/150;object-fit:cover;border-bottom:1px solid var(--line)}
.case-body{padding:24px}
.case h4{font-size:20px;line-height:1.2;color:var(--ink)}
.case .meta{font-size:12px;font-weight:700;color:var(--ink-4);margin:6px 0 4px;line-height:1.4}
.case .year{font-size:18px;font-weight:700;color:var(--ink);margin-bottom:16px;line-height:1}
.case .sub2{font-size:12px;font-weight:700;color:var(--ink-2);margin-bottom:6px;line-height:1.4}
.case p{font-size:12px;color:var(--ink-2);line-height:1.4}

/* RECRUIT */
.rc-fv{position:relative;overflow:hidden}
.rc-fv .collage{position:relative;width:min(100%,1440px);margin:0 auto;aspect-ratio:1440/1060}
.rc-fv .collage img{position:absolute;object-fit:cover;border-radius:6px}
.rc-fv-text{position:absolute;left:50.7%;top:10.3%;width:43.75%;max-width:560px}
.rc-fv h1{font-size:min(80px,6.25vw);line-height:1.4;color:var(--ink);margin-bottom:60px}
.rc-fv p{font-size:16px;line-height:1.8;color:var(--ink);max-width:511px}
.rc-message{padding:140px 0}
.rc-message .container{display:grid;grid-template-columns:413px 1fr;gap:80px;align-items:start;max-width:1280px;padding:0 64px}
.rc-message .photo{width:413px;aspect-ratio:413/261;object-fit:cover;border-radius:6px;margin-top:30px}
.rc-message .sec-en{margin-bottom:60px;color:var(--ink)}
.rc-message .sec-ja{font-size:24px;margin-bottom:80px;color:var(--ink)}
.msg-lead{font-size:24px;font-weight:700;line-height:1.5;color:var(--ink);margin-bottom:60px}
.rc-message .prose{font-size:16px;line-height:1.8;color:var(--ink)}
.rc-phil{background:#888 center/cover no-repeat}
.rc-phil,.rc-people,.rc-voice{text-align:center}
.rc-band{background:var(--yg)}  /* PEOPLE と VOICE はひと続きの YADOKARI グラデーション（brand/yadokari-gradient） */
.is-recruit .sec-en,.rc-business .sec-en{font-size:56px}
.rc-phil{padding:110px 0 120px}
.rc-phil .container,.rc-people .container,.rc-voice .container{max-width:1280px;padding:0 64px}
.rc-phil .sec-en{color:#fff;margin-bottom:60px}
.rc-phil .sec-ja{color:#fff;font-size:24px;margin-bottom:60px}
.phil-tree{position:relative;display:grid;grid-template-columns:292px 368px 411px;grid-template-rows:auto 319px auto;gap:100px 32px;justify-content:space-between;text-align:left;color:#fff}
.phil-tree::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;background:#000;transform:translateX(-50%)}
.node{position:relative;z-index:1;background:#000;color:#fff;padding:40px}
.node.vision{grid-column:1/-1;display:flex;align-items:center;gap:32px;padding:30px 60px;height:100px}
.node.vision .k{display:flex;align-items:center;gap:16px;font-size:24px;font-weight:700;border-right:1px solid #fff;padding-right:24px;margin-right:16px;line-height:1.5}
.node.vision .k em{font-style:normal;font-weight:400;font-size:18px;border-left:1px solid #fff;padding-left:16px}
.node.vision strong{font-size:32px;line-height:1.2}
.node.circle{width:292px;height:292px;padding:24px 16px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;align-self:center}
.node.circle strong,.node.mission strong,.node.vision strong{white-space:nowrap}
.node.circle .k,.node.mission .k,.node.value .k{display:block;font-size:24px;font-weight:700;line-height:1.5;text-align:center;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid currentColor;width:60%;margin-left:auto;margin-right:auto}
.node .j{display:block;font-size:18px;text-align:center;margin-bottom:12px;line-height:1.8}
.node strong{display:block;font-size:24px;line-height:1.5;text-align:center}
.node.circle strong{font-size:32px}
.node.mission,.node.value{display:flex;flex-direction:column;justify-content:center;height:319px}
.node.mission{padding:40px 16px}
.node.value{background:#fff;color:#000;border:1px solid #000}
.node.value ol{text-align:left;font-size:16px;line-height:1.5;list-style:none;margin:0 auto;width:max-content}
.node.value ol li{margin:0}
.node.culture{grid-column:1/-1;background:#fff;color:#000;border:1px solid #000;display:flex;align-items:center;justify-content:center;gap:32px;height:107px;padding:0 60px}
.node.culture .k{font-size:24px;font-weight:700;border-right:1px solid #000;padding-right:32px;line-height:1}
.node.culture .j{font-size:18px;margin:0;line-height:1}
.node.culture strong{font-size:32px;line-height:1}
.rc-phil .btn{margin-top:100px}
.rc-business{padding:140px 0}
.rc-business .container{max-width:1280px;padding:0 64px}
.rc-business .sec-en{font-size:90px;margin-bottom:40px;color:var(--ink)}
.rc-business .biz-grid{grid-template-columns:510px 611px;justify-content:space-between;gap:0}
.rc-business .biz-text h2{color:var(--ink)}
.rc-business .biz-lead{font-size:20px}
.rc-business .biz-body{font-size:16px;line-height:1.8;color:var(--ink)}
.rc-culture{padding:140px 0 120px}
.rc-culture .container{max-width:1280px;padding:0 64px}
.rc-culture .sec-en{color:var(--ink);margin-bottom:60px}
.rc-culture .sec-ja{color:var(--ink);font-size:24px;margin-bottom:60px}
.cult-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:40px 100px}
.cult{display:grid;grid-template-columns:236px 1fr;grid-template-rows:auto auto 1fr;gap:0 32px;padding:30px 0;border-top:1px solid var(--line);text-align:left}
.cult .thumb{grid-row:1/4}
.cult .thumb{display:block;width:236px;height:270px;background:#eee center/cover no-repeat}
.cult .en{font-size:14px;color:var(--ink);line-height:1;margin-bottom:24px}
.cult h3{font-size:22px;line-height:1.5;color:var(--ink);margin-bottom:24px}
.cult p{font-size:15px;line-height:1.6;color:var(--ink)}
.rc-people{padding:110px 0 120px}
.rc-people .sec-en{color:#fff;margin-bottom:40px}
.rc-people .sec-ja{color:#fff;font-size:24px;margin-bottom:100px}
.people-grid{display:grid;grid-template-columns:repeat(3,264px);justify-content:space-between;gap:32px;max-width:1055px;margin:0 auto}
.person{display:block;background:rgba(255,255,255,.9);border-radius:10px;padding:16px;text-align:left;color:var(--ink)}
.person img{width:232px;height:232px;object-fit:cover;margin:0 auto 32px}
.person .unit{display:block;font-size:15px;font-weight:700;line-height:1.5}
.person .name{display:block;font-size:20px;font-weight:700;margin:0 0 16px;line-height:1.2}
.person .why{display:block;font-size:14px;line-height:1.6;margin-bottom:8px}
.person .line{display:block;font-size:16px;font-weight:700;line-height:1.3}
.rc-people .btn{margin-top:60px}
.rc-voice{padding:110px 0 140px}
.rc-voice .sec-en{color:#fff;margin-bottom:40px}
.rc-voice .sec-ja{color:#fff;font-size:24px;margin-bottom:100px}
.voice-grid{display:grid;grid-template-columns:repeat(4,264px);gap:32px;justify-content:center}
.voice{position:relative;display:flex;flex-direction:column;width:264px;background:#fff;border:0;border-radius:6px;padding:0 0 16px;text-align:left;cursor:pointer;font:inherit;color:var(--ink)}
.voice img{width:264px;height:264px;object-fit:cover;border-radius:6px 6px 0 0;margin-bottom:14px}
.voice .name{display:block;font-size:16px;padding:0 12px;line-height:1}
.voice .name small{font-size:16px;margin-left:8px}
.voice .title{display:block;font-size:14px;line-height:1.4;padding:10px 56px 0 12px}
.voice .plus{position:absolute;right:12px;bottom:16px;width:36px;height:36px;border-radius:50%;background:#000;color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;line-height:1}
.modal{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.6);display:flex;align-items:flex-start;justify-content:center;padding:24px;overflow:auto;-webkit-overflow-scrolling:touch}
.modal[hidden]{display:none}
.modal-box{position:relative;background:#fff;border-radius:8px;max-width:560px;width:100%;padding:0 0 32px;margin:auto;text-align:left}
.modal-box img{aspect-ratio:1/1;object-fit:cover;border-radius:8px 8px 0 0}
.modal-box .name{font-size:22px;font-weight:700;padding:24px 32px 0}
.modal-box .title{font-size:13px;color:var(--ink-2);padding:4px 32px 0;line-height:1.6}
.modal-box .tag{font-size:13px;font-weight:700;padding:16px 32px 0}
.modal-box .body{padding:16px 32px 0;font-size:15px;line-height:1.9}
.modal-close{position:fixed;top:12px;right:12px;width:44px;height:44px;border:0;border-radius:50%;background:#fff;color:#000;font-size:30px;line-height:44px;box-shadow:0 2px 8px rgba(0,0,0,.25);cursor:pointer;z-index:1}
.rc-deck{padding:140px 0;text-align:center}
.rc-deck .sec-en{color:var(--ink);text-align:center;margin-bottom:60px}
.rc-deck .sec-ja{color:var(--ink);font-size:24px;margin-bottom:60px}
.rc-deck .deck{max-width:1152px;aspect-ratio:1152/648}
.rc-join{padding:140px 0}
.rc-join .container{max-width:1280px;padding:0 64px;display:grid;grid-template-columns:1fr 673px;gap:60px;align-items:start}
.rc-join .sec-en{color:var(--ink);margin-bottom:60px}
.rc-join .sec-ja{color:var(--ink);font-size:24px;margin:0}
.rc-join .lead{font-size:16px;line-height:1.8;color:var(--ink);padding-bottom:40px;border-bottom:1px solid var(--line);margin-bottom:0}
.rc-join h3{font-size:28px;line-height:1.2;color:var(--ink);margin:40px 0 40px}
.join-list{padding-bottom:40px;border-bottom:1px solid var(--line)}
.join-list li{margin-bottom:40px}
.join-list h4{font-size:18px;line-height:1.5;color:var(--ink);margin-bottom:10px}
.join-list p{font-size:15px;line-height:1.5;color:var(--ink)}
.rc-jobs{padding:140px 0 90px}
.rc-jobs .container{max-width:1280px;padding:0 64px;display:grid;grid-template-columns:1fr 711px;gap:60px;align-items:start}
.rc-jobs .sec-en{color:var(--ink);margin-bottom:60px;line-height:1.2}
.rc-jobs .sec-ja{color:var(--ink);font-size:24px;line-height:1.2}
.jobs{display:grid;gap:24px}
.job{display:grid;grid-template-columns:1fr 259px;gap:24px;align-items:center;border:1px solid #000;border-radius:6px;padding:40px 32px;min-height:208px}
.job h4{font-size:20px;line-height:1.5;color:var(--ink);text-align:left}
.job p{font-size:15px;line-height:1.8;color:var(--ink)}
.rc-cta{background:var(--bg-4);text-align:center;padding:86px 0}
.rc-cta h2{font-size:24px;line-height:1.6;color:var(--ink)}
.rc-cta .btn{margin-top:40px;width:240px;height:52px;font-size:16px}
.rc-comment{background:#333 center/cover no-repeat;color:#fff;padding:60px 0;min-height:880px;display:flex;align-items:flex-start}
.rc-comment .container{max-width:none;margin:0;padding:0 64px}
.rc-comment p{font-size:16px;line-height:1.8;text-align:left}
.entry-float{position:fixed;right:20px;bottom:20px;z-index:90;width:120px;height:120px;border-radius:50%;background:#000;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;line-height:1.3}
.entry-float strong{font-size:20px;line-height:1}
.entry-float span{font-size:13px;font-weight:700;margin-top:6px}

/* フッター */
.contact-cta{background:var(--bg-2);text-align:center;padding:75px 0 80px}
.contact-cta h2{font-size:36px;line-height:1.4;color:var(--ink);margin-bottom:30px}
.contact-cta p{font-size:16px;line-height:2;color:var(--ink-2)}
.contact-cta .btn{margin-top:45px}
.map iframe{display:block;width:100%;height:520px;border:0}
.mailmag{max-width:var(--w);margin:0 auto;padding:48px 70px 80px;display:flex;align-items:center;justify-content:center;gap:100px}
.mailmag p{font-size:16px;line-height:1.6;color:var(--ink-2);text-align:left}
.mailmag .btn{margin:0;width:260px;height:68px;font-size:18px}
.footer-info{max-width:1280px;margin:0 auto;padding:40px 124px 80px;display:flex;justify-content:space-between;align-items:flex-end;gap:40px;font-size:12px;letter-spacing:.1em;color:var(--ink-2)}
.footer-info .logo img{width:248px;height:auto;aspect-ratio:600/128;margin-bottom:24px}
.footer-left{flex:0 0 auto;min-width:424px}
.address{white-space:nowrap}
.address{font-size:14px;letter-spacing:.1em;margin-bottom:12px}
.footer-info .links a{display:inline-flex;align-items:center;gap:6px;margin-right:24px}
.footer-info .sns a{display:inline-flex;align-items:center;gap:6px;margin-left:24px}  /* 右寄せなので間隔は左側に */
.footer-info .links a span,.footer-info .sns a span{text-decoration:underline;text-underline-offset:4px}
.footer-info svg{flex:0 0 auto}
.footer-right{text-align:right}
.fnav{display:flex;gap:32px;justify-content:flex-end;font-size:13px;letter-spacing:.14em;color:var(--ink-2);margin-bottom:40px}
.copy{font-size:10px;letter-spacing:.1em;margin-top:12px}

/* ===== タブレット ===== */
@media (max-width:1140px){
  :root{--gutter:40px}
  .container.narrow,.page-head{padding-left:40px;padding-right:40px}
  .biz-grid,.business-intro .biz-grid,.rc-business .biz-grid{grid-template-columns:1fr;gap:60px;justify-content:stretch}
  .whatis .btn{margin-top:80px}
  .diagram{margin:0 auto}
  .grid-cards{grid-template-columns:repeat(2,1fr)}
  .footer-info{padding-left:40px;padding-right:40px;gap:24px}
  .footer-left{min-width:0}
  .address{white-space:normal}
  .fnav{gap:20px}
  .member-grid{grid-template-columns:repeat(3,1fr);gap:0 20px}
  .member-card{padding:40px 20px}
  .phil-tree{grid-template-columns:1fr;grid-template-rows:none;justify-items:center}
  .node.vision,.node.culture{grid-column:auto;width:100%;height:auto;flex-direction:column;gap:12px;padding:30px}
  .node.vision .k,.node.culture .k{border:0;padding:0;margin:0}
  .node.mission,.node.value{width:100%;max-width:520px;height:auto}
  .people-grid,.voice-grid{grid-template-columns:repeat(2,264px)}
  .cult-grid{grid-template-columns:1fr}
  .rc-join .container,.rc-jobs .container{grid-template-columns:1fr}
  .rc-fv h1{margin-bottom:24px}
  .rc-fv p{font-size:15px;line-height:1.6}
  .rc-message .container{grid-template-columns:1fr}
  .rc-message .photo{width:100%;margin:0}
  .cases{grid-template-columns:repeat(2,1fr);gap:16px}
}
/* ===== スマホ ===== */
@media (max-width:768px){
  :root{--gutter:24px}
  body{font-size:15px;padding-top:60px}
  .site-header{height:60px}
  .menu-btn{display:flex}
  .gnav{display:none;position:fixed;top:60px;left:0;right:0;bottom:0;background:#fff;flex-direction:column;align-items:stretch;gap:0;padding:8px 0 24px;overflow:auto;font-size:16px}
  .gnav.is-open{display:flex}
  .gnav a{padding:16px 24px;border-bottom:1px solid var(--line)}
  .gnav .btn-contact{align-self:center;width:240px;margin:32px 0 0;text-align:center;border:0;padding:14px 0}
  .container,.container.narrow,.container.text,.page-head,.rc-message .container,.rc-phil .container,.rc-people .container,.rc-voice .container,.rc-business .container,.rc-culture .container,.rc-join .container,.rc-jobs .container,.rc-comment .container{padding-left:24px;padding-right:24px}
  .btn{width:280px;height:50px;font-size:16px;margin-top:48px}
  .btn.btn-arrow{width:312px;height:62px}
  .sec-en{font-size:52px;margin-bottom:40px}
  .sec-ja{font-size:18px;margin-bottom:32px}
  .page-head{padding-top:30px}
  .crumb{margin-bottom:24px}
  .page-head h1{font-size:min(48px,9vw)}
  .hero{height:70vh;height:70svh}
  .hero .hero-text{padding:0 30px}
  .hero .eyebrow{font-size:11px}
  .hero .tagline{font-size:22px;letter-spacing:1px;white-space:nowrap}
  .hero .hero-text{top:44%;transform:none}
  .label-img{width:298px}
  .hero .video iframe{width:max(100%,124.5vh);width:max(100%,124.5svh)}
  .whatis{padding-top:80px}
  .label-img{margin-bottom:40px}
  .whatis h2{font-size:16px;line-height:1.6;margin-bottom:40px;padding:0 0}
  .whatis .container.narrow{padding-left:20px;padding-right:20px}
  .whatis .lead{font-size:15px;line-height:1.9;text-align:left}
  .whatis .lead br,.rc-message .prose br,.rc-fv p br,.team-sec p br,.message .prose br{display:none}
  .whatis .btn{margin-top:64px}
  .divider{margin-top:72px}
  .business-sec{padding:72px 0 100px}
  .business-sec .sec-en{font-size:18px;text-align:center;margin-bottom:48px;color:var(--ink)}
  .business-sec .container{padding-left:38px;padding-right:38px}
  .biz-text{text-align:center}
  .biz-text h2{font-size:24px;margin-bottom:24px}
  .biz-lead{font-size:16px;line-height:1.6;margin-bottom:24px}
  .biz-body{text-align:left;font-size:15px;line-height:1.85}
  .biz-text .btn{margin:48px auto 0}
  .diagram{display:none}
  .diagram-sp{display:block;width:315px;max-width:100%;margin:36px auto 0}
  .news-sec{padding:48px 0}
  .news-sec .sec-en{font-size:24px;margin-bottom:40px}
  .news-row{grid-template-columns:1fr;padding:12px 0;font-size:14px;line-height:1.75}
  .news-list{padding:0 20px}
  .news-row time{font-size:12px;line-height:2}
  .news-row span{font-size:14px;line-height:1.75}
  .news,.news-detail{padding:64px 0}
  .news{padding-top:150px}
  .news .container,.news-detail .container.narrow{padding:0 24px}
  .news-detail .btn{margin-top:48px}

  .deck-sec{padding:80px 0 64px;text-align:center}
  .deck-title{font-size:calc((100vw - 40px) / 5.3);padding:0 20px;margin-bottom:40px}
  .deck{margin:0 20px}
  .team-sec{padding:60px 0 120px}
  .team-sec .sec-en{font-size:24px;margin-bottom:24px}
  .team-sec p{font-size:15px;line-height:1.85;letter-spacing:.04em;text-align:left}
  .team-sec .container{padding-left:20px;padding-right:20px}
  .grid-cards{grid-template-columns:1fr;gap:72px;padding:0 20px}
  .nav-card .thumb{aspect-ratio:350/300}
  .nav-card .label{font-size:20px}
  .company-nav{padding:60px 0 20px}
  .company .sec-ja{font-size:32px;margin-top:150px}
  .phil{padding-top:100px}
  .phil-item{margin-bottom:100px}
  .phil-item .sec-en,.phil-purpose .sec-en,.phil-values .sec-en{font-size:14px}
  .phil-item h2{font-size:24px;line-height:1.5}
  .phil-item+.phil-item h2{font-size:24px;line-height:1.8}
  .phil-purpose{padding:60px 0}
  .phil-purpose h2{font-size:32px}
  .phil-photo{aspect-ratio:1/1;object-position:50% 85%}
  .phil-values{padding-top:120px}
  .phil-values h2{font-size:24px;margin-bottom:60px}
  .values{gap:40px}
  .values h3{font-size:20px;line-height:1.6}
  .values p{font-size:15px;line-height:1.85;text-align:left}
  .values p br{display:none}
  .message .sec-ja,.profile .sec-ja,.members .sec-ja{font-size:32px}
  .message .photo{margin-bottom:60px}
  .msg-title{font-size:22px;line-height:1.5}
  .message .prose{font-size:15px;line-height:1.9}
  .profile-table th{width:100px;padding-right:16px}
  .profile-table td{padding-left:16px}
  .members .sec-en.small{margin-top:150px}
  .members .lead{font-size:15px;line-height:1.85;margin-bottom:60px}
  .member-grid{grid-template-columns:repeat(2,1fr);gap:0 24px}
  .member-card{padding:24px 0 32px}
  .member-card .thumb{width:100%;height:auto;aspect-ratio:1/1;margin-bottom:16px}
  .member-card .name{font-size:16px}
  .member-card .role{font-size:12px;margin-top:10px}
  .member-detail .statement{font-size:22px;line-height:1.5}
  .member-detail .prose h2,.member-detail .prose h3{font-size:20px;line-height:1.6}
  .member-detail .btn{margin-top:80px}
  .business-intro .biz-text h2{font-size:24px}
  .biz-block .label-img{margin:40px auto 40px;width:260px}
  .biz-label{font-size:46px;margin:40px auto 40px}
  .biz-block .container.narrow{padding-left:32px;padding-right:32px}
  .business-intro .container{padding-left:24px;padding-right:24px}
  .business-intro .biz-text{padding:0}
  .business-intro .biz-body{max-width:none}
  .biz-block:last-of-type{padding-bottom:160px}
  .biz-block h2{font-size:16px;line-height:1.6;margin-bottom:40px}
  .biz-block .kicker{font-size:24px;margin:60px 0 24px}
  .biz-block .kicker.sm{font-size:20px}
  .biz-block .sub{font-size:20px}
  .biz-block .biz-body{font-size:15px;line-height:1.85;margin-bottom:40px}
  .gallery{grid-template-columns:repeat(3,1fr)}
  .gallery .g{aspect-ratio:130/110}
  .biz-block .btn{margin-top:40px}
  .cases{grid-template-columns:1fr;gap:24px}
  .case+.case{border-left:1px solid var(--line)}
  .case img{aspect-ratio:324/171}
  .case h4{font-size:16px}
  .case p,.case .sub2{font-size:13px;line-height:1.6}
  .rc-fv{padding:0 0 40px}
  .rc-fv .collage{aspect-ratio:390/654}
  .rc-fv .collage img{left:var(--sl)!important;top:var(--st)!important;width:var(--sw)!important;height:var(--sh)!important;display:var(--sp,block)}
  .rc-fv-text{left:24px;top:21.4%;width:calc(100% - 48px);max-width:none}
  .node.circle{padding:16px}
  .node.circle strong,.node.mission strong,.node.vision strong{white-space:normal}
  .rc-fv h1{font-size:32px;line-height:1.4;margin-bottom:24px}
  .rc-fv p{font-size:15px;line-height:1.4}
  .rc-message{padding:100px 0}
  .rc-message .sec-en{font-size:52px;margin-bottom:40px}
  .rc-message .sec-ja{font-size:18px;margin-bottom:60px}
  .msg-lead{font-size:18px;margin-bottom:40px}
  .rc-message .prose{font-size:15px;line-height:1.9}
  .rc-phil{padding:80px 0 100px}
  .rc-phil .sec-ja{font-size:18px}
  .phil-tree{gap:48px}
  .node.circle{width:180px;height:180px;padding:16px}
  .node.circle .k,.node.mission .k,.node.value .k{font-size:16px;width:70%}
  .node.circle strong{font-size:18px}
  .node .j{font-size:13px}
  .node strong{font-size:18px}
  .node.vision{width:100%;padding:24px;height:auto;gap:8px}
  .node.vision .k{font-size:16px}
  .node.vision .k em{font-size:14px}
  .node.vision strong{font-size:18px}
  .node.mission,.node.value{width:100%;padding:24px;min-height:0}
  .node.value ol{font-size:15px}
  .node.culture{width:100%;padding:24px;height:auto;gap:8px}
  .node.culture .k{border:0;padding:0;font-size:16px}
  .node.culture .j{font-size:15px}
  .node.culture strong{font-size:18px}
  .rc-phil .btn{margin-top:60px}
  .rc-business{padding:80px 0}
  .rc-business .sec-en{font-size:52px;margin-bottom:24px}
  .rc-business .biz-text{text-align:left}
  .rc-business .biz-text h2{font-size:18px}
  .rc-business .biz-lead{font-size:15px}
  .rc-business .biz-body{font-size:15px}
  .rc-culture{padding:40px 0 100px}
  .rc-culture .sec-ja{font-size:18px}
  .cult{display:block;padding:24px 0}
  .cult .thumb{width:100%;height:auto;aspect-ratio:324/180;margin-bottom:16px}
  .cult .en{font-size:12px;margin-bottom:8px}
  .cult h3{font-size:20px;margin-bottom:8px}
  .cult p{font-size:15px}
  .rc-people{padding:100px 0}
  .rc-people .sec-ja{font-size:18px;margin-bottom:48px}
  .people-grid{grid-template-columns:1fr;gap:24px;justify-items:center}
  .person{width:326px;max-width:100%;padding:0 0 24px;background:#fff}
  .person img{width:100%;height:auto;aspect-ratio:1/1;border-radius:10px 10px 0 0;margin-bottom:24px}
  .person .unit,.person .name,.person .why,.person .line{padding:0 12px}
  .person .unit{font-size:14px}
  .person .name{font-size:16px;margin-bottom:12px}
  .person .why{font-size:13px}
  .person .line{font-size:16px}
  .rc-voice{padding:100px 0}
  .rc-voice .sec-ja{font-size:18px;margin-bottom:48px}
  .voice-grid{grid-template-columns:1fr;justify-items:center;gap:16px}
  .voice{width:326px;max-width:100%}
  .voice img{width:100%;height:auto;aspect-ratio:1/1}
  .voice .name{font-size:16px}
  .voice .title{font-size:13px}
  .rc-deck{padding:64px 0}
  .rc-deck .sec-ja{font-size:18px}
  .rc-join{padding:64px 0}
  .rc-join .sec-en{margin-bottom:24px}
  .rc-join .sec-ja{font-size:20px;margin-bottom:24px}
  .rc-join .lead{font-size:15px;line-height:1.85}
  .rc-join h3{font-size:20px;margin:32px 0 24px}
  .join-list li{margin-bottom:24px}
  .join-list h4{font-size:14px}
  .join-list p{font-size:14px;line-height:1.7}
  .rc-jobs{padding:60px 0}
  .rc-jobs .sec-en{margin-bottom:24px}
  .rc-jobs .sec-ja{font-size:18px;margin-bottom:24px}
  .job{grid-template-columns:1fr;gap:12px;padding:24px 16px;min-height:0}
  .job h4{font-size:15px;text-align:left}
  .job p{font-size:14px;line-height:1.9}
  .rc-cta{padding:60px 0}
  .rc-cta h2{font-size:20px;line-height:1.6}
  .rc-comment{min-height:330px;padding:32px 0}
  .rc-comment .container{padding:0 16px}
  .rc-comment p{font-size:14px;line-height:1.9}
  .entry-float{width:84px;height:84px;right:16px;bottom:16px}
  .entry-float strong{font-size:18px}
  .entry-float span{font-size:13px;margin-top:2px}
  .contact-cta{padding:60px 0 66px}
  .contact-cta h2{font-size:28px;margin-bottom:24px}
  .contact-cta p{font-size:14px;line-height:1.6}
  .contact-cta .btn{margin-top:40px;height:46px;font-size:16px;min-width:274px}
  .map iframe{height:520px}
  .mailmag{flex-direction:column;gap:32px;padding:40px 24px 60px}
  .mailmag p{font-size:14px;text-align:center;line-height:1.6}
  .mailmag .btn{width:260px;height:48px;font-size:16px}
  .footer-info{flex-direction:column;align-items:center;text-align:center;gap:32px;padding:40px 24px 60px}
  .footer-info .logo img{margin:0 auto 24px}
  .footer-left{min-width:0}
  .address{white-space:normal}
  .address{font-size:12px}
  .footer-right{text-align:center}
  .fnav{display:none}
  .footer-info .links a,.footer-info .sns a{margin:0 12px}
  .sns a{font-size:11px}
}

@media (max-width:768px){
  .node.mission strong,.node.circle strong{font-size:16px}  /* 「る。」だけの改行を防ぐ */
}

@media (max-width:768px){
  .news-grid{grid-template-columns:1fr;gap:40px}
  body:not(.is-recruit) main{padding-bottom:48px}  /* 「お気軽にご相談ください」の上の空き */
}

@media (max-width:768px){
  .btn.btn-gray{height:50px}
  /* 図の下にボタン：文字の箱をほどいて、ボタンだけ図のあとに並べる */
  .biz-grid,.business-intro .biz-grid,.rc-business .biz-grid{gap:0}
  .biz-grid .biz-text{display:contents}
  .biz-grid .diagram{margin-top:40px}
  .biz-grid .btn,.biz-grid .biz-text .btn{order:1;margin:40px auto 0}
}

@media (max-width:768px){
  .message .prose br.keep{display:inline}  /* 署名の改行はスマホでも残す */
}

@media (max-width:768px){
  .lbl-products{margin-top:80px}
}

@media (max-width:768px){
  .is-recruit .sec-en,.rc-business .sec-en{font-size:36px}
}

.is-recruit .rc-business .sec-en{font-size:56px}
@media (max-width:768px){
  .is-recruit .rc-business .sec-en{font-size:36px}
}

@media (max-width:768px){
  .business-intro{padding-top:150px}
}

/* スマホだけの改行と、見出しの折り返し（1〜2文字だけ次の行に落ちるのを防ぐ） */
br.sp{display:none}
@media (max-width:768px){
  br.sp{display:inline!important}
  .pc-only{display:none}
  .unit-sp{font-size:.82em}  /* 名前の下の所属は少し小さく、1行に収める */
  .nb{display:inline-block}  /* 単語のまとまり（site.js が付ける）。途中で折らない */
}
/* 言葉の区切りを判断できるブラウザ（Chrome 系）だけ、見出しの行の長さをそろえる。Safari は区切りを判断できず言葉の途中で切れるので効かせない */
@supports (word-break:auto-phrase){
  @media (max-width:768px){
    h1,h2,h3,h4,.sec-ja,.statement,.msg-title,.biz-lead,.msg-lead,.news-card strong,.case .sub2,.person .line,.en,.modal-box .title{text-wrap:balance;word-break:auto-phrase}
  }
}
.member-card .role .w{display:inline-block}  /* 肩書きは言葉ごとにまとめて折る */

@media (max-width:768px){
  .node.value br.sp{display:none!important}  /* 採用ページの図の VALUE は改行しない（2026-11-03 ユーザー指示） */
}

/* スマホのフッター：文字の間隔と大きさを抑え、下線をやめ、細い線で区切る。メニューは3列で出す（2026-11-03 ユーザー指示） */
@media (max-width:768px){
  .footer-info{gap:0;padding:48px 24px 40px;letter-spacing:.04em}
  .footer-right{width:100%;display:flex;flex-direction:column;align-items:center}
  .footer-left{width:100%}
  .footer-info .logo img{width:180px;margin:0 auto 20px}
  .address{font-size:12px;letter-spacing:.04em;line-height:1.8;margin-bottom:20px}
  .footer-info .links,.footer-info .sns{display:flex;justify-content:center;gap:24px;font-size:12px;letter-spacing:.04em}
  .footer-info .links a,.footer-info .sns a{margin:0;gap:6px;font-size:12px}
  .footer-info .links a span,.footer-info .sns a span{text-decoration:none}
  .footer-info .links svg,.footer-info .sns svg{width:15px;height:15px}
  .fnav{display:grid;grid-template-columns:repeat(3,1fr);gap:16px 0;width:100%;margin:28px 0 24px;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;letter-spacing:.1em;text-align:center}
  .copy{font-size:10px;letter-spacing:.08em;margin-top:24px;color:var(--ink-3)}
}

/* =====================================================================
   共通ルール（2026-11-03 ユーザー承認の統一案）
   見出し・本文・ボタン・余白・幅を役割ごとに1つの値にそろえる。値はこの :root だけで決める。
   例外（見せ場として残す）：1画面目のビジョン、CULTURE DECK の特大見出し、BUSINESS のグラデーション見出し、
   PHILOSOPHY のビジョン・ミッション・パーパスの大きな文言、採用1画面目の見出し、ニュース記事のタイトル、
   PHILOSOPHY の VISION などの小さなラベル、CTA の帯（相談・メルマガ・求人）の余白
   ===================================================================== */
:root{
  --t-h2en:56px; --t-h2ja:32px; --t-h3:24px; --t-h4:18px; --t-lead:22px; --t-body:16px; --t-body-lh:2; --t-small:14px;
  --btn-w:320px; --btn-h:66px; --btn-fs:18px; --btn-gap:64px;
  --sec:120px; --sec-l:200px; --side:24px;
}
@media (max-width:768px){
  :root{
    --t-h2en:36px; --t-h2ja:20px; --t-h3:18px; --t-h4:15px; --t-lead:16px; --t-body:15px; --t-body-lh:1.9; --t-small:13px;
    --btn-w:280px; --btn-h:50px; --btn-fs:16px; --btn-gap:40px;
    --sec:80px; --sec-l:120px;
  }
}

/* H2 英字の節見出し */
.sec-en,.business-sec .sec-en,.news-sec .sec-en,.team-sec .sec-en,.is-recruit .sec-en,.rc-business .sec-en,.is-recruit .rc-business .sec-en,
.rc-message .sec-en,.rc-phil .sec-en,.rc-culture .sec-en,.rc-people .sec-en,.rc-voice .sec-en,.rc-deck .sec-en,.rc-join .sec-en,.rc-jobs .sec-en,
.biz-block .kicker,.biz-block .kicker.sm{font-size:var(--t-h2en);line-height:1.1}
/* H2 日本語の節見出し */
.sec-ja,.company .sec-ja,.message .sec-ja,.profile .sec-ja,.members .sec-ja,.rc-message .sec-ja,.rc-phil .sec-ja,.rc-culture .sec-ja,.rc-people .sec-ja,
.rc-voice .sec-ja,.rc-deck .sec-ja,.rc-join .sec-ja,.rc-jobs .sec-ja,.whatis h2,.biz-text h2,.business-intro .biz-text h2,.rc-business .biz-text h2,
.biz-block h2,.phil-values h2,.rc-cta h2,.prose h2{font-size:var(--t-h2ja);line-height:1.5}
/* H3 小見出し */
.values h3,.cult h3,.rc-join h3,.msg-title,.prose h3{font-size:var(--t-h3);line-height:1.5}
/* H4 小さい見出し */
.join-list h4,.job h4,.case h4{font-size:var(--t-h4);line-height:1.5}
/* リード文 */
.biz-lead,.rc-business .biz-lead,.msg-lead{font-size:var(--t-lead);line-height:1.6}
/* 本文 */
.biz-body,.rc-business .biz-body,.biz-block .biz-body,.business-intro .biz-body,.whatis .lead,.message .prose,.values p,.rc-message .prose,.cult p,.join-list p,.job p,
.rc-join .lead,.members .lead,.team-sec p,.rc-comment p{font-size:var(--t-body);line-height:var(--t-body-lh)}
.rc-fv p{font-size:var(--t-body)}
/* 補足の文 */
.en,.message .en,.case p,.news-card .excerpt,.profile-table th,.profile-table td,.person .why{font-size:var(--t-small);line-height:1.8}
.case .sub2,.member-card .role,.voice .title{font-size:var(--t-small)}

/* ボタン：すべて標準（白地・1px 黒枠・黒文字）の大きさに。CTA の黒、LOAD MORE はエリアと同じグレー地 */
.btn,.btn.btn-arrow,.btn.btn-gray,.btn.btn-dark,.btn.btn-plain,.btn.btn-sm,.rc-cta .btn,.mailmag .btn,.contact-cta .btn,.biz-block .btn{
  width:var(--btn-w);min-width:0;max-width:100%;height:var(--btn-h);padding:0;font-size:var(--btn-fs);font-weight:700;letter-spacing:.04em;
  justify-content:center;border:1px solid var(--ink);border-radius:80px;background:#fff;color:var(--ink)}
.btn.btn-arrow::after{content:none}
.btn.btn-dark{background:#111;color:#fff;border-color:#111}
.btn.btn-gray{background:var(--bg-3)}
.btn,.whatis .btn,.team-sec .btn,.biz-block .btn,.rc-phil .btn,.rc-people .btn,.news-detail .btn,.contact-cta .btn,.rc-cta .btn,.btn.btn-gray{margin-top:var(--btn-gap)}
.biz-text .btn{margin-top:var(--btn-gap)}

/* 節の上下の余白（基本 120／大きな区切り 200、スマホ 80／120） */
.business-sec,.news-sec,.rc-message,.rc-phil,.rc-business,.rc-culture,.rc-people,.rc-voice,.rc-deck,.rc-join,.rc-jobs{padding-top:var(--sec);padding-bottom:var(--sec)}
.deck-sec{padding-top:var(--sec)}
.team-sec{padding-top:var(--sec);padding-bottom:var(--sec-l)}

/* 中身の幅：標準 1032、写真・カードの並ぶ所 1140、記事 760。スマホは左右 24 */
.container{max-width:calc(var(--w-narrow) + var(--gutter)*2)}
.biz-grid{grid-template-columns:minmax(0,431px) minmax(0,560px)}
.rc-message .container,.rc-phil .container,.rc-people .container,.rc-voice .container,.rc-business .container,.rc-culture .container,.rc-join .container,.rc-jobs .container{max-width:calc(var(--w) + 128px)}
.rc-business .biz-grid{grid-template-columns:minmax(0,510px) minmax(0,560px)}
.voice-grid{gap:28px}
@media (max-width:768px){
  .biz-grid,.business-intro .biz-grid,.rc-business .biz-grid{grid-template-columns:1fr}
  .whatis .container.narrow,.team-sec .container,.business-sec .container,.biz-block .container.narrow,.business-intro .container,.rc-comment .container,.news .container,.news-detail .container.narrow,.grid-cards{padding-left:var(--side);padding-right:var(--side)}
}
.news-detail .prose{font-size:var(--t-body);line-height:var(--t-body-lh)}

/* スマホの BUSINESS：「TINY HOUSE SERVICE」を出さず、その場所に「YADOKARI.net」を同じ大きさで（2026-11-03 ユーザー指示） */
@media (max-width:768px){
}

/* 採用ページの人物写真：PEOPLE・VOICE・ポップアップとも、正方形でカードの幅いっぱい、上の角だけ丸く（2026-11-03 ユーザー指示） */
.person,.voice{border-radius:6px;overflow:hidden}
.person{padding:0 0 24px;background:#fff}
.person img,.voice img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;border-radius:6px 6px 0 0;margin:0 0 20px}
.person .unit,.person .name,.person .why,.person .line{padding:0 16px}
.modal-box img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;border-radius:8px 8px 0 0}
@media (max-width:768px){
  .person .unit,.person .name,.person .why,.person .line{padding:0 12px}
}

/* BUSINESS：YADOKARI.net を英字の節見出しと同じ大きさで（TINY HOUSE SERVICE の位置に。PC・スマホとも） */
.biz-block .sub.sub-lg{font-size:var(--t-h2en);line-height:1.1;margin:100px 0 24px}
@media (max-width:768px){
  .biz-block .sub.sub-lg{margin:60px 0 24px}
}
