@charset "UTF-8";

/* -------------------------
    このファイルは ict-dx.html（04_ICT・DX）専用のスタイルです。
    ヘッダー・フッター・共通ボタン等は css/common.css を参照しています。
    このページのみ Figma上で紺色の背景（#0073BA）とグラデーション装飾を使用しているため、
    配色トークンはこのファイル内で完結させています。
------------------------- */

:root {
    --ict-blue: #0072BA;
    --ict-tint: rgba(211, 244, 251, 0.3);
    --ict-gradient: linear-gradient(240deg, #7F2FFF 3.36%, #1BC0EE 103.75%);
    --ict-gradient-soft: linear-gradient(242deg, #71D0EB 3.36%, #8E6DC2 103.75%);
}

.ict-dx {
    min-width: 1000px;
    background: var(--ict-blue);
    color: #fff;
}

.ict-dx section > div {
    max-width: 1200px;
    margin: 0 auto;
}


/* -------------------------
    見出しピル（紫〜水色グラデーションの角丸見出し）
------------------------- */

.c-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 492px;
    padding: 12px 40px;
    margin: 0 auto 40px;
    background: var(--ict-gradient);
}

.c-pill__text {
    font-size: 44px;
    font-weight: 700;
    line-height: 1.35;
    color: #fff;
    text-align: center;
    white-space: nowrap;
}

.c-pill--lg {
    min-width: 612px;
    padding: 20px 40px;
}

.c-pill--lg .c-pill__text {
    white-space: normal;
}


/* -------------------------
    ヒーロー
------------------------- */

.ict-hero {
    position: relative;
    height: 1280px;
    padding: 370px 0 900px;
    overflow: clip;
    background-image:
        radial-gradient(ellipse at 20% 20%, rgba(106, 0, 255, 0.35), transparent 55%),
        radial-gradient(ellipse at 75% 55%, rgba(0, 200, 220, 0.3), transparent 55%),
        url("../images/ict-dx/bg_circuit.webp");
    background-repeat: no-repeat;
    background-position: 0 0, 0 0, center center;
    background-size: cover, cover, 2333px auto;
    background-blend-mode: screen, screen, screen;
}

.ict-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url("../images/ict-dx/bg_circuit.webp");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: 2333px auto;
    mix-blend-mode: screen;
    opacity: 0;
    pointer-events: none;
    animation: cyber-glitch-bg 6s -4s infinite;
}

@keyframes cyber-glitch-bg {
    0%, 90%, 100% {
        opacity: 0;
        transform: translate(0, 0);
        filter: none;
    }
    91% {
        opacity: 0.6;
        transform: translate(-6px, 2px);
        filter: hue-rotate(90deg) saturate(3);
    }
    93% {
        opacity: 0.5;
        transform: translate(6px, -2px);
        filter: hue-rotate(-90deg) saturate(3);
    }
    95% {
        opacity: 0.4;
        transform: translate(-3px, 0);
        filter: hue-rotate(45deg) saturate(2);
    }
    97% {
        opacity: 0;
        transform: translate(0, 0);
        filter: none;
    }
}

.ict-hero__inner {
    position: relative;
    padding: 0 220px;
    text-align: center;
}

.ict-hero__watermark {
    position: absolute;
    inset: -60px 0 auto 0;
    display: flex;
    justify-content: space-between;
    font-family: "Abel", sans-serif;
    font-size: 220px;
    line-height: 1;
    letter-spacing: 4px;
    color: transparent;
    pointer-events: none;
    user-select: none;
}

.ict-hero__watermark span:first-child {
    background: linear-gradient(160deg, #6a00ff, #0d09d4);
    -webkit-background-clip: text;
    background-clip: text;
    opacity: 0.65;
    mix-blend-mode: color-dodge;
}

.ict-hero__watermark span:last-child {
    align-self: flex-end;
    background: linear-gradient(160deg, #00eeff, #000ace);
    -webkit-background-clip: text;
    background-clip: text;
    opacity: 0.4;
    mix-blend-mode: color-dodge;
}

.ict-hero__title {
    position: relative;
    font-size: 50px;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 2.5px;
    color: #fff;
    animation: cyber-glitch-text 6s infinite;
    animation-delay: -4s;
}

@keyframes cyber-glitch-text {
    0%, 90%, 100% {
        text-shadow: none;
        transform: translate(0, 0);
    }
    91% {
        text-shadow: -4px 0 #ff2fc0, 4px 0 #00eeff;
        transform: translate(-3px, 0);
    }
    93% {
        text-shadow: 4px 1px #ff2fc0, -4px -1px #00eeff;
        transform: translate(3px, 0);
    }
    95% {
        text-shadow: -3px 0 #ff2fc0, 3px 0 #00eeff;
        transform: translate(-2px, 0);
    }
    97% {
        text-shadow: 2px 0 #ff2fc0, -2px 0 #00eeff;
        transform: translate(0, 0);
    }
}

.ict-hero__sub {
    position: relative;
    margin-top: 20px;
    font-size: 24px;
    letter-spacing: 2.4px;
    color: #fff;
}

.ict-hero__lead {
    position: relative;
    max-width: 900px;
    margin: 280px auto 0;
    font-size: 22px;
    line-height: 2.7;
    text-align: center;
    color: #fff;
}


/* -------------------------
    ひだまりDXのポイント
------------------------- */

.ict-points {
    position: relative;
    z-index: 0;
    overflow: clip;
    padding: 280px 220px 110px;
    text-align: center;
}

/* -------------------------
    背景装飾（虹色のグロー）
    ※グローが背景色と文字・写真の間に来るよう、コンテンツ側にもz-indexを設定
------------------------- */

.ict-points__inner,
.ict-result__inner,
.ict-status__inner {
    position: relative;
    z-index: 2;
}

.ict-deco-blob {
    position: absolute;
    z-index: -1;
    width: 700px;
    height: auto;
    pointer-events: none;
}

.ict-points .ict-deco-blob {
    top: 150px;
    right: -430px;
    width: 1200px;
    z-index: 1;
}

.ict-points__list {
    width: 1125px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 120px 40px;
    text-align: left;
    flex-direction: column;
    margin: 40px auto 0;
}

.ict-points__item {
    position: relative;
    width: 471px;
    padding-top: 20px;
}

.ict-icon_point01 {
    position: absolute;
    top: -10px;
    right: -630px;
    width: 395px;
    height: auto;
}

.ict-icon_point02_1 {
    position: absolute;
    top: -10px;
    right: -800px;
    width: 260px;
    height: auto;
}

.ict-icon_point02_2 {
    position: absolute;
    top: 90px;
    right: -440px;
    width: 340px;
    height: auto;
}

.ict-icon_point03 {
    position: absolute;
    top: 60px;
    right: -580px;
    width: 260px;
    height: auto;
}


.ict-points__label {
    font-family: "Abel", sans-serif;
    font-size: 60px;
    letter-spacing: 3px;
    text-transform: uppercase;
    background: var(--ict-gradient-soft);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    line-height: 1;
}

.ict-points__title {
    margin: 10px 0 30px;
    font-size: 38px;
    line-height: 1.26;
    font-weight: 700;
    color: #fff;
}

.ict-points__text {
    margin-top: 16px;
    font-size: 18px;
    line-height: 1.8;
    color: #fff;
    text-align: justify;
}


/* -------------------------
    劇的ビフォーアフター／ペーパレス化
------------------------- */

.ict-result {
    position: relative;
    z-index: 0;
    overflow: hidden;
    padding: 100px 220px;
    text-align: center;
}

.ict-result .ict-deco-blob {
    bottom: 0;
    left: -300px;
    width: 1000px;
    z-index: 1;
}

.ict-result__lead {
    margin-top: -10px;
    margin-bottom: 120px;
    font-size: 20px;
    color: #fff;
}

.ict-result__heading {
    margin-bottom: 30px;
    font-size: 36px;
    font-weight: 700;
    color: #fff;
}

.ict-time-compare {
    width: 100%;
    max-width: 1125px;
    margin: 20px auto 0;
}

.ict-time-compare__img {
    display: block;
    width: 100%;
    height: auto;
}

.ict-result__summary {
    max-width: 1125px;
    margin: 40px auto 180px;
    font-size: 18px;
    line-height: 2;
    color: #fff;
    text-align: left;
    padding: 0 60px;
}

.ict-paperless {
    width: 100%;
    max-width: 1125px;
    margin: 40px auto 0;
}

.ict-paperless__img {
    display: block;
    width: 100%;
    height: auto;
}


/* -------------------------
    チームで挑む組織への変革
------------------------- */

.ict-team {
    padding: 0 220px 100px;
    text-align: center;
}

.ict-team__heading {
    padding-top: 100px;
    margin-bottom: 80px;
    font-size: 36px;
    font-weight: 700;
    color: #fff;
    border-bottom: solid 1px #FFF;
    padding-bottom: 30px;
}

.ict-team__illust-wrap {
    max-width: 1002px;
    margin: 0 auto;
}

.ict-team__illust {
    display: block;
    width: 100%;
    border-radius: 20px;
}

.ict-team__caption {
    margin-top: 38px;
    font-size: 18px;
    color: rgba(255, 255, 255, 0.75);
    text-align: left;
}


/* -------------------------
    ICT・DXの成果と現在地
------------------------- */

.ict-status {
    position: relative;
    z-index: 0;
    overflow: clip;
    padding: 100px 220px;
    text-align: center;
}

.ict-status .ict-deco-blob {
    top: 80px;
    right: -260px;
    width: 850px;
    z-index: 1;
}

.ict-status-banner {
    width: 100%;
    max-width: 1125px;
    margin: 40px auto 0;
}

.ict-status-banner__img {
    display: block;
    width: 100%;
    height: auto;
}

.ict-status__summary {
    max-width: 1000px;
    margin: 50px auto;
    font-size: 18px;
    line-height: 1.8;
    color: #fff;
    text-align: left;
}


/* -------------------------
    ツール紹介
------------------------- */

.ict-tools {
    padding: 100px 220px 250px;
    text-align: center;
}

.ict-tools .c-pill__text {
    font-size: 40px;
}

.ict-tools__lead {
    max-width: 687px;
    margin: 40px auto 0;
    font-size: 20px;
    line-height: 2;
    color: #fff;
    text-align: justify;
}

.ict-tools__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    margin-top: 50px;
    text-align: left;
}

.ict-tools__item {
    position: relative;
    padding: 20px;
    background: rgba(255, 255, 255, 0.1);
    font-family: "Noto Sans JP", sans-serif;
}

.ict-tools__link {
    display: contents;
    color: inherit;
    text-decoration: none;
}

.ict-tools__link > * {
    transition: opacity 0.3s;
}

.ict-tools__link:hover > * {
    opacity: 0.7;
}

.ict-tools__photo {
    display: block;
    width: 100%;
    aspect-ratio: 320 / 197;
    object-fit: cover;
    margin-bottom: 20px;
}

.ict-tools__photo--contain {
    object-fit: contain;
}

.ict-tools__title {
    font-size: 20px;
    font-weight: 500;
    color: #fff;
    margin: 0 20px;
}

.ict-tools__text {
    margin: 20px;
    font-size: 18px;
    line-height: 1.6;
    color: #fff;
    text-align: justify;
}


/* -------------------------
    VOICE
------------------------- */

.ict-voice {
    position: relative;
    padding: 200px 220px;
    background: var(--ict-gradient);
    text-align: center;
}

.ict-voice__inner {
    position: relative;
}

.ict-voice__en {
    position: absolute;
    top: -242px;
    left: -780px;
    right: 0;
    font-family: "Abel", sans-serif;
    font-size: 300px;
    line-height: 1;
    letter-spacing: 3px;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.1));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    pointer-events: none;
}

.ict-voice__title {
    position: relative;
    width: fit-content;
    margin: 0px auto 0;
    font-size: 40px;
    font-weight: 700;
    color: #fff;
}

.ict-voice__title::after {
    content: "";
    display: block;
    width: 100%;
    height: 3px;
    margin-top: 14px;
    border-radius: 2px;
    background: #fff;
}

.ict-voice__list {
    display: flex;
    flex-direction: column;
    gap: 80px;
    margin-top: 60px;
}

.ict-voice__item {
    position: relative;
    width: 980px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 60px;
    padding: 55px 65px;
    background: rgba(255, 255, 255, 0.12);
    text-align: left;
    justify-content: center;
}

.ict-voice__item::after {
    content: "";
    position: absolute;
    left: 113px;
    bottom: -70px;
    width: 60px;
    height: 70px;
    background: rgba(255, 255, 255, 0.12);
    clip-path: polygon(0 0, 100% 0, 0 100%);
}

.ict-voice__item:nth-child(2)::after {
    left: auto;
    right: 114px;
    clip-path: polygon(0 0, 100% 0, 100% 100%);
}

.ict-voice__photo{
    display: flex;
    flex-direction: column;
    align-items: center;
}

.ict-voice__photo img{
    flex: none;
    width: 185px;
    height: 185px;
    border-radius: 50%;
    object-fit: cover;
}
.ict-voice__photo p{
    text-align: center;
    font-size: 17px;
    margin-top: 10px;
}

.ict-voice__photo--placeholder {
    background: #fff;
}

.ict-voice__name {
    display: none;
}

.ict-voice__bubble {
    width: 600px;
    flex: 1;
}

.ict-voice__catch {
    font-size: 26px;
    font-weight: 500;
    line-height: 1.5;
    color: #fff;
}

.ict-voice__text {
    margin-top: 25px;
    font-size: 18px;
    line-height: 1.8;
    color: #fff;
    text-align: justify;
}


/* -------------------------
    公的認定
------------------------- */

.ict-cert {
    position: relative;
    z-index: 0;
    overflow: hidden;
    padding: 100px 220px;
    text-align: center;
}

.ict-cert__heading {
    position: relative;
    width: fit-content;
    margin: 0 auto 40px;
    font-size: 40px;
    font-weight: 700;
    color: #fff;
}

.ict-cert__heading::after {
    content: "";
    display: block;
    width: 100px;
    height: 3px;
    margin: 14px auto 0;
    border-radius: 2px;
    background: #fff;
}

.ict-cert__body {
    display: flex;
    align-items: center;
    gap: 40px;
    max-width: 1002px;
    margin: 0 auto;
    text-align: left;
}

.ict-cert__badge {
    display: block;
    flex: none;
    width: 385px;
    height: 392px;
    object-fit: cover;
    border-radius: 0;
}

.ict-cert__text-wrap {
    font-family: "Noto Sans JP", sans-serif;
}

.ict-cert__title {
    font-size: 22px;
    font-weight: 700;
    line-height: 1.6;
    color: #fff;
}

.ict-cert__text {
    margin-top: 20px;
    font-size: 18px;
    line-height: 1.6;
    color: #fff;
    text-align: justify;
}


/* -------------------------
    CONTACT
------------------------- */

.ict-cta {
    position: relative;
    z-index: 0;
    padding: 220px 220px 400px;
    text-align: center;
}

.ict-cta .ict-deco-blob--lg {
    width: 2200px;
    top: -180px;
    right: 0;
}

.ict-cta__inner {
    position: relative;
}

.ict-cta__en {
    position: absolute;
    top: -286px;
    left: 0;
    right: 0;
    font-family: "Abel", sans-serif;
    font-size: 250px;
    line-height: 1;
    letter-spacing: 3px;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.1));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    pointer-events: none;
}

.ict-cta__en {
    animation: cyber-glitch-drop 6s infinite;
}

@keyframes cyber-glitch-drop {
    0%, 90%, 100% {
        filter: none;
        transform: translate(0, 0);
    }
    91% {
        filter: drop-shadow(-6px 0 #ff2fc0) drop-shadow(6px 0 #00eeff);
        transform: translate(-4px, 0);
    }
    93% {
        filter: drop-shadow(6px 1px #ff2fc0) drop-shadow(-6px -1px #00eeff);
        transform: translate(4px, 0);
    }
    95% {
        filter: drop-shadow(-4px 0 #ff2fc0) drop-shadow(4px 0 #00eeff);
        transform: translate(-2px, 0);
    }
    97% {
        filter: drop-shadow(2px 0 #ff2fc0) drop-shadow(-2px 0 #00eeff);
        transform: translate(0, 0);
    }
}

.ict-cta__buttons {
    position: relative;
    display: flex;
    justify-content: center;
    gap: 40px;
    margin-top: 130px;
}

.ict-cta__buttons .c-btn-more {
    background: var(--ict-gradient);
    border-radius: 10px;
    line-height: 1.3;
    margin: 0 auto;
}

.ict-cta__buttons .c-btn-more::after {
    background-image: url("../images/ict-dx/icon_arrow_circle.svg");
}

.ict-cta__buttons .c-btn-more::before {
    background: #5A1FB8;
}
