:root{--ink:#1b2624;--paper:#f8f6f0;--teal:#0f8a80;--teal-l:#7fd1c6;--deep:#123f3b;--line:#d6ddd9;--mute:#4d5a57;--mute2:#6d7d79}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"Noto Sans JP","Hiragino Sans",sans-serif;color:var(--ink);background:var(--paper);line-height:1.8}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.serif{font-family:"Noto Serif JP",serif}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.eyebrow{font-size:12px;letter-spacing:.2em;color:var(--teal);font-weight:700}
.eyebrow-light{font-size:12px;letter-spacing:.2em;color:var(--teal-l);font-weight:700}
.btn{display:inline-block;padding:14px 26px;border-radius:999px;font-weight:700;font-size:15px;line-height:1.2}
.btn-teal{background:var(--teal);color:#fff}
.btn-light{background:var(--teal-l);color:#0b1c1a}
.btn-ghost{border:1px solid rgba(255,255,255,.45);color:#fff}
.btn-ink{background:var(--ink);color:var(--paper);border-radius:0}
.link-ul{font-weight:700;border-bottom:2px solid var(--ink);padding-bottom:2px}
/* header */
.hdr{position:sticky;top:0;z-index:10;background:#fff;border-bottom:1px solid var(--line)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:12px;padding-bottom:12px;gap:16px}
.hdr img{height:48px;width:auto}
.nav{display:flex;gap:24px;align-items:center;font-size:13px;font-weight:700}
.nav .btn{padding:10px 18px;font-size:13px}
.menu-btn{display:none;background:none;border:1px solid var(--line);border-radius:8px;padding:8px 12px;font-weight:700;font-size:13px;color:var(--ink)}
/* hero */
.hero{position:relative;background:linear-gradient(160deg,#0f3a36 0%,#123f3b 55%,#17504a 100%);color:var(--paper);overflow:hidden}
.hero .wrap{position:relative;padding-top:88px;padding-bottom:72px}
.hero-svg{position:absolute;right:24px;top:72px;width:min(480px,34%);height:auto;opacity:.75}
.hero-copy{max-width:680px;display:flex;flex-direction:column;gap:22px;position:relative}
.hero h1{margin:0;font-size:clamp(34px,4.2vw,60px);line-height:1.25;font-weight:900;letter-spacing:.01em}
.hero .sub{font-size:clamp(18px,1.7vw,24px);font-weight:700;line-height:1.5;color:#b9e2dc}
.hero p{margin:0;font-size:16px;line-height:2;color:#d3e2df}
.hero .cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:6px}
/* sections */
.sec{padding:88px 0 0}
.sec h2{margin:10px 0 0;font-size:clamp(28px,3vw,40px);font-weight:900;line-height:1.3}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:3px solid var(--ink);margin-top:14px}
.grid3>div{padding:32px 28px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:12px}
.grid3>div:first-child{padding-left:0}.grid3>div:last-child{padding-right:0;border-right:0}
.grid3 .t{font-size:26px;font-weight:900;line-height:1.45}
.grid3 p{margin:0;font-size:14px;line-height:1.9;color:var(--mute)}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:28px}
.card{background:#fff;border:1px solid var(--line);padding:28px 24px;display:flex;flex-direction:column;gap:10px}
.card h3{margin:0;font-family:"Noto Serif JP",serif;font-size:21px;font-weight:900;line-height:1.4}
.card p{margin:0;font-size:14px;line-height:1.85;color:var(--mute)}
.card.dark{background:var(--deep);color:var(--paper);border-color:var(--deep)}
.card.dark p{color:#cfe0dc}
.card .more{margin-top:auto;font-size:13px;font-weight:700;color:var(--teal-l)}
.field{margin-top:96px;background:var(--deep);color:var(--paper)}
.field .wrap{padding-top:80px;padding-bottom:80px;display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:start}
.field h2{margin:0;font-size:clamp(28px,3vw,40px);line-height:1.3;font-weight:900}
.field p{margin:0;font-size:15px;line-height:1.9;color:#cfe0dc}
.field .g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid rgba(255,255,255,.25)}
.field .g3>div{padding:24px 24px 0;border-right:1px solid rgba(255,255,255,.18)}
.field .g3>div:first-child{padding-left:0}.field .g3>div:last-child{padding-right:0;border-right:0}
.field .g3 .l{font-size:13px;color:var(--teal-l);font-weight:700}
.field .g3 .t{font-size:20px;font-weight:900;margin-top:8px;line-height:1.5}
.field .g3 p{font-size:13px;margin-top:10px}
.skill{padding:88px 0 40px;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.skill h2{margin:0;font-size:clamp(32px,3.4vw,48px);font-weight:900;line-height:1.3}
.skill p{margin:0;font-size:15px;line-height:2;color:var(--mute);max-width:600px}
.nums{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.nums>div{background:#fff;border:1px solid var(--line);padding:24px}
.nums .n{font-family:"Noto Serif JP",serif;font-size:40px;font-weight:900;line-height:1.1}
.nums .c{font-size:13px;color:var(--mute2);margin-top:4px}
.nums .wide{grid-column:span 2;background:var(--deep);color:var(--paper);border-color:var(--deep);display:flex;align-items:baseline;gap:16px}
.nums .wide .n{color:var(--teal-l)}.nums .wide .c{color:#cfe0dc}
.two{padding:80px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:56px}
.pmv{display:flex;flex-direction:column;gap:18px;margin-top:16px}
.pmv .k{font-size:12px;color:var(--mute2)}.pmv .v{font-size:24px;font-weight:900}
.pmv .d{font-size:13px;color:var(--mute);line-height:1.8;margin-top:4px}
.member{display:flex;gap:18px;margin-top:16px}
.member img{width:96px;height:120px;object-fit:cover;flex-shrink:0}
.member .role{font-size:12px;color:var(--mute2)}.member .name{font-size:24px;font-weight:900}
.member p{margin:6px 0 0;font-size:13px;line-height:1.8;color:var(--mute)}
.cta-sec{margin-top:80px;border-top:3px solid var(--ink);padding:44px 0 48px;display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:center}
.cta-sec h2{margin:0;font-size:clamp(26px,3vw,38px);font-weight:900;line-height:1.3}
.company{font-size:12px;line-height:1.8;color:var(--mute)}
.ftr{border-top:1px solid var(--line);padding:20px 0;font-size:12px;color:var(--mute2)}
.ftr .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.ftr a{margin-left:16px}
/* inner pages */
.page{padding:64px 0 96px;max-width:820px}
.page h1{font-size:clamp(28px,3vw,36px);font-weight:900;margin:0 0 24px}
.page p{margin:0 0 14px;font-size:15px;line-height:2;color:var(--mute)}
.page h3{font-size:17px;margin:28px 0 8px;font-weight:700}
.form{display:grid;gap:14px;margin-top:24px}
.form label{font-size:13px;font-weight:700}
.form input,.form textarea{width:100%;padding:12px 14px;border:1px solid var(--line);background:#fff;font:inherit;font-size:15px}
.form textarea{min-height:160px}
.note{font-size:12px;color:var(--mute2);border:1px dashed var(--line);padding:10px 14px;margin-top:12px}
.preview-band{background:#fff3cd;color:#5c4a00;font-size:12px;text-align:center;padding:6px 12px}
@media (max-width:900px){
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0}
  .nav.open{display:flex}.nav a{padding:14px 24px;border-top:1px solid var(--line)}.nav .btn{margin:14px 24px;text-align:center}
  .menu-btn{display:block}
  .hero .wrap{padding-top:56px;padding-bottom:48px}
  .hero-svg{position:static;width:100%;max-width:520px;margin:0 auto 24px;opacity:.85}
  .grid3,.field .g3{grid-template-columns:1fr}
  .grid3>div{padding:24px 0;border-right:0;border-bottom:1px solid var(--line)}
  .field .g3>div{padding:20px 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.18)}
  .cards{grid-template-columns:1fr 1fr}
  .field .wrap,.skill,.two,.cta-sec{grid-template-columns:1fr;gap:32px}
  .sec{padding-top:64px}.field{margin-top:64px}.skill{padding:64px 0 48px}.two{padding-top:56px}.cta-sec{margin-top:56px}
}
@media (max-width:560px){
  .cards{grid-template-columns:1fr}
  .nums{grid-template-columns:1fr 1fr}.nums .n{font-size:32px}
  .hdr img{height:40px}
}
/* detail pages */
.card{transition:transform .15s,box-shadow .15s,background .15s,color .15s}
a.card:hover,a.card:focus-visible{background:var(--deep);color:var(--paper);border-color:var(--deep);transform:translateY(-3px);box-shadow:0 12px 28px rgba(27,38,36,.18)}
a.card:hover p,a.card:focus-visible p{color:#cfe0dc}
a.card:hover .eyebrow,a.card:hover .more,a.card:focus-visible .eyebrow,a.card:focus-visible .more{color:var(--teal-l)}
.card .more{margin-top:auto;font-size:13px;font-weight:700;color:var(--teal)}
.card.dark .more{color:var(--teal-l)}
.detail-hero{background:var(--deep);color:var(--paper)}
.detail-hero .wrap{padding-top:64px;padding-bottom:56px;max-width:1000px}
.detail-hero h1{margin:8px 0 16px;font-size:clamp(28px,3.4vw,44px);font-weight:900;line-height:1.3}
.detail-hero p{margin:0;font-size:16px;line-height:2;color:#d3e2df;max-width:760px}
.detail{padding:56px 24px 96px;max-width:1000px}
.detail h2{font-size:clamp(22px,2.4vw,30px);font-weight:900;margin:48px 0 12px;line-height:1.4}
.detail>p{font-size:15px;line-height:2;color:var(--mute);margin:0 0 12px}
.detail-img{margin:0 0 24px;display:flex;justify-content:center}.detail-img img{width:100%;max-width:480px;height:auto;border:1px solid var(--line);background:#fff;padding:24px}
.blocks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}
.block{background:#fff;border:1px solid var(--line);padding:24px}
.block h3{margin:0 0 8px;font-size:18px;font-weight:900}
.block p{margin:0;font-size:14px;line-height:1.85;color:var(--mute)}
.detail-cta{margin-top:56px;padding-top:32px;border-top:3px solid var(--ink);display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.sample{background:#fff;border:1px solid var(--line);box-shadow:12px 14px 0 #e6ebe8;margin:16px 0 24px}
.sample-head{display:flex;justify-content:space-between;padding:10px 24px;border-bottom:1px solid var(--line);font-family:"Noto Serif JP",serif;font-size:12px;letter-spacing:.2em;color:var(--mute2)}
.sample-body{display:grid;grid-template-columns:1.1fr .9fr}
.sample-body>div{padding:24px}.sample-body>div:first-child{border-right:1px solid var(--line)}
.sample-body p{font-size:14px;line-height:1.9;margin:8px 0 12px}
.sample-title{font-size:28px;font-weight:900}.sample-title small{font-size:12px;color:var(--teal);font-weight:700}
.lv{display:grid;grid-template-columns:90px 1fr;gap:8px 12px;margin:12px 0 0;padding-top:12px;border-top:1px dotted #b9c9c3;font-size:14px;line-height:1.7}
.lv dt{font-family:"Noto Serif JP",serif;font-weight:900;color:var(--teal)}.lv dd{margin:0}
.tags span{display:inline-block;border:1px solid #b9c9c3;padding:4px 10px;font-size:12px;margin:0 6px 6px 0}
@media (max-width:700px){.blocks{grid-template-columns:1fr}.sample-body{grid-template-columns:1fr}.sample-body>div:first-child{border-right:0;border-bottom:1px solid var(--line)}.sample{box-shadow:6px 8px 0 #e6ebe8}}

/* members: full bio */
.member{align-items:flex-start}
.bio-h{font-size:13px;font-weight:700;margin-top:10px}
.bio{margin:6px 0 0;padding-left:18px;font-size:13px;line-height:1.75;color:var(--mute)}
.bio ul{margin:2px 0 4px;padding-left:16px;list-style:circle}
.sns-row{display:flex;gap:8px;margin-top:12px}
.sns{display:inline-flex}.sns svg{display:block}
/* news */
.newslist{border-top:1px solid var(--line);margin-top:8px}
.newsitem{display:grid;grid-template-columns:110px 110px 1fr;gap:12px;padding:16px 0;border-bottom:1px solid var(--line);font-size:14px;align-items:baseline}
.newsitem .d{color:var(--mute2)}.newsitem .k{color:var(--teal);font-weight:700;font-size:12px}
@media (max-width:560px){.newsitem{grid-template-columns:1fr}}

/* sample index */
.sidx{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 24px}
.sidx a{border:1px solid var(--teal);color:var(--teal);border-radius:999px;padding:6px 14px;font-size:13px;font-weight:700}
.sidx a:hover{background:var(--teal);color:#fff}
.sample{margin:0 0 28px;scroll-margin-top:90px}
.lvtag{display:inline-block;border:1px solid var(--teal);color:var(--teal);font-size:11px;padding:0 6px;margin-right:6px;border-radius:3px}



/* book 3D (装丁) */

.b3{--W:270px;--H:370px;--T:46px;position:relative;width:100%;max-width:520px;height:460px;display:flex;align-items:center;justify-content:center;perspective:1500px}
.b3 .scene{position:relative;width:var(--W);height:var(--H);transform-style:preserve-3d;transform:rotateX(6deg) rotateY(30deg)}
.b3 .f{position:absolute;left:50%;top:50%;transform-style:preserve-3d;backface-visibility:hidden}
.b3 .leather{background:
  url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.10 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"),
  linear-gradient(165deg,#1c5a52 0%,#123f3b 45%,#0b2e2a 100%)}
/* 表紙 */
.b3 .front{width:var(--W);height:var(--H);margin:calc(var(--H)/-2) 0 0 calc(var(--W)/-2);transform:translateZ(calc(var(--T)/2));border-radius:2px 5px 5px 2px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.35)}
.b3 .front:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(120% 80% at 15% 0%,rgba(255,255,255,.14),transparent 55%)}
.b3 .frame{position:absolute;inset:14px;border:1.5px solid #c9a961;border-radius:2px}
.b3 .frame:after{content:"";position:absolute;inset:5px;border:.5px solid rgba(201,169,97,.7)}
.b3 .corner{position:absolute;width:24px;height:24px;border-color:#c9a961;border-style:solid;border-width:0}
.b3 .c1{top:14px;left:14px;border-top-width:3px;border-left-width:3px}.c2{top:14px;right:14px;border-top-width:3px;border-right-width:3px}
.b3 .c3{bottom:14px;left:14px;border-bottom-width:3px;border-left-width:3px}.c4{bottom:14px;right:14px;border-bottom-width:3px;border-right-width:3px}
.b3 .gold{background:linear-gradient(180deg,#fff2c4 0%,#e3c983 30%,#b8943f 55%,#f3e0a4 80%,#c9a961 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 1px 0 rgba(0,0,0,.45))}
.b3 .title{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);writing-mode:vertical-rl;white-space:nowrap;font-family:"Noto Serif JP",serif;font-weight:900;font-size:46px;letter-spacing:.14em;line-height:1}
.b3 .ed{position:absolute;right:36px;top:40px;writing-mode:vertical-rl;white-space:nowrap;font-family:"Noto Serif JP",serif;font-size:12px;letter-spacing:.35em}
.b3 .sub{position:absolute;left:38px;top:40px;writing-mode:vertical-rl;white-space:nowrap;font-family:"Noto Serif JP",serif;font-size:12px;letter-spacing:.3em}
.b3 .pub{position:absolute;bottom:30px;left:0;right:0;text-align:center;font-family:"Cormorant Garamond",serif;font-size:13px;letter-spacing:.42em}
.b3 .rule{position:absolute;left:60px;right:60px;bottom:52px;height:1px;background:linear-gradient(90deg,transparent,#c9a961,transparent)}
/* 裏表紙 */
.b3 .back{width:var(--W);height:var(--H);margin:calc(var(--H)/-2) 0 0 calc(var(--W)/-2);transform:rotateY(180deg) translateZ(calc(var(--T)/2));border-radius:5px 2px 2px 5px}
/* 背（左面） */
.b3 .spine{width:var(--T);height:var(--H);margin:calc(var(--H)/-2) 0 0 calc(var(--T)/-2);transform:rotateY(-90deg) translateZ(calc(var(--W)/2));background:linear-gradient(90deg,#0b2e2a,#174d46 35%,#123f3b 65%,#0b2e2a);box-shadow:inset 0 0 0 1px rgba(0,0,0,.35)}
.b3 .band{position:absolute;left:3px;right:3px;height:6px;background:linear-gradient(180deg,#1f6a60,#0b2e2a);border-top:1px solid rgba(201,169,97,.8);border-bottom:1px solid rgba(201,169,97,.8);border-radius:2px}
.b3 .band:nth-child(1){top:34px}.band:nth-child(2){top:112px}.band:nth-child(3){bottom:112px}.band:nth-child(4){bottom:34px}
.b3 .st{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);writing-mode:vertical-rl;white-space:nowrap;font-family:"Noto Serif JP",serif;font-weight:900;font-size:17px;letter-spacing:.3em}
.b3 .sp{position:absolute;bottom:48px;left:0;right:0;text-align:center;font-family:"Cormorant Garamond",serif;font-size:8px;letter-spacing:.3em}
/* 小口（右面）・天・地 */
.b3 .pages{background:repeating-linear-gradient(90deg,#f5efdc 0 1px,#e6dcc2 1px 2px,#f1e9d3 2px 3px)}
.b3 .right{width:var(--T);height:calc(var(--H) - 8px);margin:calc((var(--H) - 8px)/-2) 0 0 calc(var(--T)/-2);transform:rotateY(90deg) translateZ(calc(var(--W)/2 - 3px));box-shadow:inset -4px 0 8px rgba(0,0,0,.18)}
.b3 .top{width:calc(var(--W) - 6px);height:var(--T);margin:calc(var(--T)/-2) 0 0 calc((var(--W) - 6px)/-2);transform:rotateX(90deg) translateZ(calc(var(--H)/2 - 4px));background:repeating-linear-gradient(0deg,#f3ecd8 0 1px,#e2d9c0 1px 2px);box-shadow:inset 0 4px 8px rgba(0,0,0,.12)}
.b3 .bottom{width:calc(var(--W) - 6px);height:var(--T);margin:calc(var(--T)/-2) 0 0 calc((var(--W) - 6px)/-2);transform:rotateX(-90deg) translateZ(calc(var(--H)/2 - 4px));background:repeating-linear-gradient(0deg,#e9e0c8 0 1px,#d8cdb0 1px 2px);box-shadow:inset 0 -4px 10px rgba(0,0,0,.22)}
.b3 .shadow{position:absolute;left:-10%;right:-10%;bottom:-38px;height:40px;background:radial-gradient(55% 100% at 50% 50%,rgba(0,0,0,.42),transparent 70%);filter:blur(8px);transform:translateZ(-60px)}

.hero2{display:grid;grid-template-columns:1fr 380px;gap:24px;align-items:center}
.numstrip-wrap{padding:8px 0 32px}
.numstrip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ink)}
.numstrip>div{padding:22px 20px 22px 0;border-right:1px solid var(--line)}
.numstrip>div:last-child{border-right:0}.numstrip>div+div{padding-left:20px}
.numstrip .n{font-family:"Noto Serif JP",serif;font-size:38px;font-weight:900;line-height:1.1}
.numstrip .c{font-size:12px;color:var(--mute2);margin-top:4px;letter-spacing:.06em;white-space:nowrap}
@media (max-width:900px){.numstrip{grid-template-columns:1fr 1fr}.numstrip>div{border-right:0;padding-left:0}.hero2{grid-template-columns:1fr}.b3{height:400px}}
@media (max-width:560px){.b3{transform:scale(.7)!important;height:340px}}

/* policy pages */
.policy .eyebrow{text-align:center}.policy h1{text-align:center}
.policy .sign{text-align:right;margin-top:32px}.policy .sign p{margin:0 0 4px}

/* form */
.hp{display:none}
.req{font-size:11px;color:#fff;background:var(--teal);padding:1px 6px;border-radius:3px;margin-left:4px}
.consent{font-size:13px}
.consent input{width:auto;margin-right:6px}
.fmsg{margin-top:8px;padding:12px 14px;font-size:14px}
.fmsg.ok{background:#e8f5f1;color:#123f3b}
.fmsg.ng{background:#fdecec;color:#7a1f1f}
.lead{font-size:16px;line-height:2;color:var(--ink);margin:0 0 40px;max-width:820px}
.faq{margin-top:56px}
.faq h2{font-size:clamp(22px,2.4vw,30px);font-weight:900;margin:0 0 20px;line-height:1.4}
.faq h3{font-size:16px;font-weight:700;margin:24px 0 6px}
.faq p{font-size:15px;line-height:2;color:var(--mute);margin:0}

.blocks-3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:700px){.blocks-3{grid-template-columns:1fr}}

/* reference article (用語解説) */
.ref{max-width:860px}
.ref .crumb{font-size:12px;color:var(--mute2);margin:0 0 18px}
.ref .crumb a{color:var(--mute2)}
.ref .crumb span{margin:0 8px;color:#b0bcb8}
.ref .eyebrow{text-align:left}
.ref h1.serif{font-size:clamp(28px,3.2vw,40px);font-weight:900;line-height:1.4;margin:10px 0 18px;letter-spacing:.01em}
.ref .meta{display:flex;flex-wrap:wrap;gap:6px 28px;border-top:1px solid var(--ink);border-bottom:1px solid var(--line);padding:12px 0;margin:0 0 28px;font-size:12.5px;color:var(--mute2)}
.ref .meta b{color:var(--ink);font-weight:700;margin-right:6px}
.ref .lead{font-size:16px;line-height:2.1;color:var(--ink);margin:0 0 28px;max-width:760px}
.ref .def{background:#fff;border:1px solid var(--line);border-left:5px solid var(--deep);padding:20px 26px;margin:0 0 32px}
.ref .def .k{font-size:11px;letter-spacing:.2em;color:var(--teal);font-weight:700}
.ref .def .w{font-family:"Noto Serif JP",serif;font-size:22px;font-weight:900;margin:4px 0 2px;color:var(--ink)}
.ref .def .w small{font-family:"Cormorant Garamond",serif;font-size:16px;font-weight:600;color:var(--mute2);margin-left:10px;letter-spacing:.04em}
.ref .def p{margin:8px 0 0;font-size:15px;line-height:2;color:var(--ink)}
.ref .def .al{font-size:13px;color:var(--mute2);margin-top:10px}
.ref .toc{border:1px solid var(--line);border-top:3px solid var(--deep);background:#fff;padding:18px 26px 14px;margin:0 0 44px;font-size:14px;line-height:2.1}
.ref .toc b{display:block;font-size:11px;letter-spacing:.2em;color:var(--teal);margin-bottom:6px}
.ref .toc ol{margin:0;padding:0;list-style:none;columns:2;column-gap:36px}
.ref .toc li{break-inside:avoid;padding-left:2.2em;text-indent:-2.2em}
.ref .toc li a{color:var(--ink);text-decoration:none}
.ref .toc li a:hover{color:var(--teal)}
.ref .toc .n{font-variant-numeric:lining-nums;display:inline-block;width:2.2em;text-indent:0;font-family:"Cormorant Garamond",serif;font-size:15px;font-weight:600;color:var(--teal)}
.ref{counter-reset:sec}
.ref h2.serif{counter-increment:sec;font-size:clamp(21px,2.2vw,27px);font-weight:900;line-height:1.45;margin:56px 0 16px;padding:0 0 10px;border-bottom:1px solid var(--line);position:relative}
.ref h2.serif::before{content:counter(sec,decimal-leading-zero);font-variant-numeric:lining-nums;font-family:"Cormorant Garamond",serif;font-size:15px;font-weight:600;letter-spacing:.14em;color:var(--teal);display:block;margin-bottom:4px}
.ref h2.serif::after{content:"";position:absolute;left:0;bottom:-1px;width:56px;height:3px;background:var(--deep)}
.ref h2.serif.nonum{counter-increment:none}
.ref h2.serif.nonum::before{content:none}
.ref .art-body>p,.ref>p{font-size:15.5px;line-height:2.05;color:#2a3634;margin:0 0 14px;max-width:760px}
.ref h3{font-size:17px;font-weight:700;margin:30px 0 8px;color:var(--ink);padding-left:12px;border-left:3px solid var(--teal-l)}
.ref ul{font-size:15px;line-height:2;color:#2a3634;margin:0 0 14px;padding-left:1.4em;max-width:760px}
.ref .pt{background:#fff;border:1px solid var(--line);padding:18px 24px;margin:8px 0 32px;max-width:760px}
.ref .pt .k{font-size:11px;letter-spacing:.2em;color:var(--teal);font-weight:700;margin-bottom:6px}
.ref .pt ul{margin:0}
.ref .faq h2{margin-top:56px}
.ref .faq h3{border:0;padding-left:2em;text-indent:-2em;font-size:16px;margin:26px 0 6px}
.ref .faq h3::before{content:"Q.";font-family:"Cormorant Garamond",serif;font-weight:600;color:var(--teal);display:inline-block;width:2em;text-indent:0}
.ref .faq p{padding-left:2em;max-width:760px}
.ref .refs{font-size:13.5px;line-height:1.9;color:var(--mute);margin:0 0 8px;padding-left:1.4em;max-width:760px}
.ref .refs li{margin-bottom:4px}
.ref .refs a{color:var(--teal);text-decoration:underline;text-underline-offset:3px}
.ref .about{border-top:3px solid var(--ink);margin-top:40px;padding-top:18px;font-size:13px;line-height:1.9;color:var(--mute);display:grid;grid-template-columns:1fr 1fr;gap:8px 32px}
.ref .about b{color:var(--ink);display:block;font-size:12px;letter-spacing:.1em}
.ref .note{margin-top:20px}
@media (max-width:700px){.ref .toc ol{columns:1}.ref .about{grid-template-columns:1fr}.ref .def .w{font-size:19px}}

/* distill-style layout */
.ref{max-width:1120px}
.ref .byline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:760px;gap:12px 24px;border-top:1px solid var(--ink);border-bottom:1px solid var(--line);padding:16px 0;margin:0 0 32px}
.ref .byline b{display:block;font-size:10.5px;letter-spacing:.18em;color:var(--mute2);font-weight:700;margin-bottom:4px}
.ref .byline div{font-size:13.5px;line-height:1.7;color:var(--ink)}
.ref .byline a{color:var(--teal);text-decoration:underline;text-underline-offset:3px}
.ref .def,.ref .lead{max-width:760px}
.ref .toc{max-width:760px}
.ref .art-body{max-width:760px}
.ref figure.fig{margin:16px 0 28px}
.ref figure.fig figcaption{font-size:12.5px;color:var(--mute2);line-height:1.7;margin:8px 0 0}
.ref figure.fig figcaption b{color:var(--ink);font-weight:700;margin-right:8px}
.ref .refs{list-style:none;padding-left:2.4em;counter-reset:refn}
.ref .refs li{counter-increment:refn;position:relative}
.ref .refs li::before{content:"[" counter(refn) "]";position:absolute;left:-2.4em;color:var(--teal);font-family:"Cormorant Garamond",serif;font-weight:600;font-size:15px}
.ref .cite{background:#fff;border:1px solid var(--line);padding:18px 22px;margin:36px 0 0;max-width:760px}
.ref .cite .k{font-size:11px;letter-spacing:.2em;color:var(--teal);font-weight:700;margin-bottom:8px}
.ref .cite p{margin:0 0 10px;font-size:13.5px;line-height:1.8;color:var(--mute)}
.ref .cite pre{margin:0;white-space:pre-wrap;word-break:break-all;font:13px/1.8 "Noto Sans JP","Hiragino Sans",sans-serif;background:var(--paper);border:1px solid var(--line);padding:12px 14px;color:var(--ink)}
.ref .cite button{margin-top:10px;font:700 12px/1 "Noto Sans JP",sans-serif;padding:8px 14px;border:1px solid var(--ink);background:#fff;color:var(--ink);cursor:pointer;border-radius:999px}
.ref .cite button:hover{background:var(--ink);color:#fff}
@media (min-width:1120px){
  .ref{display:grid;grid-template-columns:220px minmax(0,760px);column-gap:56px;align-items:start}
  .ref>*{grid-column:2}
  .ref>.crumb,.ref>.eyebrow,.ref>h1,.ref>.byline{grid-column:1/-1;max-width:none}
  .ref>h1.serif{max-width:960px}
  .ref>.toc{grid-column:1;grid-row:span 30;position:sticky;top:92px;max-width:none;padding:14px 16px 10px;font-size:12.5px;line-height:1.8;margin:0}
  .ref>.toc ol{columns:1}
  .ref>.toc li{padding-left:1.9em;text-indent:-1.9em;margin:0 0 4px}
  .ref>.toc .n{width:1.9em;font-size:13px}
  .ref>.toc b{font-size:10px}
  .ref>.lead,.ref>.def{grid-column:2}
}
@media (max-width:700px){.ref .byline{grid-template-columns:1fr}}

/* 用語の比較表（マスター・全解説ページ共通） */
.ref .tw{overflow-x:auto;margin:12px 0 20px}
.ref table.cmp{border-collapse:collapse;width:100%;font-size:14px;line-height:1.75;background:#fff}
.ref table.cmp th,.ref table.cmp td{border:1px solid var(--line);padding:11px 14px;text-align:left;vertical-align:top;color:var(--mute)}
.ref table.cmp thead th,.ref table.cmp tr:first-child th{background:var(--deep);color:var(--paper);font-weight:700;white-space:nowrap}
.ref table.cmp tr:not(:first-child) th{background:#f3f6f5;color:var(--ink);font-weight:700;white-space:nowrap;width:1%}
.ref table.cmp th a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.ref table.cmp tr:not(:first-child) th.us{background:var(--teal);color:#fff}
.ref table.cmp td.us{background:#E7F2F0;color:var(--ink)}
@media (max-width:760px){.ref table.cmp{min-width:640px}.ref table.cmp th:first-child,.ref table.cmp td:first-child{position:sticky;left:0;z-index:1}.ref table.cmp tr:not(:first-child) th{background:#f3f6f5}}
