

/* --- 5. トップページ（新構成）: ngh- で始まるクラスだけに効きます --- */
.ngh-hero-catch, .ngh-hero-sub, .ngh-band-copy, .ngh-quote,
.post_content h2.ngh-ttl {
    font-family: var(--ngh-font);
}
.post_content h1.ngh-hero-label {
    color: #fff; font-size: 12px; font-weight: normal; letter-spacing: .15em;
    text-align: center; background: none; border: none; padding: 0; margin: 0 0 2em;
    text-shadow: 0 1px 6px rgba(0,0,0,.6);
}
.ngh-hero-catch {
    color: #fff; text-align: center; font-weight: 600;
    font-size: clamp(28px, 6vw, 46px); line-height: 1.6; letter-spacing: .12em;
    text-shadow: 0 2px 14px rgba(0,0,0,.45); margin: 1.5em 0 .6em !important;
}
.ngh-hero-sub {
    color: #fff; text-align: center; font-size: clamp(14px, 2.2vw, 17px); line-height: 2;
    text-shadow: 0 1px 8px rgba(0,0,0,.6); margin-bottom: 2em !important;
}
.ngh-eyebrow {
    text-align: center; font-size: 11px; letter-spacing: .3em; color: #4a6741;
    margin-bottom: .4em !important;
}
.post_content h2.ngh-ttl {
    text-align: center; font-size: 1.55em; font-weight: 600; line-height: 1.6;
    letter-spacing: .08em; color: #2e3d2a;
    background: none; border: none; padding: 0; margin: 0 0 1.6em;
}
.post_content h2.ngh-ttl::before, .post_content h2.ngh-ttl::after,
.post_content h3.ngh-card-ttl::before, .post_content h3.ngh-card-ttl::after {
    content: none;
}
.ngh-lead { text-align: center; line-height: 2; }
.ngh-photo img { border-radius: 14px; }
.ngh-check {
    max-width: 24em; margin-left: auto !important; margin-right: auto !important;
    font-size: 1.05em; line-height: 1.8;
}
.ngh-check li { margin-bottom: .5em; }
.ngh-cards { gap: 1.2em !important; margin-bottom: 2em !important; }
.ngh-cards > .wp-block-column {
    background: #fff; border-radius: 16px; padding: 1.8em 1.5em;
    box-shadow: 0 2px 16px rgba(46,61,42,.07);
}
.ngh-card-num {
    text-align: center; color: #4a6741; font-size: 13px; letter-spacing: .15em;
    margin-bottom: .2em !important;
}
.post_content h3.ngh-card-ttl {
    text-align: center; font-size: 1.1em; color: #2e3d2a;
    background: none; border: none; padding: 0; margin: 0 0 .8em;
}
.ngh-card-link { text-align: center; margin-top: 1em !important; }
.ngh-card-link a { color: #34506b; text-decoration: none; border-bottom: 1px solid currentColor; }
.ngh-band-copy {
    color: #fff; text-align: center; font-size: clamp(16px, 2.6vw, 21px);
    line-height: 2.2; letter-spacing: .08em; text-shadow: 0 2px 10px rgba(0,0,0,.6);
    padding: 3em 0;
}
.ngh-guide-photo img {
    width: 180px; height: 180px; object-fit: cover; border-radius: 50%;
}
.ngh-quote {
    text-align: center; font-size: 1.2em; line-height: 1.9; color: #2e3d2a; margin-bottom: 1em !important;
}
.ngh-price { text-align: center; line-height: 2.2; font-size: 1.05em; }
.ngh-price strong { font-size: 1.5em; color: #4a6741; }
.ngh-price small { color: #5b6657; }
.ngh-sublinks { text-align: center; font-size: .95em; }
.ngh-sublinks a { color: #34506b; }
@media (max-width: 599px) {
    .post_content h2.ngh-ttl { font-size: 1.3em; }
    .ngh-cards > .wp-block-column { padding: 1.5em 1.2em; }
    .ngh-band-copy { padding: 2em 0; }
}
.ngh-text { max-width: 32em; margin-left: auto !important; margin-right: auto !important; line-height: 1.95; }
/* 背景動画（ヒーロー・苔の帯） */
.swell-block-fullWide:has(> .swell-block-fullWide__inner > .ngh-bgvideo) { position: relative; overflow: hidden; }
.ngh-bgvideo { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.ngh-bgvideo video { width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .8s; }
.ngh-bgvideo.is-playing video { opacity: 1; }
.ngh-bgvideo::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.28); }
.ngh-bgvideo--band::after { background: rgba(20,30,18,.35); }
.swell-block-fullWide__inner:has(> .ngh-bgvideo) > *:not(.ngh-bgvideo) { position: relative; z-index: 1; }
.swell-block-fullWide:has(.ngh-bgvideo--hero) { min-height: 78vh; display: flex; align-items: center; }
.swell-block-fullWide:has(.ngh-bgvideo--hero) > .swell-block-fullWide__inner { width: 100%; }
.swell-block-fullWide:has(.ngh-bgvideo--band) { min-height: 60vh; display: flex; align-items: center; }
.swell-block-fullWide:has(.ngh-bgvideo--band) > .swell-block-fullWide__inner { width: 100%; }
.ngh-band-sub { color: #fff; text-align: center; font-size: .95em; line-height: 2; text-shadow: 0 1px 8px rgba(0,0,0,.6); }
.swell-block-fullWide__inner:has(> .ngh-bgvideo) { position: static; }
.post_content .ngh-bgvideo { margin: 0 !important; }
.ngh-bgvideo--ridge video { object-position: 63% 50%; }
.ngh-bgvideo--ridge::after { background: rgba(0,0,0,.18); }
.swell-block-fullWide:has(.ngh-bgvideo--ridge) { align-items: flex-start; min-height: 70vh; }
.swell-block-fullWide:has(.ngh-bgvideo--ridge) .ngh-band-copy { padding-top: .5em; }
.ngh-bgvideo--hero video { object-position: 50% 58%; }
/* 接写ギャラリー（タイル） */
.post_content .ngh-macro { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 170px; grid-auto-flow: dense; gap: 12px; margin: 0 0 2em; }
.post_content .ngh-macro__item { margin: 0 !important; overflow: hidden; border-radius: 10px; }
.ngh-macro__item--tall { grid-row: span 2; }
.ngh-macro__item--big { grid-column: span 2; grid-row: span 2; }
.ngh-macro__item img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.ngh-macro__item:hover img { transform: scale(1.04); }
.ngh-macro-note { font-family: var(--ngh-font); font-size: 1.1em; color: #2e3d2a; }
@media (max-width: 767px) {
    .post_content .ngh-macro { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 120px; gap: 8px; }
    .post_content .ngh-macro__item { border-radius: 8px; }
}
/* ヒーロー：写真タイル＋文字の板 */
.ngh-herotile { position: relative; }
.post_content .ngh-herotile__grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: clamp(110px, 11vw, 165px); grid-auto-flow: dense; gap: 10px; margin: 0; }
.post_content .ngh-herotile__item { margin: 0 !important; overflow: hidden; border-radius: 6px; opacity: 0; animation: nghTileIn .9s ease forwards; }
.ngh-herotile__item img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ngh-herotile__item--big { grid-column: span 2; grid-row: span 2; }
.ngh-herotile__item--tall { grid-row: span 2; }
.ngh-herotile__item--wide { grid-column: span 2; }
.ngh-herotile__card { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: min(560px, 88%); background: rgba(255,255,255,.93); border-radius: 28px; padding: 1.8em 2em 1.5em; text-align: center; box-shadow: 0 12px 40px rgba(20,30,18,.22); animation: nghCardIn 1s 1s ease both; }
.post_content h1.ngh-herotile__label { font-size: 12px; font-weight: normal; letter-spacing: .12em; color: #4a6741; text-align: center; background: none; border: none; padding: 0; margin: 0 0 .6em; }
.post_content h1.ngh-herotile__label::before, .post_content h1.ngh-herotile__label::after { content: none; }
.ngh-herotile__catch { font-family: var(--ngh-font); font-weight: 600; font-size: clamp(28px, 4vw, 42px); line-height: 1.5; letter-spacing: .1em; color: #2e3d2a; margin: 0 0 .4em !important; }
.ngh-herotile__sub { font-size: 15px; line-height: 1.9; color: #3d4a39; margin: 0 0 1.2em !important; }
.post_content .ngh-herotile__btn { margin: 0 auto !important; }
@keyframes nghTileIn { from { opacity: 0; transform: scale(1.05); } to { opacity: 1; transform: none; } }
@keyframes nghCardIn { from { opacity: 0; transform: translate(-50%, -40%); } to { opacity: 1; transform: translate(-50%, -50%); } }
@media (max-width: 767px) {
    .post_content .ngh-herotile__grid { grid-template-columns: repeat(3, 1fr); grid-auto-rows: 88px; gap: 6px; }
    .post_content .ngh-herotile__item { border-radius: 4px; }
    .ngh-herotile__card { width: 90%; padding: 1.3em 1.1em 1.1em; border-radius: 22px; }
    .post_content h1.ngh-herotile__label { font-size: 10.5px; letter-spacing: .05em; }
    .ngh-herotile__catch { font-size: 26px; }
    .ngh-herotile__sub { font-size: 13.5px; }
}
@media (prefers-reduced-motion: reduce) {
    .post_content .ngh-herotile__item, .ngh-herotile__card { animation: none; opacity: 1; }
}
.post_content .ngh-herotile__item:nth-child(1) { animation-delay: 0.00s; }
.post_content .ngh-herotile__item:nth-child(2) { animation-delay: 0.06s; }
.post_content .ngh-herotile__item:nth-child(3) { animation-delay: 0.12s; }
.post_content .ngh-herotile__item:nth-child(4) { animation-delay: 0.18s; }
.post_content .ngh-herotile__item:nth-child(5) { animation-delay: 0.24s; }
.post_content .ngh-herotile__item:nth-child(6) { animation-delay: 0.30s; }
.post_content .ngh-herotile__item:nth-child(7) { animation-delay: 0.36s; }
.post_content .ngh-herotile__item:nth-child(8) { animation-delay: 0.42s; }
.post_content .ngh-herotile__item:nth-child(9) { animation-delay: 0.48s; }
.post_content .ngh-herotile__item:nth-child(10) { animation-delay: 0.54s; }
.post_content .ngh-herotile__item:nth-child(11) { animation-delay: 0.60s; }
.post_content .ngh-herotile__item:nth-child(12) { animation-delay: 0.66s; }
.post_content .ngh-herotile__item:nth-child(13) { animation-delay: 0.72s; }
.post_content .ngh-herotile__item:nth-child(14) { animation-delay: 0.78s; }
.post_content .ngh-herotile__item:nth-child(15) { animation-delay: 0.84s; }
.post_content .ngh-herotile__item:nth-child(16) { animation-delay: 0.90s; }
/* タイルのヒーローがあるページだけ、ヘッダーを写真に重ねず上に置く */
body:has(.ngh-herotile) .l-header.-transparent { position: relative; background: #f6f7f4; }
body:has(.ngh-herotile) .l-header.-t-fff .l-header__inner,
body:has(.ngh-herotile) .l-header.-t-fff .c-gnav > .menu-item > a,
body:has(.ngh-herotile) .l-header.-t-fff .c-gnav > li > a { color: #2e3d2a; }
body:has(.ngh-herotile) .l-header.-t-fff .c-gnav > li > a:hover { color: #4a6741; }
body:has(.ngh-herotile) #header.l-header.-transparent { position: relative !important; background: #f6f7f4; }
body:has(.ngh-herotile) #header .l-header__logo { flex-shrink: 0; } body:has(.ngh-herotile) #header .c-headLogo__img { width: auto; max-width: none; }
body:has(.ngh-herotile) #header .c-gnav > li > a { padding: 0 8px; font-size: 14.5px; }
@media (max-width: 1199px) { body:has(.ngh-herotile) #header .c-gnav > li > a { padding: 0 5px; font-size: 13px; } }
/* ヒーロー：ロゴをスタンプのように板の上端へ */
.ngh-herotile__card { padding-top: 3.6em; }
.post_content .ngh-herotile__logo { position: absolute; left: 50%; top: 0; width: 150px; height: auto; margin: 0; border-radius: 14px; transform: translate(-50%, -55%) rotate(-4deg); box-shadow: 0 6px 18px rgba(20,30,18,.22); }
@media (max-width: 767px) {
    .ngh-herotile__card { padding-top: 2.9em; }
    .post_content .ngh-herotile__logo { width: 112px; }
}
/* お知らせの細い帯（ヒーロー直下） */
.post_content .ngh-newsbar { max-width: 760px; margin: 1.2em auto 0 !important; padding: .7em 1.2em; background: #fff; border: 1px solid #dfe5da; border-radius: 999px; display: flex; align-items: center; gap: 1em; }
.post_content .ngh-newsbar > * { margin: 0 !important; }
.ngh-newsbar__label { flex-shrink: 0; font-size: 11px; letter-spacing: .2em; color: #fff; background: #4a6741; border-radius: 999px; padding: .2em .9em; }
.ngh-newsbar .p-postListWrap, .ngh-newsbar .p-postList { margin: 0 !important; flex: 1; min-width: 0; }
.ngh-newsbar .p-postList__item { border: none !important; margin: 0 !important; padding: 0 !important; }
.ngh-newsbar .p-postList__link { padding: 0 !important; display: flex; align-items: baseline; gap: .8em; }
.ngh-newsbar .p-postList__body { display: flex; align-items: baseline; gap: .8em; min-width: 0; }
.ngh-newsbar .p-postList__meta { margin: 0 !important; flex-shrink: 0; }
.ngh-newsbar .p-postList__cat { display: none; }
.post_content .ngh-newsbar .p-postList__title { font-size: 14px; margin: 0 !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; border: none; padding: 0; background: none; }
.post_content .ngh-newsbar .p-postList__title::before, .post_content .ngh-newsbar .p-postList__title::after { content: none; }
@media (max-width: 767px) {
    .post_content .ngh-newsbar { margin: 1em 12px 0 !important; border-radius: 14px; padding: .7em .9em; align-items: flex-start; }
    .ngh-newsbar .p-postList__body { display: block; }
    .post_content .ngh-newsbar .p-postList__title { white-space: normal; font-size: 13.5px; line-height: 1.6; }
}
/* 3つの理由：写真付き */
.post_content .ngh-reason-img { margin: -1.8em -1.5em 1em !important; }
.post_content .ngh-reason-img img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 16px 16px 0 0; display: block; }
@media (max-width: 767px) {
    .ngh-cards:has(.ngh-reason-img) > .wp-block-column { display: grid; grid-template-columns: 96px 1fr; column-gap: 14px; row-gap: 0; padding: 14px !important; align-items: start; }
    .post_content .ngh-cards .ngh-reason-img { grid-row: 1 / span 3; margin: 0 !important; }
    .post_content .ngh-cards .ngh-reason-img img { aspect-ratio: 1; border-radius: 10px; }
    .ngh-cards:has(.ngh-reason-img) .ngh-card-num { text-align: left; margin: 0 !important; font-size: 11px; }
    .post_content .ngh-cards:has(.ngh-reason-img) h3.ngh-card-ttl { text-align: left; font-size: 1em; margin: 0 0 .3em; }
    .ngh-cards:has(.ngh-reason-img) .wp-block-column > p:last-child { font-size: 13.5px; line-height: 1.7; margin: 0 !important; }
}
/* 料金：スマホで2行に */
.ngh-price__item { display: inline-block; margin: 0 .6em; }
@media (max-width: 599px) { .ngh-price__item { display: block; margin: 0; } }
/* 参加された方の声 */
.post_content .ngh-voices { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin: 0; }
.post_content .ngh-voice { margin: 0 !important; background: #f6f7f4; border-radius: 16px; padding: 1.6em 1.5em 1.2em; position: relative; }
.ngh-voice::before { content: "“"; position: absolute; top: .1em; left: .5em; font-family: var(--ngh-font); font-size: 3em; line-height: 1; color: #c9d5c3; }
.post_content .ngh-voice__text { margin: 0 0 .9em !important; padding: 0 !important; border: none !important; background: none !important; font-size: 15px; line-height: 1.95; color: #2e3d2a; }
.post_content .ngh-voice__text::before, .post_content .ngh-voice__text::after { content: none !important; }
.ngh-voice__who { font-size: 12px; color: #5b6657; text-align: right; }
@media (max-width: 767px) {
    .post_content .ngh-voices { grid-template-columns: 1fr; gap: 12px; }
    .post_content .ngh-voice { padding: 1.4em 1.2em 1em; }
    .post_content .ngh-voice__text { font-size: 14px; }
}
.post_content .ngh-newsbar .ngh-newsbar__label { flex: 0 0 auto; width: auto; align-self: center; }
@media (max-width: 767px) { .post_content .ngh-newsbar { flex-wrap: wrap; gap: .5em; } .post_content .ngh-newsbar .ngh-newsbar__label { align-self: flex-start; } .ngh-newsbar .p-postListWrap { flex-basis: 100%; } }
.post_content .ngh-newsbar > .wp-block-group__inner-container { display: flex; align-items: center; gap: 1em; width: 100%; max-width: none; }
.post_content .ngh-newsbar > .wp-block-group__inner-container > * { margin: 0 !important; max-width: none !important; }
.post_content .ngh-newsbar > .wp-block-group__inner-container > .p-postListWrap { flex: 1; min-width: 0; }
@media (max-width: 767px) { .post_content .ngh-newsbar > .wp-block-group__inner-container { flex-wrap: wrap; gap: .5em; } .post_content .ngh-newsbar > .wp-block-group__inner-container > .p-postListWrap { flex-basis: 100%; } }
/* 3つの理由：03 の四季コラージュ */
.post_content .ngh-seasons { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 16px 16px 0 0; }
.post_content .ngh-seasons figure { position: relative; margin: 0 !important; overflow: hidden; }
.post_content .ngh-seasons img { width: 100%; height: 100%; aspect-ratio: auto !important; object-fit: cover; border-radius: 0 !important; display: block; }
.post_content .ngh-seasons figcaption { position: absolute; left: 6px; bottom: 5px; margin: 0; padding: 1px 7px; font-size: 11px; line-height: 1.6; color: #2e3d2a; background: rgba(255,255,255,.88); border-radius: 999px; }
@media (max-width: 767px) {
    .post_content .ngh-cards .ngh-seasons { aspect-ratio: 1; border-radius: 10px; gap: 2px; }
    .post_content .ngh-seasons figcaption { font-size: 9.5px; left: 3px; bottom: 3px; padding: 0 5px; }
}
/* キャッチが長めになったので文字サイズを調整 */
.ngh-herotile__catch { font-size: clamp(24px, 3.2vw, 36px); letter-spacing: .06em; }
@media (max-width: 767px) { .ngh-herotile__catch { font-size: clamp(19px, 5.6vw, 23px); letter-spacing: .03em; } }
.ngh-herotile__note { font-size: 12px; color: #5b6657; margin: .7em 0 0 !important; letter-spacing: .02em; }
@media (max-width: 767px) { .ngh-herotile__note { font-size: 11px; } }
/* こんな方に：カード型チェック */
.post_content ul.ngh-check { list-style: none; max-width: 30em; padding: 0 !important; display: grid; gap: 10px; }
.post_content ul.ngh-check li { position: relative; margin: 0 !important; padding: .9em 1em .9em 3.1em !important; background: #eef1ea; border-radius: 14px; line-height: 1.6; color: #2e3d2a; }
.post_content ul.ngh-check li::before { content: "" !important; position: absolute; left: 1em; top: 50%; width: 1.4em; height: 1.4em; margin-top: -.7em; border-radius: 50%; background: #4a6741; border: none !important; transform: none !important; }
.post_content ul.ngh-check li::after { content: "" !important; position: absolute; left: 1.47em; top: 50%; width: .38em; height: .7em; margin-top: -.45em; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); background: none; }
@media (min-width: 768px) { .post_content ul.ngh-check { grid-template-columns: 1fr 1fr; max-width: 44em; } }
/* ヒーロー上部：「八ヶ岳の登山ガイド」を目立たせる */
.post_content h1.ngh-herotile__label { display: flex; align-items: center; justify-content: center; gap: .8em; font-size: 16px; font-weight: 700; letter-spacing: .2em; color: #4a6741; margin: 0 0 .5em; }
.post_content h1.ngh-herotile__label::before, .post_content h1.ngh-herotile__label::after { content: "" !important; display: block !important; position: static !important; width: 2em; height: 1px; background: #4a6741 !important; border: none !important; opacity: .6; }
@media (max-width: 767px) { .post_content h1.ngh-herotile__label { font-size: 14px; letter-spacing: .15em; } }
/* 記事上：書いた人（小） */
.post_content .ngh-author { display: flex; gap: 14px; align-items: flex-start; margin: 0 0 2em !important; padding: 14px 16px; background: #eef1ea; border-radius: 14px; }
.post_content .ngh-author__img { flex-shrink: 0; width: 64px; height: 64px; border-radius: 50%; object-fit: cover; margin: 0; }
.ngh-author__body { min-width: 0; }
.post_content .ngh-author__body p { margin: 0 !important; }
.post_content .ngh-author__label { font-size: 11px; letter-spacing: .1em; color: #4a6741; }
.post_content .ngh-author__name { font-weight: 700; font-size: 15px; color: #2e3d2a; line-height: 1.6; }
.ngh-author__name span { font-weight: normal; font-size: 12px; color: #5b6657; margin-left: .6em; }
.post_content .ngh-author__text { font-size: 13px; line-height: 1.75; color: #3d4a39; margin-top: .2em !important; }
.post_content .ngh-author__link { display: inline-block; margin-top: .4em; font-size: 13px; color: #34506b; }
@media (max-width: 599px) { .post_content .ngh-author__img { width: 52px; height: 52px; } .post_content .ngh-author { padding: 12px 13px; gap: 11px; } }
/* ===== 6. コース一覧ページ（ngc-） ===== */
.ngc { --ngc-g:#4a6741; --ngc-d:#2e3d2a; --ngc-p:#eef1ea; --ngc-b:#34506b; }
.post_content .ngc p { margin: 0; }
.ngc-hero { margin: 0 0 1.4em !important; }
.ngc-hero img { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: 16px; display: block; }
.ngc-hero figcaption { font-size: 12px; color: #5b6657; margin-top: .5em; text-align: center; }
.post_content .ngc-lead { text-align: center; line-height: 2; margin-bottom: 1.6em !important; font-size: 1.05em; }
.ngc-lead strong { font-family: var(--ngh-font); font-size: 1.3em; color: var(--ngc-d); }
.ngc-legend { background: var(--ngc-p); border-radius: 16px; padding: 1em 1.2em; margin-bottom: 2em; }
.post_content .ngc-legend__ttl { font-weight: 700; color: var(--ngc-d); margin-bottom: .6em !important; font-size: 14px; }
.ngc-legend__row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin-bottom: .5em; }
.ngc-legend__k { font-size: 12px; font-weight: 700; color: #fff; background: var(--ngc-g); border-radius: 999px; padding: .1em .8em; margin-right: 2px; }
.ngc-legend__s { font-size: 12.5px; color: #3d4a39; background: #fff; border-radius: 999px; padding: .15em .7em; }
.ngc-legend__s b, .ngc-star { color: #c8900a; letter-spacing: 1px; }
.post_content .ngc-legend__note { font-size: 12px; color: #5b6657; margin-top: .3em !important; }
.ngc-lv { display: inline-flex; align-items: center; gap: .35em; font-size: 12px; font-weight: 700; border-radius: 999px; padding: .15em .7em; background: #fff; white-space: nowrap; }
.ngc-lv i { width: .75em; height: .75em; border-radius: 50%; display: inline-block; }
.ngc-lv small { font-weight: normal; font-size: 10.5px; opacity: .75; margin-left: .15em; }
.ngc-lv--1 { color: #3f7a4c; } .ngc-lv--1 i { background: #4a9c5a; }
.ngc-lv--2 { color: #8a6c08; } .ngc-lv--2 i { background: #e2b624; }
.ngc-lv--3 { color: #a8541c; } .ngc-lv--3 i { background: #e07b2e; }
.ngc-lv--4 { color: #8e2e2e; } .ngc-lv--4 i { background: #c94040; }
.post_content .ngc-h2 { font-family: var(--ngh-font); font-size: 1.45em; font-weight: 600; color: var(--ngc-d); text-align: center; letter-spacing: .08em; margin: 2.2em 0 .8em !important; }
.post_content .ngc-sub { font-size: 13px; color: #5b6657; text-align: center; margin-bottom: 1em !important; }
.ngc-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.ngc-tile { position: relative; display: block; border-radius: 14px; overflow: hidden; aspect-ratio: 4/3; text-decoration: none !important; }
.ngc-tile img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s; }
.ngc-tile:hover img { transform: scale(1.05); }
.ngc-tile span { position: absolute; inset: auto 0 0 0; padding: 1.6em .8em .6em; color: #fff; font-weight: 700; font-size: 14px; line-height: 1.4; background: linear-gradient(transparent, rgba(20,30,18,.75)); }
.ngc-tile small { display: block; font-weight: normal; font-size: 11px; opacity: .9; }
.ngc-areas { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 1.2em; }
.ngc-area { background: var(--ngc-p); border-radius: 14px; overflow: hidden; }
.ngc-area img { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; }
.post_content .ngc-area p { padding: 0 1em; font-size: 13px; line-height: 1.8; color: #3d4a39; }
.post_content .ngc-area p:last-child { padding-bottom: 1em; }
.post_content .ngc-area__ttl { font-weight: 700; font-size: 15px !important; color: var(--ngc-d) !important; padding-top: .8em !important; }
.ngc-area__ttl span { display: block; font-weight: normal; font-size: 12px; color: var(--ngc-g); }
.ngc-sec { background: #fff; border-radius: 18px; padding: 1.2em; margin: 2em 0 !important; box-shadow: 0 2px 16px rgba(46,61,42,.07); scroll-margin-top: 80px; }
.ngc-sec__head { display: flex; gap: 1em; align-items: center; margin-bottom: 1.2em; }
.ngc-sec__head img { width: 38%; max-width: 260px; aspect-ratio: 4/3; object-fit: cover; border-radius: 12px; flex-shrink: 0; }
.post_content .ngc-sec__ttl { font-family: var(--ngh-font); font-size: 1.35em; font-weight: 600; color: var(--ngc-d); margin-bottom: .3em !important; }
.post_content .ngc-sec__lead { font-size: 14px; line-height: 1.85; color: #3d4a39; }
.ngc-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.ngc-card { display: flex; flex-direction: column; background: #f6f7f4; border-radius: 14px; overflow: hidden; text-decoration: none !important; color: inherit; transition: transform .2s, box-shadow .2s; }
.ngc-card:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(46,61,42,.12); }
.ngc-card__img img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.ngc-card__body { display: flex; flex-direction: column; gap: .3em; padding: .7em .8em .8em; }
.ngc-card__name { font-weight: 700; font-size: 15px; color: var(--ngc-d); line-height: 1.4; }
.ngc-card__sub { font-size: 12px; color: #5b6657; line-height: 1.6; }
.ngc-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; margin-top: .2em; }
.ngc-star { font-size: 13px; }
.ngc-itin { font-size: 11px; color: #5b6657; background: #fff; border-radius: 999px; padding: .1em .6em; }
.ngc-itin--winter { color: #34506b; background: #e4ecf3; }
.post_content .ngc-more { font-size: 12.5px; color: #5b6657; margin-top: .8em !important; }
.ngc-voice { display: flex; gap: .8em; align-items: flex-start; margin-top: 1.2em; }
.ngc-voice img { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.post_content .ngc-voice p { position: relative; background: var(--ngc-p); border-radius: 14px; padding: .8em 1em; font-size: 13.5px; line-height: 1.85; color: #2e3d2a; }
.post_content .ngc-cta { text-align: center; margin-top: 1em !important; }
.ngc-cta a { display: inline-block; padding: .55em 1.6em; border: 1.5px solid var(--ngc-g); border-radius: 999px; color: var(--ngc-g) !important; font-weight: 700; font-size: 14px; text-decoration: none !important; transition: background .2s, color .2s; }
.ngc-cta a:hover { background: var(--ngc-g); color: #fff !important; }
.ngc-far { text-align: center; background: var(--ngc-p); border-radius: 16px; padding: 1.2em; margin: 1em 0 0; }
.post_content .ngc-far__ttl { font-weight: 700; color: var(--ngc-d); margin-bottom: .3em !important; }
.ngc-far p:last-child { font-size: 13px; color: #3d4a39; }
.ngc-acc { border: 1px solid #dfe5da; border-radius: 14px; margin-bottom: .8em; background: #fff; overflow: hidden; }
.ngc-acc summary { cursor: pointer; padding: 1em 1.2em; font-weight: 700; color: var(--ngc-d); list-style: none; position: relative; padding-right: 2.6em; }
.ngc-acc summary::-webkit-details-marker { display: none; }
.ngc-acc summary::after { content: "＋"; position: absolute; right: 1.1em; top: 50%; transform: translateY(-50%); color: var(--ngc-g); }
.ngc-acc[open] summary::after { content: "－"; }
.ngc-acc__body { padding: 0 1.2em 1.2em; }
.ngc-final { text-align: center; background: var(--ngc-p); border-radius: 18px; padding: 1.6em 1.2em; margin-top: 2em; }
.post_content .ngc-final__ttl { font-family: var(--ngh-font); font-size: 1.35em; font-weight: 600; color: var(--ngc-d); margin-bottom: .5em !important; }
.post_content .ngc-final > p:nth-of-type(2) { font-size: 14px; line-height: 1.9; margin-bottom: 1.2em !important; }
.post_content .ngc-final__sub { font-size: 13px; margin-top: .6em !important; }
.ngc-final__sub a { color: var(--ngc-b); }
@media (max-width: 767px) {
    .ngc-tiles { grid-template-columns: 1fr 1fr; gap: 8px; }
    .ngc-areas { grid-template-columns: 1fr; }
    .ngc-sec { padding: 1em .9em; border-radius: 16px; }
    .ngc-sec__head { flex-direction: column; align-items: stretch; }
    .ngc-sec__head img { width: 100%; max-width: none; aspect-ratio: 16/9; }
    .ngc-cards { grid-template-columns: 1fr 1fr; gap: 8px; }
    .ngc-card__body { padding: .6em .6em .7em; }
    .ngc-card__name { font-size: 14px; }
    .ngc-card__sub { font-size: 11.5px; }
    .ngc-lv { font-size: 11px; padding: .1em .55em; }
    .post_content .ngc-h2 { font-size: 1.3em; }
}
.ngc-star__off { color: #d8d2c4; }
.ngc-legend__s--off { color: #8a8f86; background: transparent; }
.ngc-days { display: flex; flex-direction: column; gap: 3px; flex-basis: 100%; }
.ngc-day { display: flex; align-items: center; gap: 5px; }
.ngc-day em { font-style: normal; font-size: 10.5px; color: #5b6657; min-width: 3em; }
/* ===== 8. 説明とリンクの見分け ===== */
/* 説明：カテゴリの表紙 */
.ngc-sec__cover { position: relative; margin: -1.2em -1.2em 1em; border-radius: 18px 18px 0 0; overflow: hidden; }
.ngc-sec__cover img { width: 100%; aspect-ratio: 21/9; object-fit: cover; display: block; }
.ngc-sec__cover::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 35%, rgba(20,30,18,.65)); }
.post_content .ngc-sec__cover .ngc-sec__ttl { position: absolute; left: 1em; bottom: .6em; z-index: 1; color: #fff; font-size: 1.6em; margin: 0 !important; text-shadow: 0 2px 8px rgba(0,0,0,.4); }
.post_content .ngc-sec__lead { font-size: 14.5px; line-height: 1.95; color: #3d4a39; margin-bottom: 1.2em !important; }
.post_content .ngc-sec__label { font-size: 12px; font-weight: 700; color: var(--ngc-g); letter-spacing: .1em; margin-bottom: .6em !important; display: flex; align-items: center; gap: .6em; }
.ngc-sec__label::after { content: ""; flex: 1; height: 1px; background: #dfe5da; }
/* リンク：コースカード */
.ngc-card { background: #fff; border: 1px solid #d9e0d3; box-shadow: 0 3px 10px rgba(46,61,42,.08); }
.ngc-card__body { flex: 1; }
.ngc-card__more { margin-top: auto; padding-top: .6em; border-top: 1px dashed #dfe5da; display: flex; justify-content: space-between; align-items: center; font-size: 12.5px; font-weight: 700; color: var(--ngc-g); }
.ngc-card__more b { font-size: 18px; line-height: 1; transition: transform .2s; }
.ngc-card:hover .ngc-card__more b { transform: translateX(3px); }
.ngc-card:hover { border-color: var(--ngc-g); }
/* 説明：北八ヶ岳・南八ヶ岳 */
.ngc-areas { gap: 10px; }
.ngc-area { display: grid; grid-template-columns: 76px 1fr; column-gap: 14px; align-items: start; background: transparent; border-radius: 0; border-left: 3px solid #c9d5c3; padding: .3em 0 .3em 14px; overflow: visible; }
.ngc-area img { grid-row: 1 / span 3; width: 76px; height: 76px; aspect-ratio: 1; border-radius: 50%; }
.post_content .ngc-area p { padding: 0 !important; }
.post_content .ngc-area__ttl { padding-top: 0 !important; }
@media (max-width: 767px) {
    .ngc-sec__cover { margin: -1em -.9em .9em; border-radius: 16px 16px 0 0; }
    .ngc-sec__cover img { aspect-ratio: 16/9; }
    .post_content .ngc-sec__cover .ngc-sec__ttl { font-size: 1.45em; }
    .ngc-area { grid-template-columns: 60px 1fr; }
    .ngc-area img { width: 60px; height: 60px; }
}
/* ===== 7. フォント（丸ゴシック・太め）: --ngh-font を変えると全体が切り替わる ===== */
:root { --ngh-font: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif; }
body:has(.ngh-herotile) .post_content, body:has(.ngc) .post_content,
body:has(.ngh-herotile) .post_content .swell-block-button__link, body:has(.ngc) .post_content .swell-block-button__link { font-family: var(--ngh-font); font-weight: 500; color: #26331f; }
.post_content .ngh-herotile__catch, .post_content h2.ngh-ttl, .post_content h3.ngh-card-ttl, .post_content .ngh-band-copy, .post_content .ngh-quote, .post_content .ngh-macro-note,
.post_content .ngc-h2, .post_content .ngc-sec__ttl, .post_content .ngc-final__ttl, .ngc-lead strong, .post_content .ngc-area__ttl, .post_content .ngc-far__ttl { font-family: var(--ngh-font); font-weight: 900; }
.ngc-card__name, .post_content h1.ngh-herotile__label, .ngc-tile span, .ngc-lv, .ngc-card__more, .ngh-author__name { font-family: var(--ngh-font); font-weight: 700; }
.post_content .ngc-sec__lead, .post_content .ngc-card__sub, .post_content .ngc-voice p, .post_content .ngh-voice__text, .post_content .ngh-lead, .post_content .ngh-text, .post_content .ngh-herotile__sub { color: #26331f; }
.ngc-card__sub { color: #45513f !important; }
.post_content .swell-block-button.is-style-btn_normal .swell-block-button__link, .post_content .ngh-herotile__btn .swell-block-button__link { color: #fff !important; font-weight: 700; }
/* ===== 9. 地図から選ぶ（北と南の対比＋地図） ===== */
.post_content .ngc-mapsec__ttl { font-family: var(--ngh-font); font-weight: 900; font-size: 1.45em; color: var(--ngc-d); text-align: center; margin-bottom: .3em !important; }
.post_content .ngc-mapsec__lead { text-align: center; font-size: 14px; color: #26331f; margin-bottom: 1em !important; }
.ngc-ns { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border-radius: 14px; overflow: hidden; margin-bottom: 1em; }
.ngc-ns__item { padding: .9em .9em 1em; text-align: center; }
.ngc-ns__item--n { background: #e3ecdd; }
.ngc-ns__item--s { background: #f1e6da; }
.ngc-ns__item img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; display: block; margin: 0 auto .5em; border: 3px solid #fff; }
.post_content .ngc-ns__name { font-weight: 700; font-size: 15px; color: var(--ngc-d); display: flex; align-items: center; justify-content: center; gap: .4em; margin-bottom: .2em !important; }
.ngc-ns__name b { font-size: 1.5em; font-weight: 900; line-height: 1; }
.ngc-ns__item--n .ngc-ns__name b { color: #4a6741; }
.ngc-ns__item--s .ngc-ns__name b { color: #a0582a; }
.post_content .ngc-ns__txt { font-size: 12.5px; line-height: 1.7; color: #3d4a39; }
.post_content .ngc-mapsec__hint { display: flex; justify-content: space-between; align-items: center; gap: .5em; font-size: 12px; color: #5b6657; margin-bottom: .6em !important; text-align: center; }
.ngc-mapsec__hint span { flex-shrink: 0; font-weight: 700; font-size: 12px; padding: .1em .6em; border-radius: 999px; }
.ngc-mapsec__hint span:first-child { background: #e3ecdd; color: #4a6741; }
.ngc-mapsec__hint span:last-child { background: #f1e6da; color: #a0582a; }
.ngc-mapsec #yatsu-root { margin: 0; }
/* ===== 10. カード内に「体力」「技術」の見出し ===== */
.ngc-tags { flex-direction: column; align-items: stretch; gap: 5px; }
.ngc-row { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 6px; }
.ngc-row:has(.ngc-days) { align-items: flex-start; }
.ngc-k { flex-shrink: 0; font-size: 10.5px; font-weight: 700; color: #fff; background: #7d8f74; border-radius: 4px; padding: .05em .45em; line-height: 1.6; }
.ngc-row .ngc-days { flex-basis: auto; flex: 1; }
.ngc-legend__k { border-radius: 4px; background: #7d8f74; }
/* ===== 11. 体力・技術の説明ポップ ===== */
.ngc-card { position: relative; }
.ngc-k[data-tip] { cursor: pointer; display: inline-flex; align-items: center; gap: .25em; }
.ngc-k i { font-style: normal; display: inline-flex; align-items: center; justify-content: center; width: 1.25em; height: 1.25em; border-radius: 50%; background: #fff; color: #7d8f74; font-size: .85em; line-height: 1; }
.ngc-k.is-open { background: var(--ngc-g); }
.ngc-tip { position: absolute; left: 8px; right: 8px; z-index: 5; display: flex; flex-direction: column; gap: .35em; background: #2e3d2a; color: #fff; font-size: 12px; line-height: 1.6; border-radius: 10px; padding: .7em 2em .7em .8em; box-shadow: 0 6px 18px rgba(0,0,0,.25); cursor: default; }
.ngc-tip span:last-of-type { opacity: .75; font-size: 11px; }
.ngc-tip span:only-of-type { opacity: 1; font-size: 12px; }
.ngc-tip b { position: absolute; top: .35em; right: .6em; font-size: 16px; cursor: pointer; }
.ngc-card { overflow: visible; }
.ngc-card__img { display: block; overflow: hidden; border-radius: 14px 14px 0 0; }
.ngc-card:has(.ngc-tip) { z-index: 6; }
/* ===== 12. エリアごとの相談ボタン ===== */
.ngc-cta a { display: inline-flex; align-items: center; gap: .5em; background: var(--ngc-g); color: #fff !important; border: none; padding: .7em 1.6em; font-size: 14.5px; box-shadow: 0 3px 10px rgba(46,61,42,.18); }
.ngc-cta a:hover { background: #3c5535; color: #fff !important; }
.ngc-cta a b { font-size: 1.2em; line-height: 1; }
.ngc-cta__note { display: block; margin-top: .5em; font-size: 11.5px; color: #5b6657; }
/* ===== 13. 日程ラベルを写真の上へ ===== */
.ngc-card__img { position: relative; }
.ngc-card__badges { position: absolute; left: 6px; top: 6px; z-index: 1; display: flex; gap: 4px; }
.ngc-card__badges .ngc-itin { background: rgba(255,255,255,.92); color: #2e3d2a; font-weight: 700; font-size: 11px; box-shadow: 0 1px 4px rgba(0,0,0,.15); }
.ngc-card__badges .ngc-itin--winter { background: #e4ecf3; color: #34506b; }
/* ===== 14. 体力くらべ（棒グラフ） ===== */
.ngc-chart { background: #f6f7f4; border-radius: 12px; padding: .8em .9em .6em; margin-bottom: 1.3em; }
.post_content .ngc-chart__ttl { font-weight: 700; font-size: 13px; color: var(--ngc-d); margin-bottom: .5em !important; display: flex; flex-wrap: wrap; align-items: baseline; gap: .2em .6em; }
.ngc-chart__ttl small { font-weight: 500; font-size: 11px; color: #5b6657; }
.ngc-bar { display: grid; grid-template-columns: 8.5em 1fr 3.2em; align-items: center; gap: 8px; padding: 4px 0; text-decoration: none !important; color: inherit; border-top: 1px dashed #e1e6dc; }
.ngc-bar:first-of-type { border-top: none; }
.ngc-bar__name { font-size: 12.5px; font-weight: 700; color: var(--ngc-d); line-height: 1.35; }
.ngc-bar__track { position: relative; height: 14px; background: #e6ebe1; border-radius: 999px; }
.ngc-bar__fill { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 999px; }
.ngc-bar__fill--1 { background: #4a9c5a; } .ngc-bar__fill--2 { background: #e2b624; } .ngc-bar__fill--3 { background: #e07b2e; } .ngc-bar__fill--4 { background: #c94040; }
.ngc-bar__num { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); font-size: 11px; font-weight: 700; color: #26331f; line-height: 1; }
.ngc-bar__star { font-size: 12px; color: #c8900a; letter-spacing: 1px; white-space: nowrap; }
.ngc-bar:hover .ngc-bar__name { color: var(--ngc-g); text-decoration: underline; }
@media (max-width: 767px) { .ngc-bar { grid-template-columns: 7.2em 1fr 2.9em; gap: 6px; } .ngc-bar__name { font-size: 12px; } }
/* 体力くらべ：日ごとにつなげた棒 */
.ngc-bar__track { display: flex; align-items: center; gap: 2px; background: transparent; height: 16px; }
.ngc-bar__track::before { content: ""; position: absolute; inset: 0; background: #e6ebe1; border-radius: 999px; z-index: 0; }
.ngc-bar__fill { position: relative; z-index: 1; height: 100%; border-radius: 0; flex-shrink: 0; }
.ngc-bar__fill:first-child { border-radius: 999px 0 0 999px; }
.ngc-bar__fill:nth-last-child(2) { border-radius: 0 999px 999px 0; }
.ngc-bar__fill:first-child:nth-last-child(2) { border-radius: 999px; }
.ngc-bar__num { position: relative; right: auto; top: auto; transform: none; z-index: 1; margin-left: 5px; white-space: nowrap; }
.ngc-bar { grid-template-columns: 8.5em 1fr 2.6em; }
@media (max-width: 767px) { .ngc-bar { grid-template-columns: 7em 1fr 2.4em; } .ngc-bar__num { font-size: 10.5px; } }
.ngc-bar__fill--day2 { background-image: repeating-linear-gradient(-45deg, rgba(255,255,255,.55) 0 3px, transparent 3px 7px); }
/* カード：ルート（登山口→宿泊→下山口） */
.ngc-card__route { display: flex; align-items: flex-start; gap: .3em; font-size: 11.5px; line-height: 1.5; color: #34506b; background: #eef3f7; border-radius: 6px; padding: .3em .5em; margin-top: .1em; }
.ngc-card__route svg { flex-shrink: 0; margin-top: .15em; }
.ngc-bar--head { border-top: none; padding: 0 0 4px; border-bottom: 1px solid #d9e0d3; margin-bottom: 2px; }
.ngc-bar--head span { font-size: 11px; font-weight: 700; color: #fff; }
.ngc-bar--head span { justify-self: start; background: #7d8f74; border-radius: 4px; padding: .05em .5em; }
.ngc-bar--head span:first-child { background: transparent; color: #5b6657; padding-left: 0; }
.ngc-bar:first-of-type:not(.ngc-bar--head) { border-top: none; }

/* ===== 11. カテゴリごとの色（今どのカテゴリにいるか）＋グラフ→カード移動 ===== */
.ngc-sec--moss, .ngc-tile--moss { --cat: #5d7f3a; --cat-bg: #f1f5ea; }
.ngc-sec--intro, .ngc-tile--intro { --cat: #3a7fa3; --cat-bg: #ebf3f7; }
.ngc-sec--advanced, .ngc-tile--advanced { --cat: #8a5a3c; --cat-bg: #f6efe9; }
.ngc-sec--around, .ngc-tile--around { --cat: #b7841b; --cat-bg: #fbf5e6; }
.ngc-tile { border-bottom: 5px solid var(--cat); }
.ngc-tile span::before { content: ""; display: inline-block; width: .7em; height: .7em; border-radius: 50%; background: var(--cat); border: 2px solid #fff; margin-right: .35em; vertical-align: -.05em; }
.ngc-sec[class*="ngc-sec--"] { background: var(--cat-bg); border: 3px solid var(--cat); border-top-width: 0; }
.ngc-sec[class*="ngc-sec--"] .ngc-sec__cover { margin-left: calc(-1.2em - 3px); margin-right: calc(-1.2em - 3px); border-bottom: 6px solid var(--cat); }
.ngc-sec[class*="ngc-sec--"] .ngc-sec__cover .ngc-sec__ttl::before { content: ""; display: inline-block; width: .55em; height: .55em; border-radius: 50%; background: var(--cat); border: 2px solid #fff; margin-right: .35em; vertical-align: .08em; }
.post_content .ngc-sec[class*="ngc-sec--"] .ngc-sec__label { color: var(--cat); }
.ngc-sec[class*="ngc-sec--"] .ngc-sec__label::after { background: var(--cat); opacity: .35; }
.ngc-sec[class*="ngc-sec--"] .ngc-bar--head span:not(:first-child) { background: var(--cat); }
.ngc-sec[class*="ngc-sec--"] .ngc-chart { background: #fff; }
.ngc-sec[class*="ngc-sec--"] .ngc-card { border-top: 4px solid var(--cat); }
/* スクロール中、画面上にカテゴリ名の札を出す */
.post_content .ngc-sec__sticky { position: sticky; top: var(--ngc-stick, 12px); z-index: 6; height: 0; margin: 0 !important; overflow: visible; pointer-events: none; font-family: var(--ngh-font); font-weight: 700; font-size: 13px; line-height: 1; opacity: 0; transform: translateY(-6px); transition: opacity .25s, transform .25s; }
.ngc-sec.is-in .ngc-sec__sticky { opacity: 1; transform: none; }
.ngc-sec__sticky b { display: inline-flex; align-items: center; gap: .45em; color: #fff; background: var(--cat); border-radius: 99px; padding: .55em 1em; box-shadow: 0 3px 10px rgba(0,0,0,.18); border: 2px solid #fff; }
.ngc-sec__sticky b::before { content: ""; width: .6em; height: .6em; border-radius: 50%; background: #fff; }
.ngc-sec__sticky b small { font-size: 10.5px; font-weight: 500; opacity: .9; }
/* グラフから飛んだカードを一瞬光らせる */
.ngc-card { scroll-margin-top: 90px; }
.ngc-card.is-flash { animation: ngcFlash 2s ease-out; }
@keyframes ngcFlash { 0%,30% { box-shadow: 0 0 0 4px var(--cat, #5d7f3a), 0 6px 18px rgba(0,0,0,.18); transform: translateY(-2px); } 100% { box-shadow: 0 3px 10px rgba(46,61,42,.08); transform: none; } }
.ngc-bar:not(.ngc-bar--head) .ngc-bar__name::after { content: " ↓"; font-size: .85em; color: var(--cat, #7d8f74); }
@media (max-width: 767px) {
    .ngc-sec[class*="ngc-sec--"] .ngc-sec__cover { margin-left: calc(-.9em - 3px); margin-right: calc(-.9em - 3px); }
}

/* ===== 12. 迷子にならない導線（札で選び直す・ほかのカテゴリへ） ===== */
.ngc-chip--moss { --cat: #5d7f3a; } .ngc-chip--intro { --cat: #3a7fa3; } .ngc-chip--advanced { --cat: #8a5a3c; } .ngc-chip--around { --cat: #b7841b; } .ngc-chip--map { --cat: #5b6657; }
.ngc-sec__sticky a { text-decoration: none !important; }
.ngc-sec.is-in .ngc-sec__sticky a { pointer-events: auto; }
.ngc-sec__sticky b em { font-style: normal; font-size: 10.5px; font-weight: 700; background: rgba(255,255,255,.25); border-radius: 99px; padding: .3em .6em; margin-left: .2em; }
#purpose, #area { scroll-margin-top: 80px; }
.ngc-others { margin-top: 1.6em; padding-top: 1.2em; border-top: 1px dashed var(--cat, #d9e0d3); }
.post_content .ngc-others__ttl { font-family: var(--ngh-font); font-weight: 700; font-size: 13px; color: #5b6657; text-align: center; margin-bottom: .7em !important; }
.ngc-others__list { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.ngc-chip { display: inline-flex; align-items: center; gap: .4em; font-family: var(--ngh-font); font-weight: 700; font-size: 13px; color: var(--cat) !important; background: #fff; border: 2px solid var(--cat); border-radius: 99px; padding: .5em 1em; text-decoration: none !important; line-height: 1.2; transition: background .2s, color .2s; }
.ngc-chip i { width: .6em; height: .6em; border-radius: 50%; background: var(--cat); }
.ngc-chip:hover { background: var(--cat); color: #fff !important; }
.ngc-chip:hover i { background: #fff; }
.ngc-chip--map { border-style: dashed; }
.ngc-tiles + .ngc-legend { margin-top: 1.6em !important; }

/* ===== 13. 「見方 ?」：グラフの横で必要なときだけ開く ===== */
.post_content .ngc-how { margin: -2.05em 0 .7em !important; position: relative; }
.ngc-how summary { list-style: none; display: flex; justify-content: flex-end; cursor: pointer; }
.ngc-how summary::-webkit-details-marker { display: none; }
.ngc-how summary span { display: inline-flex; align-items: center; gap: .35em; font-family: var(--ngh-font); font-weight: 700; font-size: 12px; color: var(--cat, #5b6657); background: var(--cat-bg, #fff); border: 1.5px solid var(--cat, #7d8f74); border-radius: 99px; padding: .25em .5em .25em .8em; line-height: 1.3; }
.ngc-how summary span i { font-style: normal; display: inline-grid; place-items: center; width: 1.35em; height: 1.35em; border-radius: 50%; background: var(--cat, #7d8f74); color: #fff; font-size: 11px; }
.ngc-how[open] summary span { background: var(--cat); color: #fff; }
.ngc-how[open] summary span i { background: #fff; color: var(--cat); }
.ngc-how[open] summary span i::before { content: "×"; }
.ngc-how[open] summary span i { font-size: 0; }
.ngc-how[open] summary span i::before { font-size: 12px; }
.post_content .ngc-how__body { background: #fff; border: 1.5px solid var(--cat, #d9e0d3); margin: .6em 0 .4em !important; padding: .9em 1em; animation: ngcHow .25s ease; }
@keyframes ngcHow { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.ngc-how__body .ngc-legend__s { background: #f4f6f1; }
.ngc-how summary span i { width: 16px; height: 16px; line-height: 1; }
.ngc-how[open] summary span i::before { line-height: 1; }

/* ===== 14. パソコンでは最初の写真を低めに（1画面目に「目的から選ぶ」を） ===== */
@media (min-width: 768px) {
    .post_content .ngc-hero { float: left; width: 56%; margin: 0 4% 0 0 !important; }
    .ngc-hero img { aspect-ratio: auto; height: 280px; }
    .post_content .ngc-lead { display: flow-root; padding-top: 55px; margin-bottom: 0 !important; }
    .post_content #purpose { clear: both; margin-top: 1.4em !important; padding-top: .4em; }
}

/* ===== 15. 体力の数字を大きく・はっきり ===== */
.ngc-card .ngc-lv small { font-family: var(--ngh-font); font-size: 15px; font-weight: 900; opacity: 1; color: #26331f; margin-left: .3em; line-height: 1; }
.ngc-bar__num { font-size: 13px; font-weight: 900; font-family: var(--ngh-font); }
@media (max-width: 767px) { .ngc-card .ngc-lv small { font-size: 14px; } .ngc-bar__num { font-size: 12.5px; } }

/* ===== 16. キャッチ文の下の一文（検索向けに「難易度」を残す） ===== */
.post_content .ngc-lead__sub { text-align: center; font-size: 13px; color: #5b6657; margin: -.6em 0 1.6em !important; }
@media (min-width: 768px) { .post_content .ngc-lead__sub { display: flow-root; margin: .2em 0 0 !important; } }

/* ===== 17. 「目的から選ぶ」写真が押せると分かるように ===== */
.post_content .ngc-tiles__hint { text-align: center; font-size: 12.5px; color: #5b6657; margin: -.4em 0 1em !important; }
.ngc-tile::after { content: "›"; position: absolute; right: 8px; bottom: 10px; z-index: 2; width: 26px; height: 26px; border-radius: 50%; background: #fff; color: var(--cat, #4a6741); font-family: var(--ngh-font); font-weight: 900; font-size: 18px; line-height: 24px; text-align: center; box-shadow: 0 2px 6px rgba(0,0,0,.25); }
.ngc-tile { transition: transform .15s ease, box-shadow .15s ease; -webkit-tap-highlight-color: transparent; }
.ngc-tile:active { transform: scale(.96); box-shadow: 0 1px 4px rgba(0,0,0,.2); }
.ngc-tile::after { bottom: auto; top: 8px; }

/* ===== 18. トップの文字の板：誰のサイトか一瞬で分かるように（名前・顔・資格） ===== */
.post_content h1.ngh-herotile__label { flex-direction: column; gap: .15em; margin-bottom: .35em; }
.post_content h1.ngh-herotile__label::before, .post_content h1.ngh-herotile__label::after { content: none !important; display: none !important; }
.ngh-herotile__role { display: flex; align-items: center; justify-content: center; gap: .8em; }
.ngh-herotile__role::before, .ngh-herotile__role::after { content: ""; width: 2em; height: 1px; background: #4a6741; opacity: .6; }
.ngh-herotile__name { font-family: var(--ngh-font); font-weight: 900; font-size: 24px; letter-spacing: .18em; color: #26331f; line-height: 1.3; }
.post_content .ngh-herotile__cred { font-size: 11.5px; line-height: 1.6; color: #5b6657; margin: 0 0 .9em !important; letter-spacing: .02em; }
.post_content .ngh-herotile__face { position: absolute; top: 0; left: calc(50% + 58px); width: 68px; height: 68px; margin: 0; border-radius: 50%; object-fit: cover; border: 3px solid #fff; transform: translateY(-58%) rotate(3deg); box-shadow: 0 6px 18px rgba(20,30,18,.22); }
@media (max-width: 767px) {
    .ngh-herotile__name { font-size: 20px; }
    .post_content .ngh-herotile__cred { font-size: 10.5px; margin-bottom: .7em !important; }
    .post_content .ngh-herotile__face { left: calc(50% + 42px); width: 54px; height: 54px; }
}
@media (min-width: 768px) {
    .ngh-herotile__card { top: calc(50% - 34px); }
    .post_content .ngh-herotile__catch { margin-bottom: .3em !important; }
    .post_content .ngh-herotile__sub { margin-bottom: 1em !important; }
}

/* ===== 19. コース詳細ページ（ngd-）：最初の画面で決められる形 ===== */
.ngd { --cat: #5d7f3a; --cat-bg: #f1f5ea; }
.ngd-hero { margin: 0 0 1em !important; }
.ngd-hero img { width: 100%; aspect-ratio: 16/10; object-fit: cover; border-radius: 16px; display: block; }
.post_content .ngd-catch { font-family: var(--ngh-font); font-weight: 900; font-size: 1.55em; line-height: 1.5; color: var(--ngc-d); text-align: center; margin: .2em 0 .3em !important; letter-spacing: .05em; }
.post_content .ngd-lead { font-size: 14.5px; line-height: 1.9; color: #26331f; text-align: center; margin-bottom: 1.2em !important; }
.post_content .ngd-h2 { font-family: var(--ngh-font); font-weight: 900; font-size: 1.35em; color: var(--ngc-d); text-align: center; letter-spacing: .06em; margin: 2em 0 .8em !important; }
/* 要点カード */
.ngd-facts { background: #fff; border: 3px solid var(--cat); border-radius: 18px; padding: 1em; box-shadow: 0 3px 14px rgba(46,61,42,.08); }
.ngd-facts__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; }
.ngd-facts__grid > div { background: var(--cat-bg); border-radius: 10px; padding: .5em .7em; line-height: 1.35; }
.ngd-facts__grid > div > span:not(.ngc-tags):not(.ngc-tip) { display: block; font-size: 11px; color: #5b6657; font-weight: 700; margin-bottom: .15em; }
.ngd-facts__grid b { font-family: var(--ngh-font); font-weight: 700; font-size: 14.5px; color: #26331f; }
.ngd-facts__grid .ngc-lv { padding: 0; background: none; font-size: 14px; }
.ngd-stars { color: #c8900a !important; letter-spacing: 1px; }
.ngd-stars i { font-style: normal; color: #cfcfc6; }
.ngd-price { margin-top: 12px; text-align: center; background: #fffaf0; border: 1.5px dashed #d9b770; border-radius: 12px; padding: .7em .8em; }
.ngd-price__k { display: inline-block; font-size: 12px; font-weight: 700; color: #fff; background: #b7841b; border-radius: 99px; padding: .1em .8em; margin-bottom: .2em; }
.ngd-price__v { display: block; font-family: var(--ngh-font); font-weight: 900; font-size: 1.5em; color: #26331f; line-height: 1.4; }
.ngd-price__v small { font-size: 12px; font-weight: 700; color: #5b6657; margin-left: .15em; }
.ngd-price__v em { font-style: normal; color: #b9b9b0; margin: 0 .3em; font-weight: 500; }
.ngd-price__n { display: block; font-size: 12px; color: #5b6657; line-height: 1.6; }
.ngd-price__n a { margin-left: .3em; }
.ngd-facts__btns, .post_content .ngd-final__btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 14px 0 0 !important; }
.ngd-btn { display: inline-flex; align-items: center; justify-content: center; gap: .45em; font-family: var(--ngh-font); font-weight: 700; font-size: 15px; color: #fff !important; background: var(--ngc-g); border-radius: 99px; padding: .8em 1.5em; text-decoration: none !important; box-shadow: 0 4px 12px rgba(46,61,42,.2); min-width: 14em; line-height: 1.3; }
.ngd-btn b { font-weight: 900; }
.ngd-btn--line { background: #fff; color: #06a13a !important; border: 2px solid #06c755; box-shadow: none; }
.ngd-btn:active { transform: scale(.97); }
/* 申し込み */
.ngd-apply { scroll-margin-top: 80px; }
.ngd-apply__way { background: #fff; border: 1px solid #dfe5da; border-radius: 16px; padding: 1em; margin-bottom: 12px; }
.post_content .ngd-apply__ttl { display: flex; align-items: center; gap: .5em; font-family: var(--ngh-font); font-weight: 900; font-size: 16px; color: var(--ngc-d); margin-bottom: .6em !important; }
.ngd-apply__ttl i { font-style: normal; display: inline-grid; place-items: center; width: 1.6em; height: 1.6em; border-radius: 50%; background: var(--cat); color: #fff; font-size: 13px; }
.post_content .ngd-apply__txt { font-size: 13.5px; color: #3d4a39; margin-bottom: .6em !important; }
.post_content .ngd-apply__btn { text-align: center; margin: 0 !important; }
.ngd-apply__btn span { display: block; font-size: 12px; color: #5b6657; margin-top: .4em; }
.post_content .ngd-apply__line { text-align: center; font-size: 13px; color: #5b6657; }
.ngd-sched__list { list-style: none !important; padding: 0 !important; margin: 0 !important; }
.ngd-sched__list li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: .6em 0; border-top: 1px dashed #dfe5da; list-style: none !important; }
.ngd-sched__list li:first-child { border-top: none; }
.ngd-sched__date { font-family: var(--ngh-font); font-weight: 700; font-size: 16px; color: #26331f; }
.ngd-sched__badge { display: inline-block; font-size: 11px; background: #e6f1fb; color: #185fa5; border-radius: 99px; padding: .1em .6em; margin-left: .4em; vertical-align: .1em; }
.ngd-sched__badge.is-full { background: #eee; color: #888; }
.ngd-sched__btn { flex-shrink: 0; font-family: var(--ngh-font); font-weight: 700; font-size: 13.5px; color: #fff !important; background: var(--ngc-g); border-radius: 99px; padding: .55em 1.1em; text-decoration: none !important; }
.ngd-sched__closed { font-size: 13px; color: #aaa; }
.post_content .ngd-sched__none { font-size: 13.5px; color: #5b6657; text-align: center; margin: .3em 0 !important; }
/* 魅力 */
.ngd-points { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.ngd-point { background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 3px 10px rgba(46,61,42,.08); border-top: 4px solid var(--cat); }
.ngd-point img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.post_content .ngd-point__ttl { font-family: var(--ngh-font); font-weight: 900; font-size: 15px; color: var(--ngc-d); padding: .7em .9em 0; margin: 0 !important; }
.post_content .ngd-point p:not(.ngd-point__ttl) { font-size: 13.5px; line-height: 1.8; color: #26331f; padding: .3em .9em .9em; margin: 0 !important; }
/* こんな方に */
.post_content .ngd-for { list-style: none !important; padding: 0 !important; margin: 0 auto !important; max-width: 30em; }
.ngd-for li { position: relative; padding: .5em 0 .5em 2em; font-size: 15px; line-height: 1.6; color: #26331f; border-bottom: 1px dashed #dfe5da; list-style: none !important; }
.ngd-for li::before { content: "✓"; position: absolute; left: .2em; top: .45em; width: 1.3em; height: 1.3em; border-radius: 50%; background: var(--cat); color: #fff; font-size: 12px; font-weight: 900; display: grid; place-items: center; }
.ngd-for small { display: block; font-size: 12px; color: #5b6657; }
.ngd-voice { margin: 1.6em 0 0 !important; }
/* 当日の流れ */
.post_content .ngd-flow { list-style: none !important; padding: 0 0 0 .4em !important; margin: 0 auto !important; max-width: 30em; border-left: 3px solid var(--cat-bg); }
.ngd-flow li { position: relative; display: flex; gap: .9em; padding: .35em 0 .35em 1em; list-style: none !important; font-size: 14.5px; }
.ngd-flow li::before { content: ""; position: absolute; left: -.55em; top: .85em; width: .7em; height: .7em; border-radius: 50%; background: var(--cat); border: 2px solid #fff; }
.ngd-flow time { font-family: var(--ngh-font); font-weight: 900; color: var(--cat); flex-shrink: 0; width: 3.2em; }
.post_content .ngd-note { font-size: 12.5px; color: #5b6657; max-width: 30em; margin: .6em auto 0 !important; }
/* くわしい情報 */
.ngd-acc .ngc-acc__body ul { margin: 0 0 .6em !important; padding-left: 1.2em !important; }
.ngd-acc .ngc-acc__body li, .ngd-acc .ngc-acc__body p { font-size: 13.5px; line-height: 1.85; }
/* 最後 */
.ngd-final { text-align: center; background: var(--cat-bg); border-radius: 18px; padding: 1.4em 1em; margin: 2em 0 1em; }
.post_content .ngd-final__ttl { font-family: var(--ngh-font); font-weight: 900; font-size: 1.25em; color: var(--ngc-d); margin-bottom: .2em !important; }
.post_content .ngd-final__links { display: flex; flex-wrap: wrap; justify-content: center; gap: .4em 1.2em; font-size: 13px; margin: 1em 0 0 !important; }
@media (max-width: 767px) {
    .ngd-points { grid-template-columns: 1fr; }
    .ngd-point { display: grid; grid-template-columns: 38% 1fr; border-top: none; border-left: 4px solid var(--cat); }
    .ngd-point img { aspect-ratio: auto; height: 100%; min-height: 120px; grid-row: span 2; }
    .post_content .ngd-point__ttl { font-size: 14px; padding: .6em .8em 0; }
    .post_content .ngd-point p:not(.ngd-point__ttl) { font-size: 12.5px; line-height: 1.7; padding: .2em .8em .7em; }
    .post_content .ngd-catch { font-size: 1.4em; }
    .ngd-btn { min-width: 0; width: 100%; }
}
.ngd-facts__grid .ngc-lv small { font-family: var(--ngh-font); font-size: 15px; font-weight: 900; opacity: 1; color: #26331f; margin-left: .3em; }
.post_content .ngd-catch { margin-top: 0 !important; }
/* 歩くルート（縦の図） */
.post_content .ngd-route { list-style: none !important; padding: 0 !important; margin: 0 auto !important; max-width: 30em; position: relative; }
.ngd-route li { list-style: none !important; position: relative; padding-left: 2.2em; }
.ngd-route__stop { background: #fff; border: 1.5px solid #dfe5da; border-radius: 12px; padding: .55em .9em .55em 2.4em !important; line-height: 1.45; }
.ngd-route__stop::before { content: ""; position: absolute; left: .85em; top: 50%; transform: translateY(-50%); width: .85em; height: .85em; border-radius: 50%; background: #fff; border: 3px solid var(--cat); }
.ngd-route__stop b { display: block; font-family: var(--ngh-font); font-weight: 900; font-size: 15px; color: #26331f; }
.ngd-route__stop small { display: block; font-size: 12px; color: #5b6657; }
.ngd-route__stop.is-top { background: var(--cat-bg); border-color: var(--cat); }
.ngd-route__stop.is-top::before { background: var(--cat); }
.ngd-route__leg { margin-left: 1.05em; border-left: 3px dashed var(--cat); padding: .7em 0 .7em 1.5em !important; font-size: 13px; color: #3d4a39; }
.ngd-route__leg em { font-style: normal; font-family: var(--ngh-font); font-weight: 900; color: var(--cat); margin-left: .5em; font-size: 14px; }
.ngd-route__stop::before { left: 12px; width: 14px; height: 14px; box-sizing: border-box; }
.ngd-route__stop { padding-left: 38px !important; }
.ngd-route__leg { margin-left: 18px; padding-left: 22px !important; }
.post_content .ngd-route .ngd-route__leg { margin: 0 0 0 17.5px !important; }
/* 白駒池・高見石の短い説明 */
.ngd-about { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0 0 1.2em; }
.ngd-about__item { background: #fff; border-radius: 12px; padding: .7em .85em; border-left: 4px solid var(--cat); box-shadow: 0 2px 8px rgba(46,61,42,.06); }
.post_content .ngd-about__ttl { font-family: var(--ngh-font); font-weight: 900; font-size: 15px; color: var(--ngc-d); margin: 0 0 .2em !important; }
.post_content .ngd-about__item p:not(.ngd-about__ttl) { font-size: 12.5px; line-height: 1.7; color: #3d4a39; margin: 0 !important; }
/* 地図 */
.ngd-map { position: relative; height: 320px; border-radius: 16px; overflow: hidden; border: 1px solid #dfe5da; z-index: 0; }
.post_content .ngd-map__note { font-size: 11.5px; color: #5b6657; text-align: right; margin: .3em 0 1em !important; }
.ngd-map__tip { font-family: var(--ngh-font); font-weight: 700; font-size: 12px; background: #fff; border: none; box-shadow: 0 1px 4px rgba(0,0,0,.25); padding: 2px 7px; }
.ngd-map__tip::before { display: none; }
.post_content .ngd-map__hint { position: absolute; left: 8px; bottom: 8px; z-index: 500; margin: 0 !important; font-size: 11px; background: rgba(255,255,255,.9); border-radius: 99px; padding: .2em .7em; }
.post_content .ngd-sub { font-family: var(--ngh-font); font-weight: 700; font-size: 14px; color: var(--cat); text-align: center; margin: .4em 0 .6em !important; }
.ngd-route__stop time { position: absolute; right: .9em; top: 50%; transform: translateY(-50%); font-family: var(--ngh-font); font-weight: 900; font-size: 14px; color: var(--cat); }
.ngd-route__stop { padding-right: 4em !important; }
.ngd-route__leg.is-bus { border-left-style: solid; border-left-color: #cfd6c9; }
@media (max-width: 767px) { .ngd-map { height: 280px; } }
/* 体力・技術とは（詳細ページ） */
.post_content .ngd-how { margin: 10px 0 0 !important; }
.ngd-how summary { justify-content: center; }
.ngd-facts__grid .ngd-wide { grid-column: 1 / -1; }
/* 標高グラフ */
.ngd-elevbox { background: #fff; border: 1px solid #dfe5da; border-radius: 16px; padding: .8em .8em .4em; margin: 0 0 1.2em; }
.post_content .ngd-elevbox__stats { display: flex; justify-content: center; gap: 1.6em; margin: 0 0 .3em !important; font-size: 12.5px; color: #5b6657; }
.ngd-elevbox__stats b { font-family: var(--ngh-font); font-weight: 900; font-size: 18px; color: #26331f; margin-left: .35em; }
.ngd-elev { width: 100%; height: auto; display: block; }
.ngd-elev .g { stroke: #e3e8df; stroke-width: 1; }
.ngd-elev .ax { font-size: 11px; fill: #7a8575; text-anchor: end; }
.ngd-elev .ar { fill: var(--cat-bg); }
.ngd-elev .ln { fill: none; stroke: var(--cat); stroke-width: 2.5; stroke-linejoin: round; }
.ngd-elev .lb { font-size: 12.5px; font-weight: 700; fill: #26331f; paint-order: stroke; stroke: #fff; stroke-width: 3px; }
.ngd-elevbox .ngd-map__note { text-align: center; margin: .2em 0 0 !important; }
.ngd-elev .ax { font-size: 17px; }
.ngd-elev .lb { font-size: 21px; stroke-width: 5px; }
.ngd-elev circle { r: 7px; }
.ngd-elevbox { max-width: 640px; margin-left: auto !important; margin-right: auto !important; }
.ngd-elev .ax { text-anchor: unset; }
/* 苔の森で過ごす時間（写真） */
.ngd-exp { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.post_content .ngd-exp figure { margin: 0 !important; position: relative; border-radius: 12px; overflow: hidden; background: #26331f; }
.ngd-exp img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; }
.ngd-exp figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.6em .6em .5em; font-size: 11.5px; font-weight: 700; line-height: 1.45; color: #fff; background: linear-gradient(transparent, rgba(20,30,18,.72)); text-align: left; margin: 0; }
.ngd-exp__main { grid-column: 1 / -1; }
.ngd-exp__main img { aspect-ratio: 16/9; }
.ngd-exp__main figcaption { font-size: 13.5px; padding: 2.4em .9em .7em; }
.post_content .ngd-exp__note { text-align: center; margin-top: .5em !important; font-size: 11.5px; }
@media (max-width: 767px) {
    .ngd-exp { grid-template-columns: 1fr 1fr; }
    .ngd-exp__main img { aspect-ratio: 4/3; }
}
/* 白駒池・高見石（写真つき） */
.post_content .ngd-about__item img { width: calc(100% + 1.7em); max-width: none; margin: -.7em -.85em .6em; aspect-ratio: 4/3; object-fit: cover; display: block; border-radius: 12px 12px 0 0; }
.ngd-about__item { overflow: hidden; border-left: none; border-top: 4px solid var(--cat); }
.ngd-apply { margin-top: 1em; }
.ngd-apply .ngd-final__links { margin-top: 1.2em !important; }
/* パソコン：幅を絞って間延びを防ぐ */
@media (min-width: 768px) {
    .ngd { max-width: 860px; margin-left: auto !important; margin-right: auto !important; }
    .ngd-facts__grid { grid-template-columns: repeat(4, 1fr); }
    .ngd-facts__grid .ngd-wide { grid-column: span 2; }
    .ngd-exp__main img { aspect-ratio: 21/9; }
    .ngd-about__item img { aspect-ratio: 16/9; }
}
@media (min-width: 768px) { .ngd-about__item img { aspect-ratio: 5/2 !important; } }

/* ===== 20. 詳細ページをトップ・一覧とそろえる ===== */
/* 見出し：本当のh2（SWELLの見出し装飾を消す）＋英字の小見出し */
.post_content h2.ngd-h2 { background: none !important; border: none !important; padding: 0 !important; box-shadow: none !important; font-family: var(--ngh-font); font-weight: 900; font-size: 1.35em; line-height: 1.5; color: var(--ngc-d) !important; text-align: center; letter-spacing: .06em; margin: 2.2em 0 .9em !important; }
.post_content h2.ngd-h2::before, .post_content h2.ngd-h2::after { content: none !important; display: none !important; }
.ngd-eyebrow { display: block; font-family: var(--ngh-font); font-weight: 500; font-size: 11.5px; letter-spacing: .3em; color: #4a6741; margin-bottom: .35em; }
/* 薄緑の帯（トップと同じリズム） */
.ngd-band { background: #eef1ea; box-shadow: 0 0 0 100vmax #eef1ea; clip-path: inset(0 -100vmax); padding: .4em 0 2em; margin: 2.4em 0 !important; }
.ngd-band > h2.ngd-h2:first-child { margin-top: 1.4em !important; }
.ngd-band .ngd-apply__way { border-color: #dfe5da; }
.ngd-apply.ngd-band { margin-bottom: 0 !important; }
/* 一覧へ戻るカテゴリ札 */
.post_content .ngd-cat { text-align: center; margin: 0 0 .6em !important; }
.ngd-cat a { display: inline-flex; align-items: center; gap: .4em; font-family: var(--ngh-font); font-weight: 700; font-size: 13px; color: #fff !important; background: var(--cat); border-radius: 99px; padding: .35em 1em; text-decoration: none !important; }
.ngd-cat i { width: .6em; height: .6em; border-radius: 50%; background: #fff; }
.ngd-cat small { font-size: 12px; font-weight: 500; opacity: .9; }
/* 参加費：金色をやめて苔色に */
.ngd-price { background: #fff; border: 2px solid var(--cat); }
.ngd-price__k { background: var(--cat); }
/* 2つ目のボタンは3ページとも緑の縁取り */
.ngd-btn--line { background: #fff; color: #4a6741 !important; border: 2px solid #4a6741; box-shadow: none; }
body:has(.ngh-herotile) .post_content .swell-block-button.is-style-btn_line .swell-block-button__link,
body:has(.ngc) .post_content .swell-block-button.is-style-btn_line .swell-block-button__link { color: #4a6741 !important; border: 2px solid #4a6741 !important; background: #fff !important; font-family: var(--ngh-font); font-weight: 700; }
.ngc-cta a { border-width: 2px; }
/* 小さい文字を最低13pxに（40〜60代でも読みやすく） */
.post_content .ngd-note, .post_content .ngd-map__note, .post_content .ngd-exp__note, .ngd-exp figcaption, .ngd-price__n, .ngd-for small, .ngd-apply__btn span, .ngd-route__stop small, .ngd-route__leg, .ngd-map__tip, .post_content .ngd-apply__line, .ngd-how summary span { font-size: 13px !important; }
.post_content .ngd-about__item p:not(.ngd-about__ttl) { font-size: 13.5px !important; }
.ngd-price__v small { font-size: 13px; }
.ngd-facts__grid > div > span:not(.ngc-tags):not(.ngc-tip) { font-size: 12px; }
.ngd-elevbox__stats { font-size: 13.5px !important; }
.ngd-exp__main figcaption { font-size: 14px !important; }
.ngd .ngc-legend__note, .post_content .ngd-map__hint, .ngd-cat small { font-size: 13px !important; }
/* 体力・技術を1つの項目に（説明は同じ場所で開く） */
.ngd-level details { margin: 0; }
.ngd-level summary { list-style: none; cursor: pointer; display: flex; flex-wrap: wrap; align-items: center; gap: .15em .6em; }
.ngd-level summary::-webkit-details-marker { display: none; }
.ngd-facts__grid .ngd-level__k { flex-basis: 100%; margin: 0; }
.ngd-level__v { display: inline-flex; align-items: center; gap: .4em; }
.ngd-level__v em { font-style: normal; color: #b9b9b0; font-weight: 500; }
.ngd-level__q { margin-left: auto; display: inline-flex !important; align-items: center; gap: .3em; font-family: var(--ngh-font); font-weight: 700; font-size: 13px !important; color: var(--cat) !important; background: #fff; border: 1.5px solid var(--cat); border-radius: 99px; padding: .2em .45em .2em .8em; margin-bottom: 0 !important; }
.ngd-level__q i { font-style: normal; display: inline-grid; place-items: center; width: 17px; height: 17px; border-radius: 50%; background: var(--cat); color: #fff; font-size: 11px; }
.ngd-level details[open] .ngd-level__q { background: var(--cat); color: #fff !important; }
.ngd-level details[open] .ngd-level__q i { background: #fff; color: var(--cat); }
.ngd-level .ngc-how__body { margin: .7em 0 .2em !important; background: #fff; border: 1.5px solid var(--cat); border-radius: 12px; padding: .8em .9em; }
@media (min-width: 768px) { .ngd-facts__grid .ngd-level { grid-column: span 2; } }
.ngd-facts__grid .ngd-level__k { flex-basis: auto; order: 1; }
.ngd-level__q { order: 2; margin-left: 0; padding: .1em .4em .1em .7em; }
.ngd-level__v { order: 3; flex-basis: 100%; }
.ngd-facts .ngd-level summary { justify-content: flex-start !important; }
/* 体力・技術：カードと同じ表示（詳細ページでは少し大きく） */
.ngd-level { position: relative; }
.ngd-level .ngc-tags { gap: 8px; margin: 0; }
.ngd-level .ngc-k { font-size: 13px; padding: .15em .55em; }
.ngd-level .ngc-lv { font-size: 14px; }
.ngd-level .ngc-star { font-size: 17px; }
.ngd-level .ngc-tip { font-size: 13px; }
.ngd-level .ngc-tip span:last-of-type { font-size: 12.5px; }
.ngd-level .ngc-tags { flex-direction: column; align-items: flex-start; }
.ngd-level .ngc-tip { color: #fff; }
.ngd-level .ngc-tip span { display: block; }
/* 英字の小見出しは見出しの外（検索には見出しの日本語だけが伝わる） */
.post_content p.ngd-eyebrow { text-align: center; margin: 2.2em 0 .25em !important; }
.post_content p.ngd-eyebrow + h2.ngd-h2 { margin-top: 0 !important; }
.ngd-band > p.ngd-eyebrow:first-child { margin-top: 1.6em !important; }
/* 参加された方の声（詳細ページ：白地のカードに） */
.post_content .ngd-voices .ngh-voice { background: #fff; box-shadow: 0 2px 10px rgba(46,61,42,.06); }
.post_content .ngd-voices .ngh-voice__text { font-size: 14.5px; }
.ngd-voices .ngh-voice__who { font-size: 13px; }
/* 参加の前に知っておきたいこと */
.ngd-price__one { display: block; margin-top: .35em; font-size: 13.5px; color: #26331f; }
.ngd-price__one b { font-family: var(--ngh-font); font-weight: 900; font-size: 16px; }
.ngd-pre { background: #fff; border: 1px solid #dfe5da; border-radius: 16px; padding: 1em 1.1em .8em; margin: 1.2em 0 0; }
.post_content .ngd-pre__ttl { font-family: var(--ngh-font); font-weight: 900; font-size: 16px; color: var(--ngc-d); margin: 0 0 .5em !important; }
.post_content .ngd-pre dl { margin: 0 !important; }
.ngd-pre dl > div { display: grid; grid-template-columns: 6.8em 1fr; gap: .6em; padding: .55em 0; border-top: 1px dashed #dfe5da; }
.ngd-pre dl > div:first-child { border-top: none; }
.post_content .ngd-pre dt { font-family: var(--ngh-font); font-weight: 700; font-size: 13.5px; color: var(--cat); margin: 0 !important; }
.post_content .ngd-pre dd { font-size: 14px; line-height: 1.7; color: #26331f; margin: 0 !important; }
.post_content .ngd-pre__more { text-align: right; font-size: 13.5px; margin: .5em 0 0 !important; }
@media (max-width: 767px) { .ngd-pre dl > div { grid-template-columns: 5.6em 1fr; } }
.ngd-price__one small { display: block; font-size: 13px; color: #5b6657; margin-top: .15em; }

/* ===== 21. コース詳細：カテゴリごとの差し色 ===== */
.ngd.ngd--moss { --cat: #5d7f3a; --cat-bg: #f1f5ea; }
.ngd.ngd--intro { --cat: #3a7fa3; --cat-bg: #ebf3f7; }
.ngd.ngd--advanced { --cat: #8a5a3c; --cat-bg: #f6efe9; }
.ngd.ngd--around { --cat: #b7841b; --cat-bg: #fbf5e6; }
.ngd-about__item:not(:has(img)) { padding-top: .9em; }
.post_content .ngd-voices__sub { text-align: center; font-size: 13px; color: #5b6657; margin: -.4em 0 1em !important; }
