.elementor-14855 .elementor-element.elementor-element-bce041d{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--flex-wrap:wrap;--align-content:flex-start;--margin-top:5.2vw;--margin-bottom:0vw;--margin-left:0vw;--margin-right:0vw;}.elementor-14855 .elementor-element.elementor-element-5bdf4fd{--display:flex;--min-height:100svh;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;border-style:solid;--border-style:solid;border-width:0px 1px 0px 0px;--border-top-width:0px;--border-right-width:1px;--border-bottom-width:0px;--border-left-width:0px;border-color:#C2C2C2;--border-color:#C2C2C2;}.elementor-14855 .elementor-element.elementor-element-f3e4362.elementor-element{--align-self:flex-start;}.elementor-14855 .elementor-element.elementor-element-93fd707{--display:flex;}.elementor-14855 .elementor-element.elementor-element-946113e{--display:flex;border-style:solid;--border-style:solid;border-width:0px 0px 1px 0px;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:1px;--border-left-width:0px;border-color:var( --e-global-color-712f437 );--border-color:var( --e-global-color-712f437 );--padding-top:1vw;--padding-bottom:1vw;--padding-left:2vw;--padding-right:2vw;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-14855 .elementor-element.elementor-element-9458272.elementor-element{--align-self:flex-start;}.elementor-14855 .elementor-element.elementor-element-9458272{font-family:"Inter", Sans-serif;font-size:0.9vw;font-weight:500;text-transform:uppercase;line-height:1.7em;color:var( --e-global-color-primary );}.elementor-14855 .elementor-element.elementor-element-b1146f6{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--flex-wrap:wrap;--align-content:flex-end;border-style:solid;--border-style:solid;border-width:0px 0px 1px 0px;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:1px;--border-left-width:0px;border-color:var( --e-global-color-712f437 );--border-color:var( --e-global-color-712f437 );--padding-top:0vw;--padding-bottom:0vw;--padding-left:2vw;--padding-right:2vw;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;color:var( --e-global-color-primary );}.elementor-14855 .elementor-element.elementor-element-2045780{width:auto;max-width:auto;z-index:1;text-align:start;}.elementor-14855 .elementor-element.elementor-element-2045780 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-14855 .elementor-element.elementor-element-2045780 .elementor-heading-title{font-family:"Inter", Sans-serif;font-size:9vw;font-weight:700;text-transform:uppercase;line-height:1.4em;color:#12121200;}.elementor-14855 .elementor-element.elementor-element-43c13ba{width:auto;max-width:auto;text-align:start;}.elementor-14855 .elementor-element.elementor-element-43c13ba > .elementor-widget-container{margin:0vw 0vw 2vw 0vw;}.elementor-14855 .elementor-element.elementor-element-43c13ba.elementor-element{--align-self:flex-end;}.elementor-14855 .elementor-element.elementor-element-43c13ba .elementor-heading-title{font-family:"Zen Kaku Gothic New", Sans-serif;font-size:1.6vw;font-weight:700;line-height:1.7em;letter-spacing:0.07em;color:#FFFFFF;}.elementor-14855 .elementor-element.elementor-element-8304039{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--gap:0.5vw 0vw;--row-gap:0.5vw;--column-gap:0vw;--flex-wrap:wrap;--align-content:flex-end;border-style:solid;--border-style:solid;border-width:0px 0px 1px 0px;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:1px;--border-left-width:0px;border-color:var( --e-global-color-712f437 );--border-color:var( --e-global-color-712f437 );--padding-top:5vw;--padding-bottom:5vw;--padding-left:2.5vw;--padding-right:2.5vw;}.elementor-14855 .elementor-element.elementor-element-6492e0c{width:100%;max-width:100%;text-align:start;}.elementor-14855 .elementor-element.elementor-element-6492e0c > .elementor-widget-container{margin:0vw 0vw 0vw 0vw;padding:0vw 1vw 0vw 0vw;}.elementor-14855 .elementor-element.elementor-element-6492e0c.elementor-element{--align-self:center;}.elementor-14855 .elementor-element.elementor-element-6492e0c .elementor-heading-title{font-family:"Inter", Sans-serif;font-size:1.6vw;font-weight:500;text-transform:capitalize;line-height:1.2em;letter-spacing:-0.03em;color:#1D283600;}.elementor-14855 .elementor-element.elementor-element-d4b83a6{width:auto;max-width:auto;z-index:1;text-align:start;}.elementor-14855 .elementor-element.elementor-element-d4b83a6 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-14855 .elementor-element.elementor-element-d4b83a6 .elementor-heading-title{font-family:"Zen Kaku Gothic New", Sans-serif;font-size:4.5vw;font-weight:900;text-transform:uppercase;line-height:1.2em;color:#12121200;}.elementor-14855 .elementor-element.elementor-element-0c6b4cd{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-end;--align-items:center;--gap:0vw 2vw;--row-gap:0vw;--column-gap:2vw;--flex-wrap:wrap;--align-content:center;border-style:solid;--border-style:solid;border-width:0px 0px 1px 0px;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:1px;--border-left-width:0px;border-color:#C2C2C2;--border-color:#C2C2C2;--padding-top:2vw;--padding-bottom:2vw;--padding-left:2vw;--padding-right:3vw;}.elementor-14855 .elementor-element.elementor-element-2a4e08c > .elementor-widget-container{padding:0.2vw 0vw 0vw 0vw;}.elementor-14855 .elementor-element.elementor-element-2a4e08c.elementor-element{--align-self:center;}.elementor-14855 .elementor-element.elementor-element-2a4e08c{font-family:"Inter", Sans-serif;font-size:0.97vw;text-transform:capitalize;line-height:1.5em;color:var( --e-global-color-primary );}.elementor-14855 .elementor-element.elementor-element-2e0bbe2.elementor-element{--align-self:center;}.elementor-14855 .elementor-element.elementor-element-2e0bbe2 .elementor-heading-title{font-family:"Zen Kaku Gothic New", Sans-serif;font-size:1vw;font-weight:500;line-height:1.5em;}.elementor-14855 .elementor-element.elementor-element-7d28150{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--flex-wrap:wrap;--padding-top:6vw;--padding-bottom:0vw;--padding-left:5vw;--padding-right:5vw;}.elementor-14855 .elementor-element.elementor-element-e2bd648{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-start;--gap:0vw 0.8vw;--row-gap:0vw;--column-gap:0.8vw;--flex-wrap:wrap;--align-content:flex-start;--padding-top:0vw;--padding-bottom:0vw;--padding-left:0vw;--padding-right:0vw;--z-index:1;}.elementor-14855 .elementor-element.elementor-element-37e90df{width:auto;max-width:auto;}.elementor-14855 .elementor-element.elementor-element-37e90df.elementor-element{--align-self:center;}.elementor-14855 .elementor-element.elementor-element-ac6458f.elementor-element{--align-self:center;}.elementor-14855 .elementor-element.elementor-element-ac6458f .elementor-heading-title{font-family:"Inter", Sans-serif;font-size:1.1vw;text-transform:capitalize;line-height:1.7em;letter-spacing:0.03em;color:var( --e-global-color-primary );}.elementor-14855 .elementor-element.elementor-element-144dd53{width:var( --container-widget-width, 100% );max-width:100%;--container-widget-width:100%;--container-widget-flex-grow:0;z-index:1;}.elementor-14855 .elementor-element.elementor-element-144dd53 > .elementor-widget-container{padding:0vw 0vw 0vw 0vw;}.elementor-14855 .elementor-element.elementor-element-144dd53 .elementor-heading-title{font-size:1.9vw;font-weight:700;line-height:1.9em;letter-spacing:0.03em;}.elementor-14855 .elementor-element.elementor-element-10017f9{width:100%;max-width:100%;}.elementor-14855 .elementor-element.elementor-element-10017f9 > .elementor-widget-container{padding:1vw 0vw 0vw 0vw;}.elementor-14855 .elementor-element.elementor-element-10017f9.elementor-element{--align-self:flex-start;}.elementor-14855 .elementor-element.elementor-element-10017f9 .elementor-heading-title{font-size:1.2vw;font-weight:500;line-height:1.9em;letter-spacing:0.07em;color:var( --e-global-color-primary );}.elementor-14855 .elementor-element.elementor-element-bc66a8b{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--flex-wrap:wrap;--align-content:flex-start;border-style:solid;--border-style:solid;border-width:0px 0px 0px 0px;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:0px;--border-left-width:0px;border-color:var( --e-global-color-712f437 );--border-color:var( --e-global-color-712f437 );--padding-top:4vw;--padding-bottom:6vw;--padding-left:5vw;--padding-right:5vw;}.elementor-14855 .elementor-element.elementor-element-4d0d2e5{--display:flex;}.elementor-14855 .elementor-element.elementor-element-beec914 .elementor-heading-title{font-family:"Zen Kaku Gothic New", Sans-serif;}.elementor-14855 .elementor-element.elementor-element-8c9e95f{--display:flex;}.elementor-14855 .elementor-element.elementor-element-0ab9869{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}@media(max-width:1024px){.elementor-14855 .elementor-element.elementor-element-bce041d{--margin-top:7vw;--margin-bottom:0vw;--margin-left:0vw;--margin-right:0vw;}.elementor-14855 .elementor-element.elementor-element-9458272{font-size:1.5vw;}.elementor-14855 .elementor-element.elementor-element-43c13ba .elementor-heading-title{font-size:2vw;}.elementor-14855 .elementor-element.elementor-element-8304039{--padding-top:5vw;--padding-bottom:5vw;--padding-left:3.5vw;--padding-right:3.5vw;}.elementor-14855 .elementor-element.elementor-element-6492e0c .elementor-heading-title{font-size:2vw;}.elementor-14855 .elementor-element.elementor-element-2a4e08c{font-size:1.45vw;}.elementor-14855 .elementor-element.elementor-element-2e0bbe2 .elementor-heading-title{font-size:1.45vw;}.elementor-14855 .elementor-element.elementor-element-7d28150{--padding-top:4vw;--padding-bottom:0vw;--padding-left:3.5vw;--padding-right:3.5vw;}.elementor-14855 .elementor-element.elementor-element-ac6458f .elementor-heading-title{font-size:1.5vw;}.elementor-14855 .elementor-element.elementor-element-144dd53{--container-widget-width:100%;--container-widget-flex-grow:0;width:var( --container-widget-width, 100% );max-width:100%;}.elementor-14855 .elementor-element.elementor-element-144dd53 .elementor-heading-title{font-size:2.3vw;}.elementor-14855 .elementor-element.elementor-element-10017f9 .elementor-heading-title{font-size:1.6vw;line-height:1.7em;}.elementor-14855 .elementor-element.elementor-element-bc66a8b{--padding-top:4vw;--padding-bottom:6vw;--padding-left:3.5vw;--padding-right:3.5vw;}}@media(max-width:767px){.elementor-14855 .elementor-element.elementor-element-bce041d{--flex-direction:column-reverse;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--margin-top:15vw;--margin-bottom:0vw;--margin-left:0vw;--margin-right:0vw;}.elementor-14855 .elementor-element.elementor-element-946113e{--padding-top:2vw;--padding-bottom:2vw;--padding-left:5vw;--padding-right:5vw;}.elementor-14855 .elementor-element.elementor-element-9458272{font-size:3vw;}.elementor-14855 .elementor-element.elementor-element-b1146f6{--padding-top:2vw;--padding-bottom:2vw;--padding-left:5vw;--padding-right:5vw;}.elementor-14855 .elementor-element.elementor-element-2045780 .elementor-heading-title{font-size:10vw;}.elementor-14855 .elementor-element.elementor-element-43c13ba .elementor-heading-title{font-size:3.5vw;}.elementor-14855 .elementor-element.elementor-element-8304039{--gap:1vw 0vw;--row-gap:1vw;--column-gap:0vw;--padding-top:8vw;--padding-bottom:6vw;--padding-left:5vw;--padding-right:5vw;}.elementor-14855 .elementor-element.elementor-element-6492e0c .elementor-heading-title{font-size:3.5vw;}.elementor-14855 .elementor-element.elementor-element-d4b83a6 .elementor-heading-title{font-size:7vw;}.elementor-14855 .elementor-element.elementor-element-0c6b4cd{--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-start;--gap:1.5vw 5vw;--row-gap:1.5vw;--column-gap:5vw;--padding-top:4vw;--padding-bottom:4vw;--padding-left:5vw;--padding-right:5vw;}.elementor-14855 .elementor-element.elementor-element-2a4e08c{width:100%;max-width:100%;font-size:3vw;}.elementor-14855 .elementor-element.elementor-element-2e0bbe2 .elementor-heading-title{font-size:3vw;}.elementor-14855 .elementor-element.elementor-element-7d28150{--padding-top:8vw;--padding-bottom:4vw;--padding-left:5vw;--padding-right:5vw;}.elementor-14855 .elementor-element.elementor-element-e2bd648{--gap:0vw 2vw;--row-gap:0vw;--column-gap:2vw;}.elementor-14855 .elementor-element.elementor-element-37e90df{width:auto;max-width:auto;}.elementor-14855 .elementor-element.elementor-element-37e90df.elementor-element{--align-self:center;}.elementor-14855 .elementor-element.elementor-element-ac6458f .elementor-heading-title{font-size:3vw;}.elementor-14855 .elementor-element.elementor-element-144dd53 > .elementor-widget-container{padding:0vw 0vw 0vw 0vw;}.elementor-14855 .elementor-element.elementor-element-144dd53{--container-widget-width:100%;--container-widget-flex-grow:0;width:var( --container-widget-width, 100% );max-width:100%;}.elementor-14855 .elementor-element.elementor-element-144dd53 .elementor-heading-title{font-size:5vw;}.elementor-14855 .elementor-element.elementor-element-10017f9 .elementor-heading-title{font-size:3.4vw;line-height:1.7em;}.elementor-14855 .elementor-element.elementor-element-bc66a8b{--padding-top:8vw;--padding-bottom:8vw;--padding-left:5vw;--padding-right:5vw;}}@media(min-width:768px){.elementor-14855 .elementor-element.elementor-element-5bdf4fd{--width:5%;}.elementor-14855 .elementor-element.elementor-element-93fd707{--width:95%;}.elementor-14855 .elementor-element.elementor-element-8c9e95f{--width:100%;}}@media(max-width:1024px) and (min-width:768px){.elementor-14855 .elementor-element.elementor-element-5bdf4fd{--width:7%;}.elementor-14855 .elementor-element.elementor-element-93fd707{--width:93%;}}/* Start custom CSS for heading, class: .elementor-element-43c13ba */.back-highlight-text {
  padding: 0.1em 0.4em;
  background-color: transparent;
  color: #485B66;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  display: inline;
  line-height: 1.2;
  background-size: 100% 0%;
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-image: linear-gradient(#283445, #283445);
  transition: background-size 0.6s ease, color 0.6s ease;
}

.back-highlight-text.active {
  background-size: 100% 100%;
  color: #fff;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-6492e0c */.back-highlight-text {
  padding: 0.1em 0.4em;
  background-color: transparent;
  color: #485B66;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  display: inline;
  line-height: 1.2;
  background-size: 100% 0%;
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-image: linear-gradient(#283445, #283445);
  transition: background-size 0.6s ease, color 0.6s ease;
}

.back-highlight-text.active {
  background-size: 100% 100%;
  color: #fff;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-d4b83a6 */.jp_k {
    letter-spacing: -0.2em;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-2e0bbe2 *//* --------------------
   1. 親要素の設定
   -------------------- */
.elementor-14855 .elementor-element.elementor-element-2e0bbe2  {
  /* 擬似要素の基準位置 */
  position: relative;
  /* 文字の長さに幅を合わせる */
  display: inline-block; 
  /* 文字と下線の間のスペース調整 */
  padding-bottom: 0px; 
  /* 念のためデフォルトの下線を消す */
  text-decoration: none;
}

/* --------------------
   2. ::before: グレーのベースライン
   -------------------- */
.elementor-14855 .elementor-element.elementor-element-2e0bbe2 ::before {
  content: '';
  display: block; 
  
  /* グレーの線のサイズと色 */
  width: 100%; /* 親要素の幅いっぱいに引く */
  height: 1px; /* 太さ */
  background-color: #ddd; /* グレーの色 */
  
  /* 親要素を基準に、一番下に配置 */
  position: absolute;
  left: 0;
  bottom: -2px; 
}

/* --------------------
   3. ::after: 赤いホバーライン（アニメーション）
   -------------------- */
.elementor-14855 .elementor-element.elementor-element-2e0bbe2 ::after {
  content: '';
  display: block; 
  
  /* 赤い線の初期状態のサイズと色 */
  width: 0; /* 初期状態: 幅をゼロにして非表示 */
  height: 1px; /* ベースラインより少し太くして目立たせる */
  background-color: #485B66; /* 赤色 */
  
  /* 親要素を基準に、一番下に配置 */
  position: absolute;
  left: 0;
  bottom: -2px; 
  
  /* アニメーションの設定 */
  transition: width 0.3s ease-out; /* 幅の変化に0.3秒かけてアニメーションを適用 */
}

/* --------------------
   4. ホバー時のスタイル
   -------------------- */
.elementor-14855 .elementor-element.elementor-element-2e0bbe2 :hover::after {
  width: 100%; /* ホバーしたら幅を100%にし、線が左から右に伸びる */
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-ac6458f */.separator-r::after{
  content:"";
  display:inline-block;
  width:3em;
  height:1px;
  background:#7a7a7a;

  margin: 0 0.5em;              /* 上下marginを消す */
  transform: translateY(-0.35em); /* ここで上げる（値は微調整） */
}
@media (max-width: 767px){
  .separator-r::after{
    margin: 0 0.8em;   
    transform: translateY(-0.35em);
  }
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-144dd53 */.st-tx {
    color:oklch(0.9398 0.1761 124.71);
}

.st-tx2 {
    color:oklch(0.5393 0.2093 28.66);
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-beec914 */.elementor-14855 .elementor-element.elementor-element-beec914 {
    display: none;
}/* End custom CSS */
/* Start custom CSS for shortcode, class: .elementor-element-aa93c40 *//* =========================================================
   CF7 Modern（マルチステップ/日付UI削除版）
========================================================= */

/* ---- カラートークン（デフォルト） ---- */
:root {
  --cf7-bg: #ffffff00;

  --cf7-text: #111;
  --cf7-head-muted: #666;
  --cf7-muted: #666;
  --cf7-note: #888;
  --cf7-placeholder: #888;
  --cf7-title-fg: rgba(0,0,0,.08);

  --cf7-input-bg: #ffffff;
  --cf7-input-border: #dddddd;
  --cf7-divider-top: #a9a9a9;
  --cf7-divider-bottom: #e8e8e8;

  --cf7-focus: #3b82f6;
  --cf7-accent: var(--site-bg-deep-grad);

  --cf7-choice-unchecked: #f8f9fa;
  --cf7-choice-dot: var(--site-bg-deep-grad);

  --cf7-badge-optional-bg: #dddddd;
  --cf7-badge-optional-fg: #666666;

  --cf7-btn-bg: #ffffff;
  --cf7-btn-fg: #333333;
  --cf7-btn-border: rgba(0,0,0,0);
  --cf7-btn-hover-bg: #444444;
  --cf7-btn-hover-fg: #ffffff;

  --cf7-spinner-offset: -2.2em;
}

/* 入力画面 */
.cf7-modern {
  width: 100%;
  padding: 4vw 0;
  background: var(--cf7-bg);
  font-family: "Zen Kaku Gothic New", system-ui, -apple-system, "Segoe UI", Roboto,
    "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  font-size: 1.1vw;
  box-sizing: border-box;
  color: var(--cf7-text);
}

/* 行レイアウト（3カラム固定） */
.cf7-modern .form-field{
  display: flex; align-items: center; justify-content: space-between; gap: 0;
  padding: 2vw 0; border-top: 1px solid var(--cf7-divider-top);
}
.cf7-modern .form-field:last-of-type{ border-bottom: 1px solid var(--cf7-divider-bottom); }

.cf7-modern .field-label{ flex: 0 0 25%; font-weight: 600; }
.cf7-modern .field-input{ flex: 1; max-width: 40%; min-width: 0; font-weight: 500; }
.cf7-modern .field-help{ flex: 0 0 25%; }

/* ラベル整列・余白リセット */
.cf7-modern .field-label label,
.cf7-modern .field-label > span,
.cf7-modern .field-label span[id$="-label"]{
  display: flex; justify-content: space-between; align-items: center; width: 100%; line-height: 1.3;
}
.cf7-modern .form-field label,
.cf7-modern .form-field p,
.cf7-modern .field-label p,
.cf7-modern .field-help p{ margin: 0; }

/* 注記とバッジ */
.cf7-modern .note{ font-size: 0.9vw; color: var(--cf7-note); margin-top: 0.4vw; }

/* ✅ 必須/任意：上下の窮屈さを解消（背景があるときに綺麗に見える） */
.cf7-modern .required,
.cf7-modern .optional{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75vw;
  line-height: 1.25;                 /* ★ 1 → 1.25 */
  padding: 0.38vw 0.72vw;            /* ★ 縦を少し厚く */
  border-radius: 0.35vw;             /* ★ 少し丸く */
  margin-left: 0.35em;               /* ★ 少し離す */
  transform: none;                   /* ★ translateYをやめる（ズレ原因になりやすい） */
}
.cf7-modern .required{ background: var(--cf7-accent); color:#fff; }
.cf7-modern .optional{ background: var(--cf7-badge-optional-bg); color: var(--cf7-badge-optional-fg); }

/* 入力コントロール */
.cf7-modern input[type="text"],
.cf7-modern input[type="email"],
.cf7-modern input[type="tel"],
.cf7-modern textarea{
  width: 100%;
  padding: 1vw 1.3vw;
  border: 1px solid var(--cf7-input-border);
  border-radius: 0.3vw;
  font-size: 1.1vw;
  line-height: 1.2;
  background: var(--cf7-input-bg);
  color: var(--cf7-text);
  box-sizing: border-box;
  outline: none;
  transition: border-color 0.15s, color 0.15s, background-color 0.15s;
}
.cf7-modern input[type="text"]:focus,
.cf7-modern input[type="email"]:focus,
.cf7-modern input[type="tel"]:focus,
.cf7-modern textarea:focus{
  border-color: var(--cf7-focus);
  box-shadow: none;
}
.cf7-modern textarea{ min-height: 10vw; resize: vertical; }
.cf7-modern ::placeholder{ color: var(--cf7-placeholder); }

/* 自動入力でも文字は黒 */
.cf7-modern input:-webkit-autofill{
  -webkit-text-fill-color: #000 !important;
  transition: background-color 9999s ease-out 0s;
}

/* オプション（チェック） */
.cf7-modern .options-inline{
  display: flex !important; flex-wrap: wrap; align-items: center; gap: 1vw 1.3vw;
}
.cf7-modern .options-inline br,
.cf7-modern .options-inline .wpcf7-list-item-br{ display: none !important; }
.cf7-modern .options-inline .wpcf7-list-item{
  display: inline-flex !important; align-items: center; margin: 0; white-space: nowrap;
}
.cf7-modern .options-inline input[type="checkbox"]{
  -webkit-appearance: none !important; appearance: none !important;
  width: 1.5vw; height: 1.5vw;
  border: 1px solid #ddd;
  box-shadow: none !important;
  background: var(--cf7-choice-unchecked) !important;
  border-radius: 50%; position: relative; cursor: pointer; outline: none; vertical-align: middle; margin: 0; margin-bottom: 0.2em;
}
.cf7-modern .options-inline input[type="checkbox"]::after{
  content: ""; position: absolute; top: 50%; left: 50%;
  width: 0; height: 0; transform: translate(-50%, -50%);
  background: var(--cf7-choice-dot); border-radius: 50%;
  transition: width 0.12s ease, height 0.12s ease;
}
.cf7-modern .options-inline input[type="checkbox"]:checked::after{ width: 0.7vw; height: 0.7vw; }
.cf7-modern .options-inline .wpcf7-list-item-label,
.cf7-modern .options-inline label.wpcf7-list-item-label{
  margin: 0 0 0 0.4em !important; display: inline-flex; align-items: baseline;
}

/* プライバシー */
.cf7-modern .privacy-policy{
  padding: 1.8vw 0 0 0;
  text-align: center;
  border-radius: 0.3vw;
  margin: 3vw 0 1.5vw;
  font-size: 0.9vw;
  line-height: 1.8;
  color: var(--cf7-muted);
  border-top: 1px solid var(--cf7-divider-top);
}

.cf7-modern .privacy-consent{
  display: flex;
  justify-content: center;
  align-items: center;
  border-top: none;
}

/* ✅ gapが効かない問題の本丸：label を flex にする */
.cf7-modern .privacy-consent .wpcf7-list-item{
  margin: 0 !important;
  white-space: nowrap;
}
.cf7-modern .privacy-consent .wpcf7-list-item > label{
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.4vw !important;            /* ★ ここが “離す” 本体（PC） */
  margin: 0 !important;
  padding: 0 !important;
}

.cf7-modern .privacy-consent br,
.cf7-modern .privacy-consent .wpcf7-list-item-br{ display: none !important; }

.cf7-modern .privacy-consent input[type="checkbox"]{
  -webkit-appearance: none;
  appearance: none;
  width: 1.5vw; height: 1.5vw;
  background: var(--cf7-choice-unchecked);
  border: 1px solid #ddd;
  border-radius: 50%;
  position: relative;
  cursor: pointer;
  outline: none;
  display: block;                  /* ★ flex内で安定 */
  flex-shrink: 0;
  margin: 0 !important;
  transform: none !important;      /* ★ ズレの原因になりやすいので撤去 */
}

.cf7-modern .privacy-consent input[type="checkbox"]::after{
  content: "";
  position: absolute;
  top: 50%; left: 50%;
  width: 0; height: 0;
  transform: translate(-50%, -50%);
  background: var(--cf7-choice-dot);
  border-radius: 50%;
  transition: width 0.12s ease, height 0.12s ease;
}
.cf7-modern .privacy-consent input[type="checkbox"]:checked::after{
  width: 0.7vw; height: 0.7vw;
}

/* 文字側：余計なmargin/paddingを完全に殺す */
.cf7-modern .privacy-consent .wpcf7-list-item-label,
.cf7-modern .privacy-consent label.wpcf7-list-item-label,
.cf7-modern .privacy-consent label[for="privacy-agree"]{
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.35;
  font-size: 1.1vw;
  color: #333;
}

/* 補足文・送信ボタン */
.cf7-modern .help-text{ font-size: 0.9vw; color: var(--cf7-note); line-height: 1.8; }
.cf7-modern .submit-container{ text-align:center; margin-top: 3vw; }

.cf7-modern .submit-btn{
  width: 39%;
  background: var(--cf7-btn-bg);
  color: var(--cf7-btn-fg);
  font-weight: 700 !important;
  padding: 2vw 3.5vw;
  border: 1px solid var(--cf7-btn-border);
  border-radius: 10vw;
  font-size: 1.5vw;
  line-height: 1.7;
  letter-spacing: 0.3em;
  cursor: pointer;
  transition: background .3s, box-shadow .2s, color .2s;
  box-shadow: 0 0.9vw 1.8vw -0.6vw rgba(0,0,0,.35);
}
.cf7-modern .submit-btn:hover{ background: var(--cf7-btn-hover-bg); color: var(--cf7-btn-hover-fg); }

/* 受諾チェックが入るまで送信ボタンを無効化 */
.cf7-modern:not(:has(#privacy-agree:checked)) .submit-btn{
  opacity: .3;
  pointer-events: none;
  transition: background .3s, box-shadow .2s, opacity .15s;
}

.wpcf7-response-output{ display:none; }

/* テキストエリア タイポ固定 */
.cf7-modern textarea,
.cf7-modern .wpcf7-form-control.wpcf7-textarea{
  font-family: "Zen Kaku Gothic New", system-ui, -apple-system, "Segoe UI", Roboto,
               "Helvetica Neue", Arial, "Noto Sans", sans-serif !important;
  font-size: 1.1vw !important;
  line-height: 1.7 !important;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--cf7-text);
  padding: 1vw 1.3vw !important;
  border: 1px solid var(--cf7-input-border);
  border-radius: 0.3vw;
  background: var(--cf7-input-bg);
  box-sizing: border-box;
  resize: vertical;
  min-height: 10vw;
}

/* 文字数カウンター */
.cf7-modern .char-count{
  margin-top: .4vw;
  text-align: right;
  font-size: .9vw;
  color: var(--cf7-note);
  line-height: 1.2;
}

/* スピナー位置（ボタン真下・レイアウトを押さない） */
.cf7-modern .submit-container{ position: relative; }
.cf7-modern .submit-container .wpcf7-spinner{
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: var(--cf7-spinner-offset);
  margin: 0;
  pointer-events: none;
}

/* =========================
   （タブレット）
========================= */
@media only screen and (max-width: 1020px) and (min-width: 768px){
  .cf7-modern{ font-size: 1.5vw; }
  .cf7-modern .field-label{ flex: 0 0 24%; }
  .cf7-modern .field-input{ max-width: 44%; }
  .cf7-modern .field-help{ flex: 0 0 24%; }
  .cf7-modern .note,
  .cf7-modern .help-text{ font-size: 1.25vw; }

  /* 必須/任意（タブ） */
  .cf7-modern .required,
  .cf7-modern .optional{
    font-size: 1.0vw;
    line-height: 1.25;
    padding: 0.32vw 0.62vw;
    border-radius: 0.35vw;
  }

  .cf7-modern input[type="text"],
  .cf7-modern input[type="email"],
  .cf7-modern input[type="tel"],
  .cf7-modern textarea{
    font-size: 1.5vw; border-radius: 0.35vw; padding: 1.1vw 1.4vw;
    background: var(--cf7-input-bg); border-color: var(--cf7-input-border); color: var(--cf7-text);
  }
  .cf7-modern textarea{ min-height: 14vw; }

  .cf7-modern .options-inline input[type="checkbox"]{
    width: 2vw; height: 2vw; min-width: 2vw; min-height: 2vw;
    background: var(--cf7-choice-unchecked) !important;
  }
  .cf7-modern .options-inline input[type="checkbox"]:checked::after{ width: 0.8vw; height: 0.8vw; }

  /* privacy（タブ）gapは label に当てる */
  .cf7-modern .privacy-consent .wpcf7-list-item > label{ gap: 0.4vw !important; } /* ★ ここ */
  .cf7-modern .privacy-consent input[type="checkbox"]{
    width: 2vw; height: 2vw; min-width: 2vw; min-height: 2vw;
  }
  .cf7-modern .privacy-policy{
    font-size: 1.25vw !important;
  }
  
  .cf7-modern .privacy-consent input[type="checkbox"]:checked::after{ width: 0.8vw; height: 0.8vw; }

  .cf7-modern .privacy-consent .wpcf7-list-item-label,
  .cf7-modern .privacy-consent label.wpcf7-list-item-label,
  .cf7-modern .privacy-consent label[for="privacy-agree"]{
    font-size: 1.5vw;
    line-height: 1.35;
  }

  .cf7-modern .submit-btn{
    width: 39%;
    padding: 2vw 3.5vw;
    border-radius: 10vw;
    line-height: 1.7;
    letter-spacing: 0.3em;
    box-shadow: 0 0.9vw 1.8vw -0.6vw rgba(0,0,0,.35);
    font-size: 1.7vw;
  }

  .cf7-modern textarea,
  .cf7-modern .wpcf7-form-control.wpcf7-textarea{
    font-size: 1.5vw !important;
    line-height: 1.7 !important;
    padding: 1.2vw 1.6vw !important;
    min-height: 16vw;
  }
}

/* =========================
   （スマホ）
========================= */
@media (max-width: 767px){
  .cf7-modern{ font-size: 3.8vw; padding: 5vw 0; }
  .cf7-modern .form-field{ flex-direction: column; gap: 2vw; padding: 4vw 0; }
  .cf7-modern .field-label,
  .cf7-modern .field-input,
  .cf7-modern .field-help{ flex: none; max-width: 100%; width: 100%; }

  .cf7-modern .field-input p{ margin: 0 !important; width: 100% !important; }

  .cf7-modern .field-label label,
  .cf7-modern .field-label > span,
  .cf7-modern .field-label span[id$="-label"]{ justify-content: flex-start; gap: 0.6em; }

  /* 必須/任意（スマホ） */
  .cf7-modern .required,
  .cf7-modern .optional{
    font-size: 2.5vw;
    line-height: 1.25;
    padding: 0.9vw 1.6vw;          /* ★ 背景が潰れない */
    border-radius: 0.9vw;
    margin-left: 0.45em;
  }

  .cf7-modern .note{ font-size: 2.8vw; margin-top: 1vw; }

  .cf7-modern input[type="text"],
  .cf7-modern input[type="email"],
  .cf7-modern input[type="tel"],
  .cf7-modern textarea{
    width: 100%;
    font-size: 3.6vw;
    padding: 2.5vw 3vw;
    border-radius: 0.8vw;
    background: var(--cf7-input-bg);
    border: 1px solid var(--cf7-input-border);
    color: var(--cf7-text);
  }
  .cf7-modern textarea{ min-height: 25vw; }

  .cf7-modern .help-text{ font-size: 2.8vw; line-height: 1.6; }

  .cf7-modern .options-inline{ gap: 2vw 3vw; }
  .cf7-modern .options-inline input[type="checkbox"]{
    width: 4vw; height: 4vw; min-width: 4vw; min-height: 4vw;
    background: var(--cf7-choice-unchecked) !important;
  }
  .cf7-modern .options-inline input[type="checkbox"]:checked::after{ width: 2vw; height: 2vw; }
  .cf7-modern .options-inline .wpcf7-list-item-label,
  .cf7-modern .options-inline label.wpcf7-list-item-label{
    margin: 0 0 0 1vw !important;
    font-size: 3.4vw;
  }

  .cf7-modern .privacy-policy{
    padding: 4vw 0 0 0;
    margin: 6vw 0 3vw;
    font-size: 2.8vw;
    border-top: 1px solid var(--cf7-divider-top);
  }

  /* privacy（スマホ）も label に gap */
  .cf7-modern .privacy-consent .wpcf7-list-item > label{ gap: 1.2vw !important; } /* ★ 近すぎ問題の本命 */
  .cf7-modern .privacy-consent input[type="checkbox"]{
    width: 4vw; height: 4vw; min-width: 4vw; min-height: 4vw;
    background: var(--cf7-choice-unchecked);
  }
  .cf7-modern .privacy-consent input[type="checkbox"]:checked::after{ width: 2vw; height: 2vw; }

  .cf7-modern .privacy-consent .wpcf7-list-item-label,
  .cf7-modern .privacy-consent label.wpcf7-list-item-label,
  .cf7-modern .privacy-consent label[for="privacy-agree"]{
    font-size: 3.4vw !important;
    line-height: 1.35;
  }

  .cf7-modern .submit-container{ margin-top: 6vw; }
  .cf7-modern .submit-container p{
    display: flex; flex-direction: column; align-items: center; gap: 2vw; margin: 0;
  }

  .cf7-modern .submit-btn{
    width: 50%;
    border-radius: 10vw;
    padding: 2vw 3.5vw;
    line-height: 1.7;
    letter-spacing: 0.3em;
    box-shadow: 0 0.9vw 1.8vw -0.6vw rgba(0,0,0,.35);
    font-size: 3.4vw;
  }

  .cf7-modern textarea,
  .cf7-modern .wpcf7-form-control.wpcf7-textarea{
    font-size: 3.4vw !important;
    line-height: 1.7 !important;
    padding: 2.5vw 3vw !important;
    min-height: 25vw;
    border-radius: 0.8vw;
  }

  .cf7-modern .submit-container .wpcf7-spinner{
    bottom: calc(var(--cf7-spinner-offset) - 0.6em);
  }

  .cf7-modern .char-count{ font-size: 3.4vw; }
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-93fd707 */.elementor-14855 .elementor-element.elementor-element-93fd707 {
    transition: none!important;
}/* End custom CSS */