.diagram-wrap{background:var(--off-white);border-radius:16px;padding:40px 28px;margin-top:40px;overflow-x:auto}
.diagram{min-width:960px}
.row-c{display:flex;justify-content:center;margin-bottom:6px}
.row-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:6px}
.conn-v{width:2px;height:28px;margin:0 auto;background:var(--tiffany-light)}
.conn-v--gold{background:var(--gold-light)}
.conn-h{height:2px;background:linear-gradient(90deg,transparent,var(--tiffany-light),transparent);margin:0 0 6px}

.node{border-radius:8px;padding:12px 16px;text-align:center;display:block;cursor:pointer;transition:transform .2s,box-shadow .2s;text-decoration:none}
.node:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(10,186,181,.16)}
.node--top{background:var(--navy);border:2px solid var(--tiffany)}
.node--top .nt{font-family:var(--font-serif);font-size:18px;font-weight:700;color:var(--white)}
.node--top .ns{font-size:11px;color:var(--tiffany);margin-top:3px}
.node--01{background:rgba(10,186,181,.08);border:2px solid var(--tiffany)}
.node--01 .nt{font-family:var(--font-serif);font-size:14px;font-weight:700;color:var(--navy)}
.node--01 .ns{font-size:10px;color:var(--tiffany);margin-top:2px}
.node--02{background:rgba(10,186,181,.04);border:1px solid var(--tiffany-light)}
.node--02 .nt{font-family:var(--font-serif);font-size:13px;font-weight:700;color:var(--tiffany-deep)}
.node--02 .ns{font-size:10px;color:var(--gray-500);margin-top:2px}
.node--gold{background:rgba(201,168,76,.08);border:2px solid var(--gold)}
.node--gold .nt{font-family:var(--font-serif);font-size:14px;font-weight:700;color:#7A5A10}
.node--gold .ns{font-size:10px;color:var(--gray-500);margin-top:2px}
.node--gold-sub{background:rgba(201,168,76,.04);border:1px solid rgba(201,168,76,.35)}
.node--gold-sub .nt{font-family:var(--font-serif);font-size:12px;font-weight:700;color:#7A5A10}
.node--gold-sub .ns{font-size:10px;color:var(--gray-500);margin-top:2px}
.node--cv{background:var(--tiffany);border:2px solid var(--tiffany-dark)}
.node--cv .nt{font-family:var(--font-serif);font-size:14px;font-weight:700;color:var(--white)}
.node--cv .ns{font-size:10px;color:rgba(255,255,255,.7);margin-top:2px}
.node__badge{display:inline-block;font-size:9px;font-weight:700;padding:2px 7px;border-radius:2px;letter-spacing:.06em;margin-bottom:5px}
.nb--t{background:var(--tiffany);color:var(--white)}
.nb--g{background:var(--gold);color:var(--navy)}
.nb--cv{background:var(--white);color:var(--tiffany)}

/* 3列グリッドの子展開 */
.three-col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0;margin-bottom:0;border-top:2px solid var(--tiffany-light)}
.col-block{padding:0 8px;border-right:1px solid var(--gray-300)}
.col-block:last-child{border-right:none}
.col-block__header{padding:10px 12px;text-align:center;font-family:var(--font-serif);font-size:13px;font-weight:700;color:var(--white);margin-bottom:10px;border-radius:0 0 6px 6px}
.col-block__header--01{background:var(--tiffany)}
.col-block__header--02{background:var(--navy)}
.col-block__header--03{background:#7A5A10}
.sub-nodes{display:flex;flex-direction:column;gap:7px}

/* サイトマップ表 */
.sm-section{margin-bottom:36px}
.sm-section-title{font-family:var(--font-serif);font-size:17px;font-weight:700;color:var(--navy);margin-bottom:14px;padding-bottom:10px;display:flex;align-items:center;gap:10px}
.sm-section-title--01{border-bottom:2px solid var(--tiffany)}
.sm-section-title--02{border-bottom:2px solid var(--navy)}
.sm-section-title--03{border-bottom:2px solid var(--gold)}
.sm-section-title span{font-size:11px;font-weight:700;padding:3px 10px;border-radius:3px;letter-spacing:.06em;color:var(--white)}
.sm-section-title--01 span{background:var(--tiffany)}
.sm-section-title--02 span{background:var(--navy)}
.sm-section-title--03 span{background:var(--gold);color:var(--navy)}
.sm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.sm-item{border-radius:6px;padding:12px 16px}
.sm-item--01{background:var(--tiffany-pale);border-left:3px solid var(--tiffany)}
.sm-item--02{background:rgba(15,31,61,.05);border-left:3px solid var(--navy)}
.sm-item--03{background:var(--gold-pale);border-left:3px solid var(--gold)}
.sm-item--cv{background:rgba(10,186,181,.12);border-left:3px solid var(--tiffany)}
.sm-item__url{font-size:11px;font-weight:700;letter-spacing:.06em;margin-bottom:3px}
.sm-item--01 .sm-item__url{color:var(--tiffany)}
.sm-item--02 .sm-item__url{color:var(--navy)}
.sm-item--03 .sm-item__url{color:#7A5A10}
.sm-item--cv .sm-item__url{color:var(--tiffany-deep)}
.sm-item__title{font-family:var(--font-serif);font-size:14px;font-weight:700;color:var(--navy);margin-bottom:3px}
.sm-item__kw{font-size:11px;color:var(--gray-500);line-height:1.5}
@media(max-width:768px){.sm-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.sm-grid{grid-template-columns:1fr}}