/* ============ tokens ============ */
:root{
  --green:#0B775A;         /* コーポレートカラー */
  --green-d:#075441;
  --green-dd:#04352A;
  --green-l:#E3EFEA;
  --green-ll:#F1F7F4;
  --paper:#F7F5F0;
  --white:#fff;
  --ink:#18231F;
  --ink-2:#5C6762;
  --ink-3:#8C948F;
  --sand:#EAE3D6;
  --line:#E2DCD0;
  --amber:#C8873B;
  --maxw:1180px;
  --r:4px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
  color:var(--ink);background:var(--paper);line-height:1.95;font-size:16px;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;font-feature-settings:"palt";
}
/* 画像の持ち出し抑止：ドラッグ保存と、スマホの長押しメニューを止める
   ※ 完全な防止ではありません（開発者ツール等では取得できます） */
img{
  max-width:100%;display:block;
  -webkit-user-drag:none;
  -webkit-touch-callout:none;
  -webkit-user-select:none;user-select:none;
  pointer-events:none;
}
picture{display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;}
.en{font-family:"Outfit",sans-serif;letter-spacing:.16em;text-transform:uppercase;}
/* スマホだけで効く改行 */
.br-sp{display:none;}
@media(max-width:620px){.br-sp{display:inline;}}
/* PC・タブレットだけで効く改行（スマホでは折り返しに任せる） */
.br-pc{display:inline;}
@media(max-width:620px){.br-pc{display:none;}}

/* section head */
.eyebrow{display:flex;align-items:center;gap:12px;font-size:11.5px;font-weight:600;color:var(--green);letter-spacing:.18em;font-family:"Outfit",sans-serif;text-transform:uppercase;}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--green);flex:none;}
.sec-num{font-family:"Outfit",sans-serif;font-size:12px;letter-spacing:.14em;color:var(--ink-3);font-weight:500;}
h2.title{font-size:clamp(26px,3.4vw,40px);font-weight:900;line-height:1.45;letter-spacing:.01em;margin:14px 0 0;}
h2.title .g{color:var(--green);}
.lede{margin-top:18px;font-size:15.5px;color:var(--ink-2);line-height:2.1;max-width:640px;}
.sublabel{margin-top:14px;font-size:13px;font-weight:700;color:var(--green);letter-spacing:.04em;display:inline-flex;align-items:center;gap:10px;}
.sublabel::before{content:"";width:18px;height:1px;background:var(--green);flex:none;}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:14.5px;padding:16px 30px;border-radius:999px;transition:.25s;letter-spacing:.02em;}
.btn .ar{font-family:"Outfit",sans-serif;font-weight:400;transition:transform .25s;}
.btn:hover .ar{transform:translateX(4px);}
.btn-g{background:var(--green);color:#fff;}
.btn-g:hover{background:var(--green-d);}
.btn-o{border:1.5px solid var(--green);color:var(--green);background:transparent;}
.btn-o:hover{background:var(--green);color:#fff;}
.btn-w{background:#fff;color:var(--green-d);}
.btn-w:hover{background:var(--sand);}
.btn-wo{border:1.5px solid rgba(255,255,255,.55);color:#fff;}
.btn-wo:hover{background:rgba(255,255,255,.12);}

/* notice bar (mockup only) */
.mock{background:var(--ink);color:#D9E5DF;font-size:11.5px;letter-spacing:.04em;text-align:center;padding:8px 18px;line-height:1.7;}
.mock b{color:#8FD3BB;}

/* ============ header ============ */
header.site{position:sticky;top:0;z-index:80;background:rgba(247,245,240,.9);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);}
.head{max-width:1280px;margin:0 auto;padding:12px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px;}
.brand{display:flex;align-items:center;gap:11px;}
.brand img{height:38px;width:auto;}
.brand .nm{line-height:1.25;}
.brand .nm b{display:block;font-size:16px;font-weight:900;letter-spacing:.06em;font-family:"Outfit",sans-serif;color:var(--green-d);}
.brand .nm span{display:block;font-size:10px;color:var(--ink-3);letter-spacing:.14em;}
nav.gnav ul{list-style:none;display:flex;align-items:center;gap:26px;}
nav.gnav a{font-size:13.5px;font-weight:700;color:#3B4642;position:relative;padding:4px 0;}
nav.gnav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .3s;}
nav.gnav a:hover{color:var(--green);}
nav.gnav a:hover::after{transform:scaleX(1);}
.head-cta{display:flex;align-items:center;gap:10px;}
.head-cta .mini{font-size:13px;font-weight:700;padding:11px 20px;border-radius:999px;}
.mini.dl{border:1.5px solid var(--green);color:var(--green);}
.mini.dl:hover{background:var(--green-l);}
.mini.ct{background:var(--green);color:#fff;}
.mini.ct:hover{background:var(--green-d);}
.burger{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;align-items:center;justify-content:center;flex-direction:column;gap:5px;background:#fff;}
.burger i{display:block;width:17px;height:1.5px;background:var(--ink);transition:.3s;}
.mobmenu{display:none;position:fixed;inset:0;z-index:79;background:var(--green-dd);padding:132px 30px 40px;overflow-y:auto;}
.mobmenu.on{display:block;}
.mobmenu ul{list-style:none;}
.mobmenu li{border-bottom:1px solid rgba(255,255,255,.14);}
.mobmenu a{display:block;padding:17px 2px;color:#fff;font-weight:700;font-size:16px;}
.mobmenu a em{font-style:normal;font-family:"Outfit",sans-serif;font-size:10.5px;letter-spacing:.16em;color:#7FC7AE;display:block;margin-top:-2px;}
.mobmenu .mm-cta{display:flex;gap:10px;margin-top:26px;flex-wrap:wrap;}
.mobmenu .mm-cta a.btn-w{color:var(--green-d);}
.mobmenu .mm-cta a{padding:14px 24px;font-size:14px;}
@media(max-width:1080px){
  nav.gnav,.head-cta .mini.dl{display:none;}
  .burger{display:flex;}
}
@media(max-width:520px){.head-cta .mini.ct{display:none;}}

/* ============ hero ============ */
.hero{position:relative;padding:74px 0 0;overflow:hidden;}
.hero .mnk{position:absolute;right:-90px;top:40px;width:420px;opacity:.045;pointer-events:none;}
.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:56px;align-items:center;position:relative;z-index:1;}
.hero .tagline{display:inline-flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 18px;font-size:12.5px;font-weight:700;color:var(--green-d);}
.hero .tagline i{width:6px;height:6px;border-radius:50%;background:var(--amber);display:block;}
.hero h1{font-size:clamp(30px,4.6vw,54px);font-weight:900;line-height:1.5;letter-spacing:.005em;margin:24px 0 0;}
.hero h1 .g{color:var(--green);position:relative;display:inline-block;}
.hero h1 .g::after{content:"";position:absolute;left:0;right:0;bottom:.08em;height:.36em;background:rgba(11,119,90,.13);z-index:-1;}
.hero p.sub{margin-top:26px;font-size:16px;color:var(--ink-2);line-height:2.15;max-width:520px;}
.hero .acts{margin-top:34px;display:flex;gap:14px;flex-wrap:wrap;}
.hero .facts{margin-top:44px;display:flex;gap:0;border-top:1px solid var(--line);}
.hero .facts div{flex:1;padding:18px 4px 0;border-right:1px solid var(--line);}
.hero .facts div:last-child{border-right:none;}
.hero .facts dt{font-family:"Outfit",sans-serif;font-size:10.5px;letter-spacing:.16em;color:var(--ink-3);text-transform:uppercase;}
.hero .facts dd{font-size:14.5px;font-weight:700;margin-top:4px;line-height:1.6;}
.hero-vis{position:relative;}
.hero-vis .main{position:relative;border-radius:2px;overflow:hidden;box-shadow:0 30px 70px rgba(20,50,40,.18);}
.hero-vis .main img{width:100%;aspect-ratio:3/3.6;object-fit:cover;}
.hero-vis .plate{position:absolute;left:-26px;top:-26px;right:60px;bottom:60px;border:1px solid var(--green);opacity:.4;z-index:-1;}
.hero-vis .cap{position:absolute;left:-30px;bottom:36px;background:var(--green);color:#fff;padding:14px 20px;max-width:240px;box-shadow:0 14px 34px rgba(7,84,65,.28);}
.hero-vis .cap b{display:block;font-size:13px;font-weight:700;line-height:1.6;}
.hero-vis .cap span{display:block;font-size:10.5px;letter-spacing:.1em;color:#A9DCC9;font-family:"Outfit",sans-serif;margin-top:3px;}
@media(max-width:900px){
  .hero{padding-top:44px;}
  .hero-grid{grid-template-columns:1fr;gap:40px;}
  .hero-vis .plate{display:none;}
  .hero-vis .cap{left:auto;right:14px;bottom:14px;}
  .hero .facts{flex-direction:column;}
  .hero .facts div{border-right:none;border-bottom:1px solid var(--line);padding:14px 0;}
  .hero .facts div:last-child{border-bottom:none;}
}

/* ============ marquee ============ */
.marq{margin-top:74px;background:var(--green);color:#fff;overflow:hidden;padding:16px 0;}
.marq .row{display:flex;gap:40px;width:max-content;animation:slide 34s linear infinite;}
.marq span{display:inline-flex;align-items:center;gap:40px;font-size:19px;font-weight:900;letter-spacing:.12em;white-space:nowrap;}
.marq img{height:26px;width:auto;opacity:.9;}
@keyframes slide{to{transform:translateX(-50%);}}
@media(max-width:700px){.marq span{font-size:15px;}}

/* ============ sections ============ */
section.blk{padding:104px 0;}
section[id],div[id]{scroll-margin-top:86px;}
.headrow{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;margin-bottom:52px;}

/* ============ PICK UP（ヒーロー直下のお知らせ／下部お知らせと同じ行スタイル） ============ */
.pickup{padding:64px 0 8px;}
.pick-hd{text-align:center;margin-bottom:26px;}
.pick-hd span{font-family:"Outfit",sans-serif;font-size:14px;font-weight:600;letter-spacing:.42em;text-indent:.42em;color:var(--green);display:inline-block;}
.pick-hd::after{content:"";display:block;width:46px;height:1px;background:var(--green);opacity:.45;margin:11px auto 0;}
.pick-list{border-top:1px solid var(--line);}
.pick-list a{display:grid;grid-template-columns:132px 1fr;gap:18px;align-items:start;padding:20px 4px;border-bottom:1px solid var(--line);transition:.2s;}
.pick-list a:hover{background:var(--green-ll);}
.pick-list .cat{font-size:11px;font-weight:700;color:var(--green);border:1px solid var(--green-l);background:var(--green-ll);padding:4px 0;text-align:center;border-radius:2px;margin-top:2px;}
.pick-list .tt{font-weight:700;font-size:15px;line-height:1.75;}
.pick-list .tt em{display:block;font-style:normal;font-weight:400;font-size:13.5px;color:var(--ink-2);line-height:1.95;margin-top:6px;}
.pick-sns{text-align:center;margin-top:22px;}
.pick-sns a{display:inline-flex;align-items:center;gap:9px;font-size:13.5px;font-weight:700;color:var(--green);border:1px solid var(--line);background:#fff;padding:10px 22px;border-radius:999px;transition:.2s;}
.pick-sns a:hover{border-color:var(--green);background:var(--green-ll);}
.pick-sns svg{flex:none;}
@media(max-width:820px){.pick-hd span{letter-spacing:.3em;text-indent:.3em;}
  .pick-list a{grid-template-columns:1fr;gap:8px;}
  .pick-list .cat{justify-self:start;padding:4px 12px;}}

/* future（今後の展開・緑背景） */
.future{background:var(--green-dd);color:#fff;position:relative;overflow:hidden;}
.future::before{content:"";position:absolute;inset:0;background-image:url(monkey-white.png);background-size:170px;opacity:.022;}
.future .wrap{position:relative;z-index:1;}
.future .eyebrow{color:#7FC7AE;}
.future .eyebrow::before{background:#7FC7AE;}
.future h2.title{color:#fff;}
/* この一文は640pxだと「す。」だけ溢れるので、1行に収まる幅にする */
.future .lede{color:#C7D9D3;max-width:700px;}
.future .sec-num{color:#7FA79A;}
.fugrid{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center;margin-top:8px;}
.fugrid img{width:100%;aspect-ratio:3/3.6;object-fit:cover;object-position:center bottom;}
.fulist article{padding:20px 0;border-bottom:1px solid rgba(255,255,255,.15);}
.fulist article:first-child{border-top:1px solid rgba(255,255,255,.15);}
.fulist h4{font-size:16.5px;font-weight:900;margin-bottom:7px;}
.fulist p{font-size:13.5px;color:#B9CCC6;line-height:2;}
.future .fcta{margin-top:30px;}
@media(max-width:860px){.fugrid{grid-template-columns:1fr;gap:30px;}}

/* about (dark) */
.about{background:var(--green-dd);color:#fff;position:relative;overflow:hidden;}
.about::before{content:"";position:absolute;inset:0;background-image:url(monkey-white.png);background-size:170px;background-repeat:repeat;opacity:.022;}
.about .wrap{position:relative;z-index:1;}
.about .eyebrow{color:#7FC7AE;}
.about .eyebrow::before{background:#7FC7AE;}
.about h2.title{color:#fff;}
.about .lede{color:#C7D9D3;}
.name-def{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;margin-top:54px;padding:44px 0;border-top:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.16);}
/* Inclusive ×CREW は同じ太さに揃える（表記は小文字まじりのまま） */
.name-def .word{font-family:"Outfit",sans-serif;font-size:clamp(38px,6vw,74px);font-weight:600;letter-spacing:.04em;line-height:1.15;}
.name-def .word b{font-weight:600;color:#8FD3BB;font-size:.88em;letter-spacing:.06em;}
.name-def .word small{display:block;font-size:22px;letter-spacing:.2em;color:#7FA79A;margin-top:14px;font-weight:400;}
.name-def p{font-size:15px;line-height:2.15;color:#C7D9D3;}
.name-def p b{color:#fff;}
.creed{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:2px;}
.creed article{background:rgba(255,255,255,.05);padding:38px 32px;transition:.3s;}
.creed article:hover{background:rgba(255,255,255,.09);}
.creed .lb{font-family:"Outfit",sans-serif;font-size:10.5px;letter-spacing:.2em;color:#7FC7AE;}
.creed h3{font-size:20px;font-weight:900;line-height:1.6;margin:12px 0 14px;color:#fff;}
.creed p{font-size:13.5px;line-height:2.05;color:#B9CCC6;}
.about-foot{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:center;margin-top:54px;}
.about-foot img{width:100%;aspect-ratio:16/10;object-fit:cover;}
.slogan{border-left:3px solid #8FD3BB;padding-left:24px;container-type:inline-size;}
.slogan .lb{font-family:"Outfit",sans-serif;font-size:10.5px;letter-spacing:.2em;color:#7FC7AE;}
/* スローガンは常に1行。入り切らない幅では文字サイズだけを詰める */
.slogan b{display:block;font-size:clamp(26px,3.6vw,38px);font-size:min(clamp(26px,3.6vw,38px),8.8cqw);font-weight:900;line-height:1.5;margin:10px 0 14px;}
.slogan p{font-size:14px;color:#B9CCC6;line-height:2.1;}
@media(max-width:860px){
  .name-def,.about-foot{grid-template-columns:1fr;gap:26px;}
  .creed{grid-template-columns:1fr;}
}

/* services */
.svc{margin-top:14px;}
.svc-row{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding:56px 0;border-top:1px solid var(--line);}
.svc-row:nth-child(even) .svc-img{order:2;}
.svc-img{position:relative;}
.svc-img img{width:100%;aspect-ratio:4/3;object-fit:cover;}
.svc-img .no{position:absolute;left:-16px;top:-22px;font-family:"Outfit",sans-serif;font-size:64px;font-weight:600;color:var(--green);opacity:.22;line-height:1;}
.svc-txt h3{font-size:clamp(21px,2.5vw,27px);font-weight:900;line-height:1.6;margin-bottom:6px;}
.svc-txt .h-en{font-family:"Outfit",sans-serif;font-size:11px;letter-spacing:.18em;color:var(--green);text-transform:uppercase;}
.svc-txt p.d{font-size:14.5px;color:var(--ink-2);line-height:2.1;margin:14px 0 22px;}
.spec{border-top:1px solid var(--line);}
.spec div{display:grid;grid-template-columns:118px 1fr;gap:14px;padding:11px 0;border-bottom:1px solid var(--line);font-size:13.5px;align-items:baseline;}
.spec dt{color:var(--green);font-weight:700;font-size:12px;letter-spacing:.04em;}
.spec dd{color:var(--ink-2);line-height:1.9;}
.chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px;}
.chip{font-size:12px;font-weight:700;color:var(--green-d);background:var(--green-l);padding:6px 13px;border-radius:999px;}
@media(max-width:860px){
  .svc-row{grid-template-columns:1fr;gap:28px;padding:44px 0;}
  .svc-row:nth-child(even) .svc-img{order:0;}
  .svc-img .no{left:0;top:-14px;font-size:48px;}
}

/* flow */
.flow{background:var(--white);}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:8px;}
.steps article{padding:32px 26px;border-left:1px solid var(--line);position:relative;}
.steps article:last-child{border-right:1px solid var(--line);}
.steps .n{font-family:"Outfit",sans-serif;font-size:11px;letter-spacing:.18em;color:var(--green);font-weight:600;}
.steps h4{font-size:16.5px;font-weight:900;margin:10px 0 8px;line-height:1.6;}
.steps p{font-size:13px;color:var(--ink-2);line-height:1.95;}
@media(max-width:860px){.steps{grid-template-columns:1fr 1fr;}.steps article:nth-child(2n){border-right:1px solid var(--line);}}
@media(max-width:520px){.steps{grid-template-columns:1fr;}.steps article{border-right:1px solid var(--line);border-top:1px solid var(--line);}}

/* safety */
.safety{background:var(--green-ll);}
.safe-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center;}
.safe-grid img{width:100%;aspect-ratio:4/3.2;object-fit:cover;}
.safe-list{display:grid;gap:2px;}
.safe-list article{background:#fff;padding:24px 26px;display:grid;grid-template-columns:34px 1fr;gap:16px;align-items:start;}
.safe-list .ic{width:34px;height:34px;border-radius:50%;background:var(--green-l);color:var(--green);display:flex;align-items:center;justify-content:center;font-size:15px;}
.safe-list h4{font-size:15.5px;font-weight:900;margin-bottom:5px;}
.safe-list p{font-size:13.5px;color:var(--ink-2);line-height:1.95;}
@media(max-width:860px){.safe-grid{grid-template-columns:1fr;gap:30px;}}

/* before after */
.ba{background:var(--white);}
.ba-wrap{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:12px;position:relative;}
.ba-wrap figure{position:relative;margin:0;}
.ba-wrap img{width:100%;aspect-ratio:4/3;object-fit:cover;}
.ba-wrap figcaption{position:absolute;left:0;top:0;background:rgba(24,35,31,.86);color:#fff;font-family:"Outfit",sans-serif;font-size:11px;letter-spacing:.2em;padding:8px 16px;}
.ba-wrap figure.aft figcaption{background:var(--green);}
.ba-wrap .cc{grid-column:1/-1;text-align:center;font-size:14px;color:var(--ink-2);margin-top:6px;line-height:1.95;}
.ba-wrap .cc b{color:var(--ink);}
@media(max-width:700px){.ba-wrap{grid-template-columns:1fr;}}

/* works */
.works{background:var(--paper);}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:34px;}
.filters button{font-size:12.5px;font-weight:700;padding:9px 18px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink-2);transition:.2s;}
.filters button:hover{border-color:var(--green);color:var(--green);}
.filters button.on{background:var(--green);border-color:var(--green);color:#fff;}
.wgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px 26px;}
.wcard{background:#fff;border:1px solid var(--line);overflow:hidden;transition:.3s;display:flex;flex-direction:column;}
.wcard:hover{transform:translateY(-4px);box-shadow:0 20px 40px rgba(20,50,40,.1);}
.wcard .ph{position:relative;overflow:hidden;}
.wcard .ph img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:.6s;}
.wcard:hover .ph img{transform:scale(1.05);}
.wcard .tg{position:absolute;left:10px;top:10px;display:flex;gap:5px;flex-wrap:wrap;}
.wcard .tg span{font-size:10.5px;font-weight:700;background:rgba(255,255,255,.94);color:var(--green-d);padding:4px 10px;border-radius:2px;}

/* さがのえがおワールドの写真：顔が入るよう、画像を下にずらして表示 */
.wcard .ph img.pos-face{object-position:center 25%;}
.wcard .bd{padding:20px 22px 24px;flex:1;display:flex;flex-direction:column;}
.wcard .loc{font-family:"Outfit",sans-serif;font-size:10.5px;letter-spacing:.14em;color:var(--green);margin-bottom:7px;}
.wcard h4{font-size:16px;font-weight:900;line-height:1.65;margin-bottom:10px;}
.wcard dl{border-top:1px dashed var(--line);padding-top:10px;margin-top:auto;}
.wcard dl div{display:grid;grid-template-columns:52px 1fr;gap:8px;font-size:12.5px;line-height:1.8;padding:3px 0;}
.wcard dt{color:var(--ink-3);font-weight:700;}
.wcard dd{color:var(--ink-2);}
@media(max-width:980px){.wgrid{grid-template-columns:1fr 1fr;}}
@media(max-width:620px){.wgrid{grid-template-columns:1fr;}}

/* partners */
.partners{background:var(--white);}
.pt-block{margin-top:8px;}
.pt-head{display:flex;align-items:center;gap:14px;margin:44px 0 20px;}
.pt-head .k{font-size:11px;font-family:"Outfit",sans-serif;letter-spacing:.18em;color:#fff;background:var(--green);padding:5px 12px;}
.pt-head h3{font-size:18px;font-weight:900;}
.pt-head .ln{flex:1;height:1px;background:var(--line);}
.plist{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line);border:1px solid var(--line);}
.plist article{background:#fff;padding:22px 24px;}
.plist h4{font-size:14.5px;font-weight:900;line-height:1.65;}
.plist p{font-size:12.5px;color:var(--ink-2);margin-top:6px;line-height:1.9;}
.logo-slot{display:grid;grid-template-columns:repeat(5,1fr);gap:2px;background:var(--line);border:1px solid var(--line);margin-top:2px;}
.logo-slot div{background:#FBFAF7;aspect-ratio:5/2.4;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--ink-3);letter-spacing:.06em;}
.memb{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:22px;}
.memb article{border-left:2px solid var(--green);padding-left:18px;}
.memb .k{font-size:11px;font-family:"Outfit",sans-serif;letter-spacing:.16em;color:var(--green);}
.memb p{font-size:14px;font-weight:700;margin-top:5px;line-height:1.8;}
@media(max-width:860px){.plist,.memb{grid-template-columns:1fr;}.logo-slot{grid-template-columns:repeat(3,1fr);}}

/* staff */
.staff{background:var(--paper);}
.sgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;}
.scard{background:#fff;border:1px solid var(--line);padding:30px 28px;text-align:center;}
.scard .ph{width:112px;height:112px;border-radius:50%;margin:0 auto 18px;background:var(--green-l);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.scard .ph img{width:62%;opacity:.5;}
.scard h4{font-size:18px;font-weight:900;}
.scard .ro{font-size:11px;font-family:"Outfit",sans-serif;letter-spacing:.14em;color:var(--green);margin-top:5px;}
.scard p{font-size:13px;color:var(--ink-2);margin-top:12px;line-height:1.95;text-align:left;}
/* スタッフのプロフィール（資料どおりの箇条書き） */
ul.sp{list-style:none;margin-top:16px;padding-top:14px;border-top:1px solid var(--line);text-align:left;}
ul.sp li{position:relative;padding-left:16px;font-size:13px;line-height:1.9;color:var(--ink-2);margin-bottom:7px;}
ul.sp li::before{content:"";position:absolute;left:2px;top:.75em;width:5px;height:1px;background:var(--green);}
ul.sp li span{display:block;padding-left:2px;margin-top:5px;font-size:12.5px;color:var(--ink-3);line-height:1.85;}
.sp-link{margin-top:14px;text-align:left;}
.sp-link a{font-size:12.5px;font-weight:700;color:var(--green);border-bottom:1px solid var(--green-l);}
@media(max-width:860px){.sgrid{grid-template-columns:1fr;}}

/* sns */
.sns{background:var(--white);}
.sns-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.sns-grid a{position:relative;overflow:hidden;display:block;}
.sns-grid img{width:100%;aspect-ratio:1;object-fit:cover;transition:.5s;}
.sns-grid a:hover img{transform:scale(1.07);}
.news{margin-top:56px;border-top:1px solid var(--line);}
.news a{display:grid;grid-template-columns:110px 132px 1fr;gap:18px;align-items:center;padding:18px 4px;border-bottom:1px solid var(--line);font-size:14px;transition:.2s;}
.news a:hover{background:var(--green-ll);}
.news time{font-family:"Outfit",sans-serif;font-size:12.5px;color:var(--ink-3);letter-spacing:.08em;}
.news .cat{font-size:11px;font-weight:700;color:var(--green);border:1px solid var(--green-l);background:var(--green-ll);padding:4px 0;text-align:center;border-radius:2px;}
.news .tt{font-weight:500;line-height:1.7;}
@media(max-width:860px){.sns-grid{grid-template-columns:repeat(2,1fr);}.news a{grid-template-columns:1fr;gap:6px;}.news .cat{justify-self:start;padding:4px 12px;}}

/* faq */
.faq{background:var(--paper);}
.faq details{background:#fff;border:1px solid var(--line);margin-bottom:10px;}
.faq summary{list-style:none;cursor:pointer;padding:20px 24px;font-size:15px;font-weight:700;display:flex;gap:14px;align-items:flex-start;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary .q{color:var(--green);font-family:"Outfit",sans-serif;font-weight:600;flex:none;}
.faq summary .pm{margin-left:auto;color:var(--green);font-size:20px;line-height:1;transition:.3s;flex:none;}
.faq details[open] summary .pm{transform:rotate(45deg);}
.faq .an{padding:0 24px 22px 58px;font-size:14px;color:var(--ink-2);line-height:2.05;}

/* cta */
.cta{position:relative;background:var(--green);color:#fff;overflow:hidden;}
.cta::before{content:"";position:absolute;inset:0;background-image:url(monkey-white.png);background-size:180px;opacity:.04;}
.cta .wrap{position:relative;z-index:1;padding-top:96px;padding-bottom:96px;text-align:center;}
.cta .eyebrow{justify-content:center;color:#BFE6D7;}
.cta .eyebrow::before{background:#BFE6D7;}
.cta h2{font-size:clamp(25px,3.6vw,40px);font-weight:900;line-height:1.55;margin:16px 0 18px;}
.cta p{font-size:15px;color:#D5EAE2;line-height:2.1;max-width:680px;margin:0 auto;}
.cta .acts{margin-top:38px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.cta .sub{margin-top:30px;font-size:13px;color:#BFE6D7;}
.cta .sub a{border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:1px;}
.cat-list{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:34px;}
.cat-list span{font-size:12px;border:1px solid rgba(255,255,255,.35);padding:7px 15px;border-radius:999px;color:#EAF6F1;}

/* footer */
footer{background:var(--green-dd);color:#9FB6AF;padding:72px 0 34px;font-size:13px;}
.fgrid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:44px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.12);}
footer .fbrand{display:flex;align-items:center;gap:12px;margin-bottom:20px;}
footer .fbrand img{height:46px;width:auto;}
footer .fbrand b{display:block;font-family:"Outfit",sans-serif;font-size:19px;letter-spacing:.08em;color:#fff;font-weight:600;line-height:1.2;}
footer .fbrand span{display:block;font-size:11px;letter-spacing:.1em;color:#7FA79A;}
footer .bd p{line-height:2;}
footer dl div{display:grid;grid-template-columns:88px 1fr;gap:12px;padding:6px 0;line-height:1.9;}
footer dt{color:#6F8A82;font-size:12px;}
footer dd{color:#D6E4DF;}
footer .fnav h5{color:#fff;font-size:12px;font-family:"Outfit",sans-serif;letter-spacing:.16em;margin-bottom:14px;}
footer .fnav ul{list-style:none;}
footer .fnav li{margin-bottom:9px;}
footer .fnav a:hover{color:#8FD3BB;}
.fbot{padding-top:24px;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:11.5px;color:#6F8A82;}
@media(max-width:860px){.fgrid{grid-template-columns:1fr;gap:34px;}}


/* ============ 下層ページ共通 ============ */
nav.gnav a.cur{color:var(--green);}
nav.gnav a.cur::after{transform:scaleX(1);}
.phero{background:var(--green-ll);border-bottom:1px solid var(--line);padding:44px 0 58px;position:relative;overflow:hidden;}
.phero::before{content:"";position:absolute;right:-70px;top:-30px;width:340px;height:340px;background:url(monkey.png) no-repeat center/contain;opacity:.05;}
.phero .wrap{position:relative;z-index:1;}
.crumb{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--ink-3);margin-bottom:26px;flex-wrap:wrap;}
.crumb a{color:var(--green);}
.crumb a:hover{text-decoration:underline;}
.phero h1{font-size:clamp(27px,3.8vw,42px);font-weight:900;line-height:1.5;margin:12px 0 0;}
.phero p{margin-top:18px;font-size:15px;color:var(--ink-2);line-height:2.1;max-width:720px;}

/* 汎用パーツ */
.narrow{max-width:900px;}
.blocktitle{font-size:clamp(20px,2.6vw,27px);font-weight:900;line-height:1.6;margin-bottom:20px;}
.rule{height:1px;background:var(--line);margin:0;border:none;}
.note-box{background:var(--green-ll);border-left:3px solid var(--green);padding:22px 26px;font-size:14px;line-height:2.05;color:var(--ink-2);}
.note-box b{color:var(--ink);}
.tbl{width:100%;border-collapse:collapse;font-size:14px;background:#fff;border:1px solid var(--line);}
.tbl th,.tbl td{padding:16px 20px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);line-height:1.95;}
.tbl th{background:var(--green-ll);width:210px;font-weight:700;color:var(--green-d);font-size:13.5px;}
.tbl tr:last-child th,.tbl tr:last-child td{border-bottom:none;}
@media(max-width:700px){.tbl th,.tbl td{display:block;width:auto;}.tbl th{border-bottom:none;}}
.anchornav{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px;}
.anchornav a{font-size:13px;font-weight:700;padding:10px 20px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink-2);transition:.2s;}
.anchornav a:hover{border-color:var(--green);color:var(--green);}

.more{margin-top:48px;text-align:center;}

/* reveal（JSが動く環境でのみ隠す。動かない・遅い場合は最初から表示） */
.js .rv{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.7,.3,1),transform .8s cubic-bezier(.2,.7,.3,1);}
.js .rv.in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none;transition:none;}.marq .row{animation:none;}}
@media print{.js .rv{opacity:1;transform:none;}}

/* placeholder marker */
.ph-note{display:inline-block;font-size:10.5px;font-weight:700;color:var(--amber);border:1px dashed var(--amber);padding:2px 8px;border-radius:2px;margin-left:8px;vertical-align:2px;letter-spacing:.04em;}

/* スタッフの顔写真（丸型・枠いっぱいに表示） */
.ph.has-photo{background:none;}
.ph.has-photo picture{display:block;width:100%;height:100%;}
.staff-lg .ph.has-photo img,.scard .ph.has-photo img{width:100%;height:100%;object-fit:cover;opacity:1;}
