@charset "UTF-8";
/*
 * 自動生成ファイルです。このファイル自体は直接編集しないでください。
 * CSSを直すときは、下記の元ファイルを編集してください（編集すると
 * 自動的にこの結合ファイルが作り直されます）：
 *   - /home/mediartz/mediartz.co.jp/public_html/wp-content/themes/swell_child/assets/css/blocks.css
 *   - /home/mediartz/mediartz.co.jp/public_html/wp-content/themes/swell_child/assets/css/reset.css
 */

/* ---- child_blocks (blocks.css) ---- */
@charset "UTF-8";
/* ==========================================================================
   ブロック用スタイル（フロント／ブロックエディタ共通）

   このファイルは以下の2箇所から読み込まれる 1 つのソース。
     - フロント : functions.php の wp_enqueue_scripts（child_style の直後）
     - 編集画面 : functions.php の add_editor_style()
   ブロックの見た目に関する CSS はここだけに書くこと（style.css 側に
   同じルールを重複させない）。

   逆に、ページ全体のレイアウトやトークン定義など「編集画面に持ち込むと
   崩れるもの」はここに書かず style.css に置く。
   ========================================================================== */

/* 本文中の見出し（.post_content > h2）の左右マイナスマージンを打ち消す

   SWELL本体（swell/build/css/main.css・editor_style.css）は標準で
       .post_content > h2 { margin-left: var(--swl-h2-margin--x, 0); margin-right: var(--swl-h2-margin--x, 0); }
   を当てている。--swl-h2-margin--x は :root で -2vw（600px未満）／
   -16px（600px以上）というマイナス値で、h2だけ段落より左右に少しはみ出す
   （h2の背景ボックスを本文より広く見せるためのSWELL側の既定デザイン）。
   このサイトではそのズレが不要なので、変数そのものを0にして
   標準どおり段落と左右を揃える。
   セレクタを直接上書きするのではなく変数を潰しているのは、SWELL側が
   PC/SPの2つのブレークポイントでそれぞれ別の値を:rootに設定しているため
   （変数を0にすれば、その2箇所を個別に追いかけなくて済む）。 */
:root {
    --swl-h2-margin--x: 0;
}

   .p-toc.-simple {
    border-radius: 1rem!important;
    padding: 2rem 2.5rem;
    margin-left: 0!important;
    
    
    
    

    & .p-toc__ttl {
        border-bottom: 0;
        padding: 0.4rem 1rem;
        font-size: var(--fz-jp-h-sm-pc);

        
        &::before {
            content: '';
            width: 0.25rem;
            height: 100%;
            background: var(--color-text-sub);
            position: absolute;
            left: 0;
            top: 0;
        }
    }

	   & ul.is-style-index li::before {
	        display: none;
	    }

	 @media (max-width: 750px) {

		 & .p-toc__ttl {
	        font-size: var(--fz-jp-h-sm-sp);
		 }
		 & li {
			 line-height: 1.2;
			}
		 & .p-toc__link {
		    font-size: var(--fz-jp-base-sp);
		}
    }
}


#index_modal .p-toc__ttl {
    margin-bottom: 2.5rem;
}
.p-indexModal__inner {
    padding: 3em;
}
ul.is-style-index li {
    margin: 0.8em 0;

    & :before {
        height: 0.3rem;
        width: 0.3rem;
    }
}

.c-modal .c-modal__close {
    font-size: 1rem;

	@media (max-width: 750px) {
	    font-size: 1.5rem;
	}
}

/* チェックリスト（SWELLリストブロックのスタイル）＋ 追加クラス .check-custom */
.is-style-check_list.check-custom {

    gap: 1rem !important;
    font-size: var(--fz-jp-h-xs-pc);
    & li {
      padding: 0.5rem 1.7rem;
      padding-left: 2.4rem !important;
      text-align: justify;
      margin: 0;
      

      &::before {
          color: var(--swl-text_color--black, #333);
          left: 0.8rem;
          top: 0.5rem;
      }

    }
	

	@media (max-width: 750px) {
	    font-size: var(--fz-jp-base-sp);padding: 0;flex-direction: column;

		& li {
			display: block;
		}
	}
}

.wp-block-heading.is-style-default.border-bottom {
  border-top: 0 !important;
  margin-inline: auto !important;
}

.info-block .is-style-icon_info{
  font-size: var(--fz-jp-h-xs-pc);
}

.wp-block-list.number-list {

  & li {
    padding: 2.25rem;
    color: #333;
    background-color: var(--color-bg-soft-2);
    margin-bottom: 1.25rem;
    line-height: var(--lh-jp-h-xs-pc);
    
    &::before {
      display: none;
    }

    & strong {
      font-size: 1.25rem;
      font-weight: bold;
      margin-bottom: 1rem;
      display: flex;
      align-items: baseline;
      gap: 0.2rem;

		
		@media (max-width: 750px) {
		    font-size: var(--fz-jp-h-sm-sp);
		}
      
      &::before {
        background-color: #333;
        border-radius: 0.2rem;
        box-sizing: content-box;
        color: var(--color-bg);
        content: counter(li);
        counter-increment: li;
        height: 1.8em;
        line-height: var(--lh-jp-h-xs-pc);
        padding: 0;
        text-align: center;
        -webkit-transform: scale(.75);
        transform: scale(.75);
        -webkit-transform-origin: 0 50%;
        transform-origin: 0 50%;
        width: 1.8em;
        font-family: var(--font-en) !important;
        aspect-ratio: 1 / 1;
        display: flex;
        align-items: center;
        justify-content: center;
		
		@media (max-width: 750px) {
		    width: 3.2rem;height: 3.2rem;font-size: 2.2rem;
		}
      }


    }
  }
  
  &.-type02 {
    & li {
      background-color: transparent;
      border-bottom: 1px solid;
      margin-block: 0;

      & strong {
        &::before {
          background-color: transparent;
          color: #333;
          border-radius: 50%;
          border: 0.3rem solid;
          font-weight: 600;
          }
        }
     }
  }
}


.accordion-qa {

  & .swell-block-accordion__title {
      padding: 1.25rem 3.125rem;
  }

  & .swell-block-accordion__label {
    font-weight: 500;
    font-size: var(--fz-jp-base-pc);
    display: flex;
    align-items: flex-start;
    position: relative;
    gap: 1rem;
    margin-top: 0.5rem;
    
     &::before {
      content: 'Q';
      font-size: 2.625rem;
      line-height: 1;
      font-family: 'Montserrat';
      color: var(--color-text-sub);
      margin-left: -1rem;
      margin-top: -0.5rem;
     }

	  @media (max-width: 750px) {
		    font-size: var(--fz-jp-base-sp);line-height: 1.3;

		  &::before {
		      font-size: 2.625rem;
		      margin-top: -0.5rem;
		     }
		}
  }

  & .swell-block-accordion__icon i {
      color: var(--color-text-sub);

     &::before {
      font-weight: 600;
     }
  }


  & .swell-block-accordion__body {
    padding: 1.25rem 3.125rem;
    text-align: justify;
    margin-left: -0.5rem;
  }
  
}


.wp-block-table.border-bottom {

    /* table-layout:auto（既定）だと、セルの中身の長さで表の実質幅が
       勝手に広がり、th の width:32% はその「広がった表の中の32%」にしかならない。
       中身が長い（URL・長い単語など）と表全体が親（.column-number02）の幅を
       超えて広がり、フレックスの折り返し判定（PCで縦積みになる）や、
       SPでの右への吹き出し（見出しと被って見える）の原因になる。
       table-layout:fixed + width:100% で「親の幅ぴったり」に固定し、
       中身の長さに幅を引かせないようにする */
    table-layout: fixed;
    width: 100% !important;

    & tr:first-child > * {
    border-top: 0;
    }

    & th {
        font-weight: 500;
        border-bottom: 0.2rem solid var(--color-border);
        box-sizing: border-box;
        width: 32%!important;
    }

    & th, & td {
        padding: 1.8rem;
        overflow-wrap: break-word; /* fixedレイアウトで中身が幅を超えたら折り返す（吹き出し防止） */
    }
}

.wp-block-group.column-number02 {
    gap: 5.6rem;
    align-items: stretch;

    /* 無理に2カラムのまま縮め続けて窮屈にするのではなく、各カラムがこれ以上
       縮むと厳しいという最低幅（flex-basisのぶん）を割り込んだら自然に
       折り返して縦積みにする。SWELLの横並びグループ（is-row）はコアの
       「カラム」ブロックと違い、自動で縦積みにする仕組みが親テーマ側に無い
       （display:flexのみ）ため、ここで明示的に用意する */
    /* flex-wrap: wrap; */
    

    & > * {
        min-width: 0;
    }

    /* 見出し（会社概要ページなどの .p-secTtl）は中身の幅のまま伸ばさない。
       他の列と同じflex-growを与えると、中身が短くても表・フォーム側と
       幅を五分五分で取り合ってしまい不自然な50/50分割になる */
    & > .p-secTtl {
        flex: 0 1 auto;
    }

    /* 表・本文・お問い合わせフォームなど「残りの幅を使う」列 */
    & > *:not(.p-secTtl) {
        flex: 1 1 auto; /* これより狭くなったら折り返す */
    }
    /* お問い合わせフォーム側（ボタン・Cloudflare Turnstile込み）は
       テキスト側より比率を大きく・最低幅も広めにする */
    & > .wpcf7 {
        flex: 2 1 auto;
    }

    @media (max-width: 750px) {
        gap: var(--space-4);flex-direction: column;
    }
}


.map {

    & iframe {
        width: 100%;
        height: 100%;
        filter: grayscale(100%) invert(92%) contrast(83%);
        height: 38rem;
    }

}

.c-note {
    text-indent: -1rem;
    padding-left: 1rem;
}

.swell-block-fullWide.has-bg-img.c-float-bg {
    background-size: contain;
    background-position: 50% 100%;
}
.swell-block-fullWide.logo-bg {
    background: url(/wp-content/themes/swell_child/assets/img/new/logo_typ1.svg) no-repeat 105% 70%/52rem;
    

	@media (max-width: 750px) {
        
		background-position: 135% 50%;
		background-size: 33rem;
		
    }
}



.wp-block-heading.title-type02 {
    border-top: 0 !important;
    border-bottom: solid 1px var(--color-border)!important;
    margin-inline: auto !important;
    position: relative;
    padding: 1rem 0;
    
    &::before {
        content: '';
        display: block;
        width: 20rem;
        height: 2px;
        background: var(--color-border);
        position: absolute;
        left: 0;
        bottom: 0;
    }

	
	@media (max-width: 750px) {
        
	    font-size: var(--fz-jp-h-sm-sp);
		
    }

}
.swl-bg-color {
    padding: 0.35em 0.45em;
}

.c-attention {
    gap: 1rem;
    align-items: center;
    font-size: var(--fz-jp-h-xs-pc);
	
	@media (max-width: 750px) {
        
	    font-size: var(--fz-jp-base-sp);

		& .swl-inline-icon {
		    font-size: 1.5em;
		}
		
    }
	
}

.privacy-policy .swell-block-dl {
	
	& dt {
		font-weight: 500;
		font-size: var(--fz-jp-h-sm-pc);

		@media (max-width: 750px) {
			font-size: var(--fz-jp-h-sm-sp);
		}
	}
	& dd {
		padding-inline: 0;
		margin-left: 0;

		& + dt {
			margin-top: 4rem;
		}
	}
}

/* ==========================================================================
   料金表パターン（patterns/plan-basic.php・plan-maintenance.php・plan-fv.php・plan-subscription.php）

   数値は元デザイン（themes/保守管理_set.png / Group 178.png、いずれも実寸
   1141px幅）から実測した値。カード内の白ボックスの角丸8px、外側の余白42px、
   カード間の隙間47px などはPNGからピクセルを拾って決めている。
   ブロックのクラスに直接当てているので、パターンを挿入したあとに文言や項目数を
   変えても崩れない。

   p-planSub（4番目のブロック）だけ元デザインが別ファイル（themes/plan.jpg）。
   幅2833pxの2倍解像度スクリーンショット（実寸1416px幅相当、他ページの実測
   基準と同じ「1440px×2」の書き出し）なので、ピクセル値は2で割ってCSSのpxに
   換算している。他の3つとは数値の出どころが異なるだけで、換算後の考え方
   （角丸・余白など）は揃えてある。
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. 基本プラン（p-planTable）… 保守管理_set.png
   -------------------------------------------------------------------------- */
.p-planTable {
    background-color: var(--color-bg-soft);
    padding: 3rem 2.625rem 2.75rem;
    border-radius: 0.8rem;
    
    
    
    
    
    

    @media (max-width: 750px) {
        padding: 2rem 1.25rem 1.75rem;
    }
}

/* プラン名＋金額の行。下の罫線までがヘッダー。
   flexはブロックのlayout属性任せにせずCSSで明示している（コアが出す
   .wp-container-* のスタイルは環境によって当たらないことがあるため） */
.p-planTable__head {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: baseline;
    gap: 0;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid #000;
    margin-bottom: 2.25rem;
}
.p-planTable__name {
    /* 金額の開始位置をそろえるための固定幅。プランを縦に並べても桁が揃う */
    min-width: 8em;
    margin: 0;
    font-size: var(--fz-jp-h-xs-pc);
    font-weight: 700;
}
.p-planTable__price {
    margin: 0;
    font-size: var(--fz-jp-h-xs-pc);
    font-weight: 700;
}

.p-planTable__cols {
    gap: 2.75rem;
    margin-bottom: 0;
}

/* 白いボックス（カラムそのものをボックスにしている） */
.p-planTable__box {
    background-color: var(--color-bg);
    border-radius: 0.8rem;
    padding: 1.75rem 1.5rem 2.25rem;
}
.p-planTable__boxTtl {
    margin: 0 0 1.25rem;
    font-size: var(--fz-jp-base-pc);
    font-weight: 700;
}
.p-planTable__list {
    margin: 0;
    padding-left: 0!important;
    /* 元デザインに行頭記号は無い。!important と ::marker については
       .p-planCards__list 側のコメント参照（エディタで点が出るのを防ぐため） */
    list-style: none !important;
    font-size: var(--fz-jp-h-xs-pc);
    line-height: 1.6;
    
    & li {
        list-style: none !important;
    }

    & li::marker {
        content: "";
    }

    & li + li {
        margin-top: 0.75rem;
    }

    @media (max-width: 750px) {
        font-size: 1rem;
    }
}

.p-planTable__note {
    margin: 2rem 0 0;
    font-size: 0.9375rem;
    line-height: 1.7;
}


/* --------------------------------------------------------------------------
   2. 保守管理プラン（p-planCards）… Group 178.png
   -------------------------------------------------------------------------- */
.p-planCards {
    color: #000;
}
.p-planCards__cols {
    gap: 2.75rem;
    margin-bottom: 0;
}

/* プラン1枚分のカード（カラムそのものをカードにしている） */
.p-planCards__card {
    background-color: var(--color-bg-soft);
    border-radius: 0.8rem;
    padding: 2.75rem 2.625rem 2.5rem;
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    @media (max-width: 750px) {
        padding: 2rem 1.25rem 1.5rem;
    }
}

/* プラン名を左、金額をカード右端に振り分ける（両端揃え）。
   .p-planTable__head と同じ理由でCSS側にflexを持たせている */
.p-planCards__head {
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid #000;
    margin-bottom: 1.5rem;
}
.p-planCards__name,
.p-planCards__price {
    margin: 0;
    font-size: var(--fz-jp-h-xs-pc);
    font-weight: 700;
}
.p-planCards__name {
    /* 長いプラン名は折り返させ、金額の方は必ず1行で右端に残す */
    min-width: 0;
}
.p-planCards__price {
    flex: none;
    white-space: nowrap;
}
.p-planCards__lead {
    margin: 0 0 1.75rem;
    font-size: var(--fz-jp-base-pc);
    line-height: var(--lh-jp-h-xs-pc);
    color: var(--color-accent-4);
}

/* カード内の白ボックス。2つ並ぶので隣り合う間だけ余白を足す */
.p-planCards__box {
    background-color: var(--color-bg);
    border-radius: 0.8rem;
    padding: 1.875rem 1.5rem 2rem;
    

    & + .p-planCards__box {
        margin-top: 1rem;
    }
}
.p-planCards__boxTtl {
    margin: 0 0 1.25rem;
    font-size: var(--fz-jp-base-pc);
    font-weight: 700;
}
/* 行頭の点。ブラウザ標準の disc は大きく重いので、疑似要素で描いている。
   元デザイン実測で 4px、点の左端はリスト左から9px、テキストは24px（＝1.5em）の位置。
   --dot-y には line-height の半分を入れる（1行目の文字の中心に点を合わせるため）。 */
.p-planCards__list,
.p-planCards__optionList {
    /* エディタ側には .editor-styles-wrapper ul 由来のマーカー指定が残っていて、
       ul への list-style だけでは標準の点が消えず、自作の点と二重になる。
       li と ::marker まで明示的に潰しておくこと。 */
    list-style: none !important;
    margin: 0;
    padding-left: 0;

    & li {
        position: relative;
        margin: 0;
        padding-left: 1.5em;
        margin-top: 0.3rem;
        list-style: none !important;
    }

    & li::marker {
        content: "";
    }

    & li::before {
        content: "";
        position: absolute;
        left: 0.5em;
        top: var(--dot-y);
        transform: translateY(-50%);
        width: 4px;
        height: 4px;
        border-radius: 50%;
        background-color: currentColor;
    }
}

.p-planCards__list {
    --dot-y: 0.9em;
    font-size: var(--fz-jp-base-pc);
    line-height: var(--lh-jp-h-xs-pc);
    padding-left: 0!important;
}

/* 下段のオプション行 */
.p-planCards__option {
    gap: 2rem;
    align-items: flex-start;
    margin-top: 3.5rem;

    @media (max-width: 750px) {
        display: block;
        margin-top: 2rem;
    }
}
.p-planCards__tag {
    flex: none;
    margin: 0;
    padding: 0.25rem 0.9375rem;
    background-color: var(--color-dark);
    color: var(--color-bg);
    font-size: var(--fz-jp-note-pc);
    line-height: 1.5;

    @media (max-width: 750px) {
        display: inline-block;
        margin-bottom: 0.75rem;
    }
}
.p-planCards__optionList {
    --dot-y: 1em;
    font-size: var(--fz-jp-base-pc);
    line-height: 2;
    padding-left: 0!important;
}


/* --------------------------------------------------------------------------
   3. FVインライン料金（p-planFv）… patterns/plan-fv.php
   サービス詳細のFV（parts/single/service-fv.php、デザイン PC_Service／Corporate Site.jpg）
   左カラムに引き抜いて出す想定の、1行だけの簡易プラン表示。p-planTable/p-planCardsと違い
   幅約488px（FVの左カラム）に収まるサイズで組んである。エディタでラベル・金額・注記の
   文言を書き換えたり、段落やリストを足して行を増やしたりしても崩れない。

   ※このブロックはHTMLアンカー"service-price"（functions.phpのMDA_SERVICE_PRICE_ANCHOR）付きで
   挿入する決まり。本文に置くと、service-fv.php側がそのブロックだけを引き抜いてFVに出し、
   本文側からは自動で取り除かれる（mda_strip_service_price_block_from_content()）。
   -------------------------------------------------------------------------- */
.p-planFv {
    color: var(--color-black);
}
.p-planFv__row {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    column-gap: 1.5rem;
    row-gap: 0.5rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--color-border);
    line-height: 1.5;
}
.p-planFv__label {
    margin: 0;
    font-size: var(--fz-jp-base-pc);

	@media (max-width: 750px) {
			font-size: var(--fz-jp-base-sp);
	}
	
    & small {
        margin-left: 0.75em;
        font-size: var(--fz-jp-note-pc);
        font-weight: 400;

		@media (max-width: 750px) {
			font-size: var(--fz-jp-note-sp);
		}
    }
}
.p-planFv__price {
    margin: 0;
    font-family: var(--font-en)!important;
    font-size: var(--fz-jp-h-sm-pc);
    font-weight: 400;
    

    @media (max-width: 750px) {
        font-size: 1.5rem!important;margin-inline: auto 0!important;display: block;
    }

    /* 「／月〜」部分だけ本体（00,000円）より小さく。パターン側で
       <small>／月〜</small> と囲ってあるのでそこだけ効く */
    & small {
        font-size: var(--fz-jp-base-pc);
		
		@media (max-width: 750px) {
			font-size: var(--fz-jp-note-sp);
		}
    }
}
.p-planFv__note {
    margin: 1rem 0 0;
    font-size: var(--fz-jp-note-pc);
    line-height: 1.6;

		@media (max-width: 750px) {
			font-size: var(--fz-jp-note-sp);
	}
}


/* --------------------------------------------------------------------------
   4. 定額サブスクプラン（p-planSub）… patterns/plan-subscription.php・themes/plan.jpg
   「制作費用の目安」ページの「1 初期費用を抑えて、制作から運用までトータル
   でおまかせ」の枠だけを抜き出したブロック（「こんな企業様におすすめ」の
   チェックリストと「追加費用の心配はありません」の注記は、既存の別パターンと
   役割が重なるためこのブロックには含めていない）。カード背景は他の料金表
   （#F8F7F5）と違って薄い青寄りのグレー（#F4F8FB）が元デザイン側の色。
   カード上の案内タグ（p-planSub__tag）は元デザインの「1」には無いが、同じ
   plan.jpg内の「2」の各プランに付いている見出しタグと同じ見た目で追加した
   （使うかどうかは編集画面で判断してもらう）。
   -------------------------------------------------------------------------- */

/* 番号見出し（縦棒＋数字＋見出し文）。縦棒はborder-leftで表現していて、
   空段落ブロックを増やさずに済ませている（エディタでborder-leftごと見出しの
   色・位置を調整すれば、2番目以降の見出しにも使い回せる） */
.p-planSub__head {
    display: flex;
    align-items: baseline;
    column-gap: 2.25rem;
    row-gap: 0.5rem;
    border-left: 4px solid var(--color-text-sub);
    padding-block: 0.3rem;
    padding-left: 1.25rem;
    margin-bottom: 1.75rem;

	@media (max-width: 750px) {
        & .p-planSub__headTtl {
			font-size: var(--fz-jp-h-sm-sp);
		}
		& .p-planSub__headNum {
			font-size: 2.2rem;
			font-weight: 600;
			top: 0.2rem;
			position: relative;
		}
    }
}
.p-planSub__headNum {
    flex: none;
    margin: 0;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
    color: var(--color-text-sub);
    font-family: var(--font-en) !important;
}
.p-planSub__headTtl {
    margin: 0!important;
    font-size: var(--fz-jp-h-xs-pc);
    font-weight: 700;
    line-height: 1.6;
    padding: 0!important;

	&::before {
		display: none!important;
	}
}

/* カード上部に付く案内タグ（「制作費を一括でお支払いしたい方へ」などと同じ
   見た目）。段落ブロック1つだけなので、不要なときはブロックごと削除すれば
   .p-planSub__head の margin-bottom がそのままカードとの間隔になる */
.p-planSub__tag {
    display: inline-block;
    margin: 0;
    padding: 0.75rem 1.75rem;
    border-radius: 0.5rem 0.5rem 0 0;
    background-color: var(--color-text-sub);
    color: var(--color-bg);
    font-size: var(--fz-jp-base-pc);
    line-height: 1.5;

    @media (max-width: 750px) {
        
        padding: 0.625rem 1.25rem;
        font-size: var(--fz-jp-base-sp);
    }
}

.p-planSub__card {
    background-color: #F4F7FA;
    border-radius: 0.8rem;
    padding: 3rem 2.625rem 2.75rem!important;
    
    
	
    @media (max-width: 750px) {
        padding: 2rem 1.25rem 1.75rem;
    }
}

/* プラン名＋「おすすめ」タグ（左）と金額（右）の行。
   .p-planTable__head と同じ理由でCSS側にflexを明示している */
.p-planSub__cardHead {
    display: flex;
    flex-wrap: wrap;
    justify-content: unset;
    align-items: center;
    gap: 2rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid #000;
    margin-bottom: 2rem;

	 @media (max-width: 750px) {

		gap: 0rem;
		 
		 & .p-planSub__name {
			 font-size: var(--fz-jp-h-sm-sp);
			}

		 & .p-planSub__badge {
			 font-size: var(--fz-jp-note-sp);
		 }

		 & .p-planSub__price {
			 
			 font-size: var(--fz-jp-note-sp);
		 }
    }
}
.p-planSub__nameWrap {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
}
.p-planSub__name {
    margin: 0;
    font-size: var(--fz-jp-h-xs-pc);
    font-weight: 600;
}
.p-planSub__badge {
    margin: 0;
    padding: 0.125rem 0.75rem;
    border: 1px solid var(--color-accent-2);
    font-size: 0.8125rem;
    font-weight: 700;
    line-height: 1.5;
    color: var(--color-accent-2);
}
.p-planSub__price {
    margin: 0;
    font-size: var(--fz-jp-h-xs-pc);
    font-weight: 700;
}

/* 白いボックス。左のラベルは幅固定、右のリストとの境目は点線
   （border-leftで表現。実際の縦点線＝リスト側の左端に足している） */
.p-planSub__box {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem 2.5rem;
    background-color: var(--color-bg);
    border-radius: 0.8rem;
    padding: 2.25rem 1.5rem;
    align-items: center;
}
.p-planSub__boxLabel {
    flex: none;
    width: 17rem;
    max-width: 20%;
    margin: 0;
    font-size: var(--fz-jp-h-xs-pc);
    font-weight: 600;
    line-height: 1.6;
    padding-left: 2.5rem;
	

	 @media (max-width: 750px) {
		 
	    max-width: 100%;
	    font-size: var(--fz-jp-base-sp);
	    width: 100%;
	    padding: 0;
	    
	 }
}
.p-planSub__boxList {
    flex: 1 1 18rem;
    margin: 0;
    padding-left: 2.5rem !important;
    border-left: 1px dashed #999;
    /* エディタ側の既定マーカーを消してから、独自の点を::beforeで描く
       （.p-planCards__list と同じ理由・同じ仕組み） */
    list-style: none !important;
    font-size: var(--fz-jp-h-xs-pc);
    line-height: 1.6;

    & li {
        position: relative;
        list-style: none !important;
        padding-left: 1.25em;
    }

    & li::marker {
        content: "";
    }

    & li::before {
        content: "";
        position: absolute;
        left: 0.25em;
        top: 0.7em;
        transform: translateY(-50%);
        width: 4px;
        height: 4px;
        border-radius: 50%;
        background-color: currentColor;
    }

    & li + li {
        margin-top: 0.75rem;
    }

    @media (max-width: 750px) {
        
        
        font-size: var(--fz-jp-base-sp);padding-left: 0 !important;padding-top: 1.5rem;border-top: 1px dashed #999;border-left: 0;
        
        
    }
}


/* ==========================================================
   c-btn / c-link：共通ボタン・リンク
   ========================================================== */
.c-btn {
    display: inline-flex;
    align-items: center;
    gap: 1.6em;
    padding: 1em 1.75em;
    border-radius: 999px;
    border: 1px solid transparent;
    background: var(--color-black);
    color: var(--color-bg);
    font-family: var(--font-en)!important;
    font-size: 0.9375rem;
    letter-spacing: 0.2rem;
    transition: opacity 0.3s ease;
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    /* SP_TOP.jpg実測（資料請求ボタン：高さ約68px・字面約21px）。
       PCの0.9375remのままだとSPでは文字が小さすぎた */
    @media (max-width: 750px) {
        font-size: var(--fz-jp-note-sp);letter-spacing: 0.1rem;padding: 1em 4.75em;
    }

    /* 矢印を持たないボタン（-ghost の無料相談、資料請求など）だけ従来どおり半透明。
       矢印つき（詳しく見る／READ MORE／CF7の送信）は半透明にせず、
       代わりに矢印が右にずれる（上の共通の .c-arrow ブロックを参照） */
    &:not(:has(> .c-arrow)):hover {
        opacity: 0.75;
    }
    &.-outline {
        background: none;
        border-color: var(--color-black);
        color: var(--color-black);
    }
    &.-white {
        background: var(--color-bg);
        color: var(--color-black);
        /* TOPのBlog「READ MORE」と同じボタンを下層でも使い回す。
           元は枠線なしだったが、白背景のページに置いても輪郭が出るよう
           border-color を足した（.c-btn 側で幅1pxは確保済みなので
           ここで色を付けるだけ。ボタンの大きさは変わらない） */
        border-color: currentColor;
    }
    &.-gray {
        background-color: var(--color-text-sub);
        color: var(--color-bg);
        border-color: transparent;
        transition: 0.5s background-color;
        
		&:hover {
	        opacity: 1;
	        background-color: #6c6a6a;
	    }
    }
    &.-ghost {
        /* 実測: 押しやすさ重視の大きな矩形ボタン（幅約30rem・高さ約7rem、角丸はほぼ無し） */
        background: none;
        border-color: rgba(255, 255, 255, 0.6);
        color: var(--color-bg);
        min-width: 20rem;
        min-height: 8rem;
        padding: 1em 2em;
        border-radius: 2px;
        font-size: var(--fz-jp-h-xs-pc);
        letter-spacing: 0.45em;
        justify-content: center;
        transition: background-color 0.5s ease, border-color 0.5s ease, color 0.5s ease;
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        

        /* SP_TOP.jpg実測：横は.l-inner幅いっぱい、高さ約157px */
        @media (max-width: 750px) {
            
            min-width: 0;
            width: 100%;
            min-height: 9.75rem;
            font-size: var(--fz-jp-h-sm-sp);
            justify-content: space-evenly;
            gap: 0;
            padding-left: 0;
            
        }

        &:hover {
            opacity: 1;
            background: #373737;
            border-color: #373737;
        }
    }
}

.c-link.-more {
    display: inline-flex;
    align-items: center;
    gap: 0.5em;
    font-family: var(--font-en)!important;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.1em;

    &.-small {
        margin-top: var(--space-2);
        font-size: var(--fz-jp-xs-pc);
        color: var(--color-text-sub);
    }
}

/* ボタン・リンク共通の矢印アイコン（assets/img/new/btn-arrow.svg）。
   文字（→ / ⟶）ではなくこのSVG1つに統一してある。

   ・<img>ではなくmaskで敷いているので、色はbackground-color（currentColor）＝
     親の文字色に自動追従する。白ボタン・黒ボタン・暗色背景のリンク、どれでも
     同じマークアップのまま使える。
   ・長さはボタンごとに変えたいので --arrow-w で調整する。マスクは
     「サイズ＝SVGの表示実寸で固定・位置＝right」にしてあるため、--arrow-wを
     縮めると矢じり（右端）はそのままで、軸の左側だけがマスクから外れて
     短くなる。逆に伸ばしても矢じりの大きさは変わらない。
   ・--arrow-h（軸の太さ・矢じりの高さ）はSVGの縦横比 31:6 を保つ値にすること。 */
.c-arrow,
/* CF7の送信ボタンは <input> なので中に <span class="c-arrow"> を入れられない。
   ラッパーの疑似要素として同じ矢印を描くため、ここに相乗りさせている
   （位置決めは下の「お問い合わせフォーム」ブロック側） */
.c-form__foot::after,
/* front.php が古いまま（OPcache等）配信された場合の保険。旧マークアップの
   「→」「⟶」も aria-hidden の span なので、同じ矢印に置き換わるようにしておく
   （font-size:0 で元の文字を消す。.c-arrow は空要素なので影響しない） */
.c-btn > span[aria-hidden="true"],
.c-link.-more > span[aria-hidden="true"],
/* 横長ボタン（.c-wide-btn）の矢印。あちらは中身がテキストだけのコアのボタン
   ブロックなので <span class="c-arrow"> を置けず、::after で描いている。
   マスクの指定を二重に持たせたくないので、ここに相乗りさせている
   （サイズだけ下の「横長ボタンの矢印」で上書き） */
.c-wide-btn::after,
.wp-block-button.is-style-mda-wide-fill > .wp-block-button__link::after,
.wp-block-button.is-style-mda-wide-outline > .wp-block-button__link::after {
    --arrow-full: 2.75rem;          /* SVGの表示実寸（＝矢じりの大きさ）。基本これは変えない */
    --arrow-h: 0.5rem;              /* 2.75rem ÷ (31/6) ≒ 0.53rem。線なので丸めて0.5rem */
    --arrow-w: var(--arrow-full);   /* 実際に見える長さ。短くしたいときはここだけ上書きする */

    display: inline-block;
    flex: none;                     /* inline-flexなボタンの中で潰れないように */
    width: var(--arrow-w);
    height: var(--arrow-h);
    font-size: 0;
    background-color: currentColor;

    /* ホバーで右にずれる分。既定は0で、下の「矢印つきのホバー」で
       リンク側に値を入れると、CSS変数が継承されてこの矢印が動く */
    transform: translateX(var(--arrow-shift, 0rem));
    transition: transform 0.3s ease;

    /* ショートハンド（mask: url(https://mediartz.co.jp/wp-content/themes/swell_child/assets/css/...) ... / サイズ）は古いiOS Safariが
       解釈できずマスクごと無効になる（＝矢印が消える）ため、必ず個別指定で書くこと */
    -webkit-mask-image: url(https://mediartz.co.jp/wp-content/themes/swell_child/assets/css/../img/new/btn-arrow.svg);
    mask-image: url(https://mediartz.co.jp/wp-content/themes/swell_child/assets/css/../img/new/btn-arrow.svg);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: right center;
    mask-position: right center;
    -webkit-mask-size: var(--arrow-full) var(--arrow-h);
    mask-size: var(--arrow-full) var(--arrow-h);
}
/* テキストリンク（MORE / 一覧はこちら）はボタンより文字が小さいので矢印も短くする */
.c-link.-more .c-arrow,
.c-link.-more > span[aria-hidden="true"] {
    --arrow-w: 1.75rem;
}

/* 横長ボタンの矢印だけサイズが違う（実測31×6px＝SVGの原寸）。
   .c-wide-btn 側で持っている変数を参照しているので、値の管理は1か所のまま */
.c-wide-btn::after,
.wp-block-button.is-style-mda-wide-fill > .wp-block-button__link::after,
.wp-block-button.is-style-mda-wide-outline > .wp-block-button__link::after {
    content: '';                        /* 疑似要素なので実体を出すのに必要 */
    --arrow-full: var(--wbtn-arrow-w);
    --arrow-h: var(--wbtn-arrow-h);
}

/* ----------------------------------------------------------
   矢印つきのホバー：半透明にせず、矢印が右にずれる

   仕掛けはCSS変数の継承。リンク側に --arrow-shift を入れるだけで、
   中の .c-arrow（や ::after）が上の transform: translateX() で動く。
   おかげで「矢印そのもの」を名指しする必要がなく、矢印を持つリンクが
   増えてもこのルールを触らずに済む。

   a:hover を広く当てているが、--arrow-shift を読むのは矢印だけなので
   矢印を持たないリンクには何の影響もない。

   ・.c-btn（詳しく見る／READ MORE）、.c-link.-more（MORE）、
     .c-service-list__link（サービス一覧）… いずれも <a> なので a:hover で拾える
   ・CF7の送信ボタンだけは <input> で、矢印はラッパーの ::after にある。
     入力欄側のホバーをラッパーに伝える必要があるので :has() を使っている
   ---------------------------------------------------------- */
a:hover,
a:focus-visible,
.c-form__foot:has(.c-btn:hover),
.c-form__foot:has(.c-btn:focus-visible) {
    /* ずらす量。8px（規則どおり16px基準のrem）。

       ここは必ず rem。em にすると動かなくなる。
       --arrow-shift の値が実際に計算されるのは「代入された先」＝矢印の要素で、
       矢印は旧マークアップの「→」の文字を消すために font-size: 0 を持っている。
       そのため 0.5em は 0px になり、ホバーしても1ミリも動かない（実測で確認済み）。 */
    --arrow-shift: 0.5rem;
}

/* 動きを減らす設定の端末では、ずらさずその場に止める（コーディング規則より） */
@media (prefers-reduced-motion: reduce) {
    a:hover,
    a:focus-visible,
    .c-form__foot:has(.c-btn:hover),
    .c-form__foot:has(.c-btn:focus-visible) {
        --arrow-shift: 0rem;
    }
}


/* ==========================================================
   c-work-grid：ショートコード [mda_works]・[mda_service] 共通の出力
   （functions.php の mda_pick_grid_shortcode）。
   TOPのスライドショー（.c-work-list）とは別物で、こちらは下層ページの
   本文中に置く3枚グリッド＋READ MOREボタン。
   出す記事はACFの「関連」フィールドでページごとに選ぶ。
   文字色は color:inherit と opacity で作ってあるので、明るい背景でも
   .c-dark-zone の中でもそのまま読める。
   ========================================================== */
.c-work-grid {
    /* 本文中（.post_content）に置かれたときに前後の余白が詰まらないように */
    margin-block: var(--space-6);
}
.c-work-grid__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    /* スクショ実測：カード343px／カード間36px（幅1256px時） */
    gap: clamp(var(--space-3), 2.8vw, var(--space-5));
    margin: 0;
    padding: 0!important;
    list-style: none;

    /* SPは1枚ずつ縦積み。3列のままだと画像が小さくなりすぎて実績が見えない */
    @media (max-width: 750px) {
        grid-template-columns: 1fr;
        gap: var(--space-5);
    }
}
.c-work-grid__item {
    margin: 0;
    padding: 0;
    list-style: none;

    &::before,
    &::marker {
        content: none;
    }
}
.c-work-grid__link {
    display: block;
    color: inherit;
    text-decoration: none;
    transition: opacity 0.3s ease;

    &:hover {
        opacity: 0.75;
    }
}
/* スクショ実測：TOPのスライド（4:3）と違い、こちらのカード画像は正方形。
   縦横比の違う写真を入れても枠内でトリミングされるようにしてある */
.c-work-grid__img {
    display: block;
    width: 100%;
    aspect-ratio: 370 / 256;
    object-fit: cover;
    background-color: var(--color-placeholder);

     /* アイキャッチ未設定のときの下地 */

    /* NO IMAGE画像のときだけ、白背景でも枠がわかるよう線を足す */
    &.-noimg {
        border: 1px solid var(--color-bg-soft);
    }
}
/* c-work-grid__body：タイトル＋カテゴリーの入れ物（functions.php側で追加したラッパー）。
   画像との間隔・タイトル⇔カテゴリーの行間は、ttl/cat自身のmargin-topではなく
   ここ（親のmargin-top・gap）にまとめている。理由はSWELL本体に

       .post_content div>:first-child, .post_content>:first-child { margin-top: 0 !important; }

   があるため。!importantなので詳細度では勝てず、ttl/catはこのdiv（c-work-grid__body）の
   直接の子で、DOM順（$cat_first）次第でどちらかが必ず:first-childになる。そちらに
   margin-topを持たせると、この!importantに潰されて効かなくなる（実際に発生した不具合）。
   gapとmargin-topはコンテナ側のプロパティなので子要素への!importantは届かず、安全
   （.p-secTtlと同じ対処。そちらのコメントも参照） */
.c-work-grid__body {
    display: flex;
    flex-direction: column;
    margin-top: var(--space-3); /* 画像との間隔 */
    gap: var(--space-1); /* タイトル⇔カテゴリーの行間 */

    @media (max-width: 750px) {
        gap: var(--space-3);
    }
}
/* 既定（mda_works）は「タイトル→カテゴリー名」の順。
   [mda_service] は .-cat-first 修飾子でDOM順を入れ替える（下の専用ブロック参照） */
.c-work-grid__ttl {
    margin: 0; /* 間隔は親（c-work-grid__body）のgap/margin-topに統一 */
    font-weight: 700;
    font-size: 0.9375rem;

    @media (max-width: 750px) {
        font-size: 1.5rem;
    }
}
.c-work-grid__cat {
    margin: 0; /* 同上 */
    font-size: var(--fz-jp-xs-pc);
    /* 明暗どちらの背景でも成立するよう、固定色ではなく親の文字色を薄めて使う */
    opacity: 0.55;

    @media (max-width: 750px) {
        font-size: var(--fz-jp-base-sp);
    }
}
/* [mda_service]（-cat-first）だけSPも横並びにする（[mda_works]はSPは縦積みのまま）。
   img・c-work-grid__body の2つを並べるだけなので、グリッドで画像を複数行に
   またがらせる必要がなく、間隔が不自然に開かない */
@media (max-width: 750px) {
    .c-work-grid.-cat-first .c-work-grid__link {
        display: flex;
        align-items: center;
        gap: var(--space-4);
    }
    .c-work-grid.-cat-first .c-work-grid__img {
        flex: 0 0 45%;
        width: 45%;
    }
    .c-work-grid.-cat-first .c-work-grid__body {
        flex: 1;
        min-width: 0;
        margin-top: 0; /* 横並びなので画像との間隔（縦積み用）は不要 */
        gap: var(--space-1); /* 横並びだとタイトル⇔カテゴリーの間隔は詰める */
    }
}
.c-work-grid__more {
    display: flex;
    justify-content: center;
    margin-top: var(--space-6);

	& .c-arrow {
	    width: 1.8rem!important;
	}
}


/* ==========================================================
   p-secTtl：英語＋日本語のセクション見出し（patterns/sec-title.php）
   デザイン元：themes/スクリーンショット 2026-09-03 10.05.40.png

   HTMLの並びは「日本語(h2) → 英語(p)」で、見た目だけ order で英語を上に
   出している。SEO・読み上げに拾わせたいのは日本語の方なので、装飾の英語を
   DOMの後ろに置いたまま視覚順だけ入れ替えるという作り。
   （パターン側のコメントも参照）

   ■ サイズはTOPの .c-sec-head に合わせてある
   TOPは「英語(h2.c-sec-head__ja) → バー(span) → 日本語リード(p)」という
   別々の要素で組んであり、こちらは本文中に貼れるよう2ブロック＋疑似要素に
   畳んであるが、見た目の数値は下記のとおり1対1で対応させている。
     英語   3.125rem / line-height 1.6      … .c-sec-head__ja と同値
     バー   2.75rem × 0.3rem（SPは5rem幅）  … .c-sec-head__bar と同値
     英語→バー間  1rem  (--space-3)         … .c-sec-head__bar の margin-top
     バー→日本語間 1.5rem (--space-4)        … .c-sec-head__lead の margin-top
     日本語 1rem / line-height 2.5（SP 1.375rem）… .c-sec-head__lead と同値
   TOP側（renewal.css の .c-sec-head 一式）を触ったら、こちらも同じ数値に
   直すこと。ファイルが分かれているのは front用/エディタ用の読み込み都合。

   サイズを触るときは下の変数を変えれば全体の比率が保たれる。
   ========================================================== */
.p-secTtl {
    --secTtl-en-size: 3.125rem;  /* 英語の文字サイズ（TOP .c-sec-head__ja と同値） */

    /* バーの寸法は em（＝英語の文字サイズに対する倍率）で持つ。
       英語のサイズを変えたときにバーの長さ・太さ・間隔が一緒に付いてくるようにするため。
       既定サイズ50pxのときの実寸は
         長さ 0.88em ＝ 44px（元の 2.75rem と同値）
         太さ 0.096em ＝ 4.8px（元の 0.3rem と同値）
         間隔 0.32em ＝ 16px（元の --space-3 と同値）
       なので、既定のままなら今までと1pxも変わらない。 */
    --secTtl-bar-w: 0.88em;      /* バーの長さ（TOP .c-sec-head__bar と同値） */
    --secTtl-bar-h: 0.096em;     /* バーの太さ（TOP .c-sec-head__bar と同値） */
    --secTtl-bar-gap: 0.32em;    /* 英語 → バー の間隔（TOP .c-sec-head__bar の margin-top と同値） */
    --secTtl-bar-color: var(--color-border); /* バーの色。文字色と揃えたいときは下の .-bar-current */

    /* ■ 文字色は「このグループ1か所」で決まるようにしてある（重要）
       以前は英語側に color: var(--color-black) を直接書いていたため、
       編集画面でグループを選んで文字色を変えても英語だけ黒のままだった
       （子要素に直接当たっている宣言は、親から降りてくる継承値に必ず勝つ）。
       そこで既定色はここ（親）だけに置き、英語・日本語の両方を color: inherit に
       して継承で受けるようにした。これで
         ・グループを選んで文字色を変える → 英語・日本語がまとめて変わる
         ・英語だけ／日本語だけ選んで変える → その要素のインライン指定が勝つ
       のどちらも編集画面から普通に効く。黒いFVの上に白抜きで置く、といった
       使い方はこれで CSS を触らずにできる。
       ※ ここは単一クラス（詳細度 0,1,0）のままにしておくこと。詳細度を上げると
         WordPressが出す色指定（インラインstyle／.has-〇〇-color）に勝ってしまい、
         また「変えられない見出し」に戻る。 */
    color: var(--color-black);

    /* TOP .c-sec-head の外余白（margin-bottom: var(--space-5)）と揃える */
    margin-bottom: var(--space-5);

    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-4); /* バー下端 〜 日本語。TOP .c-sec-head__lead の margin-top と同値 */
}

/* ■ グループの「包み紙」を display:contents で消している理由
   SWELLにも子テーマにも theme.json が無いので、WordPressはフロント側でだけ
   wp_restore_group_inner_container() を動かし、グループの中身を
   <div class="wp-block-group__inner-container"> で1枚包み直す。
   この包み紙が挟まると、h2/pは .p-secTtl の孫になるので、
   .p-secTtl に掛けた flex（＝order・gap）が子であるh2/pに届かない。
   ＝編集画面（包み紙なし）は正しいのに、フロントだけ日本語が上に来る。

   以前は包み紙にも同じflexを掛けて対処していたが、それだとクラス名頼みになる。
   SWELL本体 lib/gutenberg.php:38 に、横並び／縦積みグループを
       str_replace( 'class="wp-block-group', 'class="wp-block-group is-row', $block_content )
   で書き換える処理があり、これが外側のタグだけでなく中身の文字列すべてに
   無差別に効く。そのため、このパターンを「横並び」グループの中へ入れると
       wp-block-group__inner-container → wp-block-group is-row__inner-container
   にクラス名が化けてセレクタが空振りし、並び順と余白が丸ごと崩れる（SWELL側の不具合）。

   そこでクラス名を当てにせず、包み紙そのものを display:contents で箱ごと消し、
   h2/pを .p-secTtl の直接の子に戻している。こうすれば flex/order/gap は
   .p-secTtl の1か所だけで完結し、包み紙の名前が何であっても影響を受けない。
   （※ display:contents は要素をセレクタ上から消すわけではないので、
     .post_content div > :first-child などの既存ルールの当たり方は変わらない）

   なお、根本原因のクラス名の化けは functions.php 側でも元に戻している。
   こちらのCSSはそれとは独立に成立するので、どちらか片方だけでも壊れない。 */
.p-secTtl > [class*="inner-container"] {
    display: contents;
}

/* ■ 英語と日本語の間隔を margin ではなく gap で取っている理由
   SWELL本体(build/css/main.css)に
       .post_content div > :first-child,
       .post_content > :first-child { margin-top: 0 !important; }
   があり、!important なので詳細度をどれだけ上げても勝てない。
   このパターンはDOM順が「日本語(h2) → 英語(p)」なので、
   見た目は下にいる日本語のh2が :first-child に当たってしまい、
   margin-top を付けても必ず 0 に潰される（＝余白が出ない）。
   gap は子ではなくコンテナ側のプロパティなので、この !important が届かない。
   同じ理由で、子要素側には margin を一切持たせないこと。
   （gapの指定は上の .p-secTtl 本体にまとめてある） */

/* 中央寄せにしたいページ用。パターンを貼ったあと、グループブロックの
   「追加CSSクラス」に -center を足すと効く */
.p-secTtl.-center {
    align-items: center;
    text-align: center;
}

/* バーを文字色と同じにしたいページ用（黒背景に白抜きで置くFVなど）。
   パターンを貼ったあと、グループブロックの「追加CSSクラス」に -bar-current を足すと効く。
   バーは疑似要素なので編集画面の色設定が届かない。そのための逃げ道として用意している。 */
.p-secTtl.-bar-current {
    --secTtl-bar-color: currentColor;
}

/* 英語（装飾）。DOM上は日本語の後ろにあるので order で先頭に持ち上げる */
.p-secTtl .p-secTtl__en {
    order: -1;
    margin: 0; /* 上記の理由により margin は使わない（間隔は親の gap 側） */
    font-family: var(--font-en) !important;
    font-weight: 600;
    /* TOPの .c-sec-head__ja は line-height を指定しておらず body の 1.6 を継承する。
       同じ見え方にするため、ここでも 1.6 を明示している（詰めたいなら両方直すこと） */
    line-height: 1.6;
    /* 既定色は親（.p-secTtl）側にまとめてある。ここで色を直接指定すると、
       グループに設定した文字色が英語だけ効かなくなるので inherit のままにすること */
    color: inherit;
}
/* ■ 文字サイズを編集画面から変えられるようにするため、font-size だけ
   単一クラス（詳細度 0,1,0）の別ルールに切り出してある。上の 0,2,0 のままだと
   「カスタム」で入れた値（インラインstyle）には負けるが、詳細度を上げる方向に
   ルールを足していくと効かなくなるので、ここは触らないこと。

   ■ SWELLのサイズプリセット（極小〜特大）について（重要）
     SWELLは editor-font-sizes を em（＝親要素に対する倍率）で登録している
     （lib/theme_setup.php：極小0.75em / 小0.9em / 中1.1em / 大1.25em / 特大1.6em）。
     この見出しの親はページの基準文字（16px）なので、「特大」を選んでも
     1.6em＝25.6px にしかならず、既定の3.125rem（50px）より小さくなる。
     ＝サイズプリセットはこの見出しには使えない（選ぶと必ず小さくなる）。
     大きさを変えたいときは、下の -en-◯◯ クラスを使うか、
     ツールバーの「カスタム」で px / rem を直接入れること。 */
.p-secTtl__en {
    font-size: var(--secTtl-en-size);
}

/* よく使うサイズをクラスにしてある。「追加CSSクラス」に足して使う。
   バーの寸法は em なので、サイズを変えると長さ・太さ・間隔も一緒に付いてくる。
   -en-xl はAboutページのFV（実測95px前後）に合わせた大きさ。

   ■ 外側のグループ／英語の段落、どちらに付けても効くようにしてある
     編集画面でどちらのブロックを選んでいるかは操作する人によって違うので、
     片方だけ対応していると「クラスを入れたのに変わらない」が起きる。
     ・グループに付けた場合  … 変数が子（英語）へ継承されて効く
     ・英語の段落に付けた場合 … その要素自身の変数として効く
     どちらも下の .p-secTtl__en { font-size: var(--secTtl-en-size) } が読む。 */
.p-secTtl.-en-s,
.p-secTtl__en.-en-s  { --secTtl-en-size: 2.25rem; }   /* 36px */
.p-secTtl.-en-l,
.p-secTtl__en.-en-l  { --secTtl-en-size: 4.375rem; }  /* 70px */
.p-secTtl.-en-xl,
.p-secTtl__en.-en-xl { --secTtl-en-size: 6rem; }      /* 96px */

/* 英語の中で文字を太字にする（<strong> / <b> を入れる）と、そこだけ和文フォントに戻る。
   外部CSSに

       strong, b, #comments .comment-author .fn:lang(ja) { font-family: "TBUDゴシック E" }

   があり、これが strong/b 要素そのものに直接当たっているため。
   親（.p-secTtl__en）の font-family は !important を付けていても子には「継承」でしか
   届かず、継承値はその要素に直接当たっている宣言に必ず負ける（詳細度の勝負にならない）。
   なので子孫側で継承し直させて塞ぐ。span やリンクを入れた場合も同じなので * で受ける。 */
.p-secTtl .p-secTtl__en * {
    font-family: inherit !important;
}
/* 英語の下のバー。独立したブロックにすると編集画面で消されやすいので疑似要素で描く。
   疑似要素は :first-child の対象外なので、こちらは margin-top のままで潰されない */
.p-secTtl .p-secTtl__en::after {
    content: "";
    display: block;
    width: var(--secTtl-bar-w);
    height: var(--secTtl-bar-h);
    margin-top: var(--secTtl-bar-gap); /* TOP .c-sec-head__bar の margin-top と同値 */
    background: var(--secTtl-bar-color);
}
.p-secTtl.-center .p-secTtl__en::after {
    margin-inline: auto;
}

/* 日本語（これが本来の見出し）。
   数値はTOPの .c-sec-head__lead に合わせてある（見出しタグなので font-weight だけは
   SWELLの700が効いてしまう。TOPと同じ細さにするため 400 を明示）

   ■ 見出しレベル（h1〜h6）はページに合わせて自由に変えてよい
   ここはタグ名ではなくクラスで当てているので、エディタのツールバーで
   H2→H1 に変えても見た目は変わらない。……が、そのままだと編集画面だけ崩れる。
   SWELL本体(build/css/editor/gutenberg.css)に
       .editor-styles-wrapper h1[data-type="core/heading"] { font-size:2em; line-height:1.4 }
   があり、これは詳細度 (0,2,1)。クラス2つの (0,2,0) では負けるため、
   H1にした瞬間フロントは正しいのに編集画面だけ文字が巨大になる。
   そこでクラス名を2回書いて (0,3,0) まで上げ、!important を使わずに勝たせている
   （見た目は同じセレクタ。詳細度を1段上げるためだけの重ね書き）。

   なお、SWELLはページタイトルを別途h1で出力しているので、
   この見出しをh1にするページでは、そちらのタイトル表示を切っておくこと。 */
.p-secTtl .p-secTtl__ja.p-secTtl__ja {
    order: 0;
    margin: 0; /* 上記の理由により margin は使わない（間隔は親の gap 側） */
    padding: 0;
    border: 0;
    background: none;
    font-size: var(--fz-jp-base-pc);
    font-weight: 500;
    line-height: var(--lh-jp-base-pc);
    

    /* SWELLの見出し装飾（カスタマイザーで付く下線・アイコン等）を殺す */
    &::before,
    &::after {
        content: none;
    }
	@media (max-width: 750px) {
		&.-ja-only {
		    font-size: var(--fz-jp-h-lg-sp)!important;
		}
	}
}
/* 色だけは上のクラス2回書き（詳細度 0,3,0）から外して、ここで最小の詳細度で当てる。
   0,3,0 のままだと、編集画面でこの見出しだけ文字色を変えたときに勝ててしまう
   ケースがあるため。上のルールは font-size を編集画面のH1指定に勝たせるためだけのもの。 */
.p-secTtl .p-secTtl__ja {
    color: inherit;
}

@media (max-width: 750px) {
    .p-secTtl {
        /* TOPは .c-sec-head__ja（英語）も .c-sec-head__bar の高さもSPで変えていない。
           変わるのはバーの幅と日本語のサイズだけ。
           1.6em ＝ 既定サイズ50pxのとき80px（元の 5rem と同値） */
        --secTtl-bar-w: 1.6em;
    }
    .p-secTtl .p-secTtl__ja {
        font-size: var(--fz-jp-base-sp)!important;
    }
}


/* ==========================================================
   Contact CTA：フッターお問い合わせ
   （renewal.css から移動。フッター直前で全ページに自動出力するため、
     renewal.css が読み込まれない portfolio / LP でも必要）

   出力：footer.php（TOP以外）／ tmp/front.php（TOP）
   マークアップ：parts/contact-cta.php
   出す・出さないの条件：functions.php の mda_should_show_contact_cta()

   #content（.l-container）の外に置いているので、背景のグラデーションは
   常に画面幅いっぱいに広がる。幅を決めているのは .c-contact-cta__inner。
   ========================================================== */
.c-contact-cta {
    /* assets/css/tokens.css の :root で定義（フロント／編集画面の両方で読み込まれる）。
       ヘッダーのお問い合わせボタン・横長ボタンのグラデーション塗りと共用 */
    background-color: var(--color-accent-from); /* 変数が解決できない環境でも白にならないための下地 */
    background-image: var(--gradient-contact);
    color: var(--color-bg);
    padding-block: 8rem;
}
.c-contact-cta__inner {
    /* 中身の幅。以前はマークアップ側の .l-inner が持っていたが、あれは
       renewal.css の定義で portfolio / LP では読み込まれない。全ページで同じ幅に
       なるよう、同じ値をここに移した（--container-w は tokens.css で全ページ共通） */
    width: 85%;
    max-width: var(--container-w);
    margin-inline: auto;

    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: var(--space-6);
    align-items: start; /* ボタン列は見出しと上端が揃う */

    @media (max-width: 750px) {
        grid-template-columns: 1fr;
    }
}
.c-contact-cta__ttl {
    font-family: var(--font-en)!important;
    font-size: var(--fz-en-h-lg-pc);
    /* c-sec-head__ja / PORTFOLIO と統一 */

    /* SP_TOP.jpgで実測すると、この見出しも他の見出しラベルと同様PCからあまり
       縮小されていない（実測値からの逆算で約2.75rem）。以前の2.25remは仮値だった */
    @media (max-width: 750px) {
        font-size: 3.125rem;
    }
}
/* 見出し下の横棒（parts/contact-cta.php参照）。ユーザー指定でSPだけ表示する。
   .c-sec-head__bar は本来renewal.css側の共通定義だが、renewal.cssが読み込まれない
   recruit / LP / portfolio でもContact CTAは出る（このファイル冒頭のコメント参照）ため、
   表示・非表示だけでなく寸法（幅・太さ・色）もここに複製し、renewal.css無しでも
   崩れないようにしてある。値はrenewal.cssの.c-sec-head__barと同値 */
.c-contact-cta .c-sec-head__bar {
    display: none;
    width: 2.75rem;
    height: 0.3rem;
    background: var(--color-border);
    margin-top: var(--space-5);
    

    @media (max-width: 750px) {
        display: block;
        width: 5rem;
    }
}
.c-contact-cta__sub {
    margin-top: 4.5rem; /* 実測: 見出しとの間は広めの余白 */
    font-size: var(--fz-jp-h-xs-pc);
    letter-spacing: 0.2em;

    @media (max-width: 750px) {
        font-size: var(--fz-jp-h-sm-sp);
    }
}
.c-contact-cta__text {
    margin-top: 3rem;
    font-size: var(--fz-jp-base-pc);
    line-height: var(--lh-jp-base-pc);

    @media (max-width: 750px) {
        
        font-size: var(--fz-jp-base-sp);
        line-height: var(--lh-jp-bd-sp);
        
    }
}
.c-contact-cta__btn-col {
    display: flex;
    flex-direction: column;
    gap: 1.3rem;
}
/* ボタンのアイコン（左側）。assets/img/new/icon_con.webp（無料相談）・
   icon_doc.webp（資料請求）。下の c-side-cta__btn-icon と同じもの・同じ考え方
   （<img>ではなくmaskで敷き、色はcurrentColorでホバーの文字色反転に自動追従する）。

   ■ セレクタをクラス3つで書いている理由は下の .c-side-cta__btn-icon と同じ。
   この<span aria-hidden="true">は「矢印を持たないボタンだけ半透明ホバー」用の
   共通ルール（.c-btn > span[aria-hidden="true"]、詳細度(0,2,1)）にも二重にマッチ
   してしまうため、クラス3つ（(0,3,0)〜）にして確実に上書きする（!importantは使わない）。 */
.c-contact-cta .c-contact-cta__btn-col .c-contact-cta__btn-icon {
    display: inline-block;
    flex: none; /* inline-flexなボタンの中で潰れないように */
    width: 3.5rem;
    height: 3rem;
    background-color: currentColor;
    transform: none; /* 上の共通ルールのtranslateX(矢印ホバー)を無効化 */

    /* ショートハンドは古いiOS Safariが解釈できずマスクごと無効になるため、
       .c-arrow / .c-side-cta__btn-icon と同じく必ず個別指定で書くこと */
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
    
    
    
    
    
    
    

    /* c-side-cta__btn-iconと違い、このボタンはSPで文字サイズ自体が1rem→1.4375rem
       まで拡大する（.c-btn.-ghost、上）大きな矩形なので、アイコンも合わせて拡大する */
    @media (max-width: 750px) {
        
        
        
        
        
        
        
        
        
        
        
        width: 4.5rem;
        height: 3.6rem;
        
        
        
        
        
        
        
        
        
        
        
    }
}
.c-contact-cta .c-contact-cta__btn-col .c-contact-cta__btn-icon.-con {
    -webkit-mask-image: url(https://mediartz.co.jp/wp-content/themes/swell_child/assets/css/../img/new/icon_con.webp);
    mask-image: url(https://mediartz.co.jp/wp-content/themes/swell_child/assets/css/../img/new/icon_con.webp);
}
.c-contact-cta .c-contact-cta__btn-col .c-contact-cta__btn-icon.-doc {
    -webkit-mask-image: url(https://mediartz.co.jp/wp-content/themes/swell_child/assets/css/../img/new/icon_doc.webp);
    mask-image: url(https://mediartz.co.jp/wp-content/themes/swell_child/assets/css/../img/new/icon_doc.webp);
}


/* ==========================================================
   c-side-cta：縦長のCTAカード（Contact us）
   文言・グラデーションはフッターの横長CTA（.c-contact-cta 一式・上）と同じだが、
   幅320px程度のサイドバー用に別の見た目にしてある。

   ■ 出どころ
   投稿詳細ページ（PC_Blog.jpg）右カラムのCTA。ページ側にはハードコードしておらず、
   SWELLの「追尾サイドバー」（ウィジェットID: fix_sidebar。外観 > ウィジェット）に
   ショートコード [mda_side_cta]（＝ブロックパターン patterns/side-cta.php の中身）を
   置いて使う（＝ページを問わず使い回せる。「共通サイドバー」など他のSWELL標準
   サイドバーに置いても同じ見た目で出る）。マークアップは parts/single/side-cta.php、
   表示処理は functions.php の mda_side_cta_shortcode()。
   投稿詳細ページ側の呼び出し・sticky固定は parts/single/post-body.php と
   assets/css/single.css の .p-single__aside を参照。
   renewal.css ではなくこのファイルに置いているのは、blocks.css だけが
   フロント・エディタの両方から読み込まれるため（ウィジェット編集画面にも見た目が要る）。
   ========================================================== */
.c-side-cta {
    background-color: var(--color-accent-from); /* 変数が解決できない環境でも白にならないための下地 */
    background-image: var(--gradient-contact);
    color: var(--color-bg);
    border-radius: 0.5rem;
    padding: var(--space-5) var(--space-4);

	@media (max-width: 750px) {
        
	    padding: var(--space-6);
    }
}
.c-side-cta__ttl {
    font-family: var(--font-en)!important;
    font-size: 2.5rem;
}
.c-side-cta__sub {
    margin-top: 0.75rem;
    font-size: var(--fz-jp-base-pc);
    letter-spacing: 0.05em;

    /* .c-contact-cta__sub（横長CTA）と同じSP見出しトークンに揃える */
    @media (max-width: 750px) {
        font-size: var(--fz-jp-h-sm-sp);margin-top: 1.25rem;
    }
}
.c-side-cta__text {
    margin-top: 2.25rem;
    padding-top: 1.45rem;
    border-top: 1px solid;
    font-size: var(--fz-jp-base-pc);
    line-height: var(--lh-jp-md-pc);

    /* .c-contact-cta__text（横長CTA）と同じSP本文トークンに揃える */
    @media (max-width: 750px) {
        font-size: var(--fz-jp-base-sp);
        line-height: var(--lh-jp-md-sp);
    }
}
.c-side-cta__btns {
    margin-top: 1.75rem;
    display: flex;
    flex-direction: column;
    gap: 1.55rem;
}
/* サイドCTAのボタン。parts/single/side-cta.php は素の <a class="c-btn -ghost"> を
   出しているので、そちらが主。.wp-block-button.is-style-mda-side-cta 側は、
   このカードをブロックエディタで直接組みたくなった場合の保険として、
   コアのボタンブロック用スタイル「MEDIARTZ サイドCTA」
   （functions.php の register_block_style('core/button', ['name'=>'mda-side-cta'])）に
   同じ見た目を出せるよう併記してある（classNameはブロックの外側の .wp-block-button に
   付くので、実際にボタンとして見せたい .wp-block-button__link（中のaタグ）側を
   このセレクタで直接指定している。.c-wide-btn / is-style-mda-wide-fill と同じやり方）。
   .c-btn.-ghost はフッターの横長CTA用に「幅30rem・高さ8rem」の大きな矩形で
   設計されているので、ここではそれとは別に幅320px程度のカード用の寸法を持たせる。 */
.wp-block-button.is-style-mda-side-cta > .wp-block-button__link,
.c-side-cta .c-btn.-ghost {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 100%;
    min-width: 0; /* 元の.c-btn.-ghostのmin-width:30rem（480px）が残っていて
                     幅320px程度のこのカードでは右にはみ出していた（実際の不具合）。
                     min-heightだけでなくmin-widthも明示的に打ち消す必要があった */
    min-height: 0;
    padding: 1.3em 1em;
    border: 1px solid rgba(255, 255, 255, .6);
    border-radius: 0;
    background: none;
    color: var(--color-bg);
    font-family: var(--font-en)!important;
    font-size: var(--fz-jp-base-pc);
    letter-spacing: 0.1em;
    text-align: center;
    text-decoration: none;
    transition: background-color 0.5s ease, border-color 0.5s ease, color 0.5s ease;
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    /* フッター横長CTA（.c-contact-cta の素の .c-btn.-ghost:hover、上）と
       ホバーを揃える：背景・枠線だけ #373737 に変わり、文字色は変えない */
    &:hover {
        background: #373737;
        border-color: #373737;
    }

    @media (max-width: 750px) {
        font-size: var(--fz-jp-base-sp);gap: 2.6rem;
    }
}
/* サイドCTAボタンのアイコン（左側）。assets/img/new/icon_con.webp（無料相談）・
   icon_doc.webp（資料請求）。
   .c-arrow（上の「c-btn / c-link：共通ボタン・リンク」節）と同じ考え方で、
   <img>ではなくmaskで敷いている。色はbackground-color（currentColor）＝親の文字色に
   自動追従する（文字色自体はホバーでも白のまま変わらない。上の.c-side-cta .c-btn.-ghost:hover）。
   アイコン自体は112×102pxのほぼ正方形なので、box側は正方形にしてmask-size:containで収める。

   ■ セレクタを「.c-side-cta .c-side-cta__btns .c-side-cta__btn-icon」と3階層で
   書いている理由（詳細度・実際に不具合になっていた点）
   このspanは<span aria-hidden="true">のまま.c-btnの直下に置いているため、上の
   「矢印つきのホバー」節にある共通ルール
     .c-arrow, .c-form__foot::after, .c-btn > span[aria-hidden="true"], ... { ... }
   にも二重にマッチしてしまう（"矢印を持たないボタンだけ半透明ホバー"の判定用に
   汎用的に書かれたセレクタのため）。あちらの詳細度は class1つ＋属性セレクタ1つ＋
   要素1つ＝(0,2,1)。クラス2つだけの「.c-side-cta__btn-icon.-con」は(0,2,0)で
   負けてしまい、mask-imageが矢印SVG（btn-arrow.svg）のまま上書きされず、
   アイコンではなく矢印が出てしまっていた（実際の不具合）。
   クラス3つ以上（(0,3,0)〜）にすれば列同士の比較でクラス数が優先されて確実に勝てる
   ので、既存の祖先クラス（.c-side-cta／.c-side-cta__btns）を重ねて書いている
   （!importantは使わない）。 */
.c-side-cta .c-side-cta__btns .c-side-cta__btn-icon {
    display: inline-block;
    flex: none; /* inline-flexなボタンの中で潰れないように（.c-arrowと同じ考え方） */
    width: 1.625rem;
    height: 1.625rem;
    background-color: currentColor;
    transform: none; /* 上の共通ルールが同じspanに transform: translateX(var(--arrow-shift)) を
                         当ててくるので、ホバーで矢印のように横移動しないよう明示的に無効化する */

    /* ショートハンド（mask: url(https://mediartz.co.jp/wp-content/themes/swell_child/assets/css/...) ... / サイズ）は古いiOS Safariが解釈できず
       マスクごと無効になるため、.c-arrowと同じく必ず個別指定で書くこと */
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;

	
    @media (max-width: 750px) {
		    width: 3.625rem;
		    height: 3.625rem;
		    margin-left: -3.625rem;
    }
}
.c-side-cta .c-side-cta__btns .c-side-cta__btn-icon.-con {
    -webkit-mask-image: url(https://mediartz.co.jp/wp-content/themes/swell_child/assets/css/../img/new/icon_con.webp);
    mask-image: url(https://mediartz.co.jp/wp-content/themes/swell_child/assets/css/../img/new/icon_con.webp);
}
.c-side-cta .c-side-cta__btns .c-side-cta__btn-icon.-doc {
    -webkit-mask-image: url(https://mediartz.co.jp/wp-content/themes/swell_child/assets/css/../img/new/icon_doc.webp);
    mask-image: url(https://mediartz.co.jp/wp-content/themes/swell_child/assets/css/../img/new/icon_doc.webp);
}


/* ==========================================================
   お問い合わせフォーム（Contact Form 7）

   デザイン元：themes/スクリーンショット 2026-09-03 18.56.51.png
   実測値：枠線 #cccccc ／ ラベル・ボタン #1a100e（= --color-black）
           必須マーク #c34b30 ／ 入力欄 高さ48px ／ テキストエリア 212px
           送信ボタン 222×64px（角丸は完全な丸）

   CF7の管理画面に貼るマークアップは docs/contact-form-cf7.md にある。
   フィールド名（menu-280 / your-name など）はメール本文のタグと直結しているので
   絶対に変えないこと。

   renewal.css ではなくこのファイルに置いているのは、blocks.css だけが
   全ページで読み込まれるため。フォームを下層のどのページに貼っても崩れない。
   ========================================================== */

/* 寸法はここ1か所。ラベル列の幅を変えれば送信ボタンとCloudflareの
   左位置も自動で追従する（下で同じ変数を使っているため） */
.wpcf7-form {
    --form-label-w: 8.625rem;   /* ラベル列の幅（実測170px） */
    --form-col-gap: 1rem;        /* ラベル列と入力列の間隔 */
    --form-row-gap: 2rem;     /* 行と行の間隔（実測36px） */
    --form-border: var(--color-border);      /* 入力欄の枠線 */
    --form-required: var(--color-accent-2);    /* 必須マークの色 */

    /* Cloudflareのウィジェットを送信ボタンの下に回すため、フォーム全体を
       縦並びのflexにして order で順番を決めている（詳細は下の該当ルール） */
    display: flex;
    flex-direction: column;
    margin: 2rem auto;
}

.c-form {
    display: flex;
    flex-direction: column;
    gap: var(--form-row-gap);
}

/* 1行＝ラベル＋入力欄。align-items:start にしているので、
   テキストエリアの行でもラベルは上端に残る（デザインどおり） */
.c-form__row {
    display: grid;
    /* 1frの暗黙の最小幅はauto（中身のselect等の最小コンテンツ幅）なので、
       上の.column-number02と同じ理由でminmax(0, 1fr)にして縮められるようにする */
    grid-template-columns: var(--form-label-w) minmax(0, 1fr);
    column-gap: var(--form-col-gap);
    align-items: start;

    /* SPは1列。ラベルを入力欄の上に積む */
    @media (max-width: 750px) {
        grid-template-columns: 1fr;
        row-gap: 0.75rem;
    }
}

/* 非表示の行（対応状況など）。行ごと消す */
.c-form__row.-hidden {
    display: none;
}

.c-form__label {
    /* 入力欄の中の文字と高さを揃えるための上余白。
       入力欄の padding-top(0.75rem) + border(1px) に、
       ラベル(14px)と入力(16px)の行の高さの差を足した値 */
    padding-top: 0.8125rem;
    font-size: var(--fz-jp-note-pc);
    line-height: 1.6;
    letter-spacing: 0.02em;
    color: var(--color-black);

    @media (max-width: 750px) {
        
        
        
        
        
        
        
        
        
        
        
        
        
        padding-top: 0;
        font-size: var(--fz-jp-base-sp);
        
        
        
        
        
        
        
        
        
        
        
        
        
    }
}

/* 必須マーク。HTMLに「*」を書かず疑似要素で出しているので、
   必須をやめるときは -req クラスを外すだけでよい */
.c-form__label.-req::after {
    content: "＊";
    margin-left: 0.3em;
    font-size: 0.875em;
    line-height: 1;
    vertical-align: top;
    color: var(--form-required);
    font-weight: 700;
}
/* 入力欄。CF7は各コントロールを <span class="wpcf7-form-control-wrap"> で
   包むので、その中の実体をまとめて指定する */
.c-form__field .wpcf7-form-control-wrap,
.c-form__field input,
.c-form__field select,
.c-form__field textarea {
    display: block;
    width: 100%;
}
.c-form__field input,
.c-form__field select,
.c-form__field textarea {
    min-height: 3rem; /* 実測48px */
    padding: 0.75rem 1.25rem;
    border: 1px solid var(--form-border);
    border-radius: 0;
    background: var(--color-bg);
    color: var(--color-black);
    font-family: inherit;
    font-size: var(--fz-jp-base-pc);
    line-height: 1.6;
    transition: border-color 0.5s ease;

    /* iOSのSafariは16px未満の入力欄でズームするため、SPでも16px以上を保つこと */
    @media (max-width: 750px) {
        font-size: 2rem;
    }

    &:focus {
        outline: none;
        border-color: var(--color-black);
    }
    &::placeholder {
        color: var(--color-text-sub);
    }
}
.c-form__field textarea {
    resize: vertical;
}

/* セレクト。ブラウザ標準の▼を消して自前の山形を描く。
   デザイン案には矢印が描かれていないが、何も無いと
   「押せる場所」だと分からないため付けている */
.c-form__field.-select {
    position: relative;
}
.c-form__field.-select select {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 3rem;
}
.c-form__field.-select::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 1.25rem;
    width: 0.5rem;
    height: 0.5rem;
    margin-top: -0.375rem;
    border-right: 1px solid var(--color-black);
    border-bottom: 1px solid var(--color-black);
    transform: rotate(45deg);
    pointer-events: none;

	@media (max-width: 750px) {
	    width: 1rem;
	    height: 1rem;
	    top: 45%;
    }
}

/* 送信ボタン。入力欄の列の左端に揃える。
   ボタン自体は共通の .c-btn（CF7側で class:c-btn を指定）。
   <input>には疑似要素を付けられないので、矢印はこのラッパーが描く */
.c-form__foot {
    position: relative;
    align-self: flex-start;
    margin-left: calc(var(--form-label-w) + var(--form-col-gap));
    width: 14.875rem; /* 実測222px */

    /* flex にしているのは並べたいからではなく、行ボックスを作らせないため。
       CF7は送信ボタンの直後に <span class="wpcf7-spinner"> を必ず吐く。
       ブロックのままだと <input> とスピナーがインラインで並び、
       ベースライン合わせ＋行の余白のぶんだけラッパーがボタンより数px高くなる。
       矢印は top:50% でラッパーの中央に置いているので、その差がそのまま
       「矢印だけ下にずれる」として出る。flex にすると行ボックスが消え、
       ラッパーの高さ＝ボタンの高さになるので 50% がボタンの中心と一致する */
    display: flex;
    
    @media (max-width: 750px) {
        width: 50%;
		min-width: auto;
    }
}
/* CF7（WordPressのautop）は中身を <p> で包んで出力する。

       <div class="c-form__foot"><p><input class="c-btn"><span class="wpcf7-spinner"></span></p></div>

   このままだと flex の子は <input> ではなく <p> になり、ボタンの width:100% が
   「<p>の幅」基準になる。<p>の幅は中身なりに縮むので、ボタンだけ 222px より細くなり、
   矢印（ラッパーの右端基準）がボタンの外＝黒地の外に取り残される。
   display:contents で <p> の箱を無かったことにして <input> を直接の子に戻す
   （.p-secTtl の inner-container と同じ手。中身は消えず、箱だけ消える） */
.c-form__foot > p {
    display: contents;
}
/* 送信中に出るCF7のスピナー（黒い丸）。デザインに無いので出さない。
   ついでに、これが居るとフレックス行の幅も食うので消す意味は二重にある */
.c-form__foot .wpcf7-spinner {
    display: none;
}
/* スピナーを消すと「送信中」の手応えが無くなるので、代わりにボタン自体を薄くする。
   不要ならこのルールごと消してよい */
.wpcf7-form.submitting .c-form__foot {
    opacity: 0.6;
    pointer-events: none; /* 二重送信の防止も兼ねる */
}
.c-form__foot .c-btn {
    justify-content: center;
    width: 100%;
    flex: none; /* ラッパーがflexなので、万一他の要素が並んでも幅を削られないように */
    min-height: 4rem; /* 実測64px */
    /* 右端の矢印とぶつからないよう、文字の中心を少し左に寄せる */
    padding-right: 3.5em;
    padding-left: 3.5em;
    cursor: pointer;
}
.c-form__foot::after {
    content: "";
    position: absolute;
    top: 47.7%;
    /* em ではなく rem。この疑似要素は共通の .c-arrow 側で font-size:0 にしてあり
       （矢印はマスクで描くので中身の文字を消す必要がある）、em だと 0 に潰れて
       矢印がボタンの右端まで飛んでいってしまう */
    right: 1.75rem;
    margin-top: calc(var(--arrow-h) / -2);
    color: var(--color-bg); /* 矢印はcurrentColorを拾うので、ボタンの文字色を指定する */
    pointer-events: none;   /* 矢印の上をクリックしてもボタンが押せるように */
    width: 2rem;
}

/* CF7が出すメッセージ類 */
.c-form__field .wpcf7-not-valid-tip {
    margin-top: 0.5rem;
    font-size: var(--fz-jp-note-sp);
    color: var(--form-required);
}
.c-form__field input.wpcf7-not-valid,
.c-form__field select.wpcf7-not-valid,
.c-form__field textarea.wpcf7-not-valid {
    border-color: var(--form-required);
}
.wpcf7-form .wpcf7-response-output {
    order: 3;
    margin: var(--space-4) 0 0;
    margin-left: calc(var(--form-label-w) + var(--form-col-gap));
    padding: 1rem 1.25rem;
    border-width: 1px;
    font-size: var(--fz-jp-note-pc);

    @media (max-width: 750px) {
        margin-left: 0;
    }
}
/* Googleスプレッドシート連携プラグイン（gscf7）が自動で挟んでくる注記文。
   連携自体はユーザー指定で継続するため、表示だけ消す（プラグイン更新等で
   ある時点から急に出るようになった。プラグイン設定側に無効化オプションが
   見当たらない場合の代替措置） */
.gscf7-frontend-gdpr-notice {
    display: none;
}

/* Cloudflare Turnstile を送信ボタンの下に出す。

   このウィジェットはフォームの入力欄としてではなくプラグイン側が自動で
   差し込んでいるため、CF7の管理画面で位置を動かせない（現状はフォームの
   先頭に入る）。そこで .wpcf7-form を縦並びのflexにして order で
   「入力欄 → 送信ボタン → Turnstile → 応答メッセージ」の順に並べ替えている。
   :has() を併用しているのは、プラグインによってウィジェットが <p> や
   <span> に包まれて出てくる場合があり、その包みごと動かす必要があるため。

   ※ order は「見た目の順番」だけを変える。HTMLの並び自体は先頭のままなので、
     キーボードのTab移動では送信ボタンより先にウィジェットに止まる。
     DOMの順番ごと変えたい場合は、プラグイン側に表示位置の設定があるか確認すること。 */
.wpcf7-form > * {
    order: 0; /* 送信ボタンは .c-form の中にあるので、まとめてこの順番で出る */
}
.wpcf7-form > [class*="turnstile"],
.wpcf7-form > [class*="cf-turnstile"],
.wpcf7-form > :has(> [class*="turnstile"]),
.wpcf7-form > :has([class*="cf-turnstile"]) {
    order: 2;
    margin-top: var(--space-5);
    margin-left: calc(var(--form-label-w) + var(--form-col-gap));

    @media (max-width: 750px) {
        margin-left: 0;
    }
}


/* ==========================================================================
   c-wide-btn：横長ボタン（矢印つき）

   デザイン元：themes/スクリーンショット 2026-09-04 12.15.31.png
   実測値（元画像は2倍解像度のスクリーンショットなので、すべて1/2したCSS値）：
       高さ 67.5px ／ 角丸は完全な丸（高さの半分）／ 幅は本文カラムいっぱい
       文字 22px（= 1.375rem・和文なので Montserrat は当てない）
       矢印 31×6px、文字との間隔 18px
       線ありの方は 線1px ＋ 文字色 #18100d（= --color-black）
   ※ 本文の文字送りが実測31.5px（= 16px の2倍）だったので、2倍解像度と確定した。

   ■ 2種類あるが「形は同じで色と線だけが違う」
     グラデーション塗りと線ありは同じ形。なので中身をコピーした2つのCSSにはせず、
     形の定義は下の1か所にまとめ、色と線だけを -fill / -outline で切り替えている。

   ■ 管理画面での使い方（コードを触らずに変えられる範囲）
     ・エディタの「パターン → MEDIARTZ → 横長ボタン（矢印つき）」で挿入する。
     ・グラデーション ⇔ 線ありの切り替えは、ボタンを選択して
       右サイドバー「スタイル」→「MEDIARTZ 横長（グラデーション）／（線）」を選ぶだけ。
     ・色・グラデーション・線の色/太さ/角丸・幅（25〜100%）は、すべて
       右サイドバーの標準の設定パネルから変えられる。
       サイドバーで指定した値はコア側が !important 付きで出力するため、
       ここのCSSより必ず優先される（＝ここを直さなくても上書きできる）。
       「線」の設定パネルを出すために functions.php で border 設定を
       有効化してある（mda_editor_border_and_gradient() のコメント参照）。

   ■ グラデーションと矢印は既存のものを流用している（新しく作っていない）
     ・グラデーション … assets/css/tokens.css の :root の --gradient-contact。
       フッターのお問い合わせ帯（.c-contact-cta）とヘッダーのCTAボタンと同じもの。
       （元は style.css にあったが、style.css は編集画面に読み込まれないため
         編集画面でだけ色が出ず真っ白になっていた。tokens.css へ移動済み）
     ・矢印 … 上の .c-arrow と同じ assets/img/new/btn-arrow.svg を mask で敷いている。
       ここでは <span class="c-arrow"> を置けない（コアのボタンブロックの中身は
       テキストだけ）ので、リンクの ::after に同じ指定を書いている。
       background-color: currentColor なので、文字色を変えれば矢印も一緒に変わる。

   ■ PHPテンプレートから直接書きたいとき
     <a href="..." class="c-wide-btn -fill">ラベル</a> でも同じ見た目になる。
     （-outline に変えれば線あり。ブロックを介さないぶんサイドバーでは変えられない）
   ========================================================================== */

/* --- 形（グラデーション・線ありで共通） --- */
.c-wide-btn,
.wp-block-button.is-style-mda-wide-fill > .wp-block-button__link,
.wp-block-button.is-style-mda-wide-outline > .wp-block-button__link {
    /* 矢印のサイズと文字との間隔。下の padding-left の計算でも使うので変数にしてある。
       31:6 はSVG（assets/img/new/btn-arrow.svg）の縦横比。崩さないこと */
    --wbtn-arrow-w: 1.9375rem;  /* 31px */
    --wbtn-arrow-h: 0.375rem;   /*  6px */
    --wbtn-arrow-gap: 1.125rem; /* 18px：文字と矢印の間隔 */
    --wbtn-pad-x: 2em;

    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--wbtn-arrow-gap);
    width: 100%;
    min-height: 4.25rem;
    /* 高さは min-height で確保しているが、文字が2行に折り返したときに
       上下が詰まらないよう padding も持たせておく。

       左右の padding が非対称なのはデザインに合わせるため。元デザインでは
       「ラベルがボタンのど真ん中にあって、矢印はその外側に置かれている」
       （実測：線ありボタンのラベル中心1217.5px に対しボタン中心1219.5px）。
       素直に flex で中央寄せすると、矢印とその間隔のぶんラベルが左に
       約24pxずれる。そこで左だけ「矢印＋間隔」を余分に入れて、
       ラベルの中心がボタンの中心と一致するようにしている
       （左右の padding 差＝矢印＋間隔 なら、計算上ぴったり中央に来る）。 */
    padding: 0.75em var(--wbtn-pad-x);
    padding-left: calc(var(--wbtn-pad-x) + var(--wbtn-arrow-w) + var(--wbtn-arrow-gap));
    border: 1px solid transparent;
    border-radius: 999px;
    /* 和文のボタンなので .c-btn のように var(--font-en) は当てない。
       サイト共通の本文フォント（--font-jp）をそのまま継承させる */
    font-size: var(--fz-jp-h-sm-pc);
    font-weight: 400;
    line-height: 1.5;
    text-align: center;
    text-decoration: none;

    /* SPは横幅が狭く、22pxのままだと長いラベルが折り返しやすいので少し下げる。
       高さは押しやすさを優先してPCと同じまま（規則どおりclamp()は使わない） */
    @media (max-width: 750px) {
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        --wbtn-arrow-gap: 0.875rem;
        --wbtn-pad-x: 1.25em;
        font-size: 1.5rem!important;
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    }

    /* ホバーは半透明にせず、矢印だけが右にずれる。
       矢印の実体と動きは上の共通の .c-arrow ブロックにまとめてある */
}

/* --- グラデーション塗り --- */
.c-wide-btn.-fill,
.wp-block-button.is-style-mda-wide-fill > .wp-block-button__link {
    /* background ショートハンドではなく background-color と background-image を
       分けて書いている。文字が白なので、万一グラデーション（＝CSS変数）が
       解決できない環境に置かれても背景が透明になって「白地に白文字」で
       何も見えなくならないよう、下地に必ず単色を敷いておくため。
       変数が読めれば、その上にグラデーションが乗って見た目は変わらない。 */
    background-color: var(--color-accent-from);
    background-image: var(--gradient-contact);
    color: var(--color-bg);
}

/* --- 線あり（白地） --- */
.c-wide-btn.-outline,
.wp-block-button.is-style-mda-wide-outline > .wp-block-button__link {
    background: none;
    /* border-color は currentColor。文字色をサイドバーで変えると線も一緒に変わる */
    border-color: currentColor;
    color: var(--color-black);
}

/* コアのボタンブロックは幅設定（25〜100%）を .wp-block-button__width-◯◯ で出す。
   このボタンは幅いっぱいが基本なので、パターン側では 100% を指定してある。
   サイドバーで幅を50%などに変えたときに、親が中央寄せのままでも
   ボタン自身が縮まるように、幅は親（.wp-block-button）任せにしておく */
.wp-block-button.is-style-mda-wide-fill,
.wp-block-button.is-style-mda-wide-outline {
    max-width: 100%;
}


/* ==========================================================
   c-mail-address：メールアドレスの画像表示（ショートコード [mda_mail_address]）

   実装と、なぜ画像なのかの経緯は functions.php の
   mda_mail_address_shortcode() のコメントに書いてある。

   画像の高さを文字に合わせているのがポイント。原寸で出すと本文の中で
   1行だけ極端に大きく（または小さく）なるので、高さを em で文字に追従させ、
   幅は aspect-ratio 任せにして横伸びしないようにしている。
   ========================================================== */
.c-mail-address {
    display: inline-flex;
    align-items: center;
    gap: 0.4em;
    /* 画像の下に余計な隙間ができないように */
    line-height: 1;
}
.c-mail-address__img {
    /* 文字サイズに追従させる。1.15em は、大文字と小文字が混ざったアドレス画像が
       まわりの文字と同じくらいの大きさに見える値 */
    height: 1.15em;
    width: auto;
    /* wp_get_attachment_image() が width/height 属性を付けるので、
       それを上書きして縦横比を保つ */
    max-width: 100%;
    object-fit: contain;
    vertical-align: middle;
}


/* ==========================================================
   .w-fixSide：SWELL標準の「追尾サイドバー」（外観 > ウィジェット）のtop位置。
   投稿詳細ページ（single.css の .p-single__aside）だけ、SWELL標準の8pxだと
   詰まって見えるとの指摘で35pxに広げてあった。それ以外のページ（アーカイブ・
   固定ページ等、SWELL標準の.w-fixSideをそのまま使っているところ）は既定の8pxの
   ままだったので、投稿詳細ページと合わせて広げる。
   計算式（calc(… + var(--swl-adminbarH) + var(--swl-fix_headerH))）は
   swell/build/css/main.css の .w-fixSide と同じで、8px部分だけ35pxに差し替え。
   ========================================================== */
.w-fixSide {
    top: calc(35px + var(--swl-adminbarH, 0px) + var(--swl-fix_headerH, 0px));

    /* 2026-09-10追記: single.cssの.p-single__aside（このtopと同じ式が
       元ネタ）と同じ理由・同じ対策。960px未満（ハンバーガーメニュー幅）は
       #header自身がposition:sticky・実寸の高さを持つ通常のヘッダーになるため、
       このウィジェットを使っている他ページ（アーカイブ・固定ページ等）でも
       同じ「サイドバーの上がヘッダーに被る」不具合が起こり得るので、
       .w-fixSide自体にも同じ足し算をしておく。 */
    @media (max-width: 959px) {
        top: calc(35px + var(--swl-adminbarH, 0px) + var(--swl-fix_headerH, 0px) + var(--swl-headerH, 0px));
    }
}


/* ==========================================================
   p-otcTitle ・ p-otcList：One-stop Creative（媒体連携）セクション
   patterns/otc-title.php（見出し＋リード＋図版）／
   patterns/otc-list.php（3カラムの特徴リスト）
   デザイン元：themes/スクリーンショット 2026-09-09 12.47.10.png
   （正式なデザインファイルの書き出しではなくスクリーンショットのため、数値は目安。
     細部の余白・サイズは挿入後にブロックエディタから調整してよい）

   タイトル部とリスト部を別パターンに分けてあるのは、セクションごとに背景色を
   個別に変えたいというユーザー指示のため。背景・文字色は各パターンの外側の
   グループブロックが持つ「色」設定に任せてあり、ここでは付けていない
   （両パターンのPHP側コメントも参照）。中央の相関図・丸アイコンはいずれも
   画像として扱う（コーディングしていない）。
   ========================================================== */

/* --------------------------------------------------------------------------
   1. タイトル＋リード＋図版（p-otcTitle）
   -------------------------------------------------------------------------- */
.p-otcTitle {
    padding: 5rem 6%!important;
    position: relative;
}

.p-otcTitle__en {
    margin: 0;
    font-family: var(--font-en) !important;
    /* デザイン実測ではRegular相当（太さ比 stroke/height ≒ 0.11）だが、
       Montserratはこのサイトで500/600/700しか読み込んでいない
       （functions.php のGoogle Fonts指定）。400を指定すると読み込んでいない
       ウェイトへのフォールバック挙動がブラウザ次第になるため、実際に読み込んで
       ある500を明示している（700は太すぎ・実測比0.19相当でデザインと違って見えた） */
    font-weight: 500;
    font-size: 6.6rem;
    line-height: 1; /* デザイン実測でこの英語とすぐ下の日本語見出しの間はほぼ隙間が無いため、
        余分な行間（leading）を残さない */
    /* デザイン実測値（#363636相当のニュートラルグレー）。背景色 #27221f を
       前提にした薄さの目安でもあるので、背景を明るい色に変えたときは
       この段落を選んで文字色を選び直すこと（下の p-otcList__icon の
       半透明も同じ理由で背景色に依存する） */
    color: #363636;
    position: absolute;
    left: -0.2rem;
    top: 1.2rem;
}

/* 日本語見出し（本来の見出し・SEO対象）。
   構造・コメントとも patterns/sec-title.php の .p-secTtl__ja と同じ理由。
   クラス名を2回書いて詳細度を上げているのは、見出しレベルをH1に変えたときに
   SWELL側の編集画面用スタイル（.editor-styles-wrapper h1[data-type="core/heading"]）
   に負けて編集画面だけ文字が巨大になるのを防ぐため（!important は使わない）。 */
.p-otcTitle__ttl.p-otcTitle__ttl {
    /* デザイン実測で欧文(.p-otcTitle__en)とのすき間はほぼ0px
       （欧文側の line-height:1 と合わせて隙間を作らないようにしている） */
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    font-size: 2rem;
    font-weight: 400;
    line-height: 1.6;

    /* SWELLの見出し装飾（カスタマイザーで付く下線・アイコン等）を殺す */
    &::before,
    &::after {
        content: none;
    }
}
.p-otcTitle__ttl {
    color: inherit;
}

.p-otcTitle__lead {
    margin: 2rem 0 0;
    font-size: var(--fz-jp-base-pc);
    line-height: 2;
}

.p-otcTitle__img {
    margin: 3.5rem auto 0;
    max-width: 60rem;
}
.p-otcTitle__img img {
    display: block;
    width: 100%;
    height: auto;
}

@media (max-width: 750px) {
    .p-otcTitle {
        padding: var(--space-6) var(--space-4);
    }
    .p-otcTitle__en {
        font-size: 7.4rem;
        left: -0.2rem;
        top: 0.7rem;
        line-height: 0.8;
    }
    .p-otcTitle__ttl.p-otcTitle__ttl {
        font-size: 1.875rem;
    }
    .p-otcTitle__lead {
        font-size: var(--fz-jp-base-sp);
        margin-top: 7.5rem;
        z-index: 1;
        position: relative;
    }
    .p-otcTitle__img {
        margin-top: 2.5rem;
    }
}

/* --------------------------------------------------------------------------
   2. 3カラムの特徴リスト（p-otcList）
   -------------------------------------------------------------------------- */
.p-otcList {
    padding: var(--space-7) var(--space-6);
}

/* コアの columns ブロックが出す .wp-container-* 側の余白指定は環境によって
   当たらないことがあるため（patterns/plan-basic.php と同じ理由）、
   カラム間の gap はここで明示している */
.p-otcList__cols {
    gap: 5rem!important;
    margin-bottom: 0;
    justify-content: center;
}

.p-otcList__col {
    text-align: left;
}

/* ■ クラス名を2回書いて詳細度を上げている理由（重要）
   SWELLは本文見出し(h3)に既定で下線バーの装飾を出す
   （swell/build/css/main.css の .post_content h3 が margin・font-size を、
   .post_content h3:before が下線バーの位置指定を持つ。実際の太さ・色は
   カスタマイザー側から差し込まれる）。この .post_content h3 は
   「クラス1つ＋タグ名」相当の詳細度なので、こちらを単一クラス（.p-otcList__ttl）
   だけでリセットしようとすると負けて、SWELL側の下線バーが透けて出てしまう
   （実際に発生した不具合。デザインの縦棒ではなく横線が出ていた）。
   patterns/otc-title.php の .p-otcTitle__ttl.p-otcTitle__ttl と同じ対処。 */
.p-otcList__ttl.p-otcList__ttl {
    position: relative;
    margin: 0 0 2rem;
    padding: 0 0 0 1rem;
    border: 0;
    background: none;
    font-size: 1.25rem;
    font-weight: 500;
    line-height: 1.6;
    color: inherit;

    /* 見出しの改行数（1行／2行）が列によって違うと、下のアイコン・本文の
       開始位置がずれてしまう（実際に「隣の列と高さが揃わない」と指摘された）。
       見出し1行分＝font-size×line-height＝2rem として、2行ぶんを常に確保する。
       短い見出しは下に空きができるだけで、次のアイコンの開始位置は列間で揃う。
       3行以上になりそうな長い見出しを使うページでは、この2rem×2を
       2rem×3などに引き上げること。 */
    min-height: 4rem;
    
    
    
    
    

    &::before,
    &::after {
        content: none;
    }
}
/* 見出し先頭の縦棒。独立ブロックにすると編集画面で消されやすいので疑似要素で描く。
   上と同じ理由でこちらもクラス2回書きにしてある（単一クラスだと
   .post_content h3:before の下線バーが縦棒より優先されて出てしまうため） */
.p-otcList__ttl.p-otcList__ttl::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.2em;
    width: 2px;
    height: 1.1em;
    background: currentColor;
}

/* アイコンを収める丸。中の画像がどんな縦横比でも object-fit: contain で
   丸の中に収まる。背景の半透明さは p-otcTitle__en と同じく初期の
   背景色（#27221f）前提の値 */
.p-otcList__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 10rem; /* コアのcolumnsは782px以上だとflex-wrap:nowrapで3列横並びを
                         強制するため、列自体がこの固定サイズより狭くなると
                         アイコンだけ列からはみ出していた（実際に発生した不具合）。
                         aspect-ratioで正方形を保ったまま縮められるようにする */
    aspect-ratio: 1 / 1;
    margin: 0 auto 2rem;
    border-radius: 50%;
    background-color: #424242;
    overflow: hidden;
}
.p-otcList__icon img {
    width: 60%!important;
    object-fit: contain;
}

.p-otcList__text {
    margin: 0;
    font-size: var(--fz-jp-base-pc);
    line-height: var(--lh-jp-h-xs-pc);
    text-align: justify;
}

@media (max-width: 750px) {
    .p-otcList {
        padding: 1.1rem!important;
    }

    /* SPはスクリーンショット（2026-09-16 19.48.14.png）実測のとおり、
       見出しを上段フル幅、アイコン（左）とテキスト（右）を下段で横並びにする
       （PCの「見出し→アイコン→テキストを縦に積む・アイコンは中央寄せ」とは
       別レイアウト）。gridエリアで組む */
    .p-otcList__col {
        display: grid;
        grid-template-columns: minmax(0, 50%) 1fr;
        grid-template-areas:
            "ttl  ttl"
            "icon text";
        column-gap: 2.5rem;
        align-items: center;
    }
    .p-otcList__ttl.p-otcList__ttl {
        grid-area: ttl;
        /* PC用の「隣の列とアイコン開始位置を揃えるための2行ぶん確保」は
           3列横並びのときだけ意味がある調整で、SPは列ごとに独立して積むので不要 */
        min-height: 0;
        font-size: 1.5rem;
    }
    .p-otcList__icon {
        grid-area: icon;
        width: 100%;
        max-width: none;
        margin: 0;
    }
    .p-otcList__text {
        grid-area: text;
        font-size: var(--fz-jp-base-sp);
    }
}


/* ==========================================================
   p-agencyCase：こんなお悩みありませんか？（代理店ページ冒頭）
   patterns/agency-case.php
   デザイン元：themes/PC_Agency.jpg（実測 #f7f3f0 付近。tokens.cssの
   --color-bg-soft #f8f7f5 に合わせてある）

   背景色は外側のグループブロックが持つ「色」設定に任せてあり
   （patterns/agency-case.php側コメント参照）、ここでは付けていない。
   ========================================================== */
.p-agencyCase {
    padding: 0!important;
}

.p-agencyCase__row.p-agencyCase__row {
    /* コアのcolumnsブロックが出す.wp-container-*側の余白は環境によって
       当たらないことがあるため（patterns/otc-list.phpと同じ理由）、
       行間・列間のgapはここで明示している */
    gap: var(--space-4);
    margin-bottom: var(--space-4);

    &:last-of-type {
        margin-bottom: 0;
    }
}

/* カード（「CASE nラベル」＋白背景）1枚分の縦積み。コアのcolumnsブロックは
   既定で行内の列を同じ高さに揃える（stretch）ので、.p-agencyCase__col自体は
   すでに同じ行の隣列と高さが揃っている。あとはその高さを白背景（.p-agencyCase__card）
   まで伝えれば、本文の長さが違っても白背景の高さが行内で統一される
   （2026-09-11追記：ユーザー要望により追加。「最低限、白背景の高さだけ揃えたい」
   というリクエストなので、中のcolumns（本文列・画像列）まではstretchさせていない
   ＝画像が短い側のカードでは白背景の下に少し余白ができるだけで、崩れはしない） */
.p-agencyCase__col {
    display: flex;
    flex-direction: column;
}

/* 「CASE n」ラベルは白カードの外（グレージュ背景の上）に置く。
   カードそのものの背景色は自前CSSではなく、内側のグループブロックが持つ
   「色」設定（インラインstyle。patterns/agency-case.php参照）に任せてある。
   実機でCSSクラス指定の背景色が反映されない事象があったため、確実に効く
   WordPress標準のグループ背景色に統一した経緯がある（同ファイルのコメント参照） */
.p-agencyCase__no {
    margin: 0 1.5rem -1.5rem;
    font-family: var(--font-en);
    font-weight: 400;
    font-size: 1.75rem;
    letter-spacing: 0.05em;
    color: var(--color-placeholder);
    z-index: 1;
    position: relative;

		@media (max-width: 750px) {
		font-size: var(--fz-en-h-md-sp);margin: 0 1.5rem -1.8rem;
	}
}

.p-agencyCase__card {
    flex: 1 1 auto;
    padding: 2.5rem 2rem !important;
}

.p-agencyCase__inner.p-agencyCase__inner {
    /* 本文（左）とイラスト（右）の間隔。理由は.p-agencyCase__rowと同じ */
    gap: var(--space-4);
    margin-bottom: 0;
}

.p-agencyCase__caseTtl.p-agencyCase__caseTtl {
    /* SWELLの本文見出し装飾（.post_content h3の下線バー等）をリセットして
       独自の縦棒に差し替える。クラス名を2回書いて詳細度を上げる手口は
       patterns/otc-list.php の .p-otcList__ttl.p-otcList__ttl と同じだが、
       実機ではそれでも負けたため（SWELLカスタマイザーの動的CSSが強かった）
       !important を付けて確実に上書きする */
    position: relative;
    margin: 0 0 var(--space-3) !important;
    padding: 0 0 0 1em !important;
    border: 0 !important;
    background: none !important;
    font-size: 1.0625rem;
    font-weight: 700;
    line-height: 1.5;
    color: inherit;

    &::before,
    &::after {
        content: none !important;
    }

	@media (max-width: 750px) {
		font-size: var(--fz-jp-h-sm-sp);
	}
}
/* 見出し先頭の縦棒。独立ブロックにすると編集画面で消されやすいので疑似要素で描く
   （patterns/otc-list.php の .p-otcList__ttl::before と同じ手） */
.p-agencyCase__caseTtl.p-agencyCase__caseTtl::before {
    content: '' !important;
    position: absolute;
    left: 0;
    top: 0.15em;
    width: 3px;
    height: 1.1em;
    background: currentColor;
}

.p-agencyCase__text {
    margin: 0;
    font-size: var(--fz-jp-note-pc);
    line-height: var(--lh-jp-md-pc);
    color: var(--color-text-sub);

	@media (max-width: 750px) {
		font-size: var(--fz-jp-base-sp);
	}
}
.p-agencyCase__inner {
    flex-wrap: wrap!important;
    justify-content: center;
    row-gap: 0!important;
}
.p-agencyCase__textCol {
    min-width: 40%;
}
.wp-block-columns .wp-block-column.p-agencyCase__imgCol {
    /* コアのcolumnブロックの既定padding等を打ち消し、画像をカード内で
       上端から素直に置く */
    align-self: stretch;
    /* flex-basis: 17rem!important; */
    margin-right: -2rem!important;
    min-width: 17rem;

	@media (max-width: 750px) {
	    margin-right: 0rem!important;margin-top: -2rem!important;
	}
}
.p-agencyCase__img {
    margin: 0;
    width: 100%;
    height: 100%;
    aspect-ratio: 275/200;
    

    & img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }
}

.p-agencyCase__solve {
    margin: var(--space-6) 0 0;
    font-size: 1.5rem;
    text-align: center;
}

@media (max-width: 750px) {
    .p-agencyCase {
        padding: var(--space-6) var(--space-4);
    }
    .p-agencyCase__row.p-agencyCase__row {
        gap: var(--space-3);
    }
    .p-agencyCase__card {
        padding: var(--space-4);
    }
    .p-agencyCase__solve {
        margin-top: var(--space-5);
        font-size: var(--fz-jp-h-sm-sp);
    }
}




.agency_reason {
    width: 28.375rem;
    margin: -12rem 0 -3rem auto;
    position: relative;
    z-index: 1;

	@media (max-width: 750px) {
		    margin: -6.1rem 3rem -3rem auto;/* width: 22.375rem; */
	}
}


/* ==========================================================
   p-agencyComm：コミュニケーションツール（代理店ページ）
   patterns/agency-comm.php
   デザイン元：themes/PC_Agency.jpg（「コミュニケーションツール」セクション）

   背景色は外側のグループブロックが持つ「色」設定に任せてある
   （patterns/agency-comm.php側コメント参照）。
   アイコンの並びは<ul><li>ではなくgroupのネスト（flex）で組んでいる
   ＝このページで繰り返し出ているSWELLの.post_content li上書き問題を、
   そもそも<li>を使わないことで回避している。
   ========================================================== */
.p-agencyComm {
    padding: var(--space-7) var(--space-6);
    color: var(--color-bg);
    text-align: center;
}

.p-agencyComm__head {
    position: relative;
    margin: 0 0 var(--space-6);
}

.p-agencyComm__ghost {
    /* TOPの.c-stats__marquee（CREATIVE WORKS!）と同じ「大きく薄い英字」の
       演出言語（あちらも太字だと重すぎるとの指摘でweight 700→400にした経緯があり、
       ここも合わせてある）。色は#403531（ユーザー指定・実機確認済み） */
    margin: 0;
    font-family: var(--font-en);
    font-weight: 400;
    font-size: 4.5rem;
    letter-spacing: 0.05em;
    line-height: 1;
    color: #403531;
    overflow: hidden;
    top: -1.3rem;
    position: relative;

	
	@media (max-width: 750px) {
	    
	    
	    
	    
	    
	    
	    
	    
	    font-size: var(--fz-en-h-lg-sp);
	    top: 0rem;
	    width: 110%;
	    left: -5%;
	    
	    
	    
	    
	    
	    
	    
	    
	}
}

.p-agencyComm__ttl.p-agencyComm__ttl {
    /* SWELLの本文見出し装飾（.post_content h2 { margin:4em 0 2em; position:relative;
       z-index:1 }）をリセットして、ghost英字の上に重ねる。marginとpositionは
       この重ね配置が成立するかどうかに直結するため（リセットが効かないと
       見出しが吹き飛ぶ）、クラス2回書きに加えて!importantも付けている
       （patterns/otc-list.phpの.p-otcList__ttl.p-otcList__ttlと同じ理由・
       より重要度が高いため対策を強めてある） */
    position: absolute !important;
    inset: 0;
    margin: 0 !important;
    padding: 0;
    border: 0;
    background: none;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.5;
    color: inherit;
    z-index: 1;
    

    &::before,
    &::after {
        content: none !important;
    }

	@media (max-width: 750px) {
     font-size: var(--fz-jp-h-sm-sp);
	}
}

.p-agencyComm__list.p-agencyComm__list {
    /* 実機で縦並びのままになる不具合の真因：patterns/sec-title.php（.p-secTtl）側の
       コメントと同じSWELL/WordPressの仕様——グループブロックはフロント表示時だけ
       （エディタ内では起きない）wp_restore_group_inner_container()により中身が
       <div class="wp-block-group__inner-container">でもう1枚包まれる。このパターンの
       .p-agencyComm__item群は.p-agencyComm__listの「孫」になってしまい、
       .p-agencyComm__listに掛けたdisplay:flexが子（＝包み紙1枚だけ）にしか効かず、
       孫のitem群は素のブロック要素のまま縦に積まれていた（前回の!importantは
       的外れな対策だった＝的が違った）。
       .p-secTtlと同じ対処：クラス名を当てにせず[class*="inner-container"]で
       包み紙を検出し、display:contentsで箱ごと消して孫を子に格上げする */
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-6) var(--space-5);
    margin: 0 0 var(--space-5);

    & > [class*="inner-container"] {
        display: contents;
    }

	

	@media (max-width: 750px) {
	    gap: var(--space-4) var(--space-5);
	}
}

.p-agencyComm__item.p-agencyComm__item {
    /* 同じ理由（.p-agencyComm__list側のコメント参照）。こちらは画像＋ラベルの
       縦積みを直接の子に対して行うためのflex-columnなので、同様に包み紙を消す */
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-2);
    width: 6rem;

    & > [class*="inner-container"] {
        display: contents;
    }
	@media (max-width: 750px) {
	    width: 7rem;
	}
}

.p-agencyComm__icon {
    margin: 0 !important;
    width: 2.5rem;
    aspect-ratio: 1 / 1;

    & img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }
	
	@media (max-width: 750px) {
	    width: 50%;
	}
}

.p-agencyComm__label {
    margin: 0;
    font-family: var(--font-en);
    font-size: var(--fz-jp-xs-pc);
    letter-spacing: 0.03em;

	@media (max-width: 750px) {
		font-size: var(--fz-jp-xs-sp);line-height: 1.3;
	}
}

.p-agencyComm__note {
    margin: 0;
    color: rgba(255, 255, 255, 0.75);
}



@media (max-width: 750px) {
.swell-block-fullWide__inner.l-article, .swell-block-fullWide__inner.l-container {
    padding-inline: 7.6vw;
}
}

.-inner-type .swell-block-fullWide__inner {
    width: 90%;
    padding: 0 0!important;

    @media (max-width: 750px) {
        width: 80%;
    }
}

/* ---- common_remodal_css (reset.css) ---- */
@charset "utf-8";

/* ========================================================
   Reset CSS (Corrected Version)
   ======================================================== */

/* 1. ベースのリセット */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit; /* フォント設定を継承 */
	vertical-align: baseline;
	box-sizing: border-box; /* 仕様書準拠 */
}

/* 2. HTML5要素のブロック化 */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}

/* 3. 基本設定 */
body {
	line-height: 1;
	-webkit-text-size-adjust: 100%;
}

ol, ul {
	list-style: none;
}

blockquote, q {
	quotes: none;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

/* 4. リンクと画像の基本 */
a {
	text-decoration: none;
	color: inherit;
}

img {
	max-width: 100%;
	height: auto;
	vertical-align: bottom; /* 画像下の隙間を消す */
	border-style: none;
}

/* 5. 【重要】フォーム・ボタンのリセット（今回追加・修正） */
button,
input,
select,
textarea {
	font-family: inherit; /* 親要素のフォントを引き継ぐ */
	font-size: 100%;
	margin: 0;
	border-radius: 0; /* スマホでの角丸解除 */
	-webkit-appearance: none; /* ブラウザ標準スタイル削除 */
	appearance: none;
    background-color: transparent; /* 背景透明化 */
    border: none; /* 枠線削除 */
}

/* ボタン系はカーソルを指マークに */
button,
input[type="button"],
input[type="submit"],
input[type="reset"] {
	cursor: pointer;
}

/* テキストエリアのサイズ変更を縦のみ許可 */
textarea {
	resize: vertical;
}

/* 全称セレクタでのbox-sizing（念のためここでも明記） */
*, *::before, *::after {
  box-sizing: border-box;
}