@charset "utf-8";
@import "./default.css";

* {
    margin: 0;
    margin-block-start: 0;
    margin-block-end: 0;
    padding: 0;
    box-sizing: border-box;
    font-weight: normal;
    font-family: "メイリオ", Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}

/* 変数宣言 */
:root {
    --color_assistLogo: #282cb4;
    --color_assist1: #3861ad;
    --color_assist2: #4d80dd;
    --color_assist3: #c8e1ff;
    --color_menu: #6175A9;
    --color_menuHover: #8da5e2;
    --color_headline: rgba(0, 102, 255, 0.78);
    --width_max: 1200px;
    --width_max_num: 1200;
    /* --img_logo: min(80px,calc(80 * (100vw / var(--width_max_num)))); */
    --img_logo: clamp(40px, 5vw, 80px);
    /* フォントサイズ：20px～30px（可変） */
    --category_fontSize: clamp(1.25rem, 3vw, 1.875rem);
    --footer_logo: 95px;
    --link_fontSize: 1rem;
    --subLink_fontSize: 0.85rem;
    /* 高さ指定 */
    --height_header: calc(var(--img_logo) + 1.5rem);
    --height_category: clamp(125px, calc(250 * calc(100vw / 1200)), 250px);
    --height_breadcrumb: 2rem;
    --height_main: calc(100vh - calc(var(--height_header) + calc(var(--height_category) + var(--height_breadcrumb))));
}

.wrap {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 100vh;
}
header {
    width: 100%;
    position: fixed;
    top: 0;
    height: var(--height_header);
    background-color: #fff;
    z-index: 9999;
    border-bottom: 1px solid #05B2D7;
}

.headerArea {
    display: flex;
    justify-content: space-between;
    width: min(var(--width_max), 100%);
    height: 100%;
    margin: 0 auto;
    padding: 0.5rem;
}

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

.logo a {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    text-decoration: none;
    cursor: pointer;
}

.logoImg {
    width: var(--img_logo);
    height: var(--img_logo);
    object-fit: contain;
}

.logoText {
    margin-left: 0.5rem;
    font-size: clamp(1.2rem, 2vw, 1.5rem);
    font-weight: bold;
    color: var(--color_assistLogo);
}

/* 202509 新ヘッダーエリア指定（お試し）　ここから */
.header_inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: min(var(--width_max), 100%);
    height: 100%;
    margin-inline: auto;

    @media(width < 1200px) {
        padding-left: 0.5em;
    }
}

.logo_area {
    display: flex;
    align-items: center;
    gap: 0.5em;
    text-decoration: none;
}
.logo_img {
    display: flex;
    width: var(--img_logo);
    img {
        width: 100%;
    }
}
.logo_text {
    font-size: clamp(1.2rem, 2vw, 1.5rem);
    font-weight: bold;
    color: var(--color_assistLogo);
}

.logo_area:hover .logo_img {
    opacity: 0.7;
}

.logo_area:hover .logo_text {
    color: var(--color_assist2);
}

.arrow_type {
    display: block;
    width: 5px;
    aspect-ratio: 1;
    position: absolute;
    bottom: -0.25em;
    left: 50%;
    transform: translateX(-50%);
    /* border-top: 1px solid var(--color_menu); */
    /* border-left: 1px solid var(--color_menu); */
    border-bottom: 1px solid var(--color_menu);
    border-right: 1px solid var(--color_menu);
    rotate: 45deg;
    transition: 0.3s all;
}

.arrow_type:has(+ .subMenu a:hover) {
    transform: rotate(-180deg);
}

.menuItem a:hover+.arrow_type {
    bottom: -0.25em;
    transform: rotate(-180deg);
    /* border-top: 1px solid #fff; */
    /* border-left: 1px solid #fff; */
    /* border-bottom: 1px solid #fff; */
    /* border-right: 1px solid #fff; */
}

.subMenu {
    visibility: hidden;
    opacity: 0;
    position: absolute;
    top: 4em;
    left: 0;
    font-size: clamp(0.9rem, 1.5vw, 1.1rem);
    width: fit-content;
    list-style: none;
    background-color: #fff;
    border: 1px solid #aaa;
    transition: all 0.5s;
}

.subMenuItem {
    display: flex;
}

.subMenuItem a {
    display: block;
    width: 100%;
    height: 100%;
    color: var(--color_menu);
    line-height: 1;
    padding: 1em;
    text-align: left;
    text-decoration: none;
    transition: all 0.5s;
    white-space: nowrap;
}

.subMenuItem a:hover {
    color: #fff;
    background-color: var(--color_menuHover);
}

/* 202509 新ヘッダーエリア指定（お試し）　ここまで */
/* ハンバーグメニューの指定 ここから */
#burger {
    display: none;
    position: absolute;
    width: 32px;
    height: 28px;
    top: 50%;
    transform: translateY(-50%);
    right: 1.25rem;
}

#burger span {
    display: block;
    position: absolute;
    width: 32px;
    height: 3px;
    background-color: #000;
}

#burger span:first-child {
    top: 0;
}

#burger span:nth-child(2) {
    top: 12px;
}

#burger span:last-child {
    top: 24px;
}

/* ハンバーグメニューの指定 ここまで */
/* 通常メニュー指定　ここから */
nav {
    display: flex;
    align-items: center;
}

#menuTop {
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    gap: 0 0.5rem;
}

.menuItem {
    display: flex;
    align-items: center;
    list-style: none;
    position: relative;
}

.menuItem>a,
.menuItem>button {
    display: inline-block;
    color: var(--color_assist1);
    font-size: clamp(0.9rem, 1.5vw, 1.1rem);
    width: fit-content;
    line-height: 1;
    padding: 0.75em 1em;
    text-align: center;
    text-decoration: none;
    border-radius: 10px;
    border: none;
    background-color: transparent;
    transition: all 0.5s;
}

.menuItem>a:hover,
.menuItem>button:hover {
    color: #fff;
    background-color: var(--color_menuHover);
}

.menuItem:hover .subMenu {
    visibility: visible;
    opacity: 1;
}

/* 通常メニュー指定　ここまで */
/* カテゴリー設定　ここから */
.category {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: var(--height_category);
    position: relative;
    margin-top: calc(var(--img_logo) + 1.5rem);
}

.catImg {
    width: min(var(--width_max), 100%);
    height: var(--height_category);
    margin: 0 auto;
    overflow: hidden;
}

.catImg img {
    width: 100%;
    height: var(--height_category);
    object-fit: cover;
}

.typeLeft {
    object-position: left;
}

.catHeadline {
    width: 100%;
    height: calc(var(--category_fontSize) * 2);
    background-color: var(--color_headline);
    position: absolute;
    bottom: 0;
    left: 0;
}

.headlineItem {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    width: min(var(--width_max), 100%);
    margin: 0 auto;
}

.catPictogram {
    width: calc(var(--category_fontSize) * 2);
}

.catPictogram img {
    width: 100%;
}

.catName {
    padding-left: 0.5rem;
    letter-spacing: 0.3rem;
    max-width: 1200px;
    font-size: var(--category_fontSize);
    line-height: calc(var(--category_fontSize) * 2);
    color: #fff;
}

/* カテゴリー設定　ここまで */
/* パンくずリスト設定　ここから */
.breadcrumb {
    width: min(var(--width_max), 100%);
    margin: 0 auto;
    padding: 1rem 1rem 0;
    line-height: 1;
}

.breadcrumb li {
    display: inline;
    list-style: none;
}

.breadcrumb a {
    text-decoration: none;
    color: #415890;
}

.breadcrumb li:not(:last-child)::after {
    content: " > ";
}

.breadcrumb a:hover {
    text-decoration: underline;
}

.breadcrumb span {
    margin: 0 0.5rem;
}

/* パンくずリスト設定　ここまで */
/* メイン領域 */
main {
    background-image: url("../img/backgroundImgLeft.png"), url("../img/backgroundImgRight.png");
    background-repeat: repeat-y, repeat-y;
    background-position: top left, top right;
    /* メインの最低の高さを算出 */
    min-height: calc(var(--height_main) - 175px);
}

#Center {
    display: flex;
    align-items: center;
}

.contents {
    /* 一文字分のパディング領域を設けている */
    padding: 1rem;
    width: min(var(--width_max), 100%);
    margin: 0 auto;
}

/* 共通部品：見出し（h3） */
.headline {
    width: min(570px, 100%);
    font-size: 1.625rem;
    letter-spacing: 0.2em;
    background: url(../img/h3_background.png) no-repeat bottom left;
    padding-bottom: 0.5rem;
}

/* 共通部品：見出し（h4）  */
.subheading {
    display: flex;
    flex-wrap: wrap;
    font-size: 1.25rem;
    letter-spacing: 0.15em;
    background: url(../img/h4_background.png) no-repeat bottom left;
    padding: 0 0 1rem 1.5rem;
}

/* サブカテゴリー指定　ここから */
.subcategory {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    gap: min(3rem, 2.5vw) 0;
}

.subcategory a {
    width: 410px;
    position: relative;
}

.subcategory img {
    width: 100%;
}

.subcategory a::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background-color: #0066ff;
    opacity: 0;
    z-index: 2;
    transition: 0.5s all;
}

.subcategory a:hover::before {
    content: "";
    opacity: 0.1;
}

/* サブカテゴリー指定　ここまで */
/* 一覧レイアウト（在宅雇用推進活動・アシストワークスタイル・アシストCSR）　ここから */
.lists {
    display: flex;
    flex-direction: column;
    gap: 1em 0;
    margin: 2em auto;
}

.list {
    background-color: rgba(102, 204, 255, 0.35);
    padding: 1em;
    display: flex;
    flex-direction: column;
    gap: 1em 0;
}

.list_tittle {
    display: flex;
    flex-wrap: wrap;
    border-left: 7px solid #59B023;
    border-bottom: 2px dashed #59B023;
    line-height: 1.2;
    padding-left: 1em;
    font-weight: bold;
}

.list_item {
    display: flex;
    gap: 0 1rem;
}

.item_text a {
    text-decoration: none;
}

.item_text a:hover {
    text-decoration: underline;
}

.item_img {
    width: 150px;
    height: 130px;
    overflow: hidden;
}

.item_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
}

.item_text {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: calc(100% - calc(150px + 1em));
}

.view_area {
    display: flex;
    justify-content: flex-end;
}

.view_btn {
    background: #fff;
    width: calc(1.2rem * 7.5);
    height: calc(1.2rem * 1.5);
    border: solid 1px #7F7F7F;
    border-radius: 0.5em;
    display: flex;
    gap: 0 0.25rem;
    padding-left: 0.5rem;
    align-items: center
}

span.triangle {
    font-size: 1.2rem;
    color: #59B023;
    line-height: 1;
}

.view_btn a {
    font-size: 1.2rem;
    display: block;
    color: #000;
    line-height: 1;
    text-decoration: none;
}

.view_btn a:hover {
    text-decoration: underline;
}

.title_text {
    font-weight: bold;
    font-size: clamp(0.9rem, 3.8vw, 1rem);
}

/* 一覧レイアウト（在宅雇用推進活動・アシストワークスタイル・アシストCSR）　ここまで */
/* ページ選択ボタンレイアウト　ここから */
.switching {
    display: flex;
    gap: 0 0.5rem;
    margin-bottom: 50px;
    list-style: none;
    justify-content: center;
}

.switching_btn {
    width: 1.5em;
    height: 1.5em;
    font-size: 1.25rem;
    border: 1px solid #3861ad;
    text-align: center;
    border-radius: 0.25em;
}

.switching_btn a {
    line-height: 1.5;
    color: #3861ad;
    display: block;
    text-decoration: none;
    font-weight: bold;
}

.switching_btn.now {
    background-color: #3861ad;
    color: #fff;
    font-weight: bold;
    line-height: 1.5;
}

.switching_btn a:hover {
    text-decoration: underline;
}

.dotted {
    color: #3861ad;
}

/* ページ選択ボタンレイアウト　ここまで */
/* ◆リスト指定　ここから */
.rhombus_list {
    list-style: none;
    position: relative;
    margin-left: 1.5rem;
}

.rhombus_list::before {
    content: "◆";
    position: absolute;
    top: 0;
    left: 0;
    color: #9BBB59;
    margin-left: -1.5rem;
}
/* ◆リスト指定　ここまで */
/* フッター指定　ここから */
footer {
    width: 100%;
    background-color: var(--color_assist1);
}

.footerArea {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: min(1200px, 100%);
    color: #fff;
    margin: 0 auto;
    background-color: var(--color_assist2);
}

.footerArea1 {
    display: flex;
    justify-content: space-between;
    width: 100%;
    padding-left: 1rem;
}

.footerLeft {
    display: flex;
    flex-direction: column;
    width: calc(var(--link_fontSize) * 6);
    justify-content: space-between;
    padding: 0.5rem 0;
}

.footerLogo {
    width: var(--footer_logo);
    height: var(--footer_logo);
}

.footerLogo img {
    object-fit: contain;
}

.footerRight {
    display: flex;
    flex-direction: column;
}

.footerLink {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    max-width: calc(12em * 4);
    height: calc(var(--link_fontSize) * 2);
    margin-top: 1em;
}

.footerLinkId {
    width: 12em;
    position: relative;
    list-style: none;
    text-align: center;
}

.footerLinkId a {
    font-size: var(--link_fontSize);
    color: #fff;
    text-decoration: none;
}

.footerLinkId a:hover {
    text-decoration: underline;
}

.subLink {
    display: none;
    flex-direction: column;
    width: calc(var(--link_fontSize) * 12);
    position: absolute;
    top: calc(var(--link_fontSize) * 1.5);
    left: 0%;
    list-style: none;
    text-align: center;
    background-color: #fff;
    z-index: 100;
}

.subLink.open {
    display: block;
}

.subLink li a {
    display: inline-block;
    font-size: var(--subLink_fontSize);
    width: 100%;
    height: calc(var(--subLink_fontSize) * 2);
    line-height: 2;
    color: var(--color_assist1);
    text-decoration: none;
}

.subLink li a:hover {
    background-color: #eee;
    text-decoration: none;
}

.footerLink2 {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    align-items: center;
    line-height: 1.1;
    justify-content: center;
    text-align: center;
}

.footerLink2 a {
    font-size: var(--link_fontSize2);
    width: 12em;
    color: #fff;
    text-decoration: none;
}

.footerLink2 a:hover {
    text-decoration: underline;
}

.footerArea2 {
    display: flex;
    align-items: center;
    justify-content: center;
    width: calc(100% - 2rem);
    height: 4rem;
    text-align: center;
    border-top: 1px solid #fff;
}

.footerArea2 p {
    color: #fff;
}

/* フッター指定　ここまで */
/* トップへ戻る指定 ここから */
.pageTop {
    --circle_size: 65px;
    --circle_size: 65px;
    position: fixed;
    bottom: 1.5rem;
    bottom: 1.5rem;
    right: 1rem;
    width: var(--circle_size);
    height: var(--circle_size);
    width: var(--circle_size);
    height: var(--circle_size);
    opacity: 0;
    transition: 0.5s all;
}

.pageTop.active {
    opacity: 1;
}

.circle {
    position: relative;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background-color: #999;
}

.array {
    width: 40%;
    height: 40%;
    border-style: solid;
    border-color: #fff;
    border-width: 8px 8px 0px 0px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -30%) rotate(-45deg);
}

/* トップへ戻る指定 ここまで */
@media (max-width: 900px) {
    .circle {
        background-color: transparent;
    }

    .array {
        border-color: #555;
    }
}

/************************************/
/* メディア指定（ブレイクポイント） */
/************************************/
@media (max-width: 900px) {
    header {
        border-bottom: 1px solid var(--color_menu);
    }

    .headerArea {
        position: relative;
    }

    .logo {
        width: 85%;
        line-height: 1;
    }

    /* ハンバーガーメニュー動作指定　ここから */
    #burger {
        display: block;
    }

    #burger span,
    #burger.active span {
        transition: .3s all;
    }

    #burger.active span:first-child {
        top: 12px;
        transform: rotate(-45deg);
    }

    #burger.active span:nth-child(2) {
        opacity: 0;
    }

    #burger.active span:last-child {
        top: 12px;
        transform: rotate(45deg);
    }

    #menuTop {
        display: none;
        flex-direction: column;
        position: absolute;
        width: 50vw;
        height: 60vh;
        top: calc(var(--img_logo) + 1.5rem);
        right: 0;
        background-color: #fff;
        border: 1px solid var(--color_menu);
    }

    .menuItem {
        display: flex;
        position: relative;
        width: 100%;
        height: calc(60vh / 6);
        align-items: center;
        border-bottom: 1px solid var(--color_menu);
    }

    .menuItem:nth-child(6) {
        border-bottom: unset;
    }

    .menuItem a, .menuItem button {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        height: 100%;
        padding: 0;
        font-size: 1.1rem;
        border-radius: 0;
    }

    .menuItem a:hover {
        border-radius: unset;
    }

    .arrow_type {
        display: none;
    }

    /* ハンバーガーメニュー動作指定　ここまで */
    /* 202509 新ヘッダーエリア指定（お試し）　ここから */
    .subMenu {
        display: none;
    }

    /* 202509 新ヘッダーエリア指定（お試し）　ここまで */
    /* メイン領域 */
    main {
        /* フッターの高さが変わるためメインの高さも変更 */
        min-height: calc(var(--height_main) - 190px);
    }

    .subcategory {
        flex-direction: column;
        align-items: center;
    }

    /* フッター指定　ここから */
    .footerArea1 {
        justify-content: center;
        padding-left: 0;
    }

    .footerLeft {
        display: none;
    }

    .footerLink {
        display: none;
    }

    .footerLink2 a:first-child {
        display: none;
    }

    /* フッター指定　ここまで */
    /* トップへ戻る指定 ここから */
    .circle {
        background-color: transparent;
        border: 1px solid #555;
    }

    .array {
        border-color: #555;
    }

    /* トップへ戻る指定 ここまで */
}

/* 在宅雇用推進活動・アシストワークスタイル・アシストCSR共通部品　ここから */
@media (max-width:600px) {

    /* メイン領域 */
    main {
        background-image: url("../img/backgroundImgLeftSmf.png"), url("../img/backgroundImgRightSmf.png");
    }

    .list_item {
        flex-direction: column;
        align-items: center;
        gap: 1rem 0;
    }

    .item_img {
        width: 40vw;
        height: calc(40vw * calc(130 / 150));
    }

    .item_text {
        width: 100%;
    }
}

/* 在宅雇用推進活動・アシストワークスタイル・アシストCSR共通部品　ここまで */
@media (max-width:550px) {
    .footerLink2 {
        gap: 0 1rem;
        padding-block: 1em;
    }

    .footerLink2 a {
        width: fit-content;
    }
}

/**************************/
/* メディア指定（スマホ） */
/**************************/
@media (max-width:480px) {

    /* ハンバーグメニューの指定 ここから */
    #burger {
        width: 24px;
        height: 21px;
    }

    #burger span {
        width: 24px;
    }

    #burger span:first-child {
        top: 0;
    }

    #burger span:nth-child(2) {
        top: 9px;
    }

    #burger span:last-child {
        top: 18px;
    }

    #burger.active span:first-child,
    #burger.active span:last-child {
        top: 9px;
    }

    /* ハンバーグメニューの指定 ここまで */
    .headlineItem {
        justify-content: center;
    }

    /* サブカテゴリー指定　ここから */
    .subcategory a {
        width: 90%;
    }

    /* 一覧レイアウト（在宅雇用推進活動・アシストワークスタイル・アシストCSR） */
    .list_tittle {
        flex-direction: column;
    }

    /* メイン領域 */
    main {
        /* フッターの高さが変わるためメインの高さも変更 */
        min-height: calc(var(--height_main) - 110px);
    }

    /* フッター指定　ここから */
    .footerArea1 {
        flex-direction: column;
    }

    .footerLink {
        display: none;
    }

    .footerArea2 {
        font-size: 0.8rem;
    }

    /* フッター指定　ここまで */
}