html {
    scroll-behavior: smooth;
}

body {
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 400;
    font-style: normal;
    height: 100%;
    background-color: #e6eaf1;
    color: #000000;
    padding-top: 60px;
}

.wrapper {
    position: relative;
    min-height: 100vh;
    padding-bottom: 240px;
}

header {
    position: fixed;
    width: 100%;
    height: 60px;
    box-sizing: border-box;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    z-index: 3;
}

main {}

h1:first-letter {
  font-size: 150%;
  color: #0071b3;
}

.login {
    max-width: 540px;
}

footer {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 160px;
}


/* ---------- スクロール調整 ---------- */

[id] {
    scroll-margin-top: 60px;
    /* ヘッダーの高さに合わせる */
}


/* ---------- withユーティリティ ---------- */

.max-w {
    max-width: 1080px;
    margin: auto;
}

.max-w-900 {
    max-width: 900px;
}

.max-w-480 {
    max-width: 480px;
}

.w-80 {
    width: 80px;
}

.w-40 {
    width: 32px;
}

.w-48 {
    width: 48px !important;
}

.min-w {
    min-width: 180px !important;
}

.td-w-50 {
    width: 50% !important;
}

/* ---------- heightユーティリティ ---------- */

.h-24 {
    height: 24px;
}

.h-32 {
    height: 32px
}

.h-40 {
    height: 40px;
}

.h-180 {
    height: 180px;
}

/* ---------- UIユーティリティ ---------- */

.no-scroll {
    overflow: hidden;
}

.modal-display-switch-contents {
    display: none;
}


/* ---------- カラーユーティリティ ---------- */

/* イエロー */
.bg-warning-hover {
    background-color: #ffc107;
}

.bg-warning-hover:hover {
    background-color: #f8cb43;
}

/* ブラック */
.bg-black-hover {
    background-color: #000000;
}

.bg-black-hover:hover {
    background-color: #3a3a3a80;
}

/* グレー */
.bg-secondary-hover {
    background-color: #6C757D;
}

.bg-secondary-hover:hover {
    background-color: #6d6d6d80;
}

/* 緑 */
.bg-success-hover {
    background-color: #198754;
}

.bg-success-hover:hover {
    background-color: #4c8a6d;
}

/* ブルー */
.bg-blue {
    background-color: #4872b1 !important;
}

.bg-blue-hover {
    background-color: #4872b1 !important;
}

.bg-blue-hover:hover {
    background-color: #2d3c53 !important;
}

/* ネイビー */
.bg-navy {
    background-color: #002c6e !important;
}

.bg-navy-hover {
    background-color: #002c6e !important;
}

.bg-navy-hover:hover {
    background-color: #30538580 !important;
}

.border-navy {
    border-color: #002c6e !important;
}

/* オレンジ */
.text-orange {
    color: #d67014;
}

.bg-orange {
    background-color: #d67014;
}

.bg-orange-hover {
    background-color: #da7721;
}

.bg-orange-hover:hover {
    background-color: #ff861c;
}

.bg-transparent {
    background-color: transparent !important;
}



/* ----------------- ハンバーガーメニュー ----------------- */

#check input[type="checkbox"] {
    visibility: hidden;
}

.hamburger {
    width: 32px;
    height: 80px;
    cursor: pointer;
}

.hamburger span,
.hamburger span::before,
.hamburger span::after {
    position: absolute;
    display: block;
    content: "";
    height: 2px;
    width: 100%;
    background-color: #fff;
    transition: all 0.5s;
}

.hamburger span::before {
    top: -10px;
}

.hamburger span::after {
    bottom: -10px;
}

input[type="checkbox"]:checked+.hamburger span {
    background-color: transparent;
}

input[type="checkbox"]:checked+.hamburger span::before {
    top: 0;
    transform: rotate(45deg);
}

input[type="checkbox"]:checked+.hamburger span::after {
    bottom: 0;
    transform: rotate(-45deg);
}

.nav {
    width: 90%;
    max-width: 780px;
    top: 80px;
    right: -120%;
    transition: all 0.5s;
}

input[type="checkbox"]:checked~.nav {
    right: 0;
}


/* ----------------- ページネーションー ----------------- */

.page-icon {
    width: 40px;
    height: 40px;
}


/* ----------------- テーブルアコーディオン ----------------- */

.table-accordion-btn {
    background-color: transparent;
}

.table-accordion-btn::after {
    content: "▼";
    display: inline-block;
    margin-left: .5em;
    transition: transform 0.3s ease;
    /* アニメーション */
}

/* 開いたとき */
.table-accordion-btn[aria-expanded="true"]::after {
    transform: rotate(180deg);
    /* 上向きに回転 */
}


/* ----------------- 案件情報詳細 ステータスバー ----------------- */

.progressbar {
    position: relative;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: space-between;
    font-size: 0.8rem;
    line-height: 1.2;
}

.progressbar li {
    position: relative;
    list-style-type: none;
    text-align: center;
    text-transform: uppercase;
    width: 33.333%;
    color: #999999;
    font-weight: bold;
    counter-increment: steps;
}

.progressbar li:before {
    display: block;
    width: 26px;
    height: 26px;
    margin: 8px auto 8px auto;
    content: '';
    line-height: 26px;
    font-size: 12px;
    text-align: center;
    border-radius: 50%;
    background-color: #F5F5F5;
    content: counter(steps);
}

.progressbar li:after {
    position: absolute;
    z-index: -1;
    top: 20px;
    left: -50%;
    width: 100%;
    height: 2px;
    content: '';
    background-color: #F5F5F5;
}

.progressbar li:first-child:after {
    content: none;
}

.progressbar li.active,
.progressbar li.complete {
    color: #0070BD;
}

.progressbar li.active:before,
.progressbar li.complete:before {
    background-color: #0070BD;
    color: #FFF;
}

.progressbar li.active:after,
.progressbar li.complete:after {
    background-color: #0070BD;
}


/* ----------------- フォーム ----------------- */

.error {
    border-color: #ff0000;
    color: #ff0000;
}

input.error {
    background-color: #ff00002d;
    border: 2px solid #ff0000;
}


/* ----------------- フェードイン ----------------- */

.container {
    overflow: hidden;
}

.slidein {
    /* 装飾に関わるスタイルは省略 */
    margin: 50px auto;
    transition: 0.5s cubic-bezier(0.75, 0, 0.25, 1);
}

.slide_left {
    transform: translateX(calc(-50vw - 50%));
}

.slide_right {
    transform: translateX(calc(50vw + 50%));
}

.show {
    transform: translateX(0);
}