:root{--ink:#2b2b2b;--mute:#6f6e6a;--line:#e6e4df;--bg:#fff;--card:#fff;--acc:#127a66;--mint:#16a085;--soft:#eaf6f2;
--grad:linear-gradient(120deg,#d9f3ec 0%,#e7f0fb 40%,#fdf3d8 75%,#fde3e1 100%);--r:22px}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:500 16px/1.9 "Noto Sans JP","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-feature-settings:"palt" 1}
a{color:var(--acc)}img,svg{max-width:100%;height:auto}
.wrap{max-width:760px;margin:0 auto;padding:0 20px}.wide{max-width:1120px}
.en{font-family:"Oswald","Bebas Neue","Arial Narrow",Impact,sans-serif;letter-spacing:.04em;font-weight:500}
/* ヘッダー */
header.site{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);box-shadow:0 1px 0 var(--line)}
.hd{display:flex;align-items:stretch;justify-content:space-between;min-height:64px;padding-left:20px}
.brand{display:flex;flex-direction:column;justify-content:center;text-decoration:none;color:var(--ink);line-height:1.2}
.brand small{font-size:10px;color:var(--mint)}.brand b{font-size:19px;letter-spacing:.06em}
.brand i{font-style:normal;font-size:11px;color:var(--mute);font-weight:500;margin-top:2px}
nav.top{display:flex}nav.top a{display:flex;align-items:center;justify-content:center;min-width:104px;padding:0 14px;color:#fff;
text-decoration:none;font-size:13px;font-weight:700;letter-spacing:.04em;transition:filter .2s}nav.top a:hover{filter:brightness(1.08)}
@media(max-width:720px){.hd{flex-direction:column;padding:0}.brand{padding:10px 16px}nav.top a{flex:1;min-width:0;min-height:42px;font-size:12px;padding:0 6px;text-align:center;line-height:1.35}}
/* トップのヒーロー */
.hero{position:relative;min-height:min(78vh,640px);display:flex;align-items:center;background:#3a3a36 center/cover no-repeat;color:#fff}
.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,24,22,.62) 0%,rgba(20,24,22,.35) 45%,rgba(20,24,22,.05) 75%)}
.hero-in{position:relative;width:100%;padding-bottom:60px}
.hero .en{font-size:15px;opacity:.9;margin:0}
.hero h1{font-size:clamp(30px,8.2vw,76px);line-height:1.25;font-weight:900;margin:10px 0 22px;letter-spacing:.02em;text-shadow:0 2px 24px rgba(0,0,0,.25)}
.hero p.lead{color:#fff;font-size:clamp(14px,1.8vw,17px);max-width:30em;margin:0;line-height:2;text-shadow:0 1px 10px rgba(0,0,0,.35)}
.panel{position:relative;background:#fff;border-radius:60px 60px 0 0;margin-top:-60px;padding:56px 0 8px}
@media(max-width:720px){.sec-head .ghost{font-size:52px;top:-6px}.hero{min-height:520px}.panel{border-radius:32px 32px 0 0;margin-top:-32px;padding-top:36px}}
/* セクション見出し（英字ラベル＋日本語＋大きな淡い英字） */
.sec{position:relative;padding:40px 0 56px}
.sec-head{position:relative;margin:0 0 28px}
.sec-head .en{position:relative;z-index:1;display:block;font-size:14px;color:var(--mint)}
.sec-head h2,.sec-head h1{position:relative;z-index:1;font-size:clamp(26px,4vw,36px);margin:4px 0 0;padding:0;border:0;background:none;border-radius:0;font-weight:900;letter-spacing:.04em}
.sec-head .ghost{z-index:0;position:absolute;right:0;top:-18px;font-size:clamp(48px,10vw,120px);line-height:1;pointer-events:none;
background:linear-gradient(90deg,#bfe9de,#fbe3a6,#f8c9c3);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:.75}
.tint{background:var(--grad);border-radius:var(--r)}
.policy{padding:48px clamp(20px,5vw,56px);margin:16px 0 56px}
.policy ol{list-style:none;padding:0;margin:0;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.policy li{background:rgba(255,255,255,.85);border-radius:16px;padding:20px 22px;font-size:14px;line-height:1.85}
.policy li b{display:block;font-size:16px;margin-bottom:6px}.policy li .en{color:var(--mint);font-size:22px;display:block;line-height:1}
/* カード */
.cards{display:grid;gap:22px;grid-template-columns:1fr;margin:8px 0 40px}
@media(min-width:640px){.cards{grid-template-columns:1fr 1fr}}
@media(min-width:960px){.wide .cards{grid-template-columns:1fr 1fr 1fr}}
.card{display:flex;flex-direction:column;background:var(--card);border-radius:var(--r);overflow:hidden;text-decoration:none;color:var(--ink);
box-shadow:0 2px 6px rgba(0,0,0,.04),0 12px 32px rgba(40,60,55,.08);transition:transform .25s,box-shadow .25s}
.card:hover{transform:translateY(-3px);box-shadow:0 4px 10px rgba(0,0,0,.05),0 18px 40px rgba(40,60,55,.14)}
.card .ph{position:relative;aspect-ratio:3/2;background:var(--soft)}.card .ph img{width:100%;height:100%;object-fit:cover;display:block}
.tag{position:absolute;right:12px;bottom:12px;background:#fff;color:var(--ink);font-size:12px;font-weight:700;padding:4px 12px;border-radius:99px}
.card .tx{padding:16px 20px 20px}.card b{display:block;line-height:1.65;font-size:16px}.card span{font-size:12px;color:var(--mute)}
/* 記事 */
.crumbs{font-size:12px;color:var(--mute);margin:24px 0 4px}.crumbs a{color:var(--mute)}
h1{font-size:clamp(24px,5vw,32px);line-height:1.5;margin:8px 0 12px;letter-spacing:.02em;font-weight:900}
h2{font-size:22px;line-height:1.5;margin:56px 0 18px;padding:14px 18px;background:var(--soft);border-left:6px solid var(--mint);border-radius:0 12px 12px 0}
h3{font-size:18px;margin:36px 0 10px;padding-bottom:6px;border-bottom:2px dotted var(--mint)}
.meta{font-size:13px;color:var(--mute)}
.eyecatch{margin:20px 0 28px;border-radius:var(--r);overflow:hidden;aspect-ratio:3/2;background:var(--soft)}
.eyecatch img{width:100%;height:100%;object-fit:cover;display:block}
article p{margin:0 0 1.3em}article li{margin:.3em 0}
article table{width:100%;border-collapse:collapse;font-size:14px;margin:16px 0;background:var(--card)}
article th,article td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}article th{background:var(--soft)}
figure{margin:28px 0}figcaption{text-align:center}
.toc{background:#fff;border:2px solid var(--soft);border-radius:var(--r);padding:18px 24px;margin:28px 0}
.toc b{font-size:14px;color:var(--mint)}.toc ol{margin:6px 0 0;padding-left:1.4em;font-size:14px}
.aff a{display:block;text-align:center;background:var(--mint);color:#fff;text-decoration:none;font-weight:700;border-radius:99px;padding:16px 20px;margin:28px 0;
box-shadow:0 6px 0 #0e7a65;transition:transform .15s,box-shadow .15s}.aff a:hover{transform:translateY(2px);box-shadow:0 4px 0 #0e7a65}
.author{display:flex;gap:14px;background:var(--grad);border-radius:var(--r);padding:22px 24px;margin:48px 0;font-size:14px}
.author b{display:block}
.lead{color:var(--mute);margin:8px 0 28px}
.more{display:inline-flex;gap:8px;align-items:center;font-weight:700;text-decoration:none;color:var(--ink)}.more:after{content:"→";color:var(--mint)}
/* フッター */
footer.site{margin-top:72px;background:var(--grad);padding:48px 0 28px;font-size:13px;color:var(--mute)}
footer.site .fb{font-size:20px;font-weight:900;color:var(--ink);letter-spacing:.06em;margin:0 0 4px}
footer.site nav{display:flex;flex-wrap:wrap;gap:8px 20px;margin:20px 0}footer.site a{color:var(--ink);text-decoration:none}