/*
Theme Name: OGIMOテック開発室
Theme URI: https://ogimo-tech.com/
Description: OGIMOテック開発室 公式テーマ（preview.html から生成）。家族と誰かのためのモノづくり。
Author: OGIMOテック開発室
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
Text Domain: ogimo-tech
*/


:root{
  --green:#90D050; --green-d:#6BAA22; --green-deep:#4E8214; --green-tint:#EAF6D6; --green-tint2:#F4FAE8;
  --orange:#F0A060; --orange-d:#D9822F; --gold:#F0C010; --blue:#0070C0; --purple:#9C6ADE;
  --cream:#FCFBF4; --ink:#46413B; --ink-soft:#6f685e; --line:#ece6da; --white:#fff;
  --shadow:0 14px 34px rgba(78,130,20,.12); --shadow-sm:0 6px 16px rgba(78,130,20,.10);
  --radius:18px; --maxw:1120px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Noto Sans JP',sans-serif;color:var(--ink);background:var(--white);line-height:1.85;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,.rounded{font-family:'M PLUS Rounded 1c',sans-serif}
a{color:var(--blue);text-decoration:none}
img{max-width:100%;display:block}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:8px;top:8px;background:#fff;padding:8px 14px;z-index:9999;border-radius:8px}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.header-inner{max-width:var(--maxw);margin:0 auto;padding:12px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.site-logo{display:flex;align-items:center;gap:12px;color:var(--ink)}
.logo-img{height:54px;width:auto;display:block}
.logo-sub-only{font-size:11px;line-height:1.4;color:var(--ink-soft);font-weight:700;font-family:'M PLUS Rounded 1c';border-left:2px solid var(--green-tint);padding-left:12px}
.primary-nav ul{list-style:none;display:flex;gap:4px;align-items:center}
.primary-nav a{display:block;padding:9px 14px;border-radius:999px;color:var(--ink);font-weight:700;font-family:'M PLUS Rounded 1c';font-size:14.5px;cursor:pointer;transition:.18s}
.primary-nav a:hover{background:var(--green-tint)}
.primary-nav a.active{background:var(--green);color:#36560f}
.primary-nav a.cta{background:var(--orange);color:#fff}
.primary-nav a.cta:hover{background:var(--orange-d)}
.primary-nav a.nav-2line{text-align:center;line-height:1.15;padding-top:6px;padding-bottom:6px}
.nav-sub{display:block;font-size:9.5px;font-weight:700;opacity:.6;margin-top:1px;letter-spacing:.01em;white-space:nowrap}
.nav-toggle{display:none;border:none;background:var(--green-tint);width:44px;height:44px;border-radius:12px;cursor:pointer;color:var(--green-deep);font-size:20px}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;font-family:'M PLUS Rounded 1c';font-weight:800;font-size:15px;padding:14px 26px;border-radius:999px;cursor:pointer;border:2px solid transparent;transition:.18s;line-height:1}
.btn-primary{background:var(--green);color:#36560f;box-shadow:0 8px 18px rgba(144,208,80,.45)}
.btn-primary:hover{transform:translateY(-2px);background:#84c93f}
.btn-outline{background:#fff;color:var(--green-deep);border-color:#cfe9a8}
.btn-outline:hover{background:var(--green-tint)}
.btn-orange{background:var(--orange);color:#fff;box-shadow:0 8px 18px rgba(240,160,96,.4)}
.btn-orange:hover{transform:translateY(-2px);background:var(--orange-d)}
.btn-white{background:#fff;color:var(--green-deep)}
.btn-ghost{background:transparent;color:var(--green-deep);font-weight:800}

/* ---------- Sections ---------- */
.section{padding:78px 0}
.bg-cream{background:var(--cream)}
.bg-tint{background:var(--green-tint2)}
.section-head{text-align:center;max-width:720px;margin:0 auto 48px}
.section-label{display:inline-block;font-family:'M PLUS Rounded 1c';font-weight:800;font-size:12.5px;letter-spacing:.18em;color:var(--green-d);background:var(--green-tint);padding:6px 16px;border-radius:999px;margin-bottom:16px}
.section-title{font-size:30px;font-weight:900;line-height:1.3;color:var(--ink)}
.section-title .hl{color:var(--green-d)}
.section-desc{margin-top:14px;color:var(--ink-soft);font-size:15.5px}

/* ---------- Page sections (tab switching) ---------- */
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---------- Hero ---------- */
.hero{position:relative;background:var(--cream);overflow:hidden}
.hero-inner{max-width:var(--maxw);margin:0 auto;padding:74px 24px 86px;display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.hero-label{display:inline-block;font-family:'M PLUS Rounded 1c';font-weight:800;font-size:17px;letter-spacing:.02em;color:var(--ink-soft);margin-bottom:18px}
.hero-label .mk{background:linear-gradient(transparent 58%,#d8efbf 58%);color:var(--green-deep);padding:0 4px;font-weight:900}
.hero h1{font-size:34px;font-weight:900;line-height:1.45;letter-spacing:0;color:var(--ink)}
.hero h1 .g{color:var(--green-d)}
.hero h1 .o{color:var(--orange)}
.hero h1 .name{display:block;font-size:20px;color:var(--green-d);margin-top:14px}
.hero p.lead{margin:24px 0 32px;font-size:16px;line-height:2;color:var(--ink-soft)}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}
.hero-visual{position:relative}
/* hero: 大きな1枚写真 */
.hero-photo{position:relative;z-index:2;aspect-ratio:4/3;border-radius:24px;overflow:hidden;background:linear-gradient(140deg,#eef9da,#dbeef7);box-shadow:var(--shadow)}
.hero-photo img{width:100%;height:100%;object-fit:cover;display:block}
.hero-photo .hs-img{position:absolute;inset:0;opacity:0;transition:opacity 1.2s ease}
.hero-photo .hs-img.active{opacity:1}
.hero-photo-ph{display:none}
.hero-photo.noimg{display:flex;align-items:center;justify-content:center}
.hero-photo.noimg .hero-photo-ph{display:block;text-align:center;color:#7f9468;font-family:'M PLUS Rounded 1c';font-weight:800;font-size:16px;line-height:1.9;padding:24px}
.hero-photo.noimg .hero-photo-ph small{font-size:12px;color:#9aa890;font-weight:700}
/* otameshi switch */
.switch-wrap{margin-top:14px;display:flex;flex-direction:column;align-items:center;gap:10px}
.switch-hint{font-family:'M PLUS Rounded 1c';font-weight:800;color:var(--orange-d);font-size:14px;animation:hintbob 1.3s ease-in-out infinite}
@keyframes hintbob{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
.otameshi{position:relative;width:88px;height:88px;border-radius:50%;border:none;cursor:pointer;background:radial-gradient(circle at 38% 30%,#ffd968,#f0a020);box-shadow:0 9px 0 #c97e12,0 16px 24px rgba(0,0,0,.20);transition:transform .09s,box-shadow .09s}
.otameshi::after{content:"PUSH";position:absolute;inset:15px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#ffe79a,#f6b740);display:flex;align-items:center;justify-content:center;font-family:'M PLUS Rounded 1c';font-weight:900;color:#b9740d;font-size:15px;letter-spacing:.06em}
.otameshi::before{content:"";position:absolute;left:50%;top:50%;width:100%;height:100%;transform:translate(-50%,-50%);border-radius:50%;box-shadow:0 0 0 0 rgba(240,160,32,.55);animation:swring 1.8s ease-out infinite;pointer-events:none}
@keyframes swring{0%{box-shadow:0 0 0 0 rgba(240,160,32,.5)}70%{box-shadow:0 0 0 20px rgba(240,160,32,0)}100%{box-shadow:0 0 0 0 rgba(240,160,32,0)}}
.otameshi:hover{transform:translateY(-2px)}
.otameshi:active,.otameshi.pressed{transform:translateY(7px);box-shadow:0 2px 0 #c97e12,0 6px 12px rgba(0,0,0,.22)}
/* fx layer */
.fx-layer{position:absolute;inset:0;pointer-events:none;z-index:8;overflow:visible}
.bubble{position:absolute;font-family:'M PLUS Rounded 1c';font-weight:900;background:#fff;color:var(--green-d);padding:9px 18px;border-radius:999px;box-shadow:0 7px 18px rgba(0,0,0,.16);font-size:17px;white-space:nowrap;transform:translate(-50%,0);animation:bubbleUp 1.6s ease-out forwards}
.bubble.o{color:var(--orange-d)} .bubble.b{color:var(--blue)} .bubble.p{color:var(--purple)}
@keyframes bubbleUp{0%{opacity:0;transform:translate(-50%,0) scale(.5)}22%{opacity:1;transform:translate(-50%,-34px) scale(1)}100%{opacity:0;transform:translate(-50%,-140px) scale(1)}}
.confetti{position:absolute;width:9px;height:13px;border-radius:2px;transform:translate(-50%,-50%);animation:confPop 1.3s ease-out forwards}
@keyframes confPop{0%{opacity:1;transform:translate(-50%,-50%) rotate(0)}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) rotate(var(--rot))}}
@media(prefers-reduced-motion:reduce){.switch-hint{animation:none}.otameshi::before{animation:none}}

/* 流れる写真ウォール */
.photowall{position:relative;padding:64px 0 72px;background:linear-gradient(180deg,#ffffff,#fbfaf3);overflow:hidden}
.pw-head{text-align:center;max-width:760px;margin:0 auto 32px;padding:0 20px}
.pw-eyebrow{display:inline-block;font-family:'M PLUS Rounded 1c';font-weight:800;font-size:12px;letter-spacing:.18em;color:var(--green-d);background:var(--green-tint);padding:5px 15px;border-radius:999px}
.pw-title{font-family:'M PLUS Rounded 1c';font-weight:900;font-size:30px;color:var(--ink);margin:15px 0 10px;line-height:1.35}
.pw-title .o{color:var(--orange-d)}
.pw-sub{font-size:14px;color:var(--ink-soft);line-height:1.9}
.pw-controls{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;margin:30px auto 4px;width:max-content}
.pw-controls .fx-layer{position:absolute;inset:0}
.pw-rows{display:flex;flex-direction:column;gap:20px}
.pw-row{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.pw-track{display:flex;gap:24px;width:max-content;will-change:transform}
/* 流れる動き・ホバー停止・おためしスイッチによる加速は JS(Web Animations API)で制御 */
.polaroid{flex:0 0 auto;width:204px;background:#fff;padding:9px;border-radius:6px;box-shadow:0 10px 22px rgba(70,65,59,.14);transform:rotate(var(--rot,0deg));transition:transform .25s ease,box-shadow .25s ease;margin:10px 0}
.polaroid:hover{transform:rotate(0deg) translateY(-7px) scale(1.05);box-shadow:0 18px 32px rgba(70,65,59,.24);z-index:3}
.polaroid img{width:100%;height:158px;object-fit:cover;border-radius:3px;display:block;background:#eef0ea}
@media(prefers-reduced-motion:reduce){.pw-row{-webkit-mask-image:none;mask-image:none;overflow-x:auto}}
@media(max-width:680px){.polaroid{width:158px}.polaroid img{height:120px}}

/* 3Dプリント・スクロール積層リビール */
.print-wrap{position:relative}
.print-wrap > :first-child{clip-path:none}
.print-wrap.printing > :first-child{animation:printup .95s steps(14) var(--pdel,0s) both}
.print-wrap.printed > :first-child{clip-path:none;animation:none}
.print-head{position:absolute;left:-6px;right:-6px;top:100%;height:5px;border-radius:99px;background:linear-gradient(90deg,var(--green),var(--green-d));box-shadow:0 0 12px rgba(144,208,80,.85);opacity:0;pointer-events:none;z-index:8}
.print-head::after{content:'';position:absolute;right:-3px;top:-7px;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:9px solid var(--ink)}
.print-wrap.printing .print-head{animation:headup .95s steps(14) var(--pdel,0s) both}
.print-wrap.printed .print-head{display:none}
@keyframes printup{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes headup{0%{top:calc(100% - 5px);opacity:1}92%{opacity:1}100%{top:-2px;opacity:0}}
.blob{position:absolute;border-radius:46% 54% 60% 40%/50% 45% 55% 50%;z-index:1}
.blob1{width:150px;height:150px;background:var(--green-tint);top:-34px;right:-22px}
.dot{position:absolute;border-radius:50%;z-index:1}
.dot1{width:80px;height:80px;background:#fde6c0;bottom:-26px;left:-18px}
.hero-wave{position:absolute;left:0;right:0;bottom:-1px;line-height:0}
.hero-wave svg{width:100%;height:64px}

/* ---------- Mission message ---------- */
.mission{background:#fff;padding:60px 0 4px;text-align:center}
.mission-inner{max-width:880px;margin:0 auto;padding:0 24px}
.mission-lead{font-family:'M PLUS Rounded 1c';font-weight:800;font-size:18px;color:var(--ink-soft);margin-bottom:14px}
.mission .mk{background:linear-gradient(transparent 58%,#d8efbf 58%);color:var(--green-deep);padding:0 4px;font-weight:900}
.mission-main{font-family:'M PLUS Rounded 1c';font-weight:900;font-size:32px;line-height:1.5;color:var(--ink);letter-spacing:.01em}
.mission .mo{color:var(--orange)}
.mission .mg{color:var(--green-d)}

/* ---------- Cards grid ---------- */
.grid{display:grid;gap:24px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:.2s;display:flex;flex-direction:column}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
a.card{text-decoration:none;color:inherit;cursor:pointer}
.prod-cell{display:flex;flex-direction:column}
.prod-cell>.card{flex:1}
.prod-links{display:flex;flex-wrap:wrap;gap:8px 18px;padding:11px 8px 0}
.prod-links a{display:inline-flex;align-items:center;gap:6px;font-family:'M PLUS Rounded 1c';font-weight:700;font-size:12.5px;text-decoration:none;color:var(--green-deep);border-bottom:1px dashed currentColor;padding-bottom:1px;transition:.15s}
.prod-links a:hover{color:var(--green)}
.prod-links a.res-app{color:#0070C0}
.prod-links a.res-app:hover{color:#3a93d6}

/* service cards */
.svc{padding:34px 28px;text-align:center}
.svc-photo{margin:-34px -28px 22px;aspect-ratio:16/10;overflow:hidden;background:var(--green-tint2)}
.svc-photo img{width:100%;height:100%;object-fit:cover;display:block}
.svc .ic{width:66px;height:66px;border-radius:18px;margin:0 auto 18px;display:flex;align-items:center;justify-content:center;font-size:28px}
.svc h3{font-size:19px;font-weight:900;margin-bottom:10px}
.svc p{font-size:14px;color:var(--ink-soft)}
.svc .num{font-family:'M PLUS Rounded 1c';font-weight:900;color:var(--green);font-size:13px;letter-spacing:.1em}

/* product cards */
.prod-thumb{aspect-ratio:4/3;background:linear-gradient(135deg,#eef4e4,#e7f0f5);display:flex;align-items:center;justify-content:center;color:#aeb6a2;font-size:34px;position:relative;overflow:hidden}
.prod-thumb::before{content:"";position:absolute;inset:0;background:var(--bg) center/cover no-repeat;filter:blur(18px) brightness(.95);transform:scale(1.18);z-index:0}
.prod-thumb img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;display:block}
.tag{position:absolute;bottom:10px;left:12px;z-index:2;font-size:11px;font-weight:800;color:#fff;font-family:'M PLUS Rounded 1c';padding:4px 11px;border-radius:8px;box-shadow:0 2px 6px rgba(0,0,0,.2)}
.prod-body{padding:18px 20px 22px;flex:1;display:flex;flex-direction:column}
.prod-body .tag{position:static;transform:none;box-shadow:none;align-self:flex-start;margin:0 0 10px}
.prod-body h3{font-size:17px;font-weight:900;margin-bottom:8px}
.prod-body p{font-size:13.5px;color:var(--ink-soft);flex:1}
.badge80{display:inline-block;margin-top:12px;font-size:12px;font-weight:800;color:var(--orange-d);background:#fdf0e2;padding:4px 12px;border-radius:999px;font-family:'M PLUS Rounded 1c'}

.center-cta{text-align:center;margin-top:44px}
.group-title{font-family:'M PLUS Rounded 1c';font-size:25px;font-weight:900;color:var(--ink);margin:0 0 4px}
.group-title .sq{color:var(--green)}
.group-desc{font-size:13.5px;color:var(--ink-soft);margin:2px 0 22px}
.group-block + .group-block{margin-top:60px}

/* catalog banner */
.catalog{display:flex;gap:28px;align-items:center;margin-top:40px;padding:26px 28px;background:var(--green-tint);border:1px solid var(--line);border-radius:var(--radius);flex-wrap:wrap}
.catalog .ct-cover{flex:0 0 auto}
.catalog .ct-cover img{display:block;width:180px;height:auto;border-radius:8px;box-shadow:var(--shadow);border:1px solid var(--line)}
.catalog .ct-body{flex:1;min-width:240px}
.catalog .ct-body h3{font-family:'M PLUS Rounded 1c';font-size:20px;font-weight:900;margin:0 0 6px;color:var(--ink)}
.catalog .ct-body p{font-size:13.5px;color:var(--ink-soft);margin:0 0 16px}
.catalog .ct-btns{display:flex;gap:12px;flex-wrap:wrap}
@media(max-width:600px){.catalog{justify-content:center;text-align:center}.catalog .ct-btns{justify-content:center}}

/* X timeline embed */
.x-embed{max-width:560px;margin:0 auto;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff}
.yearly{gap:18px}
.ycard{display:block;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff;transition:.2s}
.ycard:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.ycard .ythumb{aspect-ratio:4/3;overflow:hidden;background:var(--green-tint)}
.ycard .ythumb img{width:100%;height:100%;object-fit:cover;display:block;transition:.3s}
.ycard:hover .ythumb img{transform:scale(1.05)}
.ycard .ylabel{font-family:'M PLUS Rounded 1c';font-weight:900;font-size:14.5px;color:var(--ink);padding:11px 14px;display:flex;align-items:center;gap:8px}
.ycard .ylabel i{color:var(--green-deep);font-size:13px}

/* flow steps */
.flow{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;counter-reset:f;margin-top:10px}
.flow-step{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px 24px 26px;text-align:center}
.flow-step .fnum{counter-increment:f;width:42px;height:42px;border-radius:50%;background:var(--green);color:#36560f;font-family:'M PLUS Rounded 1c';font-weight:900;font-size:18px;display:flex;align-items:center;justify-content:center;margin:0 auto 14px}
.flow-step .fnum::before{content:"0" counter(f)}
.flow-step h4{font-size:17px;margin-bottom:8px}
.flow-step p{font-size:13.5px;color:var(--ink-soft)}

/* target list */
.target{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:34px;box-shadow:var(--shadow-sm)}
.target h3{font-size:19px;margin-bottom:18px;color:var(--green-deep)}
.target ul{list-style:none;display:grid;gap:12px}
.target li{display:flex;gap:12px;align-items:flex-start;font-size:15px}
.target li i{color:var(--green);margin-top:5px}

/* story */
.story{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:center}
.story-photo{aspect-ratio:1/1;border-radius:24px;overflow:hidden;background:linear-gradient(135deg,#e7eff6,#eef4e4);display:flex;align-items:center;justify-content:center;color:#aeb6a2;font-size:38px;box-shadow:var(--shadow)}
.story-photo img{width:100%;height:100%;object-fit:cover;display:block}
.story blockquote{border-left:4px solid var(--green);padding:6px 0 6px 20px;margin:20px 0;font-weight:700;color:var(--green-deep);font-size:18px;font-family:'M PLUS Rounded 1c';line-height:1.7}
.story-sign{font-family:'M PLUS Rounded 1c';color:var(--ink-soft);font-size:15px;line-height:1.6;margin:0 0 22px}
.story-sign strong{display:inline-block;color:var(--ink);font-size:23px;font-weight:900;margin-top:4px}

/* proof */
.proof-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.proof{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px 18px;text-align:center}
.proof .pn{font-family:'M PLUS Rounded 1c';font-weight:900;font-size:26px;color:var(--green-d);line-height:1.1}
.proof .pl{font-size:12.5px;color:var(--ink-soft);margin-top:8px}
.proof i{font-size:22px;color:var(--orange);margin-bottom:10px;display:block}

/* news */
.news-list{display:grid;gap:2px;max-width:820px;margin:0 auto;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line)}
.news-item{display:flex;gap:20px;align-items:center;padding:20px 24px;background:#fff;transition:.15s}
.news-item:hover{background:var(--green-tint2)}
a.news-item{text-decoration:none;color:inherit;cursor:pointer}
a.news-item .news-title i{font-size:11px;color:var(--green-d);margin-left:4px}
.news-date{font-family:'M PLUS Rounded 1c';font-weight:800;color:var(--green-d);font-size:13.5px;white-space:nowrap}
.news-cat{font-size:11px;font-weight:800;color:#fff;background:var(--blue);padding:3px 10px;border-radius:6px;white-space:nowrap}
.news-cat.evt{background:var(--orange)}
.news-cat.media{background:var(--purple)}
.news-title{font-size:14.5px;font-weight:500}
/* お知らせ ブロック（カード）形式 */
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.post-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:.18s;text-decoration:none;color:inherit}
.post-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.post-thumb{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--green-tint2)}
.post-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.post-card:hover .post-thumb img{transform:scale(1.05)}
.post-cat{position:absolute;top:10px;left:10px;font-size:11px;font-weight:800;color:#fff;background:var(--blue);padding:3px 10px;border-radius:6px}
.post-cat.evt{background:var(--orange)}
.post-cat.media{background:var(--purple)}
.post-body{padding:15px 17px 19px;display:flex;flex-direction:column;gap:7px}
.post-date{font-family:'M PLUS Rounded 1c';font-weight:800;font-size:12.5px;color:var(--green-d)}
.post-title{font-size:14.5px;font-weight:700;line-height:1.6;color:var(--ink)}
@media(max-width:900px){.post-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.post-grid{grid-template-columns:1fr}}
/* SNS発信フィード */
.sns-feeds{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:1040px;margin:0 auto;align-items:start}
.sns-feed{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow-sm);overflow:hidden}
.sns-feed-head{font-family:'M PLUS Rounded 1c';font-weight:800;font-size:15px;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.sns-feed-head .fa-x-twitter{color:#111}.sns-feed-head .fa-facebook{color:#1877F2}
.sns-feed .fb-page,.sns-feed iframe{max-width:100%}
@media(max-width:760px){.sns-feeds{grid-template-columns:1fr}}

/* CTA banner */
.cta-banner{background:linear-gradient(110deg,var(--green) 0%,#a6da6f 100%);border-radius:28px;padding:54px 40px;text-align:center;color:#36560f;position:relative;overflow:hidden}
.cta-banner h2{font-size:28px;font-weight:900;margin-bottom:12px}
.cta-banner p{font-size:15px;margin-bottom:26px;color:#3d5e12}
.sns-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.sns-btn{display:inline-flex;align-items:center;gap:9px;background:#fff;color:var(--ink);font-weight:800;font-family:'M PLUS Rounded 1c';padding:13px 22px;border-radius:999px;font-size:14.5px;transition:.18s}
button.sns-btn{border:none;cursor:pointer;line-height:1}
.sns-btn:hover{transform:translateY(-2px)}
.sns-btn .fa-x-twitter{color:#000}.sns-btn .fa-instagram{color:#E1306C}.sns-btn .fa-facebook{color:#1877F2}.sns-btn .fa-envelope{color:var(--green-d)}
.sns-btn .fa-youtube{color:#FF0000}.sns-btn .fa-flask{color:var(--purple)}.sns-btn .fa-blog{color:var(--green-d)}
.profile .sns-btn{border:1px solid var(--line)}
.family-photo img{width:100%;height:auto;border-radius:24px;box-shadow:var(--shadow);display:block}
.bookcard{display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin-bottom:20px}
.bookcard-imgs{display:flex;gap:12px;flex-shrink:0}
.bookcard-imgs a{display:block;width:150px}
.bookcard-imgs img{width:100%;height:auto;border-radius:8px;box-shadow:0 6px 16px rgba(70,65,59,.20);display:block;transition:transform .25s}
.bookcard-imgs a:hover img{transform:translateY(-4px)}
.bookcard-cover{width:160px;flex-shrink:0}
.bookcard-cover img{width:100%;height:auto;border-radius:6px;box-shadow:0 6px 16px rgba(70,65,59,.20);display:block}
.bookcard-body .yr2{display:inline-block;font-family:'M PLUS Rounded 1c';font-weight:900;color:var(--green-d);font-size:13px;margin-bottom:6px}
.bookcard-body h3{font-size:17px;line-height:1.55;margin:0 0 8px;color:var(--ink)}
.bookcard-body p{font-size:13.5px;color:var(--ink-soft);line-height:1.7;margin:0 0 16px}
@media(max-width:680px){.bookcard{grid-template-columns:1fr}.bookcard-imgs{flex-wrap:wrap}.bookcard-imgs a{width:130px}.bookcard-cover{width:130px}}
.book-rank{display:inline-flex;align-items:center;gap:8px;background:#fdf0e2;color:#cf7d22;font-weight:800;font-family:'M PLUS Rounded 1c';font-size:12.5px;line-height:1.55;padding:9px 15px;border-radius:10px;margin:0 0 14px}
.book-rank i{color:var(--gold)}
.book-btns{display:flex;gap:10px;flex-wrap:wrap}
.book-photo{max-width:520px;margin:10px auto 0}
.book-photo img{width:100%;height:auto;border-radius:14px;box-shadow:var(--shadow);display:block}
.sec-photo{max-width:600px;margin:0 auto 30px}
.sec-photo img{width:100%;height:auto;border-radius:16px;box-shadow:var(--shadow);display:block}
.sec-photos{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:760px;margin:0 auto 30px}
.sec-photos.three{grid-template-columns:1fr 1fr 1fr;max-width:980px}
.sec-photos .cell{aspect-ratio:4/3;border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}
.sec-photos .cell img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:680px){.sec-photos,.sec-photos.three{grid-template-columns:1fr}}

/* book banner */
.book{display:flex;gap:30px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px 34px;box-shadow:var(--shadow-sm)}
.book-cover{width:90px;height:124px;border-radius:8px;background:linear-gradient(135deg,#f0c010,#f0a060);display:flex;align-items:center;justify-content:center;color:#fff;font-size:26px;flex-shrink:0;box-shadow:var(--shadow-sm)}
.book-info{flex:1}
.book-info .lbl{font-size:12px;font-weight:800;color:var(--orange-d);font-family:'M PLUS Rounded 1c'}
.book-info h3{font-size:21px;margin:4px 0 6px}
.book-info p{font-size:13.5px;color:var(--ink-soft)}

/* page hero (sub pages) */
.page-hero{background:var(--cream);padding:54px 0 46px;text-align:center;border-bottom:1px solid var(--line)}
.page-hero h1{font-size:34px;font-weight:900}
.page-hero p{color:var(--ink-soft);margin-top:10px}
.breadcrumb{font-size:12.5px;color:var(--ink-soft);margin-bottom:14px}


/* about */
.profile{display:grid;grid-template-columns:.7fr 1.3fr;gap:40px;align-items:start}
.profile-photo{position:sticky;top:90px;display:flex;flex-direction:column;align-items:center;gap:14px}
.profile-photo .pf-main{width:100%;height:auto;border-radius:20px;box-shadow:var(--shadow);display:block}
.profile-photo .pf-avatar{width:210px;height:210px;border-radius:50%;object-fit:cover;border:5px solid #fff;box-shadow:0 6px 16px rgba(0,0,0,.16);display:block}
.area{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin-bottom:16px}
.area .ic{width:54px;height:54px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0}
.area h3{font-size:18px;margin-bottom:6px}
.area p{font-size:14px;color:var(--ink-soft)}
.area-notes{list-style:none;margin-top:12px;display:grid;gap:7px}
.area-notes li{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--ink-soft)}
.area-notes li i{color:var(--green);margin-top:5px;font-size:9px}
.make-cats{display:grid;grid-template-columns:1fr;gap:20px;margin-top:20px}
.mcat h4{font-size:13.5px;font-weight:900;color:var(--green-deep);margin:0 0 10px;line-height:1.4;font-family:'M PLUS Rounded 1c'}
.mcat-imgs{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start}
.mcat-imgs img{height:120px;width:auto;border-radius:8px;display:block}
@media(max-width:680px){.mcat-imgs img{height:92px}}
.lecs{display:grid;gap:28px;margin-top:20px}
.lecs>*+*{border-top:1px dashed var(--line);padding-top:28px}
.lec{display:flex;gap:16px;align-items:flex-start}
.lec-photo{width:210px;flex-shrink:0;aspect-ratio:16/10;object-fit:cover;border-radius:12px;display:block;border:1px solid var(--line)}
.lec-body h4{font-size:15px;font-weight:900;color:var(--green-deep);margin:0 0 6px;font-family:'M PLUS Rounded 1c'}
.lec-body p{font-size:13.5px;color:var(--ink-soft);line-height:1.75;margin:0}
@media(max-width:680px){.lec{flex-wrap:wrap}.lec-photo{width:100%;aspect-ratio:16/9}}
.lec3 h4{font-size:15px;font-weight:900;color:var(--green-deep);margin:0 0 8px;font-family:'M PLUS Rounded 1c'}
.lec-eg{font-size:14px;margin:0 0 10px;color:var(--ink)}
.lec-eg b{color:var(--orange-d)}
.lec3 p{font-size:13.5px;color:var(--ink-soft);line-height:1.85;margin:0 0 12px}
.lec-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}
.lec-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;display:block;border:1px solid var(--line)}
.lec-quotes{border-left:3px solid var(--green);padding:2px 0 2px 16px;margin-top:6px}
.lec-qh{font-weight:800;color:var(--green-deep);font-size:12.5px;margin:0 0 8px;font-family:'M PLUS Rounded 1c'}
.lec-quotes ul{list-style:none;display:grid;gap:7px;margin:0;padding:0}
.lec-quotes li{font-size:12.5px;color:var(--ink-soft);line-height:1.7;padding-left:16px;position:relative}
.lec-quotes li::before{content:"・";position:absolute;left:0;color:var(--green-deep);font-weight:900}
.lec-gallery.g2{grid-template-columns:repeat(2,1fr);max-width:560px}
@media(max-width:680px){.lec-gallery{grid-template-columns:1fr}}
.video-embed{position:relative;width:100%;max-width:720px;margin:4px auto 24px;aspect-ratio:16/9;border-radius:14px;overflow:hidden;box-shadow:var(--shadow);background:#000}
.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.video-cap{max-width:720px;margin:-12px auto 26px;font-size:12.5px;color:var(--ink-soft);text-align:center;line-height:1.75}
.area-body{flex:1;min-width:0}
.area-photo{width:240px;flex-shrink:0;align-self:stretch;min-height:150px;object-fit:cover;border-radius:12px;display:block}
@media(max-width:680px){.area{flex-wrap:wrap}.area-photo{width:100%;align-self:auto;aspect-ratio:16/9;min-height:0;order:3}}
.area-media{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.area-media.three{grid-template-columns:1fr 1fr 1fr}
@media(max-width:680px){.area-media.three{grid-template-columns:1fr}}
.area-collage{display:block;margin-top:12px;border-radius:14px;overflow:hidden;box-shadow:0 6px 16px rgba(70,65,59,.16)}
.area-collage img{width:100%;height:auto;display:block;transition:transform .3s}
.area-collage:hover img{transform:scale(1.02)}
.area-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.area-pair a{display:block;border-radius:12px;overflow:hidden;box-shadow:0 4px 12px rgba(70,65,59,.14)}
.area-pair img{width:100%;height:auto;display:block;transition:transform .3s}
.area-pair a:hover img{transform:scale(1.03)}
@media(max-width:680px){.area-pair{grid-template-columns:1fr}}
.media-cell.fit img{object-fit:contain;background:#fff}
.media-cell{position:relative;display:block;aspect-ratio:16/10;border-radius:12px;overflow:hidden;background:#eef0ea;text-decoration:none;box-shadow:0 4px 12px rgba(70,65,59,.10)}
.media-cell img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.media-cell:hover img{transform:scale(1.05)}
.media-cell .play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.20);color:#fff;font-size:26px;transition:background .2s}
.media-cell .play::before{content:'';position:absolute;width:52px;height:52px;border-radius:50%;background:rgba(0,0,0,.5)}
.media-cell .play i{position:relative;margin-left:3px}
.media-cell:hover .play{background:rgba(0,0,0,.30)}
.media-cell.link{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,#eaf2fb,#f3f8ec);color:var(--ink);text-align:center;padding:14px;border:1px solid var(--line);box-shadow:none}
.media-cell.link i{font-size:24px;color:var(--blue)}
.media-cell.link span{font-size:12px;font-weight:700;font-family:'M PLUS Rounded 1c';line-height:1.5}
.media-cell.empty{display:flex;align-items:center;justify-content:center;border:2px dashed #cdd5c2;background:#f7f8f3;color:#9aa890;font-size:12.5px;font-weight:700;font-family:'M PLUS Rounded 1c';text-align:center;box-shadow:none}
.media-cell.embed{background:#000}
.media-cell.embed iframe{width:100%;height:100%;border:0;display:block}
.proj{margin-top:18px}
.proj-title{font-family:'M PLUS Rounded 1c';font-weight:800;font-size:14.5px;color:var(--blue);margin:0 0 9px;display:flex;align-items:center;gap:9px;line-height:1.5}
.proj-title::before{content:'';width:8px;height:8px;border-radius:2px;background:var(--blue);flex-shrink:0}
.media-cell.link .fa-x-twitter{color:#000}
.media-cell.ogp{display:block;background:#eef0ea}
.media-cell.ogp img{width:100%;height:100%;object-fit:cover}
.media-cell.ogp .ogp-cap{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(0,0,0,.82));color:#fff;font-family:'M PLUS Rounded 1c';font-weight:700;font-size:11px;line-height:1.4;padding:22px 10px 9px;text-align:left;display:flex;align-items:center;gap:6px}
.media-cell.ogp .ogp-cap i{font-size:11px;opacity:.9}
.pickup-title{font-family:'M PLUS Rounded 1c';font-weight:800;font-size:15.5px;color:var(--ink);margin:0 0 16px;line-height:1.6}
.pickup-title .pkyr{font-weight:900;color:var(--green-d);margin-right:12px}
.pickup-title .note{color:var(--orange-d)}
.pickup{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin:0 0 44px}
@media(max-width:680px){.pickup{grid-template-columns:1fr}}
.pickup-item{display:flex;flex-direction:column}
.pickup-video{position:relative;aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:#000;box-shadow:var(--shadow)}
.pickup-video iframe{width:100%;height:100%;border:0;display:block}
.pickup-cap{margin:0 0 10px;font-family:'M PLUS Rounded 1c';font-weight:800;font-size:15px;color:var(--ink);line-height:1.6}
.pickup-cap .pkyr{font-weight:900;color:var(--green-d);margin-right:12px}
.pickup-cap .ep{color:var(--orange-d)}
.pickup-link{display:inline-flex;align-items:center;gap:7px;margin-top:7px;font-size:13px;font-weight:700;font-family:'M PLUS Rounded 1c';color:var(--blue);text-decoration:none}
.pickup-link:hover{text-decoration:underline}
.timeline{list-style:none;display:grid;gap:10px}
.timeline li{display:flex;gap:14px;font-size:14.5px;padding:12px 0;border-bottom:1px solid var(--line)}
.timeline .yr{font-family:'M PLUS Rounded 1c';font-weight:900;color:var(--green-d);white-space:nowrap;min-width:84px}
.timeline.two{grid-template-columns:1fr 1fr;column-gap:44px}
.timeline.two li{align-items:flex-start}
.timeline a{color:var(--ink);text-decoration:none;border-bottom:1px solid transparent;transition:color .15s,border-color .15s}
.timeline a:hover{color:var(--blue);border-color:var(--blue)}
.timeline a .fa-arrow-up-right-from-square{font-size:10px;color:var(--blue);margin-left:5px;opacity:.6;vertical-align:1px}
.timeline .yr.sky{color:#2C9FD9}
.deflist{list-style:none;display:grid;gap:12px;margin:12px 0 0}
.deflist li{font-size:14.5px;color:var(--ink-soft);line-height:1.75}
.deflist b{color:var(--ink)}
.cv{list-style:none;display:grid;gap:7px;margin:8px 0 0}
.cv li{display:flex;gap:14px;font-size:12.5px;color:var(--ink-soft);line-height:1.6}
.cv .cvyr{font-family:'M PLUS Rounded 1c';font-weight:800;color:var(--green-d);min-width:46px;flex-shrink:0}
.cv .cvyr.biz{color:var(--blue)}
.cv .cvyr.fam{color:#7CB518}
.roles{list-style:none;display:grid;gap:8px;margin:10px 0 0}
.roles li{font-size:14px;color:var(--ink);line-height:1.6}
.roles li i{font-size:7px;color:var(--green-d);vertical-align:3px;margin-right:9px}
.origin-row{display:flex;align-items:center;gap:32px;max-width:1100px;margin:0 auto;flex-wrap:wrap}
.origin-mark{flex:0 0 300px;text-align:center}
.origin-mark img{width:100%;max-width:300px;height:auto;display:block;margin:0 auto}
.origin-art{flex:1;min-width:300px}
.origin-art img{width:100%;height:auto;display:block;border-radius:16px;box-shadow:var(--shadow)}
@media(max-width:760px){.origin-row{justify-content:center}.origin-mark{flex:0 0 auto;max-width:240px}}
.profile-lead{font-family:'M PLUS Rounded 1c';font-weight:800;font-size:17px;color:var(--ink);line-height:1.6;margin:0 0 14px}
.award-block{margin-bottom:36px}
.award-block h3{display:flex;align-items:center;gap:12px;font-size:15px;color:var(--ink);margin:0 0 14px;font-family:'M PLUS Rounded 1c';font-weight:900}
.award-block h3::after{content:'';flex:1;height:2px;background:var(--line);border-radius:2px}
.award-block h3 .tag{position:static;font-size:13px;font-weight:900;color:#fff;background:var(--green-d);padding:5px 18px;border-radius:999px;font-family:'M PLUS Rounded 1c';letter-spacing:.04em}
.award-block h3 .tag.biz{background:var(--blue)}

/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.form-note{margin-top:14px;font-size:13px;color:var(--ink-soft);line-height:1.8}
.notice{margin-top:30px;background:#fff8ec;border:1px solid #f0d9a8;border-radius:var(--radius);padding:22px 26px}
.notice h3{font-size:15px;font-weight:800;color:var(--orange-d);margin-bottom:10px;display:flex;align-items:center;gap:8px}
.notice p{font-size:13.5px;color:var(--ink-soft);line-height:1.95}
.contact-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:34px;box-shadow:var(--shadow-sm)}
.contact-card h3{font-size:19px;margin-bottom:8px;color:var(--green-deep)}
.contact-card p{font-size:14px;color:var(--ink-soft);margin-bottom:20px}
.form-row{margin-bottom:16px}
.form-row label{display:block;font-weight:700;font-size:13.5px;margin-bottom:6px}
.form-row input,.form-row select,.form-row textarea{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;font-family:inherit;font-size:14px}
.form-row textarea{min-height:120px;resize:vertical}

/* footer */
.site-footer{background:#2f3a26;color:#cfd8c4;padding:48px 0 30px;margin-top:10px}
.footer-inner{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}
.footer-logo{font-family:'M PLUS Rounded 1c';font-weight:900;font-size:20px;color:#fff}
.footer-logo-img{height:44px;width:auto;display:block}
.footer-nav{display:flex;gap:26px;flex-wrap:wrap}
.footer-nav a{color:#cfd8c4;font-size:14px;cursor:pointer}
.footer-nav a:hover{color:var(--green)}
.copy{margin-top:30px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);font-size:12px;color:#9aa890;text-align:center}

/* preview bar */
.preview-bar{position:fixed;bottom:0;left:0;right:0;height:54px;background:#241f1a;display:flex;align-items:center;gap:0;z-index:9999;box-shadow:0 -4px 20px rgba(0,0,0,.3);overflow-x:auto}
.preview-bar .pl{padding:0 16px;font-size:11px;font-weight:800;color:rgba(255,255,255,.45);letter-spacing:.1em;white-space:nowrap;font-family:'M PLUS Rounded 1c'}
.preview-tab{padding:0 20px;height:54px;font-size:13px;font-weight:800;font-family:'M PLUS Rounded 1c';color:rgba(255,255,255,.65);background:none;border:none;border-top:3px solid transparent;cursor:pointer;white-space:nowrap}
.preview-tab:hover{color:#fff;background:rgba(255,255,255,.05)}
.preview-tab.active{color:var(--green);border-top-color:var(--green);background:rgba(144,208,80,.12)}

/* responsive */
@media(max-width:920px){
  .hero-inner{grid-template-columns:1fr;gap:36px}
  .hero h1{font-size:34px}
  .story,.profile,.contact-grid{grid-template-columns:1fr}
  .profile-photo{position:static;max-width:320px}
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .proof-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:680px){
  .nav-toggle{display:block}
  .primary-nav{position:absolute;top:68px;right:16px;left:16px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:10px;display:none}
  .primary-nav.open{display:block}
  .primary-nav ul{flex-direction:column;gap:2px;align-items:stretch}
  .grid-3,.grid-4,.grid-2,.flow{grid-template-columns:1fr}
  .section{padding:54px 0}
  .hero h1{font-size:27px}
  .section-title{font-size:24px}
  .logo-img{height:42px}
  .logo-sub-only{display:none}
  .mission{padding:40px 0 0}
  .mission-lead{font-size:15px}
  .mission-main{font-size:22px;line-height:1.55}
  .book{flex-direction:column;text-align:center}
  .news-item{flex-wrap:wrap;gap:8px}
}
