/*  --------------------------------------
    基本設定
    --------------------------------------  */
@media (max-width: 500px) {
    html {
        font-size: 13pt;
    }
    .mobile_off {
        display: none !important;
    }
}
@media (min-width: 501px) {
    .mobile_on {
        display: none !important;
    }
}

/*  --------------------------------------
    ヘッダー
    --------------------------------------  */
@media (max-width: 500px) {
    .header {
        position: fixed;
        width: 100%;
    }
    .header_spacer {
        display: block;
    }
}

/* ヘッダーのロゴとサブタイトル */
@media (max-width: 700px) {
    .header .subtitle {
        display: none;
    }
}

/*  --------------------------------------
    メインビジュアル
    --------------------------------------  */
@media (max-width: 500px) {
    .main_visual {
        height: 24.0rem;
    }
}
@media (max-width: 400px) {
    .main_visual {
        background-size: auto 100%;
    }
}

/* キャッチフレーズ */
@media (max-width: 800px) {
    .main_visual .catchphrase .row1 {
        font-size: 1.3rem;
    }
    .main_visual .catchphrase .row2,
    .main_visual .catchphrase .row3 {
        font-size: 2.0rem;
        padding-top: 0.5rem;
    }
}
@media (max-width: 500px) {
    .main_visual .catchphrase {
        top: 1.0rem;
        left: 0.5rem;
        font-size: 1.3rem;
        line-height: 1.6rem;
    }
    .main_visual .catchphrase span:has(br) {
        line-height: 2.2rem;
    }
}

/* 画像とロゴ */
@media (max-width: 1200px) {
    .main_visual:not([data-var-mode="firstep"]) .main_visual_img {
        right: 0;
    }
}
@media (max-width: 1080px) {
    .main_visual[data-var-mode="firstep"] .main_visual_img {
        right: 0;
        background-position-x: 5.0rem;
    }
}
@media (max-width: 800px) {
    .main_visual_img {
        right: 0;
        top: 6.0rem;
    }
}
@media (max-width: 700px) {
    .main_visual:not([data-var-mode="firstep"]) .main_visual_img {
        right: 0;
        width: 100%;
        background-position-x: 0;
    }
    .main_visual[data-var-mode="firstep"] .main_visual_img {
        background-position-x: 0;
    }
}
@media (max-width: 600px) {
    .main_visual[data-var-mode="firstep"] .main_visual_img {
        background-position-x: -3.0rem;
    }
}
@media (max-width: 500px) {
    .main_visual_img {
        right: auto;
        width: 100%;
    }
    .main_visual:not([data-var-mode="firstep"]) .main_visual_img {
        background-position-x: -12.0rem;
    }
    .main_visual[data-var-mode="firstep"] .main_visual_img {
        background-position-x: -9.0rem;
    }
}

/*	--------------------------------------
	フッター
	--------------------------------------	*/
@media (max-width: 500px) {
    .footer > div {
        padding: 0.3rem 0.5rem;
        padding-top: 0.5rem;
        font-size: 0.9rem;
    }
}

/*  --------------------------------------
    文章の構成
    --------------------------------------  */
@media (max-width: 1000px) {
    section {
        padding-left:   2.0rem;
        padding-right:  2.0rem;
    }
}
@media (max-width: 500px) {
    section {
        padding-left:   1.0rem;
        padding-right:  1.0rem;
        padding-top:    1.0rem;
        padding-bottom: 4.0rem;
    }
}

/* 見出し１ */
@media (max-width: 800px) {
    h1 {
        padding: 0.6rem 1.0rem;
        font-size: 150%;
    }
    h1.mobile_nopad {
        padding: 0.6rem 0;
    }
}

/* 見出し２ */
@media (max-width: 800px) {
    h2 {
        padding: 0 3.0rem 0.5rem 3.0rem;
    }
}

/*  --------------------------------------
    要素を並べる行・説明欄
    --------------------------------------  */
/* 要素を並べる行 */
@media (max-width: 1250px) {
    .row.v1250 {
        flex-flow: column;
        justify-content: center;
        align-items: center;
        row-gap: 1.5rem;
    }
}
@media (max-width: 1100px) {
    .row.v1100 {
        flex-flow: column;
        justify-content: center;
        align-items: center;
        row-gap: 1.5rem;
    }
}
@media (max-width: 850px) {
    .row.v850 {
        flex-flow: column;
        justify-content: center;
        align-items: center;
        column-gap: 0;
    }
}
@media (max-width: 800px) {
    .row {
        column-gap: 1.0rem;
    }
}
@media (max-width: 500px) {
    .row:not(.nowrap) {
        flex-flow: column;
        justify-content: center;
        align-items: center;
    }
    .row:not(.nowrap):not(.norowgap) {
        row-gap: 1.5rem;
    }
}

/* 説明のフレーム */
@media (max-width: 900px) {
    .desc_frame.v900 {
        flex-flow: column;
        justify-content: center;
        align-items: center;
    }
}
@media (max-width: 800px) {
    .desc_frame {
        flex-flow: column;
        justify-content: center;
        align-items: center;
    }
}

/* 説明 */
@media (max-width: 900px) {
    .desc_frame.v900 > .desc {
        width: 100% !important;
        max-width: initial !important;
    }
    .desc_frame.v900 > .desc.blur {
        box-shadow: 0 0 3rem 0.7rem #e4fbf5;
    }
}
@media (max-width: 800px) {
    .desc {
        width: 100% !important;
    }
    .desc.blur {
        box-shadow: 0 0 3rem 0.7rem #e4fbf5;
    }
    .desc_frame > .desc {
        max-width: initial !important;
    }
}

/* メモ */
@media (max-width: 500px) {
    .memo > .text {
        font-size: 90%;
        padding: 1.0rem 0.5rem;
    }
}

/*  --------------------------------------
    流れ：横
    --------------------------------------  */
@media (max-width: 700px) {
    .flow_h {
        padding: 1.0rem 0;
    }
    .flow_h > div {
        padding: 1.0rem 0.7rem;
        min-width: 5.0rem;
    }
}
@media (max-width: 520px) {
    .flow_h {
        transform: scale(0.95);
        margin-left: -1.0rem;
    }
    .flow_h > div:last-child {
        padding: 1.0rem 0.0rem;
        min-width: 4.0rem;
    }
}
@media (max-width: 420px) {
    .flow_h {
        transform: scale(0.80);
    }
}

/* 矢印 */
@media (max-width: 500px) {
    .flow_h > div + div::before {
        width: calc(2.0rem / 3);
    }
    .flow_h > div:not(:last-child)::after {
        width: 0.25rem;
    }
}

/*  --------------------------------------
    流れ：縦
    --------------------------------------  */
@media (max-width: 800px) {
    table.flow td,
    table.flow th {
        width: 100%;
        display: block;
    }
    table.flow {
        margin-left: 0;
    }
    table.flow > tbody > tr > td:first-child {
        padding-bottom: 0;
    }
    table.flow > tbody > tr > td:last-child {
        padding-top: 0;
        padding-left: 0;
        padding-bottom: 2.0rem;
    }
}

/* 見出し */
@media (max-width: 500px) {
    .cap_flow {
        transform: scale(0.7);
        translate: -15%;
    }
}

/*	--------------------------------------
    補足事項など
    --------------------------------------	*/
@media (max-width: 500px) {
    .boxes {
        width: 100%;
    }
}

/*	--------------------------------------
    ショートパーツ
    --------------------------------------	*/
/* 左右位置 */
@media (max-width: 500px) {
    .mobile_center  { text-align: center !important; }
}

/* 前後の空白 */
@media (min-width: 501px) {
    .pc_lpad2       { padding-left: 2.0rem; }
}

/* 間隔 */
@media (max-width: 500px) {
    .mobile_nogap   { margin-top:     0      !important; }
    .mobile_pad30b  { padding-bottom: 2.0rem !important; }
    .mobile_gap10   { margin-top:   1.0rem; }
}
@media (min-width: 501px) {
    .pc_gap10       { margin-top:   1.0rem; }
}

/* フォント */
@media (max-width: 500px) {
    .mobile_font23  { font-size: 1.6rem !important; }
}

/* その他 */
@media (max-width: 500px) {
    /* 文字間を狭くする */
    .mobile_narrow  {
        letter-spacing: -0.15rem;
    }
}

/*	--------------------------------------
    個別の設定：概要図
    --------------------------------------	*/
/* 縮小 */
div:has(> .overview_quobitt) { transform-origin: top; }
@media (max-width: 1000px) {
    div:has(> .overview_quobitt) {
        column-gap: 1.0rem;
        transform: scale(0.70);
        margin-bottom: -6.0rem;
    }
}
@media (max-width: 680px) {
    div:has(> .overview_quobitt) {
        column-gap: 0.8rem;
        transform: scale(0.60);
        margin-bottom: -9.0rem;
    }
}
@media (max-width: 580px) {
    div:has(> .overview_quobitt) {
        transform: scale(0.53);
        margin-bottom: -11.0rem;
    }
}
@media (max-width: 500px) {
    div:has(> .overview_quobitt) {
        column-gap: 0;
        transform: scale(0.50);
        margin-bottom: -12.0rem;
    }
    .overview_mid > div:nth-child(2) > img {
        width: 7.5rem;
    }
    .overview_mid > div:nth-child(1) > .caption {
        top: 1.2rem;
    }
    .overview_mid > div:nth-child(3) > .caption {
        bottom: 1.0rem;
    }
    .overview_app {
        width: 11.0rem;
    }
}
@media (max-width: 450px) {
    div:has(> .overview_quobitt) {
        transform: scale(0.45);
        margin-bottom: -14.0rem;
    }
}

/*	--------------------------------------
    個別の設定：ノーコードのイメージ図
    --------------------------------------	*/
@media (max-width: 610px) {
    .fig_nocode.appbeads .adjuster {
        position: relative;
        margin-top: -2.7rem;
        margin-left: -1.3rem;
        transform-origin: top left;
        transform: scale(0.95);
    }
}
@media (max-width: 550px) {
    .fig_nocode.appbeads .adjuster {
        margin-left: -1.5rem;
        transform: scale(0.90);
    }
}
@media (max-width: 500px) {
    .fig_nocode.appbeads .adjuster {
        margin-left: -1.3rem;
        transform: scale(0.95);
    }
}
@media (max-width: 440px) {
    .fig_nocode .adjuster {
        margin-top: -2.7rem;
        margin-left: -1.3rem;
        transform-origin: top left;
        transform: scale(0.90);
    }
    .fig_nocode.appbeads .adjuster {
        transform: scale(0.83);
    }
}
@media (max-width: 420px) {
    .fig_nocode.appbeads > .caption {
        font-size: 1.2rem;
    }
}

/*	--------------------------------------
    個別の設定：手順
    --------------------------------------	*/
@media (max-width: 750px) {
    .procedure > .row {
        flex-flow: column;
        justify-content: center;
        align-items: center;
    }
    .procedure > .row > div:first-child {
        width: 100%;
    }
}

/*	--------------------------------------
    個別の設定：料金
    --------------------------------------	*/
@media (max-width: 735px) {
    .fee br.mobile_on {
        display: inline-block !important;
    }
    .fee > div:nth-child(1) {
        text-align: center;
    }
    .fee_details > .row {
        row-gap: 0.5rem;
        column-gap: 0;
    }
}
@media (max-width: 650px) {
    .fee { column-gap: 0.5rem; }
    .fee_details > div { padding: 1.4rem 0.8rem; }
}
@media (max-width: 580px) {
    .fee .row { flex-flow: column; }
}

/*	--------------------------------------
    個別の設定：ざっくりな仕様書
    --------------------------------------	*/
@media (max-width: 1100px) {
    .spec_memo + div {
        width: 28.0rem;
        min-width: 28.0rem;
    }
}
@media (max-width: 600px) {
    .spec_memo,
    .spec_memo + div {
        width: calc(100% - 2.0rem);
        min-width: calc(100% - 2.0rem);
    }
}

/*	--------------------------------------
    個別の設定：仕様書のテンプレート
    --------------------------------------	*/
@media (max-width: 1100px) {
    .spec_template {
        height: 25.0rem;
        max-height: initial;
    }
}
@media (max-width: 450px) {
    .spec_template {
        height: 20.0rem;
    }
}

/*	--------------------------------------
    個別の設定：はじめての内製化の背景
    --------------------------------------	*/
@media (max-width: 800px) {
    .bg_firstep {
        margin-top: 1.5rem;
        padding-top: 0;
        padding-left: 0;
        background-position: right -15.0rem top 3.5rem;
        height: auto;
    }
}

/*	--------------------------------------
    個別の設定：ファーステップのキャッチフレーズ・セクション
    --------------------------------------	*/
@media (max-width: 800px) {
    section.copy > div {
        padding: 3rem 0 0 2rem;
        flex-flow: column;
    }
}
@media (max-width: 800px) {
    section.copy .message .catchphrase {
        text-align: left;
    }
}

/*  --------------------------------------
    個別の設定：問い合わせ
    --------------------------------------  */
/* 問い合わせ項目 */
@media (max-width: 800px) {
    .inq_fields {
        margin-top: 1.5rem;
        margin-left: 1.0rem;
    }
    table.inq_fields td,
    table.inq_fields th {
        width: 100%;
        display: block;
    }
    .inq_fields tr td:first-child {
        text-align: left;
        padding-top: 1.4rem;
    }
    .inq_fields textarea {
        width: 100%;
    }
    .inq_info {
        margin-left: 1.0rem;
        width: calc(100% - 2.0rem);
    }
    .mobile_center {
        text-align: center;
    }
}

/*  --------------------------------------
    個別の設定：プライバシーポリシー
    --------------------------------------  */
@media (max-width: 500px) {
    .pp_frame {
        padding: 3.0rem 1.0rem;
    }
}
