/* ===== Shell (card) ===== */
.snl-card{
  --maxw: 720px;            /* 本文より少し細くしてスマートに */
  --line: #e9eef2;
  --ink:  #0b1320;
  --muted:#5a6a7f;
  --accent:#0b63ce;

  width:min(var(--maxw), 94vw);
  margin: 0 auto;
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  padding:clamp(16px,3.4vw,28px);
  box-shadow:0 10px 36px rgba(2,6,23,.08);
  color:var(--ink);
  font-feature-settings: "palt";
}

/* ===== Rows / grid ===== */
.snl-form__row{ margin:.7rem 0; }
.snl-form__row--grid2{
  display:grid; gap:12px; grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}
.snl-form__row--grid3{
  display:grid; gap:12px; grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
}

/* ===== Labels & inputs ===== */
.snl-label{ display:block; font-weight:700; color:#12253b; margin:.15rem 0 .35rem; }
.snl-form input[type="text"], .snl-form input[type="email"],
.snl-form input[type="url"],  .snl-form input[type="date"],
.snl-form select, .snl-form textarea{
  width:100%; border:1px solid #dbe4ea; border-radius:12px;
  padding:.75rem .85rem; line-height:1.45; background:#fff; color:var(--ink);
}
.snl-form textarea{ min-height:120px; }

/* ===== Section titles ===== */
.snl-block{ margin-top:.6rem; }
.snl-block__title{
  font-size:1.06rem; font-weight:800; margin:1rem 0 .5rem;
  padding-top:.4rem; border-top:4px solid color-mix(in srgb, var(--accent) 12%, transparent);
}

/* ===== Radio / Checkbox tidy ===== */
.snl-radio span.wpcf7-list-item { margin-right:12px; }
.snl-inline span.wpcf7-list-item { display:inline-block; margin:.2rem .8rem .2rem 0; }

/* ===== Consent & Submit ===== */
.snl-accept{ display:flex; gap:.5rem; align-items:flex-start; margin-top:.6rem; color:#33475b; }
.snl-actions{ display:flex; justify-content:center; margin-top:.9rem; }
.snl-btn{
  appearance:none; border:0; cursor:pointer; font-weight:800;
  background:var(--accent); color:#fff; border-radius:12px; padding:.9rem 1.4rem;
  box-shadow:0 8px 24px color-mix(in srgb, var(--accent) 30%, #000 0%);
}
.snl-btn:hover{ background:#084f9f; }

/* ===== CF7 messages ===== */
.wpcf7 form .wpcf7-response-output{
  margin-top:12px; border-radius:12px; border:1px solid var(--line);
  background:#f8fbff; color:#0b1320; padding:.8rem 1rem;
}

/* Hide general block when inactive */
.snl-block--general[aria-hidden="true"]{ display:none; }


/* fieldset をカード内で上品に */
.snl-fieldset{
  border:1px solid #e9eef2;
  border-radius:12px;
  padding:.75rem 1rem;
  background:#fff;
}
.snl-legend{
  font-weight:800;
  color:#12253b;
  padding:0 .25rem;
  margin:0 0 .4rem;
}


/* === 追記パッチ: 既存 snl-cf7.css の末尾に追加 ===================== */

/* 言語セレクトを100%に */
.snl-lang-select,
.snl-form select[name="ui-language"]{ width:100%; }

/* フォーカス時のアクセシビリティ（淡いリング） */
.snl-form input[type="text"]:focus,
.snl-form input[type="email"]:focus,
.snl-form input[type="url"]:focus,
.snl-form input[type="date"]:focus,
.snl-form select:focus,
.snl-form textarea:focus{
  outline:0;
  border-color:#93c5fd;
  box-shadow:0 0 0 3px #e0f2fe;
}

/* バリデーション表示を見やすく */
.wpcf7-not-valid-tip{ color:#b42318; font-size:.9rem; margin:.25rem 0 0; }

/* 送信中のボタン（無効時の見た目） */
input.wpcf7-submit.snl-btn[disabled]{ opacity:.6; cursor:not-allowed; }

/* 隠しブロックの明示（既に指定あり。保険として） */
.snl-block--general[aria-hidden="true"]{ display:none !important; }

/* --- container & box model safety --- */
.snl-formwrap{ display:flex; justify-content:center; padding:4px; }
.snl-card{ max-width:720px; width:min(94vw, 720px); }
.snl-card, .snl-card *{ box-sizing:border-box; }
.snl-fieldset{ min-width:0; }

/* radio & acceptance tidy */
.snl-radio span.wpcf7-list-item{ margin: .2rem .9rem .2rem 0; }
.snl-radio label{ display:inline-flex; align-items:center; gap:.45rem; }
.snl-accept label{ display:flex; align-items:flex-start; gap:.5rem; }
.snl-accept input[type="checkbox"]{ margin-top:.2rem; }

/* form controls shouldn't overflow card */
.snl-form .wpcf7-form-control-wrap{ display:block; width:100%; }

/* CF7 response message inside card width */
.wpcf7 form .wpcf7-response-output{
  max-width:720px; margin-left:auto; margin-right:auto;
}

/* small screens: squeeze a bit more */
@media (max-width:480px){
  .snl-card{ border-radius:14px; padding:16px; }
  .snl-legend{ font-size: .98rem; }
}

.snl-acceptline{display:flex;align-items:flex-start;gap:.55rem;margin-top:.9rem;color:#33475b}
.snl-acceptline input[type="checkbox"]{margin-top:.2rem}
.snl-acceptline .wpcf7-list-item-label{display:none} /* CF7のプレーン文字を隠す */
.snl-consent-chip{display:inline-block;font-size:.85rem;font-weight:700;border:1px solid #dbe4ea;border-radius:9999px;padding:.15rem .5rem;line-height:1.2;color:#12253b;background:#f8fbff}
.snl-card{overflow:hidden} /* はみ出し保険 */