/* ========================================
   第一土木 開発ページ
======================================== */

:root {
    --development-green: #008a44;
    --development-green-dark: #006c36;
    --development-pale: #eef7f2;
    --development-line: #d9e4dd;
    --development-text: #122018;
    --development-text-soft: #556159;
}

.renewal-development-hero {
    background-image:
        linear-gradient(90deg, rgba(2, 9, 6, 0.82), rgba(2, 9, 6, 0.26)),
        url("../img/development/development-hero.jpg");
}

.renewal-development-lead {
    max-width: 760px;
    margin: 0 0 42px;
    color: var(--development-text-soft);
    font-size: 15px;
    line-height: 2;
}

.renewal-development-intro__visual {
    position: relative;
    min-height: 430px;
    margin-bottom: 38px;
    overflow: hidden;
    border: 1px solid var(--development-line);
    background:
        linear-gradient(135deg, rgba(0, 138, 68, 0.08), rgba(0, 138, 68, 0.01)),
        url("../img/development/development-intro.jpg") center / cover no-repeat;
}

.renewal-development-intro__visual-label {
    position: absolute;
    right: 20px;
    bottom: 20px;
    padding: 9px 14px;
    color: #fff;
    background: rgba(0, 138, 68, 0.92);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.15em;
}

.renewal-development-intro__body {
    max-width: 800px;
}

.renewal-development-intro__body p {
    margin: 0;
    color: #465149;
    font-size: 15px;
    line-height: 2.1;
}

.renewal-development-intro__body p + p {
    margin-top: 22px;
}

.renewal-development-family__timeline {
    display: grid;
    gap: 0;
}

.renewal-development-family-card {
    display: grid;
    grid-template-columns: 90px minmax(280px, 0.9fr) minmax(0, 1.1fr);
    overflow: hidden;
    border: 1px solid var(--development-line);
    background: #fff;
    box-shadow: 0 12px 30px rgba(5, 77, 41, 0.05);
}

.renewal-development-family-card--current {
    border-color: rgba(0, 138, 68, 0.45);
    box-shadow: 0 18px 42px rgba(5, 77, 41, 0.1);
}

.renewal-development-family-card__year {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px 10px;
    color: #fff;
    background: var(--development-green);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.08em;
    writing-mode: vertical-rl;
}

.renewal-development-family-card__image {
    position: relative;
    min-height: 310px;
    overflow: hidden;
    background-color: #eef3ef;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.renewal-development-family-card__image::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 55%, rgba(0, 0, 0, 0.58) 100%);
    content: "";
}

.renewal-development-family-card__image span {
    position: absolute;
    z-index: 2;
    right: 18px;
    bottom: 16px;
    left: 18px;
    color: #fff;
    font-size: 23px;
    font-weight: 700;
}

.renewal-development-family-card__image--01 { background-image: url("../img/development/analyzer01.jpg"); }
.renewal-development-family-card__image--02 { background-image: url("../img/development/analyzer02.jpg"); }
.renewal-development-family-card__image--04 { background-image: url("../img/development/analyzer04.jpg"); }
.renewal-development-family-card__image--05 { background-image: url("../img/development/analyzer05-sarutahiko.jpg"); }

.renewal-development-family-card__body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 34px 32px;
}

.renewal-development-family-card__label {
    margin: 0 0 8px;
    color: var(--development-green);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.16em;
}

.renewal-development-family-card h3 {
    margin: 0;
    color: var(--development-text);
    font-size: 23px;
    line-height: 1.55;
}

.renewal-development-family-card__body > p:last-of-type {
    margin: 18px 0 0;
    color: var(--development-text-soft);
    font-size: 14px;
    line-height: 1.95;
}

.renewal-development-family-card ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 22px 0 0;
    padding: 0;
    list-style: none;
}

.renewal-development-family-card li {
    padding: 7px 10px;
    color: var(--development-green-dark);
    border: 1px solid rgba(0, 138, 68, 0.22);
    background: var(--development-pale);
    font-size: 11px;
    font-weight: 700;
}

.renewal-development-family__evolution {
    display: flex;
    gap: 15px;
    align-items: center;
    justify-content: center;
    min-height: 86px;
    color: var(--development-green);
    font-size: 12px;
    font-weight: 700;
}

.renewal-development-family__evolution strong {
    font-size: 24px;
}

.renewal-development-history__list {
    position: relative;
    display: grid;
}

.renewal-development-history__list::before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 91px;
    width: 2px;
    background: #d8e7de;
    content: "";
}

.renewal-development-history-item {
    position: relative;
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 28px;
    padding: 24px 0;
}

.renewal-development-history-item__year {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 92px;
    min-height: 64px;
    color: var(--development-green);
    border: 2px solid var(--development-green);
    background: #fff;
    font-size: 18px;
    font-weight: 700;
}

.renewal-development-history-item__body {
    padding: 22px 26px;
    border-left: 3px solid var(--development-green);
    background: var(--development-pale);
}

.renewal-development-history-item h3 {
    margin: 0;
    color: var(--development-text);
    font-size: 19px;
}

.renewal-development-history-item p {
    margin: 10px 0 0;
    color: var(--development-text-soft);
    font-size: 13px;
    line-height: 1.85;
}

.renewal-development-history-item--accent .renewal-development-history-item__body {
    background: var(--development-green);
}

.renewal-development-history-item--accent h3,
.renewal-development-history-item--accent p {
    color: #fff;
}

.renewal-development-history-item--now .renewal-development-history-item__year {
    color: #fff;
    background: var(--development-green);
}

.renewal-development-products__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.renewal-development-product-card {
    overflow: hidden;
    border: 1px solid var(--development-line);
    background: #fff;
}

.renewal-development-product-card--wide {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
}

.renewal-development-product-card__image {
    min-height: 235px;
    background-color: #eef3ef;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.renewal-development-product-card--wide .renewal-development-product-card__image {
    min-height: 320px;
}

.renewal-development-product-card__image--01 { background-image: url("../img/development/analyzer01.jpg"); }
.renewal-development-product-card__image--02 { background-image: url("../img/development/analyzer02.jpg"); }
.renewal-development-product-card__image--03 { background-image: url("../img/development/analyzer03-boat.jpg"); }
.renewal-development-product-card__image--04 { background-image: url("../img/development/analyzer04.jpg"); }
.renewal-development-product-card__image--05 { background-image: url("../img/development/analyzer05-sarutahiko.jpg"); }

.renewal-development-product-card__body {
    padding: 25px 24px 27px;
}

.renewal-development-product-card--wide .renewal-development-product-card__body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 34px 32px;
}

.renewal-development-product-card__body p {
    margin: 0 0 7px;
    color: var(--development-green);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.16em;
}

.renewal-development-product-card h3 {
    margin: 0;
    color: var(--development-text);
    font-size: 21px;
}

.renewal-development-product-card span {
    display: block;
    margin-top: 10px;
    color: var(--development-text-soft);
    font-size: 13px;
}

.renewal-development-field {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.92fr);
    margin-top: 120px;
    overflow: hidden;
    border: 1px solid var(--development-line);
}

.renewal-development-field__visual {
    min-height: 440px;
    background: url("../img/development/development-field.jpg") center / cover no-repeat;
}

.renewal-development-field__body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 46px 40px;
    background: linear-gradient(145deg, #eef7f2 0%, #fff 100%);
}

.renewal-development-field__en,
.renewal-development-earth__en {
    margin: 0 0 10px;
    color: var(--development-green);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.17em;
}

.renewal-development-field h2 {
    margin: 0;
    color: var(--development-text);
    font-size: 29px;
}

.renewal-development-field__flow {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-top: 26px;
}

.renewal-development-field__flow span {
    padding: 8px 10px;
    color: var(--development-green-dark);
    border: 1px solid rgba(0, 138, 68, 0.25);
    background: #fff;
    font-size: 11px;
    font-weight: 700;
}

.renewal-development-field__flow i {
    color: var(--development-green);
    font-style: normal;
    font-weight: 700;
}

.renewal-development-field__body > p:last-child {
    margin: 24px 0 0;
    color: var(--development-text-soft);
    font-size: 14px;
    line-height: 1.9;
}

.renewal-development-earth {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 40px;
    align-items: center;
    margin-top: 32px;
    padding: 34px 36px;
    color: #fff;
    background: linear-gradient(135deg, #0d1912 0%, #050a07 100%);
}

.renewal-development-earth h2 {
    margin: 0;
    color: #fff;
    font-size: 27px;
}

.renewal-development-earth > div > p:last-child {
    max-width: 620px;
    margin: 15px 0 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: 13px;
    line-height: 1.9;
}

.renewal-development-earth__button {
    display: inline-flex;
    gap: 22px;
    align-items: center;
    justify-content: space-between;
    min-width: 245px;
    min-height: 58px;
    padding: 14px 20px;
    color: #fff;
    background: var(--development-green);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

@media screen and (min-width: 1025px) {
    .renewal-development-page .renewal-page__layout {
        grid-template-columns: 250px minmax(0, 870px);
        gap: 46px;
    }

    .renewal-development-page .renewal-subnav__item a {
        font-size: 15px;
        white-space: nowrap;
    }
}

@media screen and (max-width: 1024px) {
    .renewal-development-family-card {
        grid-template-columns: 72px 1fr;
    }

    .renewal-development-family-card__image {
        min-height: 280px;
    }

    .renewal-development-family-card__body {
        grid-column: 1 / -1;
    }

    .renewal-development-product-card--wide,
    .renewal-development-field,
    .renewal-development-earth {
        grid-template-columns: 1fr;
    }

    .renewal-development-earth__button {
        justify-self: start;
    }
}

@media screen and (max-width: 767px) {
    .renewal-development-page {
        overflow-x: hidden;
    }

    .renewal-development-page .renewal-container {
        width: calc(100% - 48px);
    }

    .renewal-development-intro__visual {
        min-height: 290px;
    }

    .renewal-development-family-card {
        display: block;
    }

    .renewal-development-family-card__year {
        width: 100%;
        min-height: 44px;
        writing-mode: horizontal-tb;
    }

    .renewal-development-family-card__image {
        min-height: 240px;
    }

    .renewal-development-family-card__body {
        padding: 27px 22px 29px;
    }

    .renewal-development-family__evolution {
        min-height: 72px;
        flex-direction: column;
        gap: 4px;
    }

    .renewal-development-history__list::before {
        left: 27px;
    }

    .renewal-development-history-item {
        grid-template-columns: 56px minmax(0, 1fr);
        gap: 14px;
        padding: 16px 0;
    }

    .renewal-development-history-item__year {
        width: 56px;
        min-height: 56px;
        font-size: 13px;
    }

    .renewal-development-history-item__body {
        padding: 18px 17px;
    }

    .renewal-development-products__grid {
        grid-template-columns: 1fr;
    }

    .renewal-development-product-card--wide {
        display: block;
    }

    .renewal-development-product-card__image,
    .renewal-development-product-card--wide .renewal-development-product-card__image {
        min-height: 230px;
    }

    .renewal-development-field {
        margin-top: 80px;
    }

    .renewal-development-field__visual {
        min-height: 300px;
    }

    .renewal-development-field__body {
        padding: 32px 23px;
    }

    .renewal-development-earth {
        padding: 28px 23px;
    }

    .renewal-development-earth__button {
        width: 100%;
    }
}

/* ========================================
   開発ページ レイアウトリニューアル
   ドローン系譜：家系図型
======================================== */

.renewal-development-tree {
    position: relative;
    padding: 10px 0 0;
}

.renewal-development-tree__root {
    width: min(100%, 520px);
    margin: 0 auto;
    padding: 26px 30px;
    border: 1px solid rgba(0, 138, 68, 0.28);
    background: var(--development-pale);
    text-align: center;
}

.renewal-development-tree__root-en {
    margin: 0 0 7px;
    color: var(--development-green);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.17em;
}

.renewal-development-tree__root h3 {
    margin: 0;
    color: var(--development-text);
    font-size: 25px;
}

.renewal-development-tree__root p:last-child {
    margin: 12px 0 0;
    color: var(--development-text-soft);
    font-size: 13px;
    line-height: 1.85;
}

.renewal-development-tree__stem {
    width: 2px;
    height: 44px;
    margin: 0 auto;
    background: var(--development-green);
}

.renewal-development-tree__generation {
    display: grid;
    gap: 24px;
}

.renewal-development-tree__generation--01,
.renewal-development-tree__generation--05 {
    grid-template-columns: minmax(0, 650px);
    justify-content: center;
}

.renewal-development-tree__generation--split {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.renewal-development-tree__branch {
    position: relative;
    height: 70px;
}

.renewal-development-tree__branch--split::before {
    position: absolute;
    top: 0;
    left: 50%;
    width: 2px;
    height: 30px;
    background: var(--development-green);
    content: "";
}

.renewal-development-tree__branch--split::after {
    position: absolute;
    top: 29px;
    left: 25%;
    width: 50%;
    height: 2px;
    background: var(--development-green);
    content: "";
}

.renewal-development-tree__branch--merge::before {
    position: absolute;
    top: 0;
    left: 25%;
    width: 50%;
    height: 2px;
    background: var(--development-green);
    content: "";
}

.renewal-development-tree__branch--merge::after {
    position: absolute;
    top: 0;
    left: 50%;
    width: 2px;
    height: 70px;
    background: var(--development-green);
    content: "";
}

.renewal-development-tree-card {
    position: relative;
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--development-line);
    background: #fff;
    box-shadow: 0 12px 30px rgba(5, 77, 41, 0.05);
}

.renewal-development-tree-card--current {
    border-color: rgba(0, 138, 68, 0.5);
    box-shadow: 0 18px 42px rgba(5, 77, 41, 0.1);
}

.renewal-development-tree-card__badge {
    position: absolute;
    z-index: 3;
    top: 12px;
    left: 12px;
    padding: 7px 10px;
    color: #fff;
    background: var(--development-green);
    font-size: 10px;
    font-weight: 700;
}

.renewal-development-tree-card__image {
    min-height: 210px;
    background-color: #f4f7f5;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
}

.renewal-development-tree-card__image--01 {
    background-image: url("../img/development/analyzer01.jpg");
}

.renewal-development-tree-card__image--02 {
    background-image: url("../img/development/analyzer02.jpg");
}

.renewal-development-tree-card__image--04 {
    background-image: url("../img/development/analyzer04.jpg");
}

.renewal-development-tree-card__image--05 {
    background-image: url("../img/development/analyzer05-sarutahiko.jpg");
}

.renewal-development-tree-card__body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 28px 26px;
}

.renewal-development-tree-card__model {
    margin: 0 0 7px;
    color: var(--development-green);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.15em;
}

.renewal-development-tree-card h3 {
    margin: 0;
    color: var(--development-text);
    font-size: 20px;
    line-height: 1.5;
}

.renewal-development-tree-card__body > p:last-child {
    margin: 14px 0 0;
    color: var(--development-text-soft);
    font-size: 13px;
    line-height: 1.85;
}


/* ========================================
   ドローン単体画像を大きくしすぎない
======================================== */

.renewal-development-product-card__image {
    min-height: 0 !important;
    height: 220px;
    background-size: contain !important;
    background-color: #f4f7f5;
}

.renewal-development-product-card--wide
.renewal-development-product-card__image {
    min-height: 0 !important;
    height: 260px;
}


/* ========================================
   年表をコンパクトに
======================================== */

.renewal-development-history-item {
    padding: 14px 0;
}

.renewal-development-history-item__body {
    padding: 18px 22px;
}


/* ========================================
   タブレット・スマホ
======================================== */

@media screen and (max-width: 1024px) {

    .renewal-development-tree__generation--split {
        grid-template-columns: 1fr;
    }

    .renewal-development-tree__branch--split,
    .renewal-development-tree__branch--merge {
        height: 46px;
    }

    .renewal-development-tree__branch--split::after,
    .renewal-development-tree__branch--merge::before {
        display: none;
    }

    .renewal-development-tree__branch--split::before,
    .renewal-development-tree__branch--merge::after {
        top: 0;
        left: 50%;
        height: 46px;
    }
}

@media screen and (max-width: 767px) {

    .renewal-development-tree__root {
        padding: 22px 18px;
    }

    .renewal-development-tree-card {
        display: block;
    }

    .renewal-development-tree-card__image {
        width: 100%;
        height: 220px;
        min-height: 0;
    }

    .renewal-development-tree-card__body {
        padding: 24px 20px 26px;
    }

    .renewal-development-product-card__image,
    .renewal-development-product-card--wide
    .renewal-development-product-card__image {
        height: 220px;
    }
}

/* ========================================
   スマートフォン左右余白 調整
======================================== */

@media screen and (max-width: 767px) {

    .renewal-development-page .renewal-container {
        width: calc(100% - 64px) !important;
        max-width: calc(100% - 64px) !important;
        margin-right: auto !important;
        margin-left: auto !important;
    }

    .renewal-development-page .renewal-page__layout,
    .renewal-development-page .renewal-page__content,
    .renewal-development-page .renewal-page__sidebar,
    .renewal-development-page .renewal-content-section {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .renewal-development-tree,
    .renewal-development-products__grid,
    .renewal-development-history__list,
    .renewal-development-field,
    .renewal-development-earth {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .renewal-development-tree-card,
    .renewal-development-product-card,
    .renewal-development-history-item__body {
        min-width: 0;
    }
}

/* ========================================
   開発ページ 微調整
======================================== */

/* Earth Analyzer 導線を白背景へ */
.renewal-development-earth {
    color: var(--development-text);
    border: 1px solid var(--development-line);
    background: #ffffff;
}

.renewal-development-earth h2 {
    color: var(--development-text);
}

.renewal-development-earth > div > p:last-child {
    color: var(--development-text-soft);
}

.renewal-development-earth__button {
    color: #ffffff;
    background: var(--development-green);
}

.renewal-development-earth__button:hover {
    color: #ffffff;
    background: var(--development-green-dark);
}

/* スマホでは導入画像右下の緑ラベルを非表示 */
@media screen and (max-width: 767px) {

    .renewal-development-intro__visual-label {
        display: none;
    }
}


/* ========================================
   開発ページ：ワクワク感を強めるレイアウト
======================================== */

/* 導入画像を“技術展示”っぽく見せる */
.renewal-development-intro__visual {
    min-height: 520px;
    border: 0;
    background:
        linear-gradient(
            90deg,
            rgba(0, 0, 0, 0.70) 0%,
            rgba(0, 0, 0, 0.28) 56%,
            rgba(0, 0, 0, 0.02) 100%
        ),
        url("../img/development/development-intro.jpg")
        center / cover no-repeat;
}

.renewal-development-intro__visual-label {
    top: 50%;
    right: auto;
    bottom: auto;
    left: 42px;
    padding: 0;
    color: #7be7a7;
    background: transparent;
    font-size: 11px;
    letter-spacing: 0.18em;
    transform: translateY(-50%);
}

.renewal-development-intro__visual::after {
    position: absolute;
    top: 50%;
    left: 42px;
    width: min(480px, calc(100% - 84px));
    color: #fff;
    content: "高精度に飛ぶ。\A衛星がなくても飛ぶ。\A動く基地局を追う。\A自分の位置を推定して飛ぶ。";
    font-size: clamp(27px, 3.4vw, 43px);
    font-weight: 700;
    line-height: 1.55;
    letter-spacing: 0.035em;
    white-space: pre-line;
    transform: translateY(-30%);
}

.renewal-development-intro__body {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 30px;
    max-width: none;
}

.renewal-development-intro__body p + p {
    margin-top: 0;
}


/* ドローン家系図をもっと“家系図”らしく */
.renewal-development-tree {
    padding-top: 22px;
}

.renewal-development-tree__root {
    max-width: 430px;
    padding: 24px 28px;
    border: 1px solid rgba(0, 138, 68, 0.28);
    border-radius: 999px;
    box-shadow: 0 10px 28px rgba(0, 80, 40, 0.06);
}

.renewal-development-tree__root h3 {
    font-size: 24px;
}

.renewal-development-tree-card {
    border: 0;
    border-radius: 18px;
    box-shadow: 0 18px 38px rgba(0, 64, 32, 0.09);
}

.renewal-development-tree-card__image {
    min-height: 250px;
    background-color: #f7faf8;
    background-size: contain;
}

.renewal-development-tree-card__body {
    padding: 30px 28px 32px;
}

.renewal-development-tree-card__badge {
    border-radius: 999px;
}

.renewal-development-tree__branch--split::before,
.renewal-development-tree__branch--split::after,
.renewal-development-tree__branch--merge::before,
.renewal-development-tree__branch--merge::after,
.renewal-development-tree__stem {
    background: linear-gradient(180deg, #008a44, #15b467);
}


/* ページ途中の大きな一言 */
.renewal-dev-break {
    position: relative;
    min-height: 360px;
    margin: 120px 0 0;
    overflow: hidden;
    background:
        linear-gradient(
            90deg,
            rgba(0, 0, 0, 0.74),
            rgba(0, 0, 0, 0.12)
        ),
        url("../img/development/development-field.jpg")
        center / cover no-repeat;
}

.renewal-dev-break__inner {
    position: absolute;
    top: 50%;
    left: 42px;
    transform: translateY(-50%);
}

.renewal-dev-break__inner p {
    margin: 0 0 10px;
    color: #7be7a7;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
}

.renewal-dev-break__inner h2 {
    margin: 0;
    color: #fff;
    font-size: clamp(36px, 5vw, 60px);
    line-height: 1.35;
    letter-spacing: 0.04em;
}


/* 年表は少し軽く、展示感を出す */
.renewal-development-history__list {
    gap: 10px;
}

.renewal-development-history-item {
    padding: 16px 0;
}

.renewal-development-history-item__body {
    border-left: 0;
    border-radius: 14px;
    background: #f6faf7;
    box-shadow: inset 0 0 0 1px var(--development-line);
}

.renewal-development-history-item__year {
    border-radius: 14px;
}


/* 生まれた技術＝ギャラリー感 */
.renewal-development-product-card {
    border: 0;
    border-radius: 16px;
    box-shadow: 0 14px 32px rgba(0, 64, 32, 0.07);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.renewal-development-product-card:hover {
    box-shadow: 0 20px 42px rgba(0, 64, 32, 0.12);
    transform: translateY(-5px);
}

.renewal-development-product-card__image,
.renewal-development-product-card--wide .renewal-development-product-card__image {
    min-height: 0 !important;
    height: 230px;
    background-size: contain !important;
    background-color: #f7faf8;
}

.renewal-development-product-card--wide .renewal-development-product-card__image {
    height: 285px;
}


/* 最後は“次へ”を強調 */
.renewal-development-field {
    border: 0;
    border-radius: 18px;
    box-shadow: 0 18px 42px rgba(0, 64, 32, 0.08);
}

.renewal-development-field__flow span:last-of-type {
    color: #fff;
    border-color: var(--development-green);
    background: var(--development-green);
}


/* アース・アナライザーは白背景 */
.renewal-development-earth {
    color: var(--development-text);
    border: 1px solid var(--development-line);
    background: #fff;
}

.renewal-development-earth h2 {
    color: var(--development-text);
}

.renewal-development-earth > div > p:last-child {
    color: var(--development-text-soft);
}


@media screen and (max-width: 767px) {

    .renewal-development-page .renewal-container {
        width: calc(100% - 64px) !important;
        max-width: calc(100% - 64px) !important;
    }

    .renewal-development-intro__visual {
        min-height: 390px;
    }

    .renewal-development-intro__visual-label {
        display: none;
    }

    .renewal-development-intro__visual::after {
        left: 22px;
        width: calc(100% - 44px);
        font-size: 23px;
        line-height: 1.65;
        transform: translateY(-50%);
    }

    .renewal-development-intro__body {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .renewal-development-tree__root {
        border-radius: 18px;
    }

    .renewal-development-tree-card {
        border-radius: 14px;
    }

    .renewal-development-tree-card__image {
        min-height: 0;
        height: 210px;
    }

    .renewal-dev-break {
        min-height: 280px;
        margin-top: 80px;
    }

    .renewal-dev-break__inner {
        left: 22px;
    }

    .renewal-dev-break__inner h2 {
        font-size: 34px;
    }

    .renewal-development-product-card__image,
    .renewal-development-product-card--wide .renewal-development-product-card__image {
        height: 210px;
    }
}

/* ========================================
   CLICKABLE DRONE FAMILY TREE
======================================== */

.renewal-dev-profile-tree {
    position: relative;
    padding-top: 8px;
}

.renewal-dev-profile-tree__origin {
    width: min(100%, 360px);
    margin: 0 auto;
    padding: 20px 24px;
    border: 1px solid rgba(0, 138, 68, 0.25);
    background: var(--development-pale);
    text-align: center;
}

.renewal-dev-profile-tree__origin span {
    display: block;
    margin-bottom: 5px;
    color: var(--development-green);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.18em;
}

.renewal-dev-profile-tree__origin strong {
    color: var(--development-text);
    font-size: 21px;
}

.renewal-dev-profile-tree__line--root {
    width: 2px;
    height: 48px;
    margin: 0 auto;
    background: var(--development-green);
}

.renewal-dev-profile-node {
    position: relative;
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr);
    width: min(100%, 560px);
    margin: 0 auto;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--development-line);
    background: #fff;
    box-shadow: 0 12px 30px rgba(0, 65, 32, 0.06);
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.renewal-dev-profile-node:hover,
.renewal-dev-profile-node:focus-visible {
    border-color: rgba(0, 138, 68, 0.55);
    box-shadow: 0 20px 42px rgba(0, 65, 32, 0.12);
    transform: translateY(-4px);
    outline: none;
}

.renewal-dev-profile-node--current {
    border-color: rgba(0, 138, 68, 0.55);
}

.renewal-dev-profile-node__generation {
    position: absolute;
    z-index: 3;
    top: 12px;
    left: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #fff;
    background: var(--development-green);
    font-size: 11px;
    font-weight: 700;
}

.renewal-dev-profile-node__image {
    min-height: 180px;
    background-color: #f5f8f6;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
}

.renewal-dev-profile-node__image--01 { background-image: url("../img/development/analyzer01.jpg"); }
.renewal-dev-profile-node__image--02 { background-image: url("../img/development/analyzer02.jpg"); }
.renewal-dev-profile-node__image--04 { background-image: url("../img/development/analyzer04.jpg"); }
.renewal-dev-profile-node__image--05 { background-image: url("../img/development/analyzer05-sarutahiko.jpg"); }

.renewal-dev-profile-node__text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 26px 24px;
}

.renewal-dev-profile-node__text small {
    color: var(--development-green);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.15em;
}

.renewal-dev-profile-node__text strong {
    margin-top: 5px;
    color: var(--development-text);
    font-size: 23px;
    line-height: 1.4;
}

.renewal-dev-profile-node__text em {
    margin-top: 18px;
    color: var(--development-green);
    font-size: 11px;
    font-style: normal;
    font-weight: 700;
    letter-spacing: 0.09em;
}

.renewal-dev-profile-tree__split,
.renewal-dev-profile-tree__merge {
    position: relative;
    height: 62px;
}

.renewal-dev-profile-tree__split::before,
.renewal-dev-profile-tree__merge::before {
    position: absolute;
    left: 25%;
    width: 50%;
    height: 2px;
    background: var(--development-green);
    content: "";
}

.renewal-dev-profile-tree__split::before { bottom: 0; }
.renewal-dev-profile-tree__merge::before { top: 0; }

.renewal-dev-profile-tree__split::after,
.renewal-dev-profile-tree__merge::after {
    position: absolute;
    left: 50%;
    width: 2px;
    height: 62px;
    background: var(--development-green);
    content: "";
}

.renewal-dev-profile-tree__split::after { top: 0; }
.renewal-dev-profile-tree__merge::after { bottom: 0; }

.renewal-dev-profile-tree__siblings {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.renewal-dev-profile-tree__siblings .renewal-dev-profile-node {
    width: 100%;
    grid-template-columns: 150px minmax(0, 1fr);
}


/* ========================================
   DEVELOPMENT LAB
======================================== */

.renewal-development-lab__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.renewal-development-lab-card {
    position: relative;
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--development-line);
    background: #fff;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.renewal-development-lab-card:hover,
.renewal-development-lab-card:focus-visible {
    border-color: rgba(0, 138, 68, 0.5);
    box-shadow: 0 16px 34px rgba(0, 65, 32, 0.1);
    transform: translateY(-4px);
    outline: none;
}

.renewal-development-lab-card--featured {
    grid-column: 1 / -1;
}

.renewal-development-lab-card--developing {
    border-style: dashed;
    background:
        linear-gradient(135deg, rgba(0, 138, 68, 0.04), rgba(0, 138, 68, 0.01));
}

.renewal-development-lab-card__status {
    position: absolute;
    z-index: 3;
    top: 14px;
    right: 14px;
    padding: 7px 10px;
    color: #fff;
    background: var(--development-green);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.renewal-development-lab-card__visual {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 210px;
    background-color: #f5f8f6;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
}

.renewal-development-lab-card__visual--01 { background-image: url("../img/development/analyzer01.jpg"); }
.renewal-development-lab-card__visual--02 { background-image: url("../img/development/analyzer02.jpg"); }
.renewal-development-lab-card__visual--03 { background-image: url("../img/development/analyzer03-boat.jpg"); }
.renewal-development-lab-card__visual--04 { background-image: url("../img/development/analyzer04.jpg"); }
.renewal-development-lab-card__visual--05 { background-image: url("../img/development/analyzer05-sarutahiko.jpg"); }

.renewal-development-lab-card__visual--staff {
    background:
        repeating-linear-gradient(
            135deg,
            #f1f7f3 0,
            #f1f7f3 14px,
            #e7f2eb 14px,
            #e7f2eb 28px
        );
}

.renewal-development-lab-card__visual--staff b {
    color: var(--development-green);
    font-size: 34px;
    letter-spacing: 0.08em;
}

.renewal-development-lab-card__meta {
    margin: 20px 22px 0;
    color: var(--development-green);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.15em;
}

.renewal-development-lab-card > strong {
    margin: 5px 22px 0;
    color: var(--development-text);
    font-size: 21px;
}

.renewal-development-lab-card > em {
    margin: 16px 22px 22px;
    color: var(--development-green);
    font-size: 10px;
    font-style: normal;
    font-weight: 700;
}


/* ========================================
   PROFILE MODAL
======================================== */

body.renewal-dev-modal-open {
    overflow: hidden;
}

.renewal-dev-modal {
    position: fixed;
    z-index: 5000;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 28px;
}

.renewal-dev-modal[hidden] {
    display: none;
}

.renewal-dev-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(3, 10, 6, 0.72);
    backdrop-filter: blur(6px);
}

.renewal-dev-modal__panel {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(260px, 0.85fr) minmax(0, 1.15fr);
    width: min(920px, 100%);
    max-height: calc(100dvh - 56px);
    overflow: auto;
    border: 1px solid rgba(0, 138, 68, 0.28);
    background: #fff;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.28);
}

.renewal-dev-modal__close {
    position: absolute;
    z-index: 3;
    top: 14px;
    right: 14px;
    width: 44px;
    height: 44px;
    border: 0;
    background: var(--development-green);
    color: #fff;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
}

.renewal-dev-modal__visual {
    min-height: 520px;
    background-color: #f4f7f5;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
}

.renewal-dev-modal__content {
    padding: 52px 42px 42px;
}

.renewal-dev-modal__eyebrow {
    margin: 0 0 8px;
    color: var(--development-green);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.16em;
}

.renewal-dev-modal__content h2 {
    margin: 0;
    color: var(--development-text);
    font-size: 34px;
    line-height: 1.35;
}

.renewal-dev-modal__nickname {
    margin: 10px 0 0;
    color: var(--development-text-soft);
    font-size: 14px;
    font-weight: 700;
}

.renewal-dev-modal__profile {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 28px 0 0;
}

.renewal-dev-modal__profile div {
    padding: 14px 15px;
    background: var(--development-pale);
}

.renewal-dev-modal__profile dt {
    color: var(--development-green);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.renewal-dev-modal__profile dd {
    margin: 5px 0 0;
    color: var(--development-text);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.55;
}

.renewal-dev-modal blockquote {
    margin: 28px 0 0;
    padding: 18px 20px;
    border-left: 4px solid var(--development-green);
    background: #fff;
    color: var(--development-text);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.7;
}

.renewal-dev-modal__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 22px;
}

.renewal-dev-modal__tags span {
    padding: 7px 10px;
    border: 1px solid rgba(0, 138, 68, 0.22);
    color: var(--development-green-dark);
    background: #fff;
    font-size: 10px;
    font-weight: 700;
}


/* ========================================
   RESPONSIVE ADDITIONS
======================================== */

@media screen and (max-width: 1024px) {
    .renewal-dev-profile-tree__siblings {
        grid-template-columns: 1fr;
    }

    .renewal-dev-profile-tree__split::before,
    .renewal-dev-profile-tree__merge::before {
        display: none;
    }

    .renewal-dev-profile-tree__split::after,
    .renewal-dev-profile-tree__merge::after {
        left: 50%;
    }

    .renewal-dev-profile-tree__siblings .renewal-dev-profile-node {
        grid-template-columns: 190px minmax(0, 1fr);
    }
}

@media screen and (max-width: 767px) {
    .renewal-dev-profile-node,
    .renewal-dev-profile-tree__siblings .renewal-dev-profile-node {
        display: block;
    }

    .renewal-dev-profile-node__image {
        min-height: 190px;
    }

    .renewal-development-lab__grid {
        grid-template-columns: 1fr;
    }

    .renewal-development-lab-card--featured {
        grid-column: auto;
    }

    .renewal-dev-modal {
        padding: 12px;
        align-items: end;
    }

    .renewal-dev-modal__panel {
        display: block;
        width: 100%;
        max-height: calc(100dvh - 24px);
        border-radius: 18px 18px 0 0;
    }

    .renewal-dev-modal__visual {
        min-height: 260px;
    }

    .renewal-dev-modal__content {
        padding: 30px 22px 28px;
    }

    .renewal-dev-modal__content h2 {
        font-size: 27px;
    }

    .renewal-dev-modal__profile {
        grid-template-columns: 1fr;
    }
}

/* ========================================
   2026-08-10 導入部 FIX
======================================== */

/* 最初の画像は写真だけ。緑ラベル・重ね文字なし */
.renewal-development-intro__visual {
    position: relative;
    min-height: 430px;
    margin-bottom: 38px;
    overflow: hidden;
    border: 1px solid var(--development-line);
    background:
        url("../img/development/development-intro.jpg")
        center / cover no-repeat !important;
}

.renewal-development-intro__visual-label,
.renewal-dev-opening__copy {
    display: none !important;
}

/* 導入文は2列にせず、必ず縦1列 */
.renewal-development-intro__body {
    display: block !important;
    grid-template-columns: none !important;
    columns: auto !important;
    column-count: 1 !important;
    width: 100% !important;
    max-width: 800px !important;
}

.renewal-development-intro__body p {
    display: block !important;
    width: 100% !important;
    max-width: 800px !important;
    margin: 0 !important;
}

.renewal-development-intro__body p + p {
    margin-top: 20px !important;
}

/* 旧中盤ビジュアルは使わない */
.renewal-dev-break,
.renewal-dev-break__inner {
    display: none !important;
}

@media screen and (max-width: 767px) {

    .renewal-development-intro__visual {
        min-height: 280px;
    }

    .renewal-development-intro__body {
        max-width: 100% !important;
    }
}

/* ========================================
   2026-08-10 機器プロフィール・家系図・年表 修正
======================================== */

/* 家系図左上の番号は非表示 */
.renewal-dev-profile-node__generation {
    display: none !important;
}

/* 年表の2023だけ緑になる強調を解除 */
.renewal-dev-history-item--current .renewal-dev-history-item__content,
.renewal-development-history-item--accent .renewal-development-history-item__body {
    color: inherit !important;
    background: var(--development-pale) !important;
}

.renewal-dev-history-item--current .renewal-dev-history-item__content span,
.renewal-dev-history-item--current .renewal-dev-history-item h3,
.renewal-dev-history-item--current .renewal-dev-history-item p,
.renewal-development-history-item--accent h3,
.renewal-development-history-item--accent p {
    color: inherit !important;
}

.renewal-dev-history-item--current .renewal-dev-history-item__content span {
    color: var(--development-green) !important;
}

/* 機器プロフィール：PCは2列×3段 */
.renewal-development-lab__grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 20px !important;
}

.renewal-development-lab-card--featured {
    grid-column: auto !important;
}

/* 6枚とも同じバランス */
.renewal-development-lab-card {
    min-width: 0;
}

.renewal-development-lab-card__visual {
    height: 210px !important;
    min-height: 0 !important;
    background-size: contain !important;
    background-position: center !important;
}

/* Staff-SOIの開発中カードも同じ高さ */
.renewal-development-lab-card__visual--staff {
    height: 210px !important;
}

/* 旧疑似要素の重ね文字は完全停止 */
.renewal-development-intro__visual::after,
.renewal-dev-opening__visual::after {
    display: none !important;
    content: none !important;
}

@media screen and (max-width: 767px) {
    .renewal-development-lab__grid {
        grid-template-columns: 1fr !important;
    }
}

/* ========================================
   スマホ：ドローン家系図の機体画像を確実に表示
   span要素がinlineのまま高さを失う問題を修正
======================================== */

@media screen and (max-width: 767px) {

    .renewal-dev-profile-node__image {
        display: block !important;
        width: 100% !important;
        height: 200px !important;
        min-height: 200px !important;
        background-color: #f5f8f6 !important;
        background-position: center center !important;
        background-repeat: no-repeat !important;
        background-size: contain !important;
    }

    .renewal-dev-profile-node__image--01 {
        background-image: url("../img/development/analyzer01.jpg") !important;
    }

    .renewal-dev-profile-node__image--02 {
        background-image: url("../img/development/analyzer02.jpg") !important;
    }

    .renewal-dev-profile-node__image--04 {
        background-image: url("../img/development/analyzer04.jpg") !important;
    }

    .renewal-dev-profile-node__image--05 {
        background-image: url("../img/development/analyzer05-sarutahiko.jpg") !important;
    }
}

/* ========================================
   スマホ：ドローン家系図を“家系図”として見せる
======================================== */

@media screen and (max-width: 767px) {

    .renewal-dev-profile-tree {
        position: relative;
        padding-top: 8px;
    }

    .renewal-dev-profile-tree__origin {
        width: min(100%, 280px) !important;
        margin: 0 auto !important;
        padding: 18px 18px !important;
    }

    .renewal-dev-profile-tree__origin strong {
        font-size: 18px !important;
    }

    .renewal-dev-profile-tree__line--root {
        display: block !important;
        width: 2px !important;
        height: 36px !important;
        margin: 0 auto !important;
        background: var(--development-green) !important;
    }


    /* Analyzer01：中央 */
    .renewal-dev-profile-node {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto !important;
    }

    .renewal-dev-profile-node[data-profile="analyzer01"],
    .renewal-dev-profile-node[data-profile="analyzer05"] {
        width: calc(100% - 28px) !important;
        max-width: 340px !important;
    }


    /* 分岐線 */
    .renewal-dev-profile-tree__split {
        position: relative !important;
        display: block !important;
        height: 52px !important;
        margin: 0 !important;
    }

    .renewal-dev-profile-tree__split::before {
        display: block !important;
        position: absolute !important;
        top: 25px !important;
        left: 17% !important;
        width: 66% !important;
        height: 2px !important;
        background: var(--development-green) !important;
        content: "" !important;
    }

    .renewal-dev-profile-tree__split::after {
        display: block !important;
        position: absolute !important;
        top: 0 !important;
        left: 50% !important;
        width: 2px !important;
        height: 26px !important;
        background: var(--development-green) !important;
        content: "" !important;
    }


    /* Analyzer02 / 04：スマホでも2列にする */
    .renewal-dev-profile-tree__siblings {
        position: relative !important;
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 12px !important;
        align-items: start !important;
    }

    .renewal-dev-profile-tree__siblings::before,
    .renewal-dev-profile-tree__siblings::after {
        position: absolute;
        top: -27px;
        width: 2px;
        height: 27px;
        background: var(--development-green);
        content: "";
    }

    .renewal-dev-profile-tree__siblings::before {
        left: 25%;
    }

    .renewal-dev-profile-tree__siblings::after {
        right: 25%;
    }


    .renewal-dev-profile-tree__siblings .renewal-dev-profile-node {
        width: 100% !important;
        min-width: 0 !important;
        display: block !important;
    }

    .renewal-dev-profile-tree__siblings .renewal-dev-profile-node__image {
        height: 130px !important;
        min-height: 130px !important;
    }

    .renewal-dev-profile-tree__siblings .renewal-dev-profile-node__text {
        padding: 15px 12px 17px !important;
    }

    .renewal-dev-profile-tree__siblings .renewal-dev-profile-node__text small {
        font-size: 7px !important;
        letter-spacing: 0.08em !important;
    }

    .renewal-dev-profile-tree__siblings .renewal-dev-profile-node__text strong {
        margin-top: 3px !important;
        font-size: 15px !important;
        line-height: 1.35 !important;
        word-break: keep-all;
    }

    .renewal-dev-profile-tree__siblings .renewal-dev-profile-node__text em {
        margin-top: 10px !important;
        font-size: 8px !important;
    }


    /* 合流線 */
    .renewal-dev-profile-tree__merge {
        position: relative !important;
        display: block !important;
        height: 52px !important;
        margin: 0 !important;
    }

    .renewal-dev-profile-tree__merge::before {
        display: block !important;
        position: absolute !important;
        top: 0 !important;
        left: 17% !important;
        width: 66% !important;
        height: 2px !important;
        background: var(--development-green) !important;
        content: "" !important;
    }

    .renewal-dev-profile-tree__merge::after {
        display: block !important;
        position: absolute !important;
        top: 0 !important;
        left: 50% !important;
        width: 2px !important;
        height: 52px !important;
        background: var(--development-green) !important;
        content: "" !important;
    }


    /* Analyzer05：中央に戻す */
    .renewal-dev-profile-node[data-profile="analyzer05"] {
        display: block !important;
        margin-top: 0 !important;
    }

    .renewal-dev-profile-node[data-profile="analyzer05"]
    .renewal-dev-profile-node__image {
        height: 180px !important;
        min-height: 180px !important;
    }


    /* カード全体を少しコンパクトに */
    .renewal-dev-profile-node__text {
        padding: 18px 16px 20px !important;
    }

    .renewal-dev-profile-node__text strong {
        font-size: 18px !important;
    }

    .renewal-dev-profile-node__text em {
        margin-top: 12px !important;
    }
}

/* ========================================
   DRONE EVOLUTION MAP
   技術ノード＋機体ノードの複雑な系統図
======================================== */

.renewal-dev-evolution-map {
    position: relative;
    padding: 10px 0 0;
}

.renewal-dev-tech-node {
    width: min(100%, 360px);
    margin: 0 auto;
    padding: 18px 22px;
    border: 1px solid rgba(0, 138, 68, 0.24);
    background: #f3f9f5;
    text-align: center;
}

.renewal-dev-tech-node span {
    display: block;
    margin-bottom: 5px;
    color: var(--development-green);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.15em;
}

.renewal-dev-tech-node strong {
    display: block;
    color: var(--development-text);
    font-size: 20px;
    line-height: 1.4;
}

.renewal-dev-tech-node small {
    display: block;
    margin-top: 6px;
    color: var(--development-text-soft);
    font-size: 11px;
    line-height: 1.6;
}

.renewal-dev-tech-node--core {
    border-width: 2px;
    background: #e9f6ee;
}

.renewal-dev-tech-node--feature {
    width: min(100%, 280px);
}

.renewal-dev-tech-node--minor {
    width: min(100%, 240px);
    padding: 14px 16px;
    background: #fff;
}

.renewal-dev-tech-node--minor strong {
    font-size: 16px;
}

.renewal-dev-tech-node--next {
    border-color: rgba(0, 138, 68, 0.45);
    background: var(--development-green);
}

.renewal-dev-tech-node--next span,
.renewal-dev-tech-node--next strong,
.renewal-dev-tech-node--next small {
    color: #fff;
}

.renewal-dev-map-line {
    width: 2px;
    margin: 0 auto;
    background: var(--development-green);
}

.renewal-dev-map-line--v1,
.renewal-dev-map-line--v2,
.renewal-dev-map-line--v3,
.renewal-dev-map-line--v4 {
    height: 34px;
}

.renewal-dev-map-line--short {
    height: 28px;
}

.renewal-dev-machine-node {
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr);
    width: min(100%, 600px);
    margin: 0 auto;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--development-line);
    background: #fff;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        border-color 0.25s ease;
}

.renewal-dev-machine-node:hover,
.renewal-dev-machine-node:focus-visible {
    border-color: rgba(0, 138, 68, 0.55);
    box-shadow: 0 18px 36px rgba(0, 65, 32, 0.12);
    transform: translateY(-4px);
    outline: none;
}

.renewal-dev-machine-node--current {
    border: 2px solid var(--development-green);
}

.renewal-dev-machine-node__image {
    min-height: 190px;
    background-color: #f5f8f6;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
}

.renewal-dev-machine-node__image--01 {
    background-image: url("../img/development/analyzer01.jpg");
}

.renewal-dev-machine-node__image--02 {
    background-image: url("../img/development/analyzer02.jpg");
}

.renewal-dev-machine-node__image--04 {
    background-image: url("../img/development/analyzer04.jpg");
}

.renewal-dev-machine-node__image--05 {
    background-image: url("../img/development/analyzer05-sarutahiko.jpg");
}

.renewal-dev-machine-node__body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 24px 22px;
}

.renewal-dev-machine-node__body small {
    color: var(--development-green);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.13em;
}

.renewal-dev-machine-node__body strong {
    margin-top: 4px;
    color: var(--development-text);
    font-size: 22px;
    line-height: 1.4;
}

.renewal-dev-machine-node__body em {
    margin-top: 7px;
    color: var(--development-text-soft);
    font-size: 12px;
    font-style: normal;
}

.renewal-dev-machine-node__body b {
    margin-top: 16px;
    color: var(--development-green);
    font-size: 10px;
    letter-spacing: 0.08em;
}

.renewal-dev-map-branch {
    position: relative;
    height: 58px;
}

.renewal-dev-map-branch--split::before,
.renewal-dev-map-branch--merge::before {
    position: absolute;
    left: 25%;
    width: 50%;
    height: 2px;
    background: var(--development-green);
    content: "";
}

.renewal-dev-map-branch--split::before {
    bottom: 0;
}

.renewal-dev-map-branch--merge::before {
    top: 0;
}

.renewal-dev-map-branch--split::after,
.renewal-dev-map-branch--merge::after {
    position: absolute;
    left: 50%;
    width: 2px;
    height: 58px;
    background: var(--development-green);
    content: "";
}

.renewal-dev-map-branch--split::after {
    top: 0;
}

.renewal-dev-map-branch--merge::after {
    bottom: 0;
}

.renewal-dev-evolution-map__branches {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.renewal-dev-evolution-map__branch {
    min-width: 0;
}

.renewal-dev-evolution-map__branch
.renewal-dev-machine-node {
    width: 100%;
    grid-template-columns: 150px minmax(0, 1fr);
}

.renewal-dev-evolution-map__branch
.renewal-dev-machine-node__image {
    min-height: 170px;
}


/* スマホでも枝分かれを残す */
@media screen and (max-width: 767px) {

    .renewal-dev-tech-node {
        width: min(100%, 280px);
        padding: 15px 16px;
    }

    .renewal-dev-machine-node {
        display: block;
        width: min(100%, 330px);
    }

    .renewal-dev-machine-node__image {
        min-height: 170px;
    }

    .renewal-dev-evolution-map__branches {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .renewal-dev-evolution-map__branch
    .renewal-dev-machine-node {
        display: block;
        width: 100%;
    }

    .renewal-dev-evolution-map__branch
    .renewal-dev-machine-node__image {
        min-height: 115px;
    }

    .renewal-dev-evolution-map__branch
    .renewal-dev-machine-node__body {
        padding: 12px 10px 14px;
    }

    .renewal-dev-evolution-map__branch
    .renewal-dev-machine-node__body small {
        font-size: 6px;
    }

    .renewal-dev-evolution-map__branch
    .renewal-dev-machine-node__body strong {
        font-size: 14px;
    }

    .renewal-dev-evolution-map__branch
    .renewal-dev-machine-node__body em {
        font-size: 9px;
    }

    .renewal-dev-evolution-map__branch
    .renewal-dev-machine-node__body b {
        margin-top: 9px;
        font-size: 7px;
    }

    .renewal-dev-tech-node--feature {
        width: 100%;
        min-height: 104px;
        padding: 12px 8px;
    }

    .renewal-dev-tech-node--feature strong {
        font-size: 14px;
    }

    .renewal-dev-tech-node--feature small {
        font-size: 9px;
    }

    .renewal-dev-tech-node--minor {
        width: 100%;
        min-height: 88px;
        padding: 11px 8px;
    }

    .renewal-dev-tech-node--minor strong {
        font-size: 13px;
    }

    .renewal-dev-tech-node--minor small {
        font-size: 8px;
    }

    .renewal-dev-map-branch {
        height: 44px;
    }

    .renewal-dev-map-branch--split::after,
    .renewal-dev-map-branch--merge::after {
        height: 44px;
    }
}

/* ========================================
   開発ページ：ラフさ・遊び心を追加
======================================== */

/* セクションを少し“ノートを並べた”ように */
.renewal-development-page .renewal-section-title {
    position: relative;
}

.renewal-development-page .renewal-section-title__en {
    display: inline-block;
    padding: 5px 9px;
    border: 1px dashed rgba(0, 138, 68, 0.35);
    background: #f5faf7;
    transform: rotate(-1deg);
}

.renewal-development-page .renewal-section-title h2 {
    text-wrap: pretty;
}

/* 技術ノードを少し崩して研究ノート感 */
.renewal-dev-tech-node {
    border-radius: 2px;
    box-shadow: 4px 5px 0 rgba(0, 138, 68, 0.07);
}

.renewal-dev-tech-node--core {
    transform: rotate(-0.7deg);
}

.renewal-dev-tech-node--sub {
    transform: rotate(0.5deg);
}

.renewal-dev-evolution-map__branch:first-child
.renewal-dev-tech-node--feature {
    transform: rotate(-1deg);
}

.renewal-dev-evolution-map__branch:last-child
.renewal-dev-tech-node--feature {
    transform: rotate(1deg);
}

/* 機体ノードも完全な整列から少し外す */
.renewal-dev-machine-node {
    border-radius: 3px;
}

.renewal-dev-evolution-map__branch:first-child
.renewal-dev-machine-node {
    transform: rotate(-0.35deg);
}

.renewal-dev-evolution-map__branch:last-child
.renewal-dev-machine-node {
    transform: rotate(0.35deg);
}

.renewal-dev-machine-node:hover,
.renewal-dev-machine-node:focus-visible {
    transform: translateY(-5px) rotate(0deg) !important;
}

/* 線を少しラフに */
.renewal-dev-map-line,
.renewal-dev-map-branch--split::before,
.renewal-dev-map-branch--split::after,
.renewal-dev-map-branch--merge::before,
.renewal-dev-map-branch--merge::after {
    opacity: 0.82;
}


/* ========================================
   開発年表：硬さを抜いてカード感を軽く
======================================== */

.renewal-development-history__list {
    gap: 6px;
}

.renewal-development-history-item {
    padding: 12px 0;
}

.renewal-development-history-item__year {
    border-radius: 50%;
    width: 72px;
    min-height: 72px;
    border-width: 2px;
    font-size: 15px;
    background: #fff;
}

.renewal-development-history-item:nth-child(odd)
.renewal-development-history-item__body {
    transform: rotate(-0.3deg);
}

.renewal-development-history-item:nth-child(even)
.renewal-development-history-item__body {
    transform: rotate(0.3deg);
}

.renewal-development-history-item__body {
    border-left: 0;
    border: 1px solid #dbe7df;
    border-radius: 3px;
    box-shadow: 4px 5px 0 rgba(0, 138, 68, 0.05);
}

.renewal-development-history-item__status {
    display: inline-block;
    margin: 0 0 7px !important;
    padding: 4px 7px;
    color: #008a44 !important;
    border: 1px dashed rgba(0, 138, 68, 0.45);
    background: #fff;
    font-size: 9px !important;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.renewal-development-history-item--developing
.renewal-development-history-item__year {
    color: #008a44;
    border-style: dashed;
    background: #f4faf6;
}

.renewal-development-history-item--developing
.renewal-development-history-item__body {
    border-style: dashed;
    background: #f7fbf8;
}


/* ========================================
   機器プロフィール：少し図鑑っぽく
======================================== */

.renewal-development-lab-card {
    border-radius: 3px;
}

.renewal-development-lab-card:nth-child(odd) {
    transform: rotate(-0.25deg);
}

.renewal-development-lab-card:nth-child(even) {
    transform: rotate(0.25deg);
}

.renewal-development-lab-card:hover,
.renewal-development-lab-card:focus-visible {
    transform: translateY(-5px) rotate(0deg) !important;
}

.renewal-development-lab-card__meta {
    display: inline-block;
    width: fit-content;
    padding: 4px 7px;
    border: 1px dashed rgba(0, 138, 68, 0.28);
    background: #f7fbf8;
}


/* ========================================
   Earth Analyzer：別ブランド感を出す青
======================================== */

.renewal-development-earth,
.renewal-development-earth--light {
    color: #13334b !important;
    border: 1px solid #c8deec !important;
    background:
        linear-gradient(
            135deg,
            #eef7fc 0%,
            #f7fbfe 58%,
            #ffffff 100%
        ) !important;
    box-shadow: 5px 6px 0 rgba(33, 107, 152, 0.08);
}

.renewal-development-earth__en {
    color: #2f7ca9 !important;
}

.renewal-development-earth h2,
.renewal-development-earth--light h2 {
    color: #13334b !important;
}

.renewal-development-earth > div > p:last-child,
.renewal-development-earth--light > div > p:last-child {
    color: #536d7f !important;
}

.renewal-development-earth__button {
    color: #fff !important;
    border: 1px solid #2877a7 !important;
    background:
        linear-gradient(
            135deg,
            #3488b8 0%,
            #216a98 100%
        ) !important;
    box-shadow: 4px 5px 0 rgba(33, 106, 152, 0.14);
}

.renewal-development-earth__button:hover {
    color: #fff !important;
    border-color: #18577e !important;
    background:
        linear-gradient(
            135deg,
            #2779aa 0%,
            #18577e 100%
        ) !important;
    transform: translate(-1px, -2px);
}


/* ========================================
   スマホではラフさを控えめに
======================================== */

@media screen and (max-width: 767px) {

    .renewal-development-page .renewal-section-title__en,
    .renewal-dev-tech-node,
    .renewal-dev-machine-node,
    .renewal-development-history-item__body,
    .renewal-development-lab-card {
        transform: none !important;
    }

    .renewal-development-history-item__year {
        width: 56px;
        min-height: 56px;
        border-radius: 50%;
        font-size: 12px;
    }
}

/* ========================================
   開発ページ：LAB MODE
   「第一土木らしくない」を狙う
======================================== */

.renewal-development-page {
    background:
        linear-gradient(#fff, #fff) padding-box,
        repeating-linear-gradient(
            0deg,
            rgba(0, 138, 68, 0.025) 0,
            rgba(0, 138, 68, 0.025) 1px,
            transparent 1px,
            transparent 34px
        );
}

/* セクション見出しをラベル化 */
.renewal-development-page .renewal-section-title {
    position: relative;
    margin-bottom: 38px;
    padding-bottom: 18px;
    border-bottom: 0;
}

.renewal-development-page .renewal-section-title::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 2px;
    background:
        repeating-linear-gradient(
            90deg,
            var(--development-green) 0 18px,
            transparent 18px 28px
        );
    content: "";
    opacity: 0.5;
}

.renewal-development-page .renewal-section-title__en {
    display: inline-block;
    margin-bottom: 10px;
    padding: 6px 10px;
    color: var(--development-green);
    border: 1px dashed rgba(0, 138, 68, 0.55);
    background: #f8fcf9;
    font-size: 10px;
    transform: rotate(-1.2deg);
}

.renewal-development-page .renewal-section-title h2 {
    font-size: clamp(30px, 4vw, 46px);
    letter-spacing: 0.03em;
    text-wrap: pretty;
}

/* ラボメモ */
.renewal-dev-lab-note {
    width: fit-content;
    max-width: min(100%, 560px);
    padding: 14px 18px;
    border: 1px solid #d7e6dc;
    background: #fffef3;
    box-shadow: 5px 6px 0 rgba(0, 138, 68, 0.08);
}

.renewal-dev-lab-note span {
    display: block;
    margin-bottom: 4px;
    color: #a16f00;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.15em;
}

.renewal-dev-lab-note strong {
    color: #2d352f;
    font-size: 15px;
    line-height: 1.6;
}

.renewal-dev-lab-note--intro {
    margin: 28px 0 24px auto;
    transform: rotate(1.4deg);
}

.renewal-dev-lab-note--encyclopedia {
    margin: 0 0 28px 18px;
    transform: rotate(-1.1deg);
}

/* 導入文を完全に縦一列 */
.renewal-development-intro__body {
    display: block !important;
    columns: 1 !important;
    column-count: 1 !important;
    max-width: 800px !important;
}

.renewal-development-intro__body p {
    width: 100% !important;
    max-width: 800px !important;
}

.renewal-development-intro__body p + p {
    margin-top: 20px !important;
}

/* 技術進化図をホワイトボード風に */
.renewal-dev-evolution-map {
    padding: 34px 28px 30px;
    border: 1px solid #dce8e0;
    background:
        radial-gradient(circle at 15% 20%, rgba(0,138,68,.04), transparent 28%),
        radial-gradient(circle at 85% 80%, rgba(0,138,68,.035), transparent 30%),
        #fbfdfb;
    box-shadow: inset 0 0 0 8px #fff;
}

.renewal-dev-tech-node {
    border-style: dashed;
    box-shadow: 4px 5px 0 rgba(0, 138, 68, 0.06);
}

.renewal-dev-tech-node--core {
    transform: rotate(-0.8deg);
}

.renewal-dev-tech-node--sub {
    transform: rotate(0.6deg);
}

.renewal-dev-evolution-map__branch:first-child
.renewal-dev-tech-node--feature {
    transform: rotate(-1.1deg);
}

.renewal-dev-evolution-map__branch:last-child
.renewal-dev-tech-node--feature {
    transform: rotate(1.1deg);
}

.renewal-dev-machine-node {
    border-radius: 4px;
    box-shadow: 5px 6px 0 rgba(0, 138, 68, 0.07);
}

.renewal-dev-evolution-map__branch:first-child
.renewal-dev-machine-node {
    transform: rotate(-0.4deg);
}

.renewal-dev-evolution-map__branch:last-child
.renewal-dev-machine-node {
    transform: rotate(0.4deg);
}

.renewal-dev-machine-node:hover,
.renewal-dev-machine-node:focus-visible {
    transform: translateY(-6px) rotate(0deg) !important;
}

/* 開発ログを“記録カード”風に */
.renewal-development-history__list {
    gap: 8px;
}

.renewal-development-history-item {
    padding: 10px 0;
}

.renewal-development-history-item__year {
    width: 74px;
    min-height: 74px;
    border-radius: 50%;
    font-size: 15px;
    background: #fff;
    box-shadow: 3px 4px 0 rgba(0, 138, 68, 0.06);
}

.renewal-development-history-item__body {
    border: 1px solid #dce7e0;
    border-left: 0;
    background: #fafdfb;
    box-shadow: 5px 6px 0 rgba(0, 138, 68, 0.045);
}

.renewal-development-history-item:nth-child(odd)
.renewal-development-history-item__body {
    transform: rotate(-0.35deg);
}

.renewal-development-history-item:nth-child(even)
.renewal-development-history-item__body {
    transform: rotate(0.35deg);
}

.renewal-development-history-item__status {
    display: inline-block;
    margin: 0 0 6px !important;
    padding: 4px 7px;
    color: var(--development-green) !important;
    border: 1px dashed rgba(0,138,68,.5);
    background: #fff;
    font-size: 9px !important;
    font-weight: 700;
    letter-spacing: .12em;
}

/* 図鑑カードは“ファイル”っぽく */
.renewal-development-product-card,
.renewal-development-lab-card {
    border-radius: 4px;
    box-shadow: 5px 6px 0 rgba(0, 138, 68, 0.055);
}

.renewal-development-product-card:nth-child(odd),
.renewal-development-lab-card:nth-child(odd) {
    transform: rotate(-0.25deg);
}

.renewal-development-product-card:nth-child(even),
.renewal-development-lab-card:nth-child(even) {
    transform: rotate(0.25deg);
}

/* Earth Analyzerは完全に別ブランドの青 */
.renewal-development-earth,
.renewal-development-earth--light {
    color: #113149 !important;
    border: 1px solid #c9deed !important;
    background:
        linear-gradient(
            135deg,
            #eef8fd 0%,
            #f8fcff 60%,
            #ffffff 100%
        ) !important;
    box-shadow: 5px 6px 0 rgba(33, 107, 152, 0.08) !important;
}

.renewal-development-earth__en {
    color: #2d7da9 !important;
}

.renewal-development-earth h2,
.renewal-development-earth--light h2 {
    color: #113149 !important;
}

.renewal-development-earth > div > p:last-child,
.renewal-development-earth--light > div > p:last-child {
    color: #536e81 !important;
}

.renewal-development-earth__button {
    color: #fff !important;
    border: 1px solid #2578aa !important;
    background:
        linear-gradient(
            135deg,
            #3a8dbb 0%,
            #246b99 100%
        ) !important;
    box-shadow: 4px 5px 0 rgba(33, 106, 152, 0.14) !important;
}

.renewal-development-earth__button:hover {
    color: #fff !important;
    background:
        linear-gradient(
            135deg,
            #2d7eae 0%,
            #185980 100%
        ) !important;
    transform: translate(-1px, -2px);
}

/* 旧疑似要素の重ね文字は絶対出さない */
.renewal-development-intro__visual::after,
.renewal-dev-opening__visual::after {
    display: none !important;
    content: none !important;
}

/* スマホは可読性優先で傾きを戻す */
@media screen and (max-width: 767px) {

    .renewal-development-page .renewal-section-title__en,
    .renewal-dev-lab-note,
    .renewal-dev-tech-node,
    .renewal-dev-machine-node,
    .renewal-development-history-item__body,
    .renewal-development-product-card,
    .renewal-development-lab-card {
        transform: none !important;
    }

    .renewal-dev-evolution-map {
        padding: 24px 14px 22px;
    }

    .renewal-development-history-item__year {
        width: 56px;
        min-height: 56px;
        font-size: 12px;
    }
}

/* ========================================
   DEVELOPMENT LOG：クリックして漁るログ帳
======================================== */

.renewal-dev-logbook__list {
    display: grid;
    gap: 14px;
}

.renewal-dev-log-card {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    align-items: stretch;
    width: 100%;
    padding: 0;
    overflow: hidden;
    border: 1px solid #dce7e0;
    background: #fff;
    box-shadow: 5px 6px 0 rgba(0, 138, 68, 0.05);
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition:
        transform 0.22s ease,
        box-shadow 0.22s ease,
        border-color 0.22s ease;
}

.renewal-dev-log-card:nth-child(odd) {
    transform: rotate(-0.25deg);
}

.renewal-dev-log-card:nth-child(even) {
    transform: rotate(0.25deg);
}

.renewal-dev-log-card:hover,
.renewal-dev-log-card:focus-visible {
    border-color: rgba(0, 138, 68, 0.5);
    box-shadow: 8px 10px 0 rgba(0, 138, 68, 0.09);
    transform: translate(-2px, -3px) rotate(0deg);
    outline: none;
}

.renewal-dev-log-card__year {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 116px;
    color: #fff;
    background: var(--development-green);
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.03em;
}

.renewal-dev-log-card__body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 21px 24px;
}

.renewal-dev-log-card__body small {
    color: var(--development-green);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.15em;
}

.renewal-dev-log-card__body strong {
    margin-top: 4px;
    color: var(--development-text);
    font-size: 21px;
    line-height: 1.4;
}

.renewal-dev-log-card__body em {
    margin-top: 8px;
    color: #4c5e53;
    font-size: 14px;
    font-style: normal;
    font-weight: 700;
}

.renewal-dev-log-card__body b {
    align-self: flex-end;
    margin-top: 14px;
    color: var(--development-green);
    font-size: 9px;
    letter-spacing: 0.1em;
}

.renewal-dev-log-card--developing {
    border-style: dashed;
    background:
        repeating-linear-gradient(
            135deg,
            #fbfdfb 0,
            #fbfdfb 13px,
            #f2f8f4 13px,
            #f2f8f4 26px
        );
}

.renewal-dev-log-card--developing
.renewal-dev-log-card__year {
    color: var(--development-green);
    border-right: 1px dashed rgba(0, 138, 68, 0.4);
    background: #fff;
}


/* ========================================
   DEVELOPMENT LOG MODAL
======================================== */

body.renewal-dev-log-open {
    overflow: hidden;
}

.renewal-dev-log-modal {
    position: fixed;
    z-index: 5100;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 28px;
}

.renewal-dev-log-modal[hidden] {
    display: none;
}

.renewal-dev-log-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(3, 10, 6, 0.74);
    backdrop-filter: blur(7px);
}

.renewal-dev-log-modal__panel {
    position: relative;
    z-index: 1;
    width: min(820px, 100%);
    max-height: calc(100dvh - 56px);
    overflow-y: auto;
    border: 1px solid #cfddd4;
    background:
        linear-gradient(
            rgba(255, 255, 255, 0.97),
            rgba(255, 255, 255, 0.97)
        ),
        repeating-linear-gradient(
            0deg,
            transparent 0,
            transparent 31px,
            rgba(0, 138, 68, 0.06) 31px,
            rgba(0, 138, 68, 0.06) 32px
        );
    box-shadow: 12px 14px 0 rgba(0, 0, 0, 0.18);
}

.renewal-dev-log-modal__close {
    position: absolute;
    z-index: 3;
    top: 14px;
    right: 14px;
    width: 44px;
    height: 44px;
    padding: 0;
    color: #fff;
    border: 0;
    background: var(--development-green);
    font-size: 28px;
    cursor: pointer;
}

.renewal-dev-log-modal__head {
    display: flex;
    gap: 20px;
    align-items: center;
    justify-content: space-between;
    padding: 23px 72px 22px 28px;
    border-bottom: 1px dashed rgba(0, 138, 68, 0.3);
    background: #f6fbf7;
}

.renewal-dev-log-modal__head p {
    margin: 0;
    color: var(--development-green);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.16em;
}

.renewal-dev-log-modal__head strong {
    color: var(--development-text);
    font-size: 20px;
}

.renewal-dev-log-modal__content {
    padding: 38px 36px 40px;
}

.renewal-dev-log-modal__eyebrow {
    margin: 0 0 8px;
    color: #a16f00;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.15em;
}

.renewal-dev-log-modal__content h2 {
    margin: 0;
    color: var(--development-text);
    font-size: 34px;
    line-height: 1.35;
}

.renewal-dev-log-modal__catch {
    margin: 12px 0 0;
    color: var(--development-green);
    font-size: 19px;
    font-weight: 700;
    line-height: 1.7;
}

.renewal-dev-log-modal__story {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 30px;
}

.renewal-dev-log-modal__story div {
    padding: 17px 16px;
    border: 1px dashed #d6e3da;
    background: rgba(255,255,255,.78);
}

.renewal-dev-log-modal__story span {
    display: block;
    margin-bottom: 7px;
    color: var(--development-green);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.renewal-dev-log-modal__story p {
    margin: 0;
    color: #48584e;
    font-size: 12px;
    line-height: 1.75;
}

.renewal-dev-log-modal blockquote {
    margin: 28px 0 0;
    padding: 18px 20px;
    border-left: 4px solid #f1b623;
    background: #fffbed;
    color: #3b403c;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.7;
    transform: rotate(-0.4deg);
}


/* ========================================
   さらに「らしくない」小ネタ
======================================== */

.renewal-dev-logbook::before {
    display: inline-block;
    margin-bottom: 18px;
    padding: 6px 9px;
    color: #6d756f;
    border: 1px dashed #bfc9c2;
    content: "※ 開発室の記録を勝手にのぞいている気分でどうぞ。";
    font-size: 10px;
    transform: rotate(-0.8deg);
}

@media screen and (max-width: 767px) {

    .renewal-dev-log-card {
        grid-template-columns: 64px minmax(0, 1fr);
        transform: none !important;
    }

    .renewal-dev-log-card__year {
        min-height: 108px;
        font-size: 11px;
        writing-mode: vertical-rl;
    }

    .renewal-dev-log-card__body {
        padding: 17px 15px;
    }

    .renewal-dev-log-card__body strong {
        font-size: 17px;
    }

    .renewal-dev-log-card__body em {
        font-size: 12px;
    }

    .renewal-dev-log-modal {
        padding: 12px;
        align-items: end;
    }

    .renewal-dev-log-modal__panel {
        width: 100%;
        max-height: calc(100dvh - 24px);
        border-radius: 18px 18px 0 0;
        box-shadow: none;
    }

    .renewal-dev-log-modal__content {
        padding: 30px 21px 28px;
    }

    .renewal-dev-log-modal__content h2 {
        font-size: 27px;
    }

    .renewal-dev-log-modal__catch {
        font-size: 16px;
    }

    .renewal-dev-log-modal__story {
        grid-template-columns: 1fr;
    }

    .renewal-dev-log-modal blockquote {
        transform: none;
    }
}

/* ========================================
   LAB MODE 追加演出
======================================== */

.renewal-development-hero .renewal-page-hero__title {
    letter-spacing: 0.12em;
}

.renewal-development-hero .renewal-page-hero__en {
    letter-spacing: 0.24em;
}

/* LABルールの付箋 */
.renewal-lab-stickers {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 26px 0 30px;
}

.renewal-lab-stickers span {
    display: inline-block;
    padding: 10px 13px;
    color: #354138;
    border: 1px solid #dfdfb6;
    background: #fffbd8;
    box-shadow: 4px 5px 0 rgba(0,0,0,.05);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.5;
}

.renewal-lab-stickers span:nth-child(1) {
    transform: rotate(-1.2deg);
}

.renewal-lab-stickers span:nth-child(2) {
    transform: rotate(1deg);
}

.renewal-lab-stickers span:nth-child(3) {
    transform: rotate(-0.5deg);
}

/* LAB見出しをさらにラフに */
.renewal-development-page .renewal-section-title h2 {
    position: relative;
}

.renewal-development-page .renewal-section-title h2::before {
    position: absolute;
    top: -12px;
    left: -13px;
    width: 24px;
    height: 24px;
    border-top: 2px solid rgba(0,138,68,.22);
    border-left: 2px solid rgba(0,138,68,.22);
    content: "";
}

/* ログ冒頭の小ネタ */
.renewal-dev-logbook::before {
    content: "※ 開発室の記録、勝手にのぞいてOKです。" !important;
    color: #6c746e;
    background: #fff;
}

/* 図鑑は“ファイル棚”っぽく */
.renewal-development-lab__grid,
.renewal-development-products__grid {
    position: relative;
}

.renewal-development-lab-card::after,
.renewal-development-product-card::after {
    position: absolute;
    top: 12px;
    right: 12px;
    color: rgba(0,138,68,.18);
    content: "FILE";
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .12em;
}

/* Earth Analyzerは青を維持 */
.renewal-development-earth,
.renewal-development-earth--light {
    color: #10334d !important;
    border: 1px solid #c6ddec !important;
    background:
        linear-gradient(
            135deg,
            #edf8fe 0%,
            #f8fcff 58%,
            #ffffff 100%
        ) !important;
}

.renewal-development-earth__en {
    color: #2a7dab !important;
}

.renewal-development-earth h2,
.renewal-development-earth--light h2 {
    color: #10334d !important;
}

.renewal-development-earth__button {
    color: #fff !important;
    border-color: #277bab !important;
    background:
        linear-gradient(
            135deg,
            #3d8fbd 0%,
            #246b98 100%
        ) !important;
}

/* スマホは付箋を縦に */
@media screen and (max-width: 767px) {

    .renewal-lab-stickers {
        display: grid;
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .renewal-lab-stickers span {
        transform: none !important;
    }
}




/* ========================================
   LAB 微調整 2026-08-10
======================================== */

/* セクションラベルを少し大きく */
.renewal-development-page .renewal-section-title__en {
    display: inline-block;
    padding: 12px 20px;
    border: 1px dashed rgba(0, 138, 68, 0.55);
    background: #f8fcf9;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.2em;
}

/* 緑のかぎかっこ風の装飾はいったん外す */
.renewal-development-page .renewal-section-title h2::before {
    display: none !important;
    content: none !important;
}

/* PCのLAB NOTEのバランス調整 */
.renewal-development-intro {
    position: relative;
}

.renewal-dev-lab-note--intro {
    position: relative;
    z-index: 2;
    max-width: 320px;
    margin: -20px 18px 22px auto;
    transform: rotate(0.6deg);
}

.renewal-dev-lab-note--intro strong {
    font-size: 18px;
}

/* LOGカード：画像入りで密度アップ */
.renewal-dev-logbook__list {
    gap: 18px;
}

.renewal-dev-log-card {
    grid-template-columns: 86px 220px minmax(0, 1fr);
    min-height: 166px;
}

.renewal-dev-log-card__year {
    position: relative;
    z-index: 2;
    min-height: 166px;
    font-size: 17px;
}

.renewal-dev-log-card__thumb {
    position: relative;
    min-height: 166px;
    background-color: #eef3ef;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.renewal-dev-log-card__thumb::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255,255,255,0) 40%, rgba(8, 18, 12, 0.2) 100%);
    content: "";
}

.renewal-dev-log-card__thumb--01 { background-image: url("../img/development/analyzer01.jpg"); }
.renewal-dev-log-card__thumb--02 { background-image: url("../img/development/analyzer02.jpg"); }
.renewal-dev-log-card__thumb--03 { background-image: url("../img/development/analyzer03-boat.jpg"); }
.renewal-dev-log-card__thumb--04 { background-image: url("../img/development/analyzer04.jpg"); }
.renewal-dev-log-card__thumb--05 { background-image: url("../img/development/analyzer05-sarutahiko.jpg"); }
.renewal-dev-log-card__thumb--staff {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
    color: var(--development-green-dark);
    border-left: 1px dashed rgba(0, 138, 68, 0.15);
    background:
        repeating-linear-gradient(
            135deg,
            #fbfdfb 0,
            #fbfdfb 12px,
            #eff6f1 12px,
            #eff6f1 24px
        );
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-align: center;
}

.renewal-dev-log-card__thumb--staff::before {
    content: "COMING SOON";
}

.renewal-dev-log-card__thumb--staff::after {
    display: none;
}

.renewal-dev-log-card__body {
    padding: 24px 26px;
}

.renewal-dev-log-card__body strong {
    font-size: 24px;
}

.renewal-dev-log-card__body em {
    font-size: 15px;
    line-height: 1.7;
}

.renewal-dev-log-card__body b {
    margin-top: 18px;
    font-size: 10px;
}

/* LOGモーダル：画像追加で余白を減らす */
.renewal-dev-log-modal__visual {
    min-height: 248px;
    margin-top: 20px;
    overflow: hidden;
    border: 1px solid #d7e3db;
    background-color: #eef3ef;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.renewal-dev-log-modal__visual.is-under-development {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--development-green-dark);
    background:
        repeating-linear-gradient(
            135deg,
            #fbfdfb 0,
            #fbfdfb 14px,
            #f0f7f2 14px,
            #f0f7f2 28px
        );
    font-size: 19px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.renewal-dev-log-modal__catch {
    margin: 18px 0 0;
    font-size: 21px;
}

.renewal-dev-log-modal__story {
    margin-top: 24px;
}

.renewal-dev-log-modal blockquote {
    margin-top: 22px;
    font-size: 19px;
}

@media screen and (max-width: 767px) {
    .renewal-development-page .renewal-section-title__en {
        padding: 10px 14px;
        font-size: 11px;
    }

    .renewal-dev-lab-note--intro {
        max-width: 100%;
        margin: 18px 0 18px auto;
        transform: none;
    }

    .renewal-dev-log-card {
        grid-template-columns: 62px minmax(0, 1fr);
        min-height: auto;
    }

    .renewal-dev-log-card__year {
        min-height: 114px;
        font-size: 11px;
    }

    .renewal-dev-log-card__thumb {
        grid-column: 2 / 3;
        min-height: 180px;
    }

    .renewal-dev-log-card__body {
        grid-column: 2 / 3;
        padding: 16px 15px 18px;
    }

    .renewal-dev-log-card__body strong {
        font-size: 18px;
    }

    .renewal-dev-log-modal__visual {
        min-height: 180px;
    }

    .renewal-dev-log-modal__catch {
        font-size: 18px;
    }
}

/* ========================================
   LAB 微調整 ROUND 2
   RULE中央寄せ＋LOG画像比率修正
======================================== */

/* ----------------------------------------
   RULEカード
   PC：中央に大きく3枚並べる
---------------------------------------- */

.renewal-lab-stickers {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: center !important;
    align-items: stretch !important;
    gap: 18px !important;
    width: 100% !important;
    margin: 30px auto 34px !important;
}

.renewal-lab-stickers span {
    display: flex !important;
    flex: 1 1 0 !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 72px !important;
    max-width: 285px !important;
    padding: 16px 18px !important;
    color: #354138 !important;
    border: 1px solid #deddb6 !important;
    background: #fffbd8 !important;
    box-shadow: 5px 6px 0 rgba(0, 0, 0, 0.05) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.65 !important;
    text-align: center !important;
}

.renewal-lab-stickers span:nth-child(1) {
    transform: rotate(-0.7deg) !important;
}

.renewal-lab-stickers span:nth-child(2) {
    transform: rotate(0.5deg) !important;
}

.renewal-lab-stickers span:nth-child(3) {
    transform: rotate(-0.35deg) !important;
}


/* ----------------------------------------
   LOGカードのサムネイル
   機体全体が見えるようcontainに変更
---------------------------------------- */

.renewal-dev-log-card {
    grid-template-columns: 86px 205px minmax(0, 1fr) !important;
}

.renewal-dev-log-card__thumb {
    min-height: 166px !important;
    background-color: #f4f7f5 !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    background-size: contain !important;
}

/* cover用の暗いグラデーションは不要 */
.renewal-dev-log-card__thumb::after {
    display: none !important;
    content: none !important;
}


/* ----------------------------------------
   LOGを開いた後の画像
   切り抜かず、機器全体が見える表示へ
---------------------------------------- */

.renewal-dev-log-modal__visual {
    min-height: 300px !important;
    padding: 14px !important;
    box-sizing: border-box !important;
    background-color: #f4f7f5 !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    background-size: contain !important;
}

/* Staff-SOIのCOMING SOONは従来どおり */
.renewal-dev-log-modal__visual.is-under-development {
    padding: 20px !important;
}


/* ----------------------------------------
   スマホ
---------------------------------------- */

@media screen and (max-width: 767px) {

    .renewal-lab-stickers {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        margin: 22px auto 28px !important;
    }

    .renewal-lab-stickers span {
        width: 100% !important;
        max-width: none !important;
        min-height: 60px !important;
        padding: 14px 15px !important;
        font-size: 12px !important;
        transform: none !important;
    }

    .renewal-dev-log-card {
        grid-template-columns: 62px minmax(0, 1fr) !important;
    }

    .renewal-dev-log-card__thumb {
        grid-column: 2 / 3 !important;
        min-height: 165px !important;
        background-size: contain !important;
    }

    .renewal-dev-log-modal__visual {
        min-height: 220px !important;
        padding: 10px !important;
        background-size: contain !important;
    }
}

/* ========================================
   LAB 微調整 ROUND 3
   家系図の中間幅崩れ防止＋LAB NOTE左寄せ
======================================== */

/* ----------------------------------------
   LAB NOTE 01
   PCでは左寄せへ
---------------------------------------- */

.renewal-dev-lab-note--intro {
    max-width: 320px !important;
    margin: -20px auto 24px 18px !important;
    transform: rotate(-0.6deg) !important;
}


/* ----------------------------------------
   家系図：PC～タブレットの中間幅対策
   2列は維持しつつカード内部を縦積みにする
---------------------------------------- */

@media screen and (min-width: 768px) and (max-width: 1180px) {

    .renewal-dev-evolution-map {
        padding-right: 18px !important;
        padding-left: 18px !important;
    }

    .renewal-dev-evolution-map__branches {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 18px !important;
    }

    .renewal-dev-evolution-map__branch {
        min-width: 0 !important;
    }

    .renewal-dev-evolution-map__branch
    .renewal-dev-machine-node {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    .renewal-dev-evolution-map__branch
    .renewal-dev-machine-node__image {
        display: block !important;
        width: 100% !important;
        min-height: 185px !important;
        height: 185px !important;
        background-position: center !important;
        background-repeat: no-repeat !important;
        background-size: contain !important;
    }

    .renewal-dev-evolution-map__branch
    .renewal-dev-machine-node__body {
        display: flex !important;
        min-width: 0 !important;
        padding: 20px 18px 22px !important;
    }

    .renewal-dev-evolution-map__branch
    .renewal-dev-machine-node__body small {
        font-size: 8px !important;
        letter-spacing: 0.1em !important;
    }

    .renewal-dev-evolution-map__branch
    .renewal-dev-machine-node__body strong {
        margin-top: 4px !important;
        font-size: 20px !important;
        line-height: 1.4 !important;
        overflow-wrap: anywhere !important;
    }

    .renewal-dev-evolution-map__branch
    .renewal-dev-machine-node__body em {
        margin-top: 7px !important;
        font-size: 11px !important;
        line-height: 1.65 !important;
        word-break: auto-phrase !important;
    }

    .renewal-dev-evolution-map__branch
    .renewal-dev-machine-node__body b {
        margin-top: 13px !important;
        font-size: 9px !important;
    }

    .renewal-dev-tech-node--feature,
    .renewal-dev-tech-node--minor {
        width: 100% !important;
        max-width: none !important;
        box-sizing: border-box !important;
    }
}


/* ----------------------------------------
   さらに狭い幅では家系図を1列化
   無理に2列を維持して潰さない
---------------------------------------- */

@media screen and (min-width: 768px) and (max-width: 900px) {

    .renewal-dev-evolution-map__branches {
        grid-template-columns: 1fr !important;
        gap: 28px !important;
    }

    .renewal-dev-map-branch--split,
    .renewal-dev-map-branch--merge {
        height: 42px !important;
    }

    .renewal-dev-map-branch--split::before,
    .renewal-dev-map-branch--merge::before {
        display: none !important;
    }

    .renewal-dev-map-branch--split::after,
    .renewal-dev-map-branch--merge::after {
        left: 50% !important;
        height: 42px !important;
    }

    .renewal-dev-evolution-map__branch
    .renewal-dev-machine-node__image {
        height: 210px !important;
        min-height: 210px !important;
    }
}


/* ----------------------------------------
   スマホ
---------------------------------------- */

@media screen and (max-width: 767px) {

    .renewal-dev-lab-note--intro {
        max-width: 100% !important;
        margin: 18px 0 18px 0 !important;
        transform: none !important;
    }
}

/* ========================================
   LAB LOG モーダル バランス調整
   説明文字を大きく＋機器名・写真位置を再調整
======================================== */

/* モーダル全体を少しゆったり */
.renewal-dev-log-modal__panel {
    width: min(900px, 100%) !important;
}

/* 機器名まわり */
.renewal-dev-log-modal__content {
    padding: 34px 38px 38px !important;
}

.renewal-dev-log-modal__content h2 {
    margin-top: 2px !important;
    font-size: 38px !important;
    line-height: 1.25 !important;
}

/* 写真を機器名に近づけて、全体の流れを詰める */
.renewal-dev-log-modal__visual {
    min-height: 280px !important;
    margin-top: 16px !important;
    padding: 12px !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    background-size: contain !important;
}

/* キャッチコピーも少し大きく */
.renewal-dev-log-modal__catch {
    margin-top: 16px !important;
    font-size: 22px !important;
    line-height: 1.6 !important;
}

/* MISSION / WHAT CHANGED? / RESULT の3枠 */
.renewal-dev-log-modal__story {
    gap: 14px !important;
    margin-top: 24px !important;
}

.renewal-dev-log-modal__story div {
    min-height: 126px !important;
    padding: 20px 18px !important;
    box-sizing: border-box !important;
}

/* 見出し */
.renewal-dev-log-modal__story span {
    margin-bottom: 10px !important;
    font-size: 10px !important;
    letter-spacing: 0.13em !important;
}

/* 本文：ここをしっかり大きく */
.renewal-dev-log-modal__story p {
    font-size: 14px !important;
    line-height: 1.9 !important;
}

/* 一番下のコメントも合わせて少し大きく */
.renewal-dev-log-modal blockquote {
    margin-top: 22px !important;
    padding: 20px 22px !important;
    font-size: 20px !important;
    line-height: 1.7 !important;
}


/* ========================================
   スマホ
======================================== */

@media screen and (max-width: 767px) {

    .renewal-dev-log-modal__content {
        padding: 28px 20px 26px !important;
    }

    .renewal-dev-log-modal__content h2 {
        font-size: 30px !important;
    }

    .renewal-dev-log-modal__visual {
        min-height: 210px !important;
        margin-top: 14px !important;
        padding: 8px !important;
    }

    .renewal-dev-log-modal__catch {
        font-size: 19px !important;
    }

    .renewal-dev-log-modal__story {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    .renewal-dev-log-modal__story div {
        min-height: 0 !important;
        padding: 17px 16px !important;
    }

    .renewal-dev-log-modal__story span {
        font-size: 9px !important;
    }

    .renewal-dev-log-modal__story p {
        font-size: 14px !important;
        line-height: 1.85 !important;
    }

    .renewal-dev-log-modal blockquote {
        padding: 18px !important;
        font-size: 18px !important;
    }
}

/* ========================================
   LABログ上の注意書き サイズ固定
   後続CSSに負けないよう末尾で再指定
======================================== */

.renewal-dev-logbook::before {
    display: inline-block !important;
    margin-bottom: 22px !important;
    padding: 11px 15px !important;
    color: #5f6962 !important;
    border: 1px dashed #b9c7be !important;
    background: #ffffff !important;
    content: "※ 開発室の記録、勝手にのぞいてOKです。" !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.7 !important;
    letter-spacing: 0.035em !important;
    transform: none !important;
}

@media screen and (max-width: 767px) {
    .renewal-dev-logbook::before {
        padding: 10px 13px !important;
        margin-bottom: 18px !important;
        font-size: 12px !important;
        line-height: 1.65 !important;
    }
}

/* ========================================
   Staff-SOI PROFILE / COMING SOON
======================================== */

.renewal-dev-modal__visual.is-under-development {
    display: flex !important;
    min-height: 320px !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 24px !important;
    color: #008a44 !important;
    background:
        repeating-linear-gradient(
            135deg,
            #f8fcf9 0,
            #f8fcf9 14px,
            #eef6f1 14px,
            #eef6f1 28px
        ) !important;
    background-image: none !important;
    text-align: center !important;
}

.renewal-dev-comingsoon__small {
    display: block;
    margin-bottom: 14px;
    color: #008a44;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
}

.renewal-dev-comingsoon__main {
    display: block;
    color: #008a44;
    font-size: clamp(30px, 4vw, 48px);
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.1em;
}

.renewal-dev-comingsoon__name {
    display: block;
    margin-top: 16px;
    color: #556159;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

@media screen and (max-width: 767px) {
    .renewal-dev-modal__visual.is-under-development {
        min-height: 260px !important;
    }
}

/* ========================================
   LAB ドローン進化図
   スマホでは「家系図だけ」横長キャンバスにする
======================================== */

.renewal-dev-evolution-map-scroll {
    width: 100%;
    max-width: 100%;
}

@media screen and (max-width: 767px) {

    /*
     * ページ全体は縦画面のまま。
     * ドローン進化図の枠だけ横スクロール可能にする。
     */
    .renewal-dev-evolution-map-scroll {
        position: relative;
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        padding: 0 0 16px;
        overscroll-behavior-x: contain;
        scrollbar-width: thin;
        scrollbar-color: rgba(0, 138, 68, 0.45) rgba(0, 138, 68, 0.08);
        -webkit-overflow-scrolling: touch;
    }

    .renewal-dev-evolution-map-scroll::-webkit-scrollbar {
        height: 7px;
    }

    .renewal-dev-evolution-map-scroll::-webkit-scrollbar-track {
        background: rgba(0, 138, 68, 0.08);
    }

    .renewal-dev-evolution-map-scroll::-webkit-scrollbar-thumb {
        border-radius: 999px;
        background: rgba(0, 138, 68, 0.45);
    }

    /*
     * 家系図の中身はPCに近い横幅を確保。
     * これによりAnalyzer02 / 04の画像が潰れず、
     * 枝分かれも家系図らしい形を維持する。
     */
    .renewal-dev-evolution-map-scroll
    .renewal-dev-evolution-map {
        width: 760px !important;
        min-width: 760px !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 28px 24px 26px !important;
        box-sizing: border-box !important;
    }

    /* スマホ用に1列化していた設定を、この家系図内だけ解除 */
    .renewal-dev-evolution-map-scroll
    .renewal-dev-evolution-map__branches {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 22px !important;
    }

    .renewal-dev-evolution-map-scroll
    .renewal-dev-evolution-map__branch {
        min-width: 0 !important;
    }

    /* Analyzer01 / Analyzer05 */
    .renewal-dev-evolution-map-scroll
    .renewal-dev-machine-node {
        display: grid !important;
        grid-template-columns: 190px minmax(0, 1fr) !important;
        width: min(100%, 600px) !important;
        max-width: 600px !important;
        margin-right: auto !important;
        margin-left: auto !important;
    }

    .renewal-dev-evolution-map-scroll
    .renewal-dev-machine-node__image {
        display: block !important;
        width: auto !important;
        height: auto !important;
        min-height: 190px !important;
        background-position: center center !important;
        background-repeat: no-repeat !important;
        background-size: contain !important;
    }

    .renewal-dev-evolution-map-scroll
    .renewal-dev-machine-node__body {
        display: flex !important;
        padding: 24px 22px !important;
    }

    .renewal-dev-evolution-map-scroll
    .renewal-dev-machine-node__body small {
        font-size: 9px !important;
        letter-spacing: 0.13em !important;
    }

    .renewal-dev-evolution-map-scroll
    .renewal-dev-machine-node__body strong {
        margin-top: 4px !important;
        font-size: 22px !important;
        line-height: 1.4 !important;
        overflow-wrap: normal !important;
    }

    .renewal-dev-evolution-map-scroll
    .renewal-dev-machine-node__body em {
        margin-top: 7px !important;
        font-size: 12px !important;
        line-height: 1.6 !important;
    }

    .renewal-dev-evolution-map-scroll
    .renewal-dev-machine-node__body b {
        margin-top: 16px !important;
        font-size: 10px !important;
    }

    /* Analyzer02 / Analyzer04 */
    .renewal-dev-evolution-map-scroll
    .renewal-dev-evolution-map__branch
    .renewal-dev-machine-node {
        display: grid !important;
        grid-template-columns: 150px minmax(0, 1fr) !important;
        width: 100% !important;
        max-width: none !important;
    }

    .renewal-dev-evolution-map-scroll
    .renewal-dev-evolution-map__branch
    .renewal-dev-machine-node__image {
        display: block !important;
        width: auto !important;
        height: auto !important;
        min-height: 170px !important;
        background-size: contain !important;
    }

    .renewal-dev-evolution-map-scroll
    .renewal-dev-evolution-map__branch
    .renewal-dev-machine-node__body {
        padding: 20px 18px !important;
    }

    .renewal-dev-evolution-map-scroll
    .renewal-dev-evolution-map__branch
    .renewal-dev-machine-node__body small {
        font-size: 8px !important;
    }

    .renewal-dev-evolution-map-scroll
    .renewal-dev-evolution-map__branch
    .renewal-dev-machine-node__body strong {
        font-size: 19px !important;
        overflow-wrap: normal !important;
    }

    .renewal-dev-evolution-map-scroll
    .renewal-dev-evolution-map__branch
    .renewal-dev-machine-node__body em {
        font-size: 11px !important;
    }

    .renewal-dev-evolution-map-scroll
    .renewal-dev-evolution-map__branch
    .renewal-dev-machine-node__body b {
        margin-top: 13px !important;
        font-size: 9px !important;
    }

    /* 技術ノードもPCに近いサイズへ戻す */
    .renewal-dev-evolution-map-scroll
    .renewal-dev-tech-node {
        width: min(100%, 360px) !important;
        padding: 18px 22px !important;
    }

    .renewal-dev-evolution-map-scroll
    .renewal-dev-tech-node--feature {
        width: min(100%, 280px) !important;
        min-height: 0 !important;
        padding: 18px 16px !important;
    }

    .renewal-dev-evolution-map-scroll
    .renewal-dev-tech-node--minor {
        width: min(100%, 240px) !important;
        min-height: 0 !important;
        padding: 14px 16px !important;
    }

    .renewal-dev-evolution-map-scroll
    .renewal-dev-tech-node--feature strong {
        font-size: 18px !important;
    }

    .renewal-dev-evolution-map-scroll
    .renewal-dev-tech-node--feature small,
    .renewal-dev-evolution-map-scroll
    .renewal-dev-tech-node--minor small {
        font-size: 10px !important;
    }

    /* 分岐・合流線を横長家系図として復活 */
    .renewal-dev-evolution-map-scroll
    .renewal-dev-map-branch {
        height: 58px !important;
    }

    .renewal-dev-evolution-map-scroll
    .renewal-dev-map-branch--split::before,
    .renewal-dev-evolution-map-scroll
    .renewal-dev-map-branch--merge::before {
        display: block !important;
        left: 25% !important;
        width: 50% !important;
        height: 2px !important;
    }

    .renewal-dev-evolution-map-scroll
    .renewal-dev-map-branch--split::after,
    .renewal-dev-evolution-map-scroll
    .renewal-dev-map-branch--merge::after {
        display: block !important;
        left: 50% !important;
        width: 2px !important;
        height: 58px !important;
    }

    /* スマホではLABらしい傾きを外して読みやすさ優先 */
    .renewal-dev-evolution-map-scroll
    .renewal-dev-tech-node,
    .renewal-dev-evolution-map-scroll
    .renewal-dev-machine-node {
        transform: none !important;
    }
}

/* ========================================
   SARUTAHIKO 3D VIEWER
   PC + SMARTPHONE 操作改善
======================================== */

/* SARUTAHIKOのときだけモーダルを大型化 */
.renewal-dev-modal__panel--3d {
    grid-template-columns:
        minmax(0, 1.65fr)
        minmax(300px, 0.75fr);
    width: min(1240px, calc(100vw - 56px));
}

/* 3D表示エリア */
.renewal-dev-modal__visual--3d {
    position: relative;
    display: block;
    min-width: 0;
    min-height: 620px;
    padding: 0 !important;
    overflow: hidden;
    background: #000 !important;
}

/* iframe */
.renewal-dev-modal__viewer {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 620px;
    border: 0;
    background: #000;
    touch-action: none;
}

/* Viewer下部UI */
.renewal-dev-modal__viewer-ui {
    position: absolute;
    z-index: 10;
    right: 16px;
    bottom: 16px;
    left: 16px;
    display: flex;
    gap: 10px;
    align-items: center;
    justify-content: space-between;
    pointer-events: none;
}

/* 操作説明 */
.renewal-dev-modal__viewer-guide {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 8px 14px;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.66);
    backdrop-filter: blur(6px);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.5;
    pointer-events: none;
}

.viewer-guide-pc {
    display: inline;
}

.viewer-guide-sp {
    display: none;
}

/* 拡大ボタン */
.renewal-dev-modal__viewer-expand {
    min-height: 40px;
    padding: 8px 14px;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 999px;
    background: rgba(0, 138, 68, 0.92);
    font: inherit;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    pointer-events: auto;
    transition:
        background 0.2s ease,
        transform 0.2s ease;
}

.renewal-dev-modal__viewer-expand:hover,
.renewal-dev-modal__viewer-expand:focus-visible {
    background: #006c36;
    transform: translateY(-2px);
    outline: 2px solid rgba(255, 255, 255, 0.8);
    outline-offset: 2px;
}

/* Viewer読込エラー */
.renewal-dev-modal__viewer-error {
    position: absolute;
    top: 50%;
    left: 50%;
    width: calc(100% - 40px);
    color: #fff;
    font-size: 14px;
    line-height: 1.7;
    text-align: center;
    transform: translate(-50%, -50%);
}

/* ========================================
   3D拡大モード
======================================== */

.renewal-dev-modal__panel--3d.is-3d-expanded {
    display: block;
    width: min(1500px, calc(100vw - 40px));
    height: calc(100dvh - 40px);
    max-height: none;
    overflow: hidden;
    background: #000;
}

.renewal-dev-modal__panel--3d.is-3d-expanded
.renewal-dev-modal__content {
    display: none;
}

.renewal-dev-modal__panel--3d.is-3d-expanded
.renewal-dev-modal__visual--3d {
    width: 100%;
    height: 100%;
    min-height: 0;
}

.renewal-dev-modal__panel--3d.is-3d-expanded
.renewal-dev-modal__viewer {
    width: 100%;
    height: 100%;
    min-height: 0;
}

.renewal-dev-modal__panel--3d.is-3d-expanded
.renewal-dev-modal__close {
    z-index: 30;
}

/* ========================================
   TABLET
======================================== */

@media screen and (max-width: 1024px) {

    .renewal-dev-modal__panel--3d {
        grid-template-columns:
            minmax(0, 1.35fr)
            minmax(280px, 0.65fr);
        width: calc(100vw - 32px);
    }

    .renewal-dev-modal__visual--3d,
    .renewal-dev-modal__viewer {
        min-height: 540px;
    }
}

/* ========================================
   SMARTPHONE
======================================== */

@media screen and (max-width: 767px) {

    .renewal-dev-modal__panel--3d {
        display: block;
        width: 100%;
        max-height: calc(100dvh - 24px);
        overflow-y: auto;
        border-radius: 18px 18px 0 0;
    }

    .renewal-dev-modal__visual--3d {
        width: 100%;
        min-height: 52dvh !important;
        height: 52dvh;
        padding: 0 !important;
    }

    .renewal-dev-modal__viewer {
        width: 100%;
        min-height: 52dvh !important;
        height: 52dvh;
    }

    .viewer-guide-pc {
        display: none;
    }

    .viewer-guide-sp {
        display: inline;
    }

    .renewal-dev-modal__viewer-ui {
        right: 10px;
        bottom: 10px;
        left: 10px;
        flex-direction: column;
        gap: 7px;
        align-items: stretch;
    }

    .renewal-dev-modal__viewer-guide {
        justify-content: center;
        width: 100%;
        min-height: 34px;
        padding: 7px 10px;
        border-radius: 8px;
        font-size: 10px;
        text-align: center;
        box-sizing: border-box;
    }

    .renewal-dev-modal__viewer-expand {
        width: 100%;
        min-height: 38px;
        border-radius: 8px;
        font-size: 10px;
    }

    .renewal-dev-modal__panel--3d.is-3d-expanded {
        position: relative;
        width: 100%;
        height: calc(100dvh - 24px);
        max-height: calc(100dvh - 24px);
        border-radius: 18px 18px 0 0;
    }

    .renewal-dev-modal__panel--3d.is-3d-expanded
    .renewal-dev-modal__visual--3d {
        width: 100%;
        height: 100%;
        min-height: 100% !important;
    }

    .renewal-dev-modal__panel--3d.is-3d-expanded
    .renewal-dev-modal__viewer {
        width: 100%;
        height: 100%;
        min-height: 100% !important;
    }
}

/* ========================================
   LAB 家系図：Analyzer03 親戚ブランチ
   生年 / 没年表示対応
======================================== */

.renewal-dev-machine-node__life {
    display: inline-flex;
    width: fit-content;
    margin-top: 7px;
    padding: 4px 7px;
    color: #6d756f;
    border: 1px dashed rgba(0,138,68,.26);
    background: #f9fcfa;
    font-size: 8px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .11em;
}

.renewal-dev-machine-node__life.is-retired,
.renewal-dev-relative-node__life.is-retired {
    color: #777;
    border-color: #bbb;
    background: #f2f2f2;
}

.renewal-dev-relative-branch {
    position: relative;
    min-height: 215px;
    margin: 8px 0 4px;
}

.renewal-dev-relative-branch__axis {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 2px;
    background: var(--development-green);
    transform: translateX(-50%);
    opacity: .78;
}

.renewal-dev-relative-branch__connector {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 9%;
    border-top: 2px dashed rgba(47,124,169,.75);
    transform: translateY(-50%);
}

.renewal-dev-relative-node {
    position: absolute;
    z-index: 2;
    top: 50%;
    right: 2%;
    display: grid;
    grid-template-columns: 115px minmax(0,1fr);
    width: 38%;
    min-width: 280px;
    max-width: 325px;
    padding: 0;
    overflow: hidden;
    color: inherit;
    border: 1px dashed #9ebbad;
    border-radius: 4px;
    background: #fff;
    box-shadow: 5px 6px 0 rgba(44,111,139,.07);
    font: inherit;
    text-align: left;
    cursor: pointer;
    transform: translateY(-50%) rotate(.5deg);
}

.renewal-dev-relative-node__label {
    position: absolute;
    z-index: 3;
    top: 8px;
    left: 8px;
    padding: 4px 7px;
    color: #246b98;
    border: 1px dashed rgba(36,107,152,.42);
    background: rgba(247,252,255,.94);
    font-size: 7px;
    font-weight: 700;
    letter-spacing: .08em;
}

.renewal-dev-relative-node__image {
    min-height: 155px;
    background:
        url("../img/development/analyzer03-boat.jpg")
        center / contain no-repeat,
        #f4f8fa;
}

.renewal-dev-relative-node__body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: 30px 14px 17px;
}

.renewal-dev-relative-node__life {
    display: inline-flex;
    width: fit-content;
    margin-bottom: 5px;
    padding: 3px 6px;
    color: #2f7ca9;
    border: 1px dashed rgba(47,124,169,.3);
    background: #f4faff;
    font-size: 7px;
    font-weight: 700;
    letter-spacing: .09em;
}

.renewal-dev-relative-node__body strong {
    color: var(--development-text);
    font-size: 17px;
}

.renewal-dev-relative-node__body em {
    margin-top: 5px;
    color: #65747c;
    font-size: 9px;
    font-style: normal;
    line-height: 1.6;
}

.renewal-dev-relative-node__body b {
    margin-top: 10px;
    color: #2f7ca9;
    font-size: 8px;
}

@media screen and (max-width: 767px) {
    .renewal-dev-evolution-map-scroll .renewal-dev-relative-branch {
        width: 100% !important;
        min-height: 210px !important;
    }

    .renewal-dev-evolution-map-scroll .renewal-dev-relative-node {
        top: 50% !important;
        right: 2% !important;
        grid-template-columns: 112px minmax(0,1fr) !important;
        width: 38% !important;
        min-width: 275px !important;
        max-width: 315px !important;
        transform: translateY(-50%) !important;
    }

    .renewal-dev-evolution-map-scroll .renewal-dev-relative-node__image {
        min-height: 155px !important;
    }
}

/* ========================================
   LAB INTRO POINT CLOUD VIEWER
======================================== */

.renewal-development-intro__visual--pointcloud {
    position: relative;
    width: 100%;
    height: 520px;
    min-height: 520px;
    margin-bottom: 38px;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--development-line);
    background: #111 !important;
}

.renewal-development-intro__pointcloud {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 520px;
    border: 0;
    background: #111;
}


/* ========================================
   FIELD IMAGE
   development-field.jpg → development-intro.jpg
======================================== */

.renewal-development-field__visual {
    background:
        url("../img/development/development-intro.jpg")
        center / cover no-repeat !important;
}


/* ========================================
   SMARTPHONE
======================================== */

@media screen and (max-width: 767px) {

    .renewal-development-intro__visual--pointcloud {
        height: 360px;
        min-height: 360px;
    }

    .renewal-development-intro__pointcloud {
        min-height: 360px;
    }

}

/* ========================================
   LAB INTRO / ANALYZER01 POINT CLOUD NOTE
======================================== */

.renewal-development-pointcloud-note {
    position: relative;
    margin: -10px 0 34px;
    padding: 24px 26px 22px;
    border: 1px solid #d8e6dd;
    background:
        linear-gradient(
            135deg,
            rgba(0, 138, 68, 0.055) 0%,
            rgba(255, 255, 255, 0.98) 62%
        );
    box-shadow: 5px 6px 0 rgba(0, 138, 68, 0.055);
}

.renewal-development-pointcloud-note::before {
    position: absolute;
    top: -1px;
    left: 24px;
    width: 74px;
    height: 3px;
    background: var(--development-green);
    content: "";
}

.renewal-development-pointcloud-note__eyebrow {
    margin: 0 0 9px;
    color: var(--development-green);
    font-size: 9px;
    font-weight: 800;
    line-height: 1.4;
    letter-spacing: .17em;
}

.renewal-development-pointcloud-note__main {
    display: block;
}

.renewal-development-pointcloud-note h3 {
    margin: 0;
    color: var(--development-text);
    font-size: 20px;
    line-height: 1.55;
    letter-spacing: .02em;
}

.renewal-development-pointcloud-note__main p {
    max-width: 690px;
    margin: 10px 0 0;
    color: var(--development-text-soft);
    font-size: 13px;
    line-height: 1.9;
}

.renewal-development-pointcloud-note__hint {
    margin: 17px 0 0 !important;
    padding-top: 13px;
    color: #6b756e !important;
    border-top: 1px dashed #d8e3dc;
    font-size: 11px !important;
    font-weight: 700;
    line-height: 1.6 !important;
    letter-spacing: .03em;
}


/* ========================================
   SMARTPHONE
======================================== */

@media screen and (max-width: 767px) {

    .renewal-development-pointcloud-note {
        margin: -6px 0 28px;
        padding: 20px 17px 18px;
    }

    .renewal-development-pointcloud-note::before {
        left: 17px;
        width: 58px;
    }

    .renewal-development-pointcloud-note__main {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .renewal-development-pointcloud-note h3 {
        font-size: 18px;
        line-height: 1.55;
    }

    .renewal-development-pointcloud-note__main p {
        margin-top: 9px;
        font-size: 12px;
        line-height: 1.85;
    }





    .renewal-development-pointcloud-note__hint {
        margin-top: 14px !important;
        font-size: 10px !important;
    }
}

