@charset "UTF-8";

/* =========================================================
   adtec CSS
   ========================================================= */

/* ---------- 1. Root & Basic Elements ---------- */
*,
*::before,
*::after {
    box-sizing: border-box;
}

body {
    font-family: 'Noto Sans JP', "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    font-weight: 400;
    /* Standard weight */
    margin: 0;
    color: #000;
    line-height: 1.6;
}

/* ---------- 2. Typography utilities ---------- */
.gfont {
    font-family: 'Lora', serif;
}

.bold {
    font-weight: bold;
}

.big20 {
    font-size: 20px;
}

.big25 {
    font-size: 25px;
}

.big30 {
    font-size: 30px;
}

.big40 {
    font-size: 40px;
}

.big50 {
    font-size: 50px;
    line-height: 0.9;
}

.big60 {
    font-size: 60px;
    line-height: 0.9;
}

.big70 {
    font-size: 70px;
    line-height: 0.9;
}

.big80 {
    font-size: 80px;
    line-height: 0.9;
}

.big100 {
    font-size: 100px;
    line-height: 0.9;
}

.text18 {
    font-size: 18px;
}

.small14 {
    font-size: 14px;
}

/* ---------- 3. Color utilities ---------- */
.gray {
    color: #6c757d;
}

.red {
    color: #EF3B09;
}

.blue {
    color: #201557;
}

/* ---------- Layout utilities ---------- */
.center {
    text-align: center;
}

/* 見出し左の縦棒（定番装飾）。クラスを足すだけ／外すだけ */
.bar-blue {
    margin-left: 16px;
    border-left: 5px solid #201557;
    padding-left: 8px;
}

.bar-red {
    margin-left: 1px;
    border-left: 5px solid #EF3B09;
    padding-left: 8px;
}

/* 背景画像（img/bg.png）を実寸でタイル並べ。グレー#f8f9faをフォールバック色に */
.bg-img {
    background-color: #f8f9fa;
    background-image: url(../img/bg.png);
    background-repeat: repeat;
}

/* 白背景カード（白bg＋枠＋角丸＋内側余白）。クラスを足すだけ */
/* height:100% で横並び時に等高（flex列の高さに揃う／単独では無害） */
.card {
    height: 100%;
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    padding: 24px;
}

/* ---------- Spacing utilities (0=0 / 1=4px / 2=8px / 3=16px / 4=24px / 5=48px / 6=64px / 7=96px / 8=128px) ---------- */
/* margin-top */
.mt-0 {
    margin-top: 0;
}

.mt-1 {
    margin-top: 4px;
}

.mt-2 {
    margin-top: 8px;
}

.mt-3 {
    margin-top: 16px;
}

.mt-4 {
    margin-top: 24px;
}

.mt-5 {
    margin-top: 48px;
}

.mt-6 {
    margin-top: 64px;
}

.mt-7 {
    margin-top: 96px;
}

.mt-8 {
    margin-top: 128px;
}

/* margin-bottom */
.mb-0 {
    margin-bottom: 0;
}

.mb-1 {
    margin-bottom: 4px;
}

.mb-2 {
    margin-bottom: 8px;
}

.mb-3 {
    margin-bottom: 16px;
}

.mb-4 {
    margin-bottom: 24px;
}

.mb-5 {
    margin-bottom: 48px;
}

/* margin-right (end) */
.me-0 {
    margin-right: 0;
}

.me-1 {
    margin-right: 4px;
}

.me-2 {
    margin-right: 8px;
}

.me-3 {
    margin-right: 16px;
}

.me-4 {
    margin-right: 24px;
}

.me-5 {
    margin-right: 48px;
}

/* margin-left (start) */
.ms-0 {
    margin-left: 0;
}

.ms-1 {
    margin-left: 4px;
}

.ms-2 {
    margin-left: 8px;
}

.ms-3 {
    margin-left: 16px;
}

.ms-4 {
    margin-left: 24px;
}

.ms-5 {
    margin-left: 48px;
}

/* margin-x auto */
.mx-auto {
    margin-left: auto;
    margin-right: auto;
}

/* padding */
.p-0 {
    padding: 0;
}

.p-1 {
    padding: 4px;
}

.p-2 {
    padding: 8px;
}

.p-3 {
    padding: 16px;
}

.p-4 {
    padding: 24px;
}

.p-5 {
    padding: 48px;
}

/* padding-top */
.pt-0 {
    padding-top: 0;
}

.pt-1 {
    padding-top: 4px;
}

.pt-2 {
    padding-top: 8px;
}

.pt-3 {
    padding-top: 16px;
}

.pt-4 {
    padding-top: 24px;
}

.pt-5 {
    padding-top: 48px;
}

/* padding-bottom */
.pb-0 {
    padding-bottom: 0;
}

.pb-1 {
    padding-bottom: 4px;
}

.pb-2 {
    padding-bottom: 8px;
}

.pb-3 {
    padding-bottom: 16px;
}

.pb-4 {
    padding-bottom: 24px;
}

.pb-5 {
    padding-bottom: 48px;
}

.pb-6 {
    padding-bottom: 64px;
}

.pb-7 {
    padding-bottom: 96px;
}

.pb-8 {
    padding-bottom: 128px;
}

/* padding-left (start) */
.ps-0 {
    padding-left: 0;
}

.ps-1 {
    padding-left: 4px;
}

.ps-2 {
    padding-left: 8px;
}

.ps-3 {
    padding-left: 16px;
}

.ps-4 {
    padding-left: 24px;
}

.ps-5 {
    padding-left: 48px;
}

/* padding-y */
.py-0 {
    padding-top: 0;
    padding-bottom: 0;
}

.py-1 {
    padding-top: 4px;
    padding-bottom: 4px;
}

.py-2 {
    padding-top: 8px;
    padding-bottom: 8px;
}

.py-3 {
    padding-top: 16px;
    padding-bottom: 16px;
}

.py-4 {
    padding-top: 24px;
    padding-bottom: 24px;
}

.py-5 {
    padding-top: 48px;
    padding-bottom: 48px;
}

/* =========================================================
   Grid System (独自・全カラム / Bootstrap互換)
   Portions adapted from Bootstrap v5.3.3 (https://getbootstrap.com)
   Copyright 2011-2024 The Bootstrap Authors / Licensed under MIT
   ========================================================= */

/* Container */
.container,
.container-fluid {
    width: 100%;
    padding-right: 12px;
    padding-left: 12px;
    margin-right: auto;
    margin-left: auto;
}

/* ---------- Animation: fade-up (WOW.js) ---------- */
.wow {
    visibility: hidden;
}

.fadeInUp {
    animation-name: fadeInUp;
    animation-duration: 0.8s;
    animation-fill-mode: both;
}

@keyframes fadeInUp {
    0% {
        opacity: 0;
        transform: translate3d(0, 10px, 0);
    }

    30% {
        opacity: 0;
        transform: translate3d(0, 10px, 0);
    }

    100% {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes slideDown {
    from {
        transform: translateY(-100%);
        opacity: 0;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}

@media (min-width: 576px) {
    .container {
        max-width: 540px;
    }
}

@media (min-width: 768px) {
    .container {
        max-width: 720px;
    }
}

@media (min-width: 992px) {
    .container {
        max-width: 960px;
    }
}

@media (min-width: 1200px) {
    .container {
        max-width: 1140px;
    }
}

@media (min-width: 1400px) {
    .container {
        max-width: 1320px;
    }
}

/* Row */
.row {
    display: flex;
    flex-wrap: wrap;
    margin-right: -12px;
    margin-left: -12px;
}

.row>* {
    flex-shrink: 0;
    width: 100%;
    max-width: 100%;
    padding-right: 12px;
    padding-left: 12px;
}

/* Gutters g-0 〜 g-5 */
.row.g-0 {
    --gutter-x: 0;
    --gutter-y: 0;
}

.row.g-1 {
    --gutter-x: 4px;
    --gutter-y: 4px;
}

.row.g-2 {
    --gutter-x: 8px;
    --gutter-y: 8px;
}

.row.g-3 {
    --gutter-x: 16px;
    --gutter-y: 16px;
}

.row.g-4 {
    --gutter-x: 24px;
    --gutter-y: 24px;
}

.row.g-5 {
    --gutter-x: 48px;
    --gutter-y: 48px;
}

.row[class*="g-"] {
    margin-top: calc(-1 * var(--gutter-y));
    margin-right: calc(-0.5 * var(--gutter-x));
    margin-left: calc(-0.5 * var(--gutter-x));
}

.row[class*="g-"]>* {
    padding-right: calc(var(--gutter-x) * 0.5);
    padding-left: calc(var(--gutter-x) * 0.5);
    margin-top: var(--gutter-y);
}

/* Columns — base (xs) */
.col-1 {
    flex: 0 0 auto;
    width: 8.333333%;
}

.col-2 {
    flex: 0 0 auto;
    width: 16.666667%;
}

.col-3 {
    flex: 0 0 auto;
    width: 25%;
}

.col-4 {
    flex: 0 0 auto;
    width: 33.333333%;
}

.col-5 {
    flex: 0 0 auto;
    width: 41.666667%;
}

.col-6 {
    flex: 0 0 auto;
    width: 50%;
}

.col-7 {
    flex: 0 0 auto;
    width: 58.333333%;
}

.col-8 {
    flex: 0 0 auto;
    width: 66.666667%;
}

.col-9 {
    flex: 0 0 auto;
    width: 75%;
}

.col-10 {
    flex: 0 0 auto;
    width: 83.333333%;
}

.col-11 {
    flex: 0 0 auto;
    width: 91.666667%;
}

.col-12 {
    flex: 0 0 auto;
    width: 100%;
}

/* sm (576px+) */
@media (min-width: 576px) {
    .col-sm-1 {
        flex: 0 0 auto;
        width: 8.333333%;
    }

    .col-sm-2 {
        flex: 0 0 auto;
        width: 16.666667%;
    }

    .col-sm-3 {
        flex: 0 0 auto;
        width: 25%;
    }

    .col-sm-4 {
        flex: 0 0 auto;
        width: 33.333333%;
    }

    .col-sm-5 {
        flex: 0 0 auto;
        width: 41.666667%;
    }

    .col-sm-6 {
        flex: 0 0 auto;
        width: 50%;
    }

    .col-sm-7 {
        flex: 0 0 auto;
        width: 58.333333%;
    }

    .col-sm-8 {
        flex: 0 0 auto;
        width: 66.666667%;
    }

    .col-sm-9 {
        flex: 0 0 auto;
        width: 75%;
    }

    .col-sm-10 {
        flex: 0 0 auto;
        width: 83.333333%;
    }

    .col-sm-11 {
        flex: 0 0 auto;
        width: 91.666667%;
    }

    .col-sm-12 {
        flex: 0 0 auto;
        width: 100%;
    }
}

/* md (768px+) */
@media (min-width: 768px) {
    .col-md-1 {
        flex: 0 0 auto;
        width: 8.333333%;
    }

    .col-md-2 {
        flex: 0 0 auto;
        width: 16.666667%;
    }

    .col-md-3 {
        flex: 0 0 auto;
        width: 25%;
    }

    .col-md-4 {
        flex: 0 0 auto;
        width: 33.333333%;
    }

    .col-md-5 {
        flex: 0 0 auto;
        width: 41.666667%;
    }

    .col-md-6 {
        flex: 0 0 auto;
        width: 50%;
    }

    .col-md-7 {
        flex: 0 0 auto;
        width: 58.333333%;
    }

    .col-md-8 {
        flex: 0 0 auto;
        width: 66.666667%;
    }

    .col-md-9 {
        flex: 0 0 auto;
        width: 75%;
    }

    .col-md-10 {
        flex: 0 0 auto;
        width: 83.333333%;
    }

    .col-md-11 {
        flex: 0 0 auto;
        width: 91.666667%;
    }

    .col-md-12 {
        flex: 0 0 auto;
        width: 100%;
    }
}

/* lg (992px+) */
@media (min-width: 992px) {
    .col-lg-1 {
        flex: 0 0 auto;
        width: 8.333333%;
    }

    .col-lg-2 {
        flex: 0 0 auto;
        width: 16.666667%;
    }

    .col-lg-3 {
        flex: 0 0 auto;
        width: 25%;
    }

    .col-lg-4 {
        flex: 0 0 auto;
        width: 33.333333%;
    }

    .col-lg-5 {
        flex: 0 0 auto;
        width: 41.666667%;
    }

    .col-lg-6 {
        flex: 0 0 auto;
        width: 50%;
    }

    .col-lg-7 {
        flex: 0 0 auto;
        width: 58.333333%;
    }

    .col-lg-8 {
        flex: 0 0 auto;
        width: 66.666667%;
    }

    .col-lg-9 {
        flex: 0 0 auto;
        width: 75%;
    }

    .col-lg-10 {
        flex: 0 0 auto;
        width: 83.333333%;
    }

    .col-lg-11 {
        flex: 0 0 auto;
        width: 91.666667%;
    }

    .col-lg-12 {
        flex: 0 0 auto;
        width: 100%;
    }
}

/* xl (1200px+) */
@media (min-width: 1200px) {
    .col-xl-1 {
        flex: 0 0 auto;
        width: 8.333333%;
    }

    .col-xl-2 {
        flex: 0 0 auto;
        width: 16.666667%;
    }

    .col-xl-3 {
        flex: 0 0 auto;
        width: 25%;
    }

    .col-xl-4 {
        flex: 0 0 auto;
        width: 33.333333%;
    }

    .col-xl-5 {
        flex: 0 0 auto;
        width: 41.666667%;
    }

    .col-xl-6 {
        flex: 0 0 auto;
        width: 50%;
    }

    .col-xl-7 {
        flex: 0 0 auto;
        width: 58.333333%;
    }

    .col-xl-8 {
        flex: 0 0 auto;
        width: 66.666667%;
    }

    .col-xl-9 {
        flex: 0 0 auto;
        width: 75%;
    }

    .col-xl-10 {
        flex: 0 0 auto;
        width: 83.333333%;
    }

    .col-xl-11 {
        flex: 0 0 auto;
        width: 91.666667%;
    }

    .col-xl-12 {
        flex: 0 0 auto;
        width: 100%;
    }
}

/* xxl (1400px+) */
@media (min-width: 1400px) {
    .col-xxl-1 {
        flex: 0 0 auto;
        width: 8.333333%;
    }

    .col-xxl-2 {
        flex: 0 0 auto;
        width: 16.666667%;
    }

    .col-xxl-3 {
        flex: 0 0 auto;
        width: 25%;
    }

    .col-xxl-4 {
        flex: 0 0 auto;
        width: 33.333333%;
    }

    .col-xxl-5 {
        flex: 0 0 auto;
        width: 41.666667%;
    }

    .col-xxl-6 {
        flex: 0 0 auto;
        width: 50%;
    }

    .col-xxl-7 {
        flex: 0 0 auto;
        width: 58.333333%;
    }

    .col-xxl-8 {
        flex: 0 0 auto;
        width: 66.666667%;
    }

    .col-xxl-9 {
        flex: 0 0 auto;
        width: 75%;
    }

    .col-xxl-10 {
        flex: 0 0 auto;
        width: 83.333333%;
    }

    .col-xxl-11 {
        flex: 0 0 auto;
        width: 91.666667%;
    }

    .col-xxl-12 {
        flex: 0 0 auto;
        width: 100%;
    }
}

a {
    color: inherit;
    text-decoration: none;
    transition: opacity .2s ease;
}

a:hover {
    opacity: 0.7;
}

/* ---------- 4. Header ---------- */
.header {
    width: 100%;
    background: #fff;
    padding: 15px 0;
    animation: slideDown 0.7s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.header .container {
    display: flex;
    justify-content: center;
    align-items: center;
}

.logo {
    display: inline-flex;
    align-items: center;
}

.logo img {
    height: 60px;
    width: auto;
    display: block;
}

/* ---------- 5. Layout ---------- */
.main {
    width: 100%;
}

/* section はスペースを持たない素タグ。セクション間隔は HTML 側の mt-* で付ける */
/* flow-root で BFC 化し、margin の相殺（突き抜け・融合）を止めて container の mt-* を常に効かせる */
.main>section {
    display: flow-root;
}

/* ---------- 6. Footer ---------- */
.footer {
    padding: 64px 0 32px;
    background: #f8f9fa;
}

.footer.bg-blue,
.footer.bg-blue a {
    color: #fff;
}

.footer2 {
    text-align: center;
    border-top: 1px solid #dee2e6;
    margin-top: 48px;
    padding-top: 24px;
}

.footer.bg-blue .footer2 {
    border-top-color: #45527E;
}

.copyright {
    font-size: 14px;
    color: #B0B8CF;
}

/* ---------- 7. Media Queries ---------- */
/* 表示切替（全サイト共通クラス）: モバイル非表示 */
.mobileoff {
    display: none;
}

@media (min-width: 768px) {
    .mobileoff {
        display: revert;
    }
}

/* =========================================================
   Buttons (Bootstrap独立化対応)
   ========================================================= */
.btn {
    display: inline-block;
    padding: 6px 12px;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    text-align: center;
    vertical-align: middle;
    cursor: pointer;
    user-select: none;
    border: 1px solid transparent;
    border-radius: 6px;
    text-decoration: none;
    transition: color .15s ease, background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
    color: var(--bs-btn-color);
    background-color: var(--bs-btn-bg);
    border-color: var(--bs-btn-border-color);
}

.btn:hover {
    color: var(--bs-btn-hover-color);
    background-color: var(--bs-btn-hover-bg);
    border-color: var(--bs-btn-hover-border-color);
}

.btn:focus-visible {
    outline: 0;
    box-shadow: 0 0 0 4px #F1808B;
}

.btn:active {
    color: var(--bs-btn-active-color);
    background-color: var(--bs-btn-active-bg);
    border-color: var(--bs-btn-active-border-color);
}

.btn-lg {
    padding: 8px 16px;
    font-size: 20px;
    border-radius: 8px;
}

.btn-blue {
    --bs-btn-color: #fff;
    --bs-btn-bg: #201557;
    --bs-btn-border-color: #201557;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #222F57;
    --bs-btn-hover-border-color: #222F57;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #1A2444;
    --bs-btn-active-border-color: #1A2444;
}

.btn-red {
    --bs-btn-color: #fff;
    --bs-btn-bg: #EF3B09;
    --bs-btn-border-color: #EF3B09;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #C00013;
    --bs-btn-hover-border-color: #C00013;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #A30010;
    --bs-btn-active-border-color: #A30010;
}

/* =========================================================
   Background & Text Color utilities
   ========================================================= */

.bg-blue {
    background-color: #201557;
}

.bg-light {
    background-color: #f8f9fa;
}

.bg-red {
    background-color: #EF3B09;
}

.text-red {
    color: #EF3B09;
}

.text-white {
    color: #fff;
}

/* =========================================================
   Tables (独自・実使用分のみ)
   ========================================================= */

.table {
    width: 100%;
    margin-bottom: 16px;
    vertical-align: top;
    border-color: #dee2e6;
}

.table th {
    font-weight: 400;
    text-align: left;
    white-space: nowrap;
}

.dot {
    margin-right: 2px;
}

/* リスト先頭のアイコン画像（check.png 等）。本文に合わせ20px・中央揃え */
.check {
    width: 20px;
    height: auto;
    margin-right: 8px;
    margin-top: -2px;
    vertical-align: middle;
}

.table> :not(caption)>*>* {
    padding: 8px 8px;
    border-bottom: 1px solid #dee2e6;
}

.table>thead {
    vertical-align: bottom;
}

.table>tbody {
    vertical-align: inherit;
}

.lh-sm {
    line-height: 1.4;
}

/* =========================================================
   Display / Flex / Sizing / Misc Utilities
   ========================================================= */

/* display */
.d-flex {
    display: flex;
}

.d-block {
    display: block;
}

.d-none {
    display: none;
}

@media (min-width: 768px) {
    .d-md-block {
        display: block;
    }

    .d-md-none {
        display: none;
    }
}

/* flex alignment */
.align-items-center {
    align-items: center;
}

.align-items-start {
    align-items: flex-start;
}

.justify-content-center {
    justify-content: center;
}

/* sizing */
.min-vh-100 {
    min-height: 100vh;
}

.img-fluid {
    max-width: 100%;
    height: auto;
}

/* position */
.sticky-top {
    position: sticky;
    top: 0;
    z-index: 1020;
}

/* rounded */
.rounded {
    border-radius: 6px;
}

.rounded-pill {
    border-radius: 800px;
}

/* lists / links / borders */
.list-unstyled {
    padding-left: 0;
    list-style: none;
}

.text-decoration-none {
    text-decoration: none;
}

.border-bottom {
    border-bottom: 1px solid #dee2e6;
}

/* font weight */
.fw-normal {
    font-weight: 400;
}