@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/
/* 申込フォーム */
    .card{max-width:720px;margin:0 auto;background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:24px}
    .subtitle{color:#666;margin:0 0 16px}
    .field{margin:16px 0}
    label{font-weight:600;display:block;margin-bottom:6px}
    .req{color:#c00;margin-left:4px}
    input[type="text"],input[type="email"]{width:100%;height:44px;border:1px solid #e5e7eb;border-radius:12px;padding:10px 12px;font-size:16px}
    input:focus{outline:none;box-shadow:0 0 0 4px rgba(0,0,0,.06);border-color:#aaa}
    .checkbox{display:flex;gap:12px;align-items:flex-start;border:1px dashed #e5e7eb;border-radius:12px;background:#fafafa;padding:12px}
    .checkbox input{width:20px;height:20px;margin-top:2px}
    .note{color:#666;font-size:12px}
    .actions{display:flex;gap:12px;justify-content:flex-end;margin-top:16px}
    button{appearance:none;border:1px solid #e5e7eb;background:#111;color:#fff;padding:12px 18px;border-radius:12px;font-weight:700;cursor:pointer}
    button.ghost{background:#fff;color:#111}
    .msg{margin-top:12px;font-weight:600}
    .ok{color:#0a7b2f}
    .err{color:#b00020}



/*パンくず 非表示
#breadcrumb {
 display: none;
}
*/

/*記事下の情報 非表示*/
.p-articleFoot {
	 display: none;
}

/*グローバルメニュー 調整*/
.c-gnav>.menu-item>a .ttl {
	font-weight: bold;
	font-size: 16px;
}


/* --- お問い合わせフォーム --- */
/* デザインカスタマイズ */

/* 「送信する」ボタン */
input.wpcf7-submit {
	display: block;
	background: #fff;
	color: #1d264d;
	font-size: 18px;
	font-weight: 700;
	border-radius: 2px;
	margin: 0 0 0 auto;
}
.wpcf7-list-item {
	display: inline-block;
	margin: 0 0.7em 0 0.3em;
}
#wpcf7-f120-o1 > form > p:nth-child(2) > span > input {
	margin-bottom: 15px;
}
#wpcf7-f120-o2 > form > p:nth-child(3) {
	margin-top: 15px;
}
.wpcf7-spinner {
	display: none;
}
form .wpcf7-acceptance input[type="checkbox"] {
	transform: scale(2.0);
	margin-right: 0.5em;
}
 .wpcf7 input[type="email"] {
	width: 100%!important;
}
/*CVカラムの調整*/
/* 既存のCSS修正 */
.pc_cv .btn-bottom-list > .swell-block-column {
  display: flex!important;
  flex-direction: column!important;
  height: 100%; /* 高さを100%に設定 */
}
.pc_cv .btn-bottom-list > .swell-block-column > .wp-block-button {
  flex-grow: 1!important;
  display: flex!important;
  align-items: flex-end!important;
}



.pc_cv .p-main-cta__left {
  border-left: solid 1px rgba(255, 255, 255, 0.3);
}
.pc_cv .cta-second {
  height: 100%;
}

/* 新しいCSS追加 - w-beforeFooterに限定 */
.w-beforeFooter .swell-block-columns {
  display: flex; /* カラムをフレックスコンテナにする */
  align-items: stretch; /* 子要素の高さを揃える */
}
.pc_cv .w-beforeFooter .swell-block-column {
  display: flex;
  flex-direction: column;
  flex: 1; /* 各カラムを同じ比率で伸ばす */
  padding: 2rem;
  box-sizing: border-box; /* パディングを含めたボックスサイズを計算 */
}
.pc_cv .w-beforeFooter .swell-block-column:not(:first-child) {
  border-left: 1px solid rgba(255, 255, 255, 0.3); /* 2番目以降のカラムにボーダーを追加 */
}


/* 投稿リスト（リスト型）の調整 */
.-type-list .p-postList__thumb, .-type-list2 .p-postList__thumb {
	width: 25%;
}
.-type-list .p-postList__body, .-type-list2 .p-postList__body {
	width: 70%;
}

/* カラムの高さの調整 */
.fitColumn {
  height : 100%;
}
/* 円形背景 */
.CircularBackground {
   border-radius:50%;
	border-radius: 100px; /* 全体の丸み */
}

/* サービスページのブロックに矢印追加 */
.arrow-right {
    position: relative;
    display: flex;
    align-items: center;
    padding-right: 2em; /* 矢印分の余白を確保 */
}

.arrow-right::after {
    content: "";
    position: absolute;
    right: 50px; /* 右端に固定 */
    top: 50%;
    transform: translateY(-50%); /* 垂直中央揃え */
    
    width: 1.4em; /* 矢印を少し小さく */
    height: 1.4em;
    
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='%23000000'%3E%3Cpath d='m33 25.1-13.1 13c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8L28.4 24 17.1 12.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l13.1 13c.6.6.6 1.6 0 2.2z'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    
    opacity: 0.8; /* 矢印を細く見せる */
}
/* スマホ（最大幅768px）の場合、figureを非表示 */
@media screen and (max-width: 768px) {
    .arrow-right figure {
        display: none;
    }
	.arrow-right::after {
    right: 20px; /* 右端に固定 */
		    }
}
/*パンくずリスト 非表示*/
.p-breadcrumb {
  display: none;
}
/*ホバー 非表示*/
.swell-block-box-menu__item:hover{background:#fdfdfd;}



/*上段メニュー*/
.l-header__top {
  background: #f8f8f8; /* 必要なら背景色 */
  font-size: 15px;
  padding: 5px 0;
	font-weight: bold;
}

.l-header__top .header-top-menu {
  display: flex;
  justify-content: flex-end;
  gap: 20px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.l-header__top .header-top-menu a {
  text-decoration: none;
  color: #20244c;
}

.l-header__top .header-top-menu a:hover {
  text-decoration: none;
}


/*メインビジュアル上下余白*/
.-height-auto .p-mainVisual__textLayer {
    padding-bottom: 0;
    padding-top: 0;
}


/* フッターウィジェットエリア内のリストの点を消す */
.l-footer__widgetArea ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.l-footer__widgetArea li {
  list-style: none;
}

/* スマホ表示（例：幅768px以下）では100% */
@media (max-width: 768px) {
  .wp-block-button__width-50 {
    width: 100% !important;
  }
}
/* ==== Scoped reset & variables ==== */
#pricing-qubo, #pricing-qubo * { box-sizing: border-box; }
#pricing-qubo{
  width:100%;
  color:#333333;
  --muted:#868686; --line:#e2e8f0;
  --primary:#333333; --accent:#1c408c;
  --radius:16px;
}

/* ==== レイアウト ==== */
#pricing-qubo .wrap{ width:100%; margin:0; padding:0 1px; }

#pricing-qubo .grid{
  width:100%;
  display:grid;
  gap:15px;
  grid-template-columns:repeat(4, minmax(0,1fr));
  justify-content:stretch;
  align-items:stretch; /* ★縦幅を全カード共通に */
}
#pricing-qubo .grid > *{ min-width:0; }

@media (max-width:1024px){ #pricing-qubo .grid{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:640px){  #pricing-qubo .grid{ grid-template-columns:1fr; } }

/* ==== カード ==== */
#pricing-qubo .card{
  width:100%;
  height:100%; /* ★高さ統一 */
  background:transparent; /* ★背景透明 */
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:24px;
  display:flex;
  flex-direction:column;
  align-items:stretch;
}
#pricing-qubo .card.subtle{ background:transparent; } /* ★背景透明 */
 
/* ==== タイトル競合回避 ==== */
#pricing-qubo .pricing-title{
  font-weight:800;
  margin:0;
  letter-spacing:.02em;
}
#pricing-qubo .head{ margin:0 0 8px; }
#pricing-qubo .lead{ color:var(--muted); margin-top:6px; }
#pricing-qubo .sub{ color:var(--muted); font-size:.95em; }

/* ==== 価格ブロック ==== */
#pricing-qubo .price-area{
  display:flex;
  justify-content:center;
  align-items:flex-end;
  gap:8px;
  text-align:center;
  margin:4px 0 8px;
}
#pricing-qubo .yen{ font-size:34px; font-weight:800; }
#pricing-qubo .estimate{ font-size:32px; font-weight:800; }

/* ==== ボタン ==== */
#pricing-qubo .btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 48px;
  border-radius: 5px!important;
  border: 1px solid transparent;
  font-weight: 700;
  text-decoration: none;
  margin: 8px 0 12px;
  transition: transform .05s ease;
}
#pricing-qubo .btn:active { transform: translateY(1px); }

/* === 個別色設定 === */
#pricing-qubo .btn.primary {
  background: var(--primary);
  color: #fff;
}

#pricing-qubo .btn.accent {
  background: #1c408c !important; /* ★無料ライセンスキー発行 */
  color: #fff !important;
}

#pricing-qubo .btn.ghost {
  background: #F7918A !important; /* ★お見積りのご依頼 */
  color: #fff !important;
}

/* ==== 区切り線 ==== */
#pricing-qubo .hr{ height:1px; background:var(--line); margin:12px 0; }

/* ==== spec ==== */
#pricing-qubo .spec{
  display:grid;
  gap:0;
  align-self:start;
  width:100%;
}
#pricing-qubo .row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  padding:10px 0;
  border-bottom:1px dashed var(--line);
}
#pricing-qubo .row:last-child{ border-bottom:none; }
#pricing-qubo dt{ color:var(--muted); }
#pricing-qubo dd{ font-weight:700; white-space:nowrap; }
#pricing-qubo .spec .note-mark {
  font-size: 10px;
  position: relative;
  top: -5px;   /* 好みで調整 */
}
/* ==== note ==== */
#pricing-qubo .note{ color:var(--muted); font-size:.95rem; margin-top:12px; }

/* ==== スマホ対応 ==== */
@media (max-width:640px){
  #pricing-qubo .card{ padding:16px; }
  #pricing-qubo dl.spec{ width:100%; }
#pricing-qubo .pricing-title{
  font-size: 2em;
  font-weight:800;
  margin:0;
  letter-spacing:.02em;
}
}
/* ==== タイトル競合回避 ==== */
#pricing-qubo .pricing-title{
  font-size: 1.9em;
  font-weight:800;
  margin:0;
  letter-spacing:.02em;
}
#pricing-qubo .head{ margin:0 0 8px; }
#pricing-qubo .lead{ color:var(--muted); margin-top:6px; }
#pricing-qubo .sub{ color:var(--muted); font-size:.95em; }
#pricing-qubo .sub{ color:var(--muted); font-size:.95em; }
#pricing-qubo h3.pricing-title {
    border-left: solid 0 var(--color_htag);
    padding: .25em 0 .25em 0;
}

/* ====== 強制上書き：ボタン色（テーマより強い指定 + 全状態） ====== */
#pricing-qubo .grid article.card a.btn.accent,
#pricing-qubo .grid article.card a.btn.accent:link,
#pricing-qubo .grid article.card a.btn.accent:visited,
#pricing-qubo .grid article.card a.btn.accent:hover,
#pricing-qubo .grid article.card a.btn.accent:active {
  background: #1c408c !important;   /* 無料ライセンスキー発行 */
  color: #fff !important;
  border-color: transparent !important;
  background-image: none !important; /* テーマのグラデ/画像打ち消し */
}

/* 見積りボタン */
#pricing-qubo .grid article.card a.btn.ghost,
#pricing-qubo .grid article.card a.btn.ghost:link,
#pricing-qubo .grid article.card a.btn.ghost:visited,
#pricing-qubo .grid article.card a.btn.ghost:hover,
#pricing-qubo .grid article.card a.btn.ghost:active {
  background: #4ab7ec !important;   /* お見積りのご依頼 */
  color: #fff !important;
  border-color: transparent !important;
  background-image: none !important;
}
/* ==== Registered Trial 用：外枠青 ==== */
#pricing-qubo .card.highlight-blue {
  border: 2px solid #1c408c !important; /* 青枠 */
  box-shadow: 0 0 0 3px rgba(67, 83, 188, 0.15); /* わずかに光る縁取り（不要なら削除OK） */
}


/* ==== ハンバーガーメニュー ==== */
/* 既存のメニューを削除 */
.c-widget__title.-spmenu,
.p-spMenu__nav {
  display:none;
}
/* リンクリストメニュー余白 */
.p-spMenu__body .swell-block-linkList {
	gap: 2em;
}

/* リンクリストメニュー中央寄せ */
.p-spMenu__body .swell-block-linkList__text {
	margin-inline: auto;
}
/* ヘッダーロゴ全体の縦並びレイアウト */
.l-header__logo {
  display: flex;
  flex-direction: column;
  align-items: flex-start; /* 左揃え（中央にしたい場合は center に変更） */
  line-height: 1;
}

/* --- SWELLロゴテキスト（縦並び＋左揃え＋間隔調整） --- */
.l-header__logo {
  display: flex;
  flex-direction: column;
  align-items: flex-start; /* 左揃えに */
  line-height: 1; /* 行間を詰める */
}

/* Hi-QUBO */
.l-header__logo .c-headLogo__link {
  font-size: 40px;
  font-weight: 700;
  color: #333333;
  text-decoration: none;
  display: block;
  margin-bottom: 1px; /* 下のサブタイトルとの隙間を最小限に */
}
@media (max-width: 768px){
.l-header__logo .c-headLogo__link {
    font-size: 30px;
}
}
/* QUBO++ライセンスサービス */
.l-header__logo .c-catchphrase {
  font-size: 12px;
  font-weight: 700;
  color: #333333;
  line-height: 1;
  margin-top: -15px; /* 不要な余白を削除 */
  padding-top: 0;
}
@media (min-width: 960px) {
    .-series .l-header__logo {
        margin-right: 5px !important;
    }
}
@media (min-width: 960px) {
    .-series .c-headLogo {
        margin-right: 1px !important;
    }
}
@media (min-width: 960px) {
  .-series .l-header__logo {
    align-items: flex-start !important; /* ← 強制的に左揃え */
  }
  .l-header__inner .c-catchphrase {
    display: block !important;
    margin-top: 0;
    font-size: 12px;
    color: #148336;
}
}
.l-header__logo .c-catchphrase.u-thin {
  opacity: 1 !important; /* 完全不透明に戻す */
  color: #333333; /* 明示的に色指定（念のため） */
  font-weight: 700; /* 太字を維持 */
}

/* ---- 価格カード：上部ブロックの高さを統一（PC） ---- */
@media (min-width: 960px){

  /* タイトル＋リード（行数差を吸収） */
  #pricing-qubo .card .head{
    min-height: 120px;   /* ← 110–140pxで調整可 */
    margin-bottom: 8px;
  }

  /* 価格表示（¥0 / 0円 / お見積り の差を吸収） */
  #pricing-qubo .card .price-area{
    min-height: 72px;    /* ← 60–80pxで調整可 */
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 6px 0 12px;
  }

  /* 数値の行高・字幅を統一 */
  #pricing-qubo .card .yen,
  #pricing-qubo .card .estimate{
    font-size: 34px;     /* 同一に */
    font-weight: 800;
    line-height: 1;      /* 余計な上下余白をカット */
    font-variant-numeric: tabular-nums; /* 桁幅を揃える */
  }
}

/* ボタン上下のマージンを統一 */
#pricing-qubo .card .btn{
  margin: 8px 0 12px;    /* すべてのカードで同じ値に */
}

/* ====== QUBO Feature Section ====== */
#feature-qubo{
  --brand:#25254A;
  --accent:#00419B;
  --muted:#666;
  background:#f5f7fb;
  padding:28px 0;
}

/* SWELL干渉排除 */
.post_content #feature-qubo li{ list-style:none !important; margin:0 !important; line-height:1.8; }
.post_content #feature-qubo h2,
.post_content #feature-qubo h3,
.post_content #feature-qubo h4{ border:none !important; padding:0 !important; margin:0 !important; }

/* リスト間の余白は gap で統一 */
#feature-qubo .fq-list{ margin:0; padding:0; display:grid; gap:28px; }

/* カード本体 */
#feature-qubo .fq-item{
  position:relative;
  background:#fff;
  border-radius:8px;
  padding:32px 28px 24px; /* ← 上を増やしてバッジと重ならない */
}

/* バッジ */
#feature-qubo .fq-badge{
  position:absolute; left:-10px; top:12px;
  display:inline-block;
  background:var(--accent); color:#fff;
  font-size:12px; font-weight:700; line-height:1;
  padding:6px 10px; border-radius:5px;
}

/* タイトル・サブ */
#feature-qubo .fq-inner {
    display: block;
    margin-top: 20px;
}
#feature-qubo .fq-title{
  color:#1c408c; font-weight:700; font-size:1.4em; line-height:1.35;
  margin:8px 0 8px !important; padding:0 !important; border:0 !important;
}
#feature-qubo .fq-sub{
  color:#333; font-size:1rem; line-height:1.9;
  margin:0 0 10px !important; padding:0 0 10px !important;
  border-bottom:none !important;            /* デフォは下線なし */
}
/* Pointがある項目だけ下線 */
#feature-qubo .fq-item.has-point .fq-sub{ border-bottom:1px solid #DDDDDD !important; }
@supports(selector(.x:has(+ .y))){
  #feature-qubo .fq-sub:has(+ .fq-point){ border-bottom:1px solid #DDDDDD !important; }
}

#feature-qubo .fq-point::before{
  content:"Point";
  position:static;           /* ← absoluteを無効化 */
  flex:0 0 78px; height:56px;
  display:flex; align-items:center; justify-content:center;
  border-radius:8px; background:#e8eefb; color:#3b4e9f; font-weight:700;
}

/* Pointがあるカードは下側の余白を少し増やす */
#feature-qubo .fq-item.has-point{ padding-bottom:32px; }
#feature-qubo .fq-item.has-point .fq-point{ margin-bottom:2px; }

/* SP調整 */
@media (max-width:768px){
  #feature-qubo .fq-item{ padding:28px 20px 24px; }
  #feature-qubo .fq-point::before{ flex-basis:72px; height:48px; }
}
/* PC/タブレット：横並び（現状のまま） */
#feature-qubo .fq-point{
  display:flex;
  align-items:center;
  gap:16px;
  color:#333;
  font-size: 0.8rem;
  line-height:1.8;
  margin:14px 0 0 !important;
  padding:0 !important;
}

/* スマホ：縦並びに変更 */
@media (max-width: 768px){
  #feature-qubo .fq-point{
    flex-direction: column;       /* ← 縦並び */
    align-items: flex-start;      /* 左揃え */
    gap: 8px;                     /* Point と本文の間隔を小さめに */
    width: 100%;
    word-break: break-word;       /* 長文の折返し */
  }
  #feature-qubo .fq-point::before{
    /* バッジを“行内の小ラベル”っぽく */
    flex: 0 0 auto;
    height: auto;
    padding: .35em .7em;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
}
/* 数式ブロックの中央寄せ・余白調整（MathJax/KaTeX 共通） */
.math-center { text-align:center; margin: 1rem 0; }
.math-center mjx-container[display="true"] { margin: .5rem auto !important; } /* MathJax v3 */
.katex-display { margin: .5rem auto !important; } /* KaTeX の場合 */

/* コンテンツヘッダー画像非表示 */
.c-filterLayer:before {
    z-index: 3;
}
/* hcb_wrap表示 */
.hcb_wrap.hcb_wrap {
    max-width: 100%;
}
/* トップのテキストシャドウ非常時 */
.p-mainVisual__textLayer[style] {
  text-shadow: none !important;
}
/* スマホメニューの下線非表示 */
.p-spMenu a {
    color: #333333;
    text-decoration: none !important;
}
/* reCAPTCHAバッジ（ロゴマーク）を消す */
.grecaptcha-badge { visibility: hidden; }
p.recapcha-text { font-size: 11px; text-align: center;}

/* ---- コード theme-a11y-dark ---- */

.token.constant, .token.deleted, .token.important, .token.property, .token.symbol, .token.tag {
    color: #f5ab35 !important;
}

/* ベース背景と文字色 */
.hcb_wrap pre code {
  background-color: #2b2b2b !important;
  color: #f8f8f2 !important;
}

/* コメント / 引用 */
.token.comment,
.token.prolog,
.token.cdata {
  color: #d4d0ab !important;
}

/* 赤系（タグ / 名前 / 正規表現 / 削除 など） */
.token.tag,
.token.deleted,
.token.selector,
.token.selector-id,
.token.selector-class,
.token.regex,
.token.variable {
  color: #ffa07a !important;
}

/* 黄〜オレンジ系（数値 / リテラル / 型 / メタ / built_in など） */
.token.number,
.token.symbol,
.token.builtin,
.token.meta,
.token.attr-value,
.token.literal,
.token.type {
  color: #f5ab35 !important;
}

/* 属性名 */
.token.attr-name {
  color: gold !important;
}

/* 追加要素 / 文字列 / bullet などの緑系 */
.token.string,
.token.char,
.token.inserted {
  color: #abe338 !important;
}

/* セクション / タイトル（水色） */
.token.function {
    color: #f5ab35 !important;
}
.token.title {
    color: #00e0e0 !important;
}
.token.function {
  color: #f5ab35 !important;
}

/* キーワード直後の function（int main など）だけ水色にする */
code.language-cpp .token.keyword + .token.function {
  color: #00e0e0 !important;
}

/* キーワード（薄紫） */
.token.keyword {
  color: #dcc6e0 !important;
}

/* 斜体 */
.token.italic {
  font-style: italic !important;
}

/* 太字 */
.token.bold {
  font-weight: bold !important;
}

/* CSS operator → 白で読みやすく */
.token.operator {
  color: #f8f8f2 !important;
}
