/*
 * ふうりん 共通デザインCSS v0.1.6
 * 対象：トップページ / お問い合わせ / 忌日表 / 供花注文 / 見積り / 訃報案内
 *
 * v0.1.6 の整理内容：
 * - 供花注文フォーム土台の上部注意ボックスの色・文字サイズをお問い合わせフォーム寄りに補正。
 * - お問い合わせフォーム型の外枠・表題・白カード・2列・郵便番号・確認画面を共通化。
 * - v0.1.1 にあった余分な閉じカッコを整理。
 * - 各フォーム側CSSは「商品カード・アコーディオンなどの差分だけ」にする方針。
 */

:root {
  --fu-purple: #614e92;
  --fu-purple-dark: #4d3d75;
  --fu-ivory: #f7f5f2;
  --fu-lavender: #eee9f5;
  --fu-olive: #96946f;
  --fu-urgent: #7B3F4B;

  --fu-text: #333333;
  --fu-text-soft: #5f5b66;
  --fu-border: #ded7e8;
  --fu-border-soft: #ebe7f1;
  --fu-white: #ffffff;
  --fu-error: #b13b4a;
  --fu-success: #4b7b5b;

  --fu-radius-lg: 18px;
  --fu-radius-md: 14px;
  --fu-radius-sm: 10px;
  --fu-shadow-card: 0 10px 28px rgba(77, 61, 117, 0.10);
  --fu-shadow-soft: 0 6px 18px rgba(77, 61, 117, 0.08);

  --fu-width-main: 1080px;
  --fu-width-form: 900px;

  --fu-space-xs: 6px;
  --fu-space-sm: 10px;
  --fu-space-md: 16px;
  --fu-space-lg: 24px;
  --fu-space-xl: 34px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

/* =========================================================
   適用範囲
========================================================= */
.fu-design-scope,
.fu-page,
.fu-form-shell,
.fu-common-form,
.fu-contact-design,
.fu-flower-design,
.fu-offering-design,
.fu-kijitsu-design,
.fu-estimate-design,
.fu-obituary-design {
  color: var(--fu-text);
  font-family: inherit;
  line-height: 1.8;
}

/* KADANのカスタムHTMLでタグ間に入る不要なbr対策。文章内のbrは消さない。 */
.fu-design-scope > br,
.fu-page > br,
.fu-form-shell > br,
.fu-common-form > br,
.fu-contact-design > br,
.fu-flower-design > br,
.fu-offering-design > br,
.fu-kijitsu-design > br,
.fu-estimate-design > br,
.fu-obituary-design > br,
.fu-card > br,
.fu-section > br,
.fu-grid > br,
.fu-form-card > br {
  display: none !important;
}

/* =========================================================
   ページ・汎用カード
========================================================= */
.fu-page {
  width: min(100%, var(--fu-width-main));
  margin: 0 auto;
  padding: 0 16px;
}

.fu-page--wide {
  width: min(100%, 1200px);
}

.fu-section {
  margin: 0 0 var(--fu-space-xl);
}

.fu-card,
.fu-form-card,
.fu-section-card {
  background: var(--fu-white);
  border: 1px solid var(--fu-border-soft);
  border-radius: var(--fu-radius-lg);
  box-shadow: var(--fu-shadow-card);
  padding: clamp(20px, 3vw, 34px);
}

.fu-card--lavender {
  background: linear-gradient(180deg, #ffffff 0%, var(--fu-ivory) 100%);
  border-color: var(--fu-border);
}

.fu-card--flat {
  box-shadow: none;
}

/* =========================================================
   汎用見出し
   固定ページやトップページ向け。フォーム専用タイトルは後段で上書き。
========================================================= */
.fu-heading,
.fu-design-scope h2,
.fu-form-shell h2,
.fu-contact-design h2,
.fu-flower-design h2,
.fu-offering-design h2,
.fu-kijitsu-design h2,
.fu-estimate-design h2,
.fu-obituary-design h2 {
  color: var(--fu-purple);
  font-size: clamp(24px, 2.8vw, 32px);
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.03em;
  margin: 0 0 24px;
  padding: 0 0 13px;
  border-bottom: 2px solid var(--fu-lavender);
  position: relative;
}

.fu-heading::after,
.fu-design-scope h2::after,
.fu-form-shell h2::after,
.fu-contact-design h2::after,
.fu-flower-design h2::after,
.fu-offering-design h2::after,
.fu-kijitsu-design h2::after,
.fu-estimate-design h2::after,
.fu-obituary-design h2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 84px;
  height: 2px;
  background: var(--fu-purple);
  border-radius: 999px;
}

.fu-subheading,
.fu-design-scope h3,
.fu-form-shell h3 {
  color: var(--fu-purple-dark);
  font-size: clamp(19px, 2.2vw, 24px);
  font-weight: 700;
  line-height: 1.55;
  margin: 0 0 16px;
}

.fu-lead {
  color: var(--fu-text-soft);
  font-size: 16px;
  margin: 0 0 22px;
}

.fu-note,
.fu-help,
.fu-caption,
.fu-form-note {
  color: var(--fu-text-soft);
  font-size: 14px;
  line-height: 1.7;
}

/* =========================================================
   必須・任意バッジ
========================================================= */
.fu-required,
.fu-badge-required {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  margin-left: 8px;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--fu-urgent);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  vertical-align: middle;
}

.fu-optional,
.fu-badge-optional {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  margin-left: 8px;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--fu-lavender);
  color: var(--fu-purple-dark);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  vertical-align: middle;
}

/* =========================================================
   汎用グリッド・行
========================================================= */
.fu-grid {
  display: grid;
  gap: var(--fu-space-md);
}

.fu-grid--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fu-grid--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fu-grid--4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.fu-stack > * + * {
  margin-top: var(--fu-space-md);
}

.fu-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--fu-space-md);
  align-items: center;
}

.fu-row--between {
  justify-content: space-between;
}

/* =========================================================
   ボタン
========================================================= */
.fu-btn,
.fu-design-scope a.fu-btn,
.fu-design-scope button.fu-btn,
.fu-common-form button.fu-btn,
.fu-common-form input[type="submit"].fu-btn,
.fu-form-shell button,
.fu-form-shell input[type="submit"],
.fu-form-shell input[type="button"] {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 52px;
  padding: 12px 26px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: var(--fu-purple);
  color: #fff !important;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  text-decoration: none !important;
  cursor: pointer;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease, border-color 0.18s ease;
}

.fu-btn:hover,
.fu-common-form button.fu-btn:hover,
.fu-form-shell button:hover,
.fu-form-shell input[type="submit"]:hover,
.fu-form-shell input[type="button"]:hover {
  transform: translateY(-1px);
  box-shadow: var(--fu-shadow-soft);
  opacity: 0.95;
}

.fu-btn--primary {
  background: var(--fu-purple);
}

.fu-btn--dark {
  background: var(--fu-purple-dark);
}

.fu-btn--urgent {
  background: var(--fu-urgent);
}

.fu-btn--olive {
  background: var(--fu-olive);
}

.fu-btn--ghost,
.fu-btn--secondary,
.fu-btn-secondary,
.fu-btn--outline,
.fu-design-scope a.fu-btn--ghost,
.fu-design-scope button.fu-btn--ghost {
  background: #fff;
  color: var(--fu-purple) !important;
  border-color: var(--fu-purple);
}

.fu-btn--wide {
  width: 100%;
}

.fu-btn-row,
.fu-button-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: stretch;
  justify-content: center;
  margin-top: 24px;
}

.fu-btn-row .fu-btn,
.fu-btn-row button,
.fu-btn-row input[type="submit"],
.fu-btn-row input[type="button"],
.fu-button-row .fu-btn,
.fu-button-row button,
.fu-button-row input[type="submit"],
.fu-button-row input[type="button"] {
  min-width: 180px;
}

/* =========================================================
   フォーム外枠：旧共通フォーム
========================================================= */
.fu-form-shell,
.fu-contact-design,
.fu-flower-design,
.fu-offering-design,
.fu-kijitsu-design,
.fu-estimate-design,
.fu-obituary-design {
  width: min(100%, var(--fu-width-main));
  margin: 0 auto;
  padding: clamp(18px, 3vw, 32px);
  background: var(--fu-white);
  border: 1px solid var(--fu-border-soft);
  border-radius: var(--fu-radius-lg);
  box-shadow: var(--fu-shadow-card);
}

/* =========================================================
   フォーム外枠：お問い合わせ型・供花土台型
   新規フォームはこの .fu-common-form を使う。
========================================================= */
.fu-common-form,
.fu-common-form.fu-contact-design,
.fu-common-form.fu-contact-form,
.fu-contact-design.fu-contact-form {
  width: min(100%, var(--fu-width-form));
  max-width: var(--fu-width-form);
  margin: 96px auto 64px;
  padding: 28px 26px 30px;
  background: var(--fu-ivory);
  border: 1px solid var(--fu-border-soft);
  border-radius: var(--fu-radius-lg);
  box-shadow: var(--fu-shadow-card);
}

/* フォームタイトルは中央＋細い1本線。汎用h2の短い紫線は消す。 */
.fu-common-form .fu-form-title,
.fu-common-form h2.fu-form-title,
.fu-contact-design.fu-contact-form .fu-form-title,
.fu-contact-design.fu-contact-form h2.fu-form-title {
  display: block;
  margin: 0 0 22px;
  padding: 0 0 20px;
  border-bottom: 1px solid var(--fu-border-soft);
  color: var(--fu-purple);
  font-size: clamp(22px, 2.5vw, 26px);
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.03em;
  text-align: center;
  position: relative;
}

.fu-common-form .fu-form-title::before,
.fu-common-form .fu-form-title::after,
.fu-common-form h2.fu-form-title::before,
.fu-common-form h2.fu-form-title::after,
.fu-contact-design.fu-contact-form .fu-form-title::before,
.fu-contact-design.fu-contact-form .fu-form-title::after,
.fu-contact-design.fu-contact-form h2.fu-form-title::before,
.fu-contact-design.fu-contact-form h2.fu-form-title::after {
  content: none !important;
  display: none !important;
}

.fu-common-form .fu-lead,
.fu-contact-design.fu-contact-form .fu-lead {
  margin: 0 0 24px;
  color: var(--fu-purple);
  font-size: 15px;
  line-height: 1.85;
}

/* お問い合わせ型の中の白カード */
.fu-common-form .fu-form-card,
.fu-contact-design.fu-contact-form .fu-form-card {
  margin: 0;
  padding: clamp(22px, 3vw, 32px);
  background: var(--fu-white);
  border: 1px solid var(--fu-border-soft);
  border-radius: var(--fu-radius-lg);
  box-shadow: none;
}

.fu-form-shell form,
.fu-common-form form,
.fu-contact-design form,
.fu-flower-design form,
.fu-offering-design form,
.fu-kijitsu-design form,
.fu-estimate-design form,
.fu-obituary-design form {
  margin: 0;
}

/* =========================================================
   フォーム項目
========================================================= */
.fu-field,
.fu-form-row,
.fu-form-group {
  margin: 0 0 20px;
}

.fu-common-form .fu-form-row,
.fu-contact-design.fu-contact-form .fu-form-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 18px;
  align-items: start;
  margin: 0;
}

.fu-common-form .fu-form-field,
.fu-contact-design.fu-contact-form .fu-form-field {
  min-width: 0;
  margin: 0 0 22px;
}

.fu-common-form .fu-form-full,
.fu-contact-design.fu-contact-form .fu-form-full {
  grid-column: 1 / -1;
}

.fu-label,
.fu-form-shell label,
.fu-common-form label,
.fu-contact-design label,
.fu-flower-design label,
.fu-offering-design label,
.fu-kijitsu-design label,
.fu-estimate-design label,
.fu-obituary-design label {
  display: block;
  margin: 0 0 8px;
  color: var(--fu-purple-dark);
  font-weight: 700;
  line-height: 1.5;
}

.fu-form-shell input[type="text"],
.fu-form-shell input[type="email"],
.fu-form-shell input[type="tel"],
.fu-form-shell input[type="number"],
.fu-form-shell input[type="date"],
.fu-form-shell input[type="time"],
.fu-form-shell input[type="url"],
.fu-form-shell select,
.fu-form-shell textarea,
.fu-common-form input[type="text"],
.fu-common-form input[type="email"],
.fu-common-form input[type="tel"],
.fu-common-form input[type="number"],
.fu-common-form input[type="date"],
.fu-common-form input[type="time"],
.fu-common-form input[type="url"],
.fu-common-form select,
.fu-common-form textarea,
.fu-contact-design input[type="text"],
.fu-contact-design input[type="email"],
.fu-contact-design input[type="tel"],
.fu-contact-design input[type="number"],
.fu-contact-design input[type="date"],
.fu-contact-design input[type="time"],
.fu-contact-design select,
.fu-contact-design textarea,
.fu-flower-design input[type="text"],
.fu-flower-design input[type="email"],
.fu-flower-design input[type="tel"],
.fu-flower-design input[type="number"],
.fu-flower-design input[type="date"],
.fu-flower-design input[type="time"],
.fu-flower-design select,
.fu-flower-design textarea,
.fu-offering-design input[type="text"],
.fu-offering-design input[type="email"],
.fu-offering-design input[type="tel"],
.fu-offering-design input[type="number"],
.fu-offering-design input[type="date"],
.fu-offering-design input[type="time"],
.fu-offering-design select,
.fu-offering-design textarea,
.fu-kijitsu-design input[type="text"],
.fu-kijitsu-design input[type="email"],
.fu-kijitsu-design input[type="tel"],
.fu-kijitsu-design input[type="number"],
.fu-kijitsu-design input[type="date"],
.fu-kijitsu-design input[type="time"],
.fu-kijitsu-design select,
.fu-kijitsu-design textarea,
.fu-estimate-design input[type="text"],
.fu-estimate-design input[type="email"],
.fu-estimate-design input[type="tel"],
.fu-estimate-design input[type="number"],
.fu-estimate-design input[type="date"],
.fu-estimate-design input[type="time"],
.fu-estimate-design select,
.fu-estimate-design textarea,
.fu-obituary-design input[type="text"],
.fu-obituary-design input[type="email"],
.fu-obituary-design input[type="tel"],
.fu-obituary-design input[type="number"],
.fu-obituary-design input[type="date"],
.fu-obituary-design input[type="time"],
.fu-obituary-design select,
.fu-obituary-design textarea {
  width: 100%;
  max-width: 100%;
  min-height: 46px;
  padding: 10px 13px;
  border: 1px solid var(--fu-border);
  border-radius: var(--fu-radius-sm);
  background: #fff;
  color: var(--fu-text);
  font-size: 16px;
  line-height: 1.5;
  box-shadow: none;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.fu-form-shell textarea,
.fu-common-form textarea,
.fu-contact-design textarea,
.fu-flower-design textarea,
.fu-offering-design textarea,
.fu-kijitsu-design textarea,
.fu-estimate-design textarea,
.fu-obituary-design textarea {
  min-height: 132px;
  resize: vertical;
}

.fu-form-shell input:focus,
.fu-form-shell select:focus,
.fu-form-shell textarea:focus,
.fu-common-form input:focus,
.fu-common-form select:focus,
.fu-common-form textarea:focus,
.fu-contact-design input:focus,
.fu-contact-design select:focus,
.fu-contact-design textarea:focus,
.fu-flower-design input:focus,
.fu-flower-design select:focus,
.fu-flower-design textarea:focus,
.fu-offering-design input:focus,
.fu-offering-design select:focus,
.fu-offering-design textarea:focus,
.fu-kijitsu-design input:focus,
.fu-kijitsu-design select:focus,
.fu-kijitsu-design textarea:focus,
.fu-estimate-design input:focus,
.fu-estimate-design select:focus,
.fu-estimate-design textarea:focus,
.fu-obituary-design input:focus,
.fu-obituary-design select:focus,
.fu-obituary-design textarea:focus {
  outline: none;
  border-color: var(--fu-purple);
  box-shadow: 0 0 0 3px rgba(97, 78, 146, 0.12);
}

/* お問い合わせ型フォーム内のh3は、通常のセクション見出しにする */
.fu-common-form .fu-subheading,
.fu-common-form h3.fu-subheading,
.fu-contact-design.fu-contact-form .fu-subheading,
.fu-contact-design.fu-contact-form h3.fu-subheading {
  margin: 0 0 18px;
  padding: 0;
  border: 0;
  color: #2d2a31;
  font-size: clamp(18px, 2vw, 20px);
  font-weight: 700;
  line-height: 1.5;
}

.fu-common-form .fu-subheading:not(:first-child),
.fu-contact-design.fu-contact-form .fu-subheading:not(:first-child) {
  margin-top: 34px;
}

.fu-common-form .fu-subheading::before,
.fu-common-form .fu-subheading::after,
.fu-contact-design.fu-contact-form .fu-subheading::before,
.fu-contact-design.fu-contact-form .fu-subheading::after {
  content: none !important;
  display: none !important;
}

/* =========================================================
   郵便番号・住所自動入力
========================================================= */
.fu-postcode-input-row,
.fu-postcode-inline {
  display: flex;
  align-items: center;
  gap: 10px;
}

.fu-postcode-input-row input,
.fu-postcode-inline input {
  flex: 1 1 auto;
  min-width: 0;
}

.fu-btn--postcode,
.fu-postcode-button {
  flex: 0 0 auto;
  min-width: 132px;
  min-height: 46px;
  padding: 8px 16px;
  background: var(--fu-olive);
  color: #fff !important;
  white-space: nowrap;
}

/* =========================================================
   ラジオ・チェック
========================================================= */
.fu-inline-options,
.fu-check-list,
.fu-radio-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  align-items: center;
}

.fu-inline-options label,
.fu-check-list label,
.fu-radio-list label {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  color: var(--fu-text);
  font-weight: 500;
}

/* =========================================================
   エラー・アラート
========================================================= */
.fu-error,
.fu-error-message,
.fu-form-error {
  color: var(--fu-error);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.6;
  margin-top: 6px;
}

.fu-alert {
  border-radius: var(--fu-radius-md);
  padding: 14px 16px;
  margin: 0 0 20px;
  border: 1px solid var(--fu-border);
  background: var(--fu-ivory);
}

.fu-alert--error,
.fu-alert--urgent {
  border-color: rgba(177, 59, 74, 0.28);
  background: #fff6f7;
  color: var(--fu-error);
}

.fu-alert--success {
  border-color: rgba(75, 123, 91, 0.28);
  background: #f5fbf7;
  color: var(--fu-success);
}

/* =========================================================
   確認画面
========================================================= */
.fu-confirm-message {
  margin: 0 0 22px;
  padding: 16px 18px;
  border-radius: var(--fu-radius-md);
  background: var(--fu-white);
  color: var(--fu-purple-dark);
  border: 1px solid var(--fu-border-soft);
  line-height: 1.8;
}

.fu-confirm-table {
  width: 100%;
  margin: 0 0 24px;
  border-collapse: collapse;
  background: #fff;
}

.fu-confirm-table th,
.fu-confirm-table td {
  padding: 12px 14px;
  border: 1px solid var(--fu-border-soft);
  text-align: left;
  vertical-align: top;
  line-height: 1.7;
}

.fu-confirm-table th {
  width: 32%;
  background: var(--fu-ivory);
  color: var(--fu-purple-dark);
  font-weight: 700;
}

.fu-confirm-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
  margin-top: 24px;
}

/* =========================================================
   テーブル
========================================================= */
.fu-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--fu-border-soft);
  border-radius: var(--fu-radius-md);
}

.fu-table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
}

.fu-table th,
.fu-table td {
  border-bottom: 1px solid var(--fu-border-soft);
  padding: 12px 14px;
  text-align: left;
  vertical-align: top;
}

.fu-table th {
  background: var(--fu-lavender);
  color: var(--fu-purple-dark);
  font-weight: 700;
}

/* =========================================================
   共通：紫丸の箇条書き
   ul / ol にだけ効かせる。フォームのチェックボックス配置と分ける。
========================================================= */
ul.fu-list,
ol.fu-list,
ul.fu-list--check,
ol.fu-list--check,
ul.fu-check-list,
ol.fu-check-list,
ul.fu-dot-list,
ol.fu-dot-list,
ul.fu-common-list,
ol.fu-common-list,
ul.fu-top-check-list,
ol.fu-top-check-list,
ul.fu-form-check-list,
ol.fu-form-check-list,
ul.fu-contact-check-list,
ol.fu-contact-check-list,
ul.fu-flower-check-list,
ol.fu-flower-check-list,
ul.fu-offering-check-list,
ol.fu-offering-check-list {
  display: grid;
  gap: 12px;
  list-style: none !important;
  margin: 0;
  padding: 0;
}

ul.fu-list > li,
ol.fu-list > li,
ul.fu-list--check > li,
ol.fu-list--check > li,
ul.fu-check-list > li,
ol.fu-check-list > li,
ul.fu-dot-list > li,
ol.fu-dot-list > li,
ul.fu-common-list > li,
ol.fu-common-list > li,
ul.fu-top-check-list > li,
ol.fu-top-check-list > li,
ul.fu-form-check-list > li,
ol.fu-form-check-list > li,
ul.fu-contact-check-list > li,
ol.fu-contact-check-list > li,
ul.fu-flower-check-list > li,
ol.fu-flower-check-list > li,
ul.fu-offering-check-list > li,
ol.fu-offering-check-list > li {
  position: relative;
  list-style: none !important;
  margin: 0;
  padding-left: 30px;
  color: var(--fu-text-soft);
  font-size: 15px;
  line-height: 1.75;
}

ul.fu-list > li::marker,
ol.fu-list > li::marker,
ul.fu-list--check > li::marker,
ol.fu-list--check > li::marker,
ul.fu-check-list > li::marker,
ol.fu-check-list > li::marker,
ul.fu-dot-list > li::marker,
ol.fu-dot-list > li::marker,
ul.fu-common-list > li::marker,
ol.fu-common-list > li::marker,
ul.fu-top-check-list > li::marker,
ol.fu-top-check-list > li::marker,
ul.fu-form-check-list > li::marker,
ol.fu-form-check-list > li::marker,
ul.fu-contact-check-list > li::marker,
ol.fu-contact-check-list > li::marker,
ul.fu-flower-check-list > li::marker,
ol.fu-flower-check-list > li::marker,
ul.fu-offering-check-list > li::marker,
ol.fu-offering-check-list > li::marker {
  content: "" !important;
  font-size: 0 !important;
}

ul.fu-list > li::before,
ol.fu-list > li::before,
ul.fu-list--check > li::before,
ol.fu-list--check > li::before,
ul.fu-check-list > li::before,
ol.fu-check-list > li::before,
ul.fu-dot-list > li::before,
ol.fu-dot-list > li::before,
ul.fu-common-list > li::before,
ol.fu-common-list > li::before,
ul.fu-top-check-list > li::before,
ol.fu-top-check-list > li::before,
ul.fu-form-check-list > li::before,
ol.fu-form-check-list > li::before,
ul.fu-contact-check-list > li::before,
ol.fu-contact-check-list > li::before,
ul.fu-flower-check-list > li::before,
ol.fu-flower-check-list > li::before,
ul.fu-offering-check-list > li::before,
ol.fu-offering-check-list > li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 0.58em;
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: var(--fu-purple);
  box-shadow: 0 0 0 5px rgba(97, 78, 146, 0.14);
}

ul.fu-list > li::after,
ol.fu-list > li::after,
ul.fu-list--check > li::after,
ol.fu-list--check > li::after,
ul.fu-check-list > li::after,
ol.fu-check-list > li::after,
ul.fu-dot-list > li::after,
ol.fu-dot-list > li::after,
ul.fu-common-list > li::after,
ol.fu-common-list > li::after,
ul.fu-top-check-list > li::after,
ol.fu-top-check-list > li::after,
ul.fu-form-check-list > li::after,
ol.fu-form-check-list > li::after,
ul.fu-contact-check-list > li::after,
ol.fu-contact-check-list > li::after,
ul.fu-flower-check-list > li::after,
ol.fu-flower-check-list > li::after,
ul.fu-offering-check-list > li::after,
ol.fu-offering-check-list > li::after {
  display: none !important;
  content: none !important;
}

.fu-card ul.fu-list,
.fu-card ul.fu-list--check,
.fu-top-card ul.fu-list,
.fu-top-card ul.fu-list--check,
.fu-form-card ul.fu-list,
.fu-form-card ul.fu-list--check,
.fu-contact-design ul.fu-list,
.fu-contact-design ul.fu-list--check,
.fu-flower-design ul.fu-list,
.fu-flower-design ul.fu-list--check,
.fu-offering-design ul.fu-list,
.fu-offering-design ul.fu-list--check,
.fu-kijitsu-design ul.fu-list,
.fu-kijitsu-design ul.fu-list--check,
.fu-estimate-design ul.fu-list,
.fu-estimate-design ul.fu-list--check,
.fu-obituary-design ul.fu-list,
.fu-obituary-design ul.fu-list--check {
  margin-top: 18px;
}

/* =========================================================
   スマホ
========================================================= */
@media (max-width: 767px) {
  .fu-page {
    padding: 0 12px;
  }

  .fu-grid--2,
  .fu-grid--3,
  .fu-grid--4,
  .fu-common-form .fu-form-row,
  .fu-contact-design.fu-contact-form .fu-form-row {
    grid-template-columns: 1fr;
  }

  .fu-form-shell,
  .fu-contact-design,
  .fu-flower-design,
  .fu-offering-design,
  .fu-kijitsu-design,
  .fu-estimate-design,
  .fu-obituary-design {
    padding: 20px 14px;
    border-radius: 16px;
  }

  .fu-common-form,
  .fu-common-form.fu-contact-design,
  .fu-common-form.fu-contact-form,
  .fu-contact-design.fu-contact-form {
    width: auto;
    max-width: none;
    margin: 48px 14px;
    padding: 22px 18px;
    border-radius: 16px;
  }

  .fu-common-form .fu-form-card,
  .fu-contact-design.fu-contact-form .fu-form-card {
    padding: 22px;
  }

  .fu-postcode-input-row,
  .fu-postcode-inline {
    align-items: stretch;
    flex-direction: column;
  }

  .fu-postcode-button,
  .fu-btn--postcode {
    width: 100%;
  }

  .fu-btn-row,
  .fu-button-row {
    display: grid;
    grid-template-columns: 1fr;
  }

  .fu-btn-row .fu-btn,
  .fu-btn-row button,
  .fu-btn-row input[type="submit"],
  .fu-btn-row input[type="button"],
  .fu-button-row .fu-btn,
  .fu-button-row button,
  .fu-button-row input[type="submit"],
  .fu-button-row input[type="button"],
  .fu-design-scope .fu-btn,
  .fu-common-form .fu-btn,
  .fu-form-shell button,
  .fu-form-shell input[type="submit"],
  .fu-form-shell input[type="button"] {
    width: 100%;
    min-width: 0;
    min-height: 52px;
  }

  .fu-confirm-table th,
  .fu-confirm-table td {
    display: block;
    width: 100%;
  }

  .fu-confirm-table th {
    border-bottom: 0;
  }

  ul.fu-list,
  ol.fu-list,
  ul.fu-list--check,
  ol.fu-list--check,
  ul.fu-check-list,
  ol.fu-check-list,
  ul.fu-dot-list,
  ol.fu-dot-list,
  ul.fu-common-list,
  ol.fu-common-list,
  ul.fu-top-check-list,
  ol.fu-top-check-list,
  ul.fu-form-check-list,
  ol.fu-form-check-list,
  ul.fu-contact-check-list,
  ol.fu-contact-check-list,
  ul.fu-flower-check-list,
  ol.fu-flower-check-list,
  ul.fu-offering-check-list,
  ol.fu-offering-check-list {
    gap: 10px;
  }

  ul.fu-list > li,
  ol.fu-list > li,
  ul.fu-list--check > li,
  ol.fu-list--check > li,
  ul.fu-check-list > li,
  ol.fu-check-list > li,
  ul.fu-dot-list > li,
  ol.fu-dot-list > li,
  ul.fu-common-list > li,
  ol.fu-common-list > li,
  ul.fu-top-check-list > li,
  ol.fu-top-check-list > li,
  ul.fu-form-check-list > li,
  ol.fu-form-check-list > li,
  ul.fu-contact-check-list > li,
  ol.fu-contact-check-list > li,
  ul.fu-flower-check-list > li,
  ol.fu-flower-check-list > li,
  ul.fu-offering-check-list > li,
  ol.fu-offering-check-list > li {
    padding-left: 28px;
  }
}

/* =========================================================
   v0.1.3 供花フォーム土台の見た目補正
   お問い合わせフォームは現状維持し、.fu-common-form 側だけを調整する。
========================================================= */

/* 上部の隙間をお問い合わせフォーム寄りに詰める */
.fu-common-form,
.fu-common-form.fu-contact-design,
.fu-common-form.fu-contact-form {
  margin-top: 56px;
}

/* 郵便番号の自動入力ボタンをお問い合わせフォームと同じ小さめ・オリーブ系に固定 */
.fu-common-form .fu-postcode-input-row {
  align-items: center;
}

.fu-common-form .fu-btn--postcode,
.fu-common-form .fu-postcode-button,
.fu-common-form button.fu-btn--postcode,
.fu-common-form button.fu-postcode-button {
  min-width: 128px !important;
  width: auto !important;
  min-height: 42px !important;
  height: 42px !important;
  padding: 8px 18px !important;
  border-color: var(--fu-olive) !important;
  background: var(--fu-olive) !important;
  color: #fff !important;
  font-size: 14px !important;
  line-height: 1.2 !important;
  box-shadow: none;
}

/* 「確認画面へ」ボタンを大きくしすぎない */
.fu-common-form .fu-form-submit,
.fu-common-form .fu-btn-row.fu-form-submit,
.fu-common-form .fu-button-row.fu-form-submit {
  margin-top: 24px;
  justify-content: center;
}

.fu-common-form .fu-form-submit .fu-btn,
.fu-common-form .fu-form-submit button.fu-btn,
.fu-common-form .fu-form-submit .fu-btn--primary,
.fu-common-form .fu-form-submit button.fu-btn--primary {
  min-width: 124px !important;
  width: auto !important;
  min-height: 42px !important;
  height: 42px !important;
  padding: 8px 24px !important;
  font-size: 14px !important;
  line-height: 1.2 !important;
}

/* スマホでは従来通り横幅いっぱい */
@media (max-width: 767px) {
  .fu-common-form,
  .fu-common-form.fu-contact-design,
  .fu-common-form.fu-contact-form {
    margin-top: 48px;
  }

  .fu-common-form .fu-btn--postcode,
  .fu-common-form .fu-postcode-button,
  .fu-common-form button.fu-btn--postcode,
  .fu-common-form button.fu-postcode-button,
  .fu-common-form .fu-form-submit .fu-btn,
  .fu-common-form .fu-form-submit button.fu-btn {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 52px !important;
    height: auto !important;
  }
}

/* =========================================================
   v0.1.4 入力不備・確認画面・送信ボタンの統一
========================================================= */

/* 入力不備の上部ボックス */
.fu-common-form .fu-alert--urgent,
.fu-common-form .fu-form-error {
  margin: 0 0 22px;
  padding: 18px 20px;
  border: 1px solid rgba(177, 59, 74, 0.28);
  border-radius: var(--fu-radius-md);
  background: #fff6f7;
  color: var(--fu-error);
}

.fu-common-form .fu-form-error strong {
  display: block;
  margin: 0 0 14px;
  color: var(--fu-error);
  font-weight: 700;
}

.fu-common-form .fu-form-error ul {
  margin: 0;
  padding-left: 1.2em;
}

.fu-common-form .fu-form-error li + li {
  margin-top: 6px;
}

/* 項目別エラー */
.fu-common-form .fu-field-has-error {
  padding: 14px;
  border: 1px solid rgba(177, 59, 74, 0.28);
  border-radius: var(--fu-radius-md);
  background: #fff8f8;
}

.fu-common-form .fu-field-has-error input,
.fu-common-form .fu-field-has-error select,
.fu-common-form .fu-field-has-error textarea {
  border-color: rgba(177, 59, 74, 0.7);
}

.fu-common-form .fu-field-error {
  margin: 8px 0 0;
  color: var(--fu-error);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.6;
}

/* 確認画面：お問い合わせフォームと同じく、1つの白カード内にメッセージ＋表 */
.fu-common-form .fu-confirm-message {
  margin: 0 0 20px;
  padding: 14px 16px;
  border: 1px solid var(--fu-border-soft);
  border-radius: var(--fu-radius-sm);
  background: #fff;
  color: var(--fu-purple-dark);
  font-size: 15px;
  line-height: 1.8;
}

.fu-common-form .fu-confirm-table {
  width: 100%;
  margin: 0;
  border-collapse: collapse;
  background: #fff;
  border: 1px solid var(--fu-border-soft);
  border-radius: var(--fu-radius-sm);
  overflow: hidden;
}

.fu-common-form .fu-confirm-table th,
.fu-common-form .fu-confirm-table td {
  padding: 12px 16px;
  border: 1px solid var(--fu-border-soft);
  text-align: left;
  vertical-align: top;
  font-size: 15px;
  line-height: 1.7;
}

.fu-common-form .fu-confirm-table th {
  width: 32%;
  background: var(--fu-ivory);
  color: var(--fu-purple-dark);
  font-weight: 700;
}

/* 確認画面の訂正・送信ボタン */
.fu-common-form .fu-confirm-buttons,
.fu-common-form .fu-btn-row.fu-confirm-buttons,
.fu-common-form .fu-button-row.fu-confirm-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
  margin-top: 28px;
}

.fu-common-form .fu-confirm-buttons .fu-btn,
.fu-common-form .fu-confirm-buttons button.fu-btn,
.fu-common-form .fu-confirm-buttons .fu-btn--primary,
.fu-common-form .fu-confirm-buttons .fu-btn-secondary,
.fu-common-form .fu-confirm-buttons .fu-btn--secondary {
  min-width: 150px !important;
  width: auto !important;
  min-height: 48px !important;
  height: 48px !important;
  padding: 10px 28px !important;
  border-radius: 999px !important;
  font-size: 15px !important;
  line-height: 1.2 !important;
}

@media (max-width: 767px) {
  .fu-common-form .fu-field-has-error {
    padding: 12px;
  }

  .fu-common-form .fu-confirm-buttons,
  .fu-common-form .fu-btn-row.fu-confirm-buttons,
  .fu-common-form .fu-button-row.fu-confirm-buttons {
    display: grid;
    grid-template-columns: 1fr;
  }

  .fu-common-form .fu-confirm-buttons .fu-btn,
  .fu-common-form .fu-confirm-buttons button.fu-btn {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 52px !important;
    height: auto !important;
  }
}

/* =========================================================
   v0.1.5 項目別注意書きの見た目調整
   お問い合わせフォームの「△ お名前を入力してください。」に寄せる。
========================================================= */
.fu-common-form .fu-field-error {
  margin: 8px 0 0;
  color: var(--fu-urgent, #7B3F4B);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.6;
}

.fu-common-form .fu-form-error,
.fu-common-form .fu-form-error strong,
.fu-common-form .fu-form-error li {
  color: var(--fu-urgent, #7B3F4B);
}

.fu-common-form .fu-field-has-error input,
.fu-common-form .fu-field-has-error select,
.fu-common-form .fu-field-has-error textarea {
  border-color: rgba(123, 63, 75, 0.65);
}

/* =========================================================
   v0.1.6 上部注意ボックスの色・フォントサイズ調整
   お問い合わせフォームのエラー表示に近づける。
========================================================= */
.fu-common-form .fu-alert--urgent,
.fu-common-form .fu-form-error {
  color: var(--fu-urgent, #7B3F4B) !important;
  font-size: 14px;
  line-height: 1.75;
}

.fu-common-form .fu-form-error strong {
  color: var(--fu-urgent, #7B3F4B) !important;
  font-size: 14px;
  line-height: 1.7;
}

.fu-common-form .fu-form-error ul {
  margin-top: 14px;
}

.fu-common-form .fu-form-error li {
  color: var(--fu-urgent, #7B3F4B) !important;
  font-size: 14px;
  line-height: 1.75;
}

.fu-common-form .fu-form-error li::marker {
  color: var(--fu-urgent, #7B3F4B);
}

/* =========================================================
   共通：フォームの入力不備表示
   対象：お問い合わせフォーム・供花注文フォームなど
   追加場所：fuurin-common-base.css の末尾
   ========================================================= */

.fu-common-form .fu-error-summary,
.fu-common-form .fu-form-error {
  margin: 18px 0 24px;
  padding: 18px 20px;
  border: 1px solid rgba(123, 63, 75, 0.25);
  border-radius: var(--fu-form-radius-sm, 12px);
  background: rgba(123, 63, 75, 0.06);
  color: var(--fu-form-urgent, var(--fu-urgent, #7B3F4B));
  box-shadow: none;
}

.fu-common-form .fu-error-summary p,
.fu-common-form .fu-error-summary ul,
.fu-common-form .fu-form-error p,
.fu-common-form .fu-form-error ul {
  margin-top: 0;
}

.fu-common-form .fu-error-summary ul,
.fu-common-form .fu-form-error ul {
  margin-bottom: 0;
  padding-left: 1.4em;
}

.fu-common-form .fu-error-summary p:last-child,
.fu-common-form .fu-form-error p:last-child {
  margin-bottom: 0;
}

.fu-common-form .has-error,
.fu-common-form .fu-field-has-error {
  padding: 18px;
  border: 1px solid rgba(123, 63, 75, 0.32);
  border-radius: var(--fu-form-radius-sm, 12px);
  background: rgba(123, 63, 75, 0.06);
}

.fu-common-form .has-error input,
.fu-common-form .has-error select,
.fu-common-form .has-error textarea,
.fu-common-form .fu-field-has-error input,
.fu-common-form .fu-field-has-error select,
.fu-common-form .fu-field-has-error textarea {
  border-color: var(--fu-form-urgent, var(--fu-urgent, #7B3F4B));
  background: #fffafa;
	
	
	
}

.fu-common-form .fu-field-error {
  margin: 9px 0 0;
  color: var(--fu-form-urgent, var(--fu-urgent, #7B3F4B));
  font-weight: 700;
  line-height: 1.7;
}

.fu-common-form .fu-field-error::before {
  content: "⚠ ";
}


/* =========================================================
   ふうりん共通フォームCSS 追加パッチ
   追加場所：fuurin-common-base.css の一番下

   目的：
   ・お問い合わせフォーム、供花注文フォームなどを同じ見た目で表示
   ・確認画面、入力不備表示、住所自動入力欄、ボタンを共通化
   ・各プラグイン側にフォーム専用CSSを持たせない
   ========================================================= */

.fu-common-form,
.fu-common-form * {
  box-sizing: border-box;
}

.fu-common-form {
  --fu-form-purple: var(--fu-purple, #614e92);
  --fu-form-purple-dark: var(--fu-purple-dark, #4d3d75);
  --fu-form-ivory: var(--fu-ivory, #f7f5f2);
  --fu-form-lavender: var(--fu-lavender, #eee9f5);
  --fu-form-olive: var(--fu-olive, #96946f);
  --fu-form-urgent: var(--fu-urgent, #7B3F4B);
  --fu-form-border: rgba(97, 78, 146, 0.18);
  --fu-form-border-strong: rgba(97, 78, 146, 0.30);
  --fu-form-radius: 18px;
  --fu-form-radius-sm: 12px;
  --fu-form-shadow: 0 10px 28px rgba(77, 61, 117, 0.08);
  width: 100%;
  max-width: 980px;
  margin: 32px auto;
  padding: 28px;
  background: var(--fu-form-ivory);
  border: 1px solid var(--fu-form-border);
  border-radius: var(--fu-form-radius);
  box-shadow: var(--fu-form-shadow);
  color: var(--fu-text, #333);
  font-size: 16px;
  line-height: 1.8;
}

.fu-common-form .fu-form-title {
  position: static;
  margin: 0 0 24px;
  padding: 0 0 12px;
  color: var(--fu-form-purple);
  border-bottom: 2px solid var(--fu-form-lavender);
  font-size: clamp(1.35rem, 2.4vw, 1.8rem);
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.02em;
}

.fu-common-form .fu-form-title::after {
  content: none !important;
}

.fu-common-form .fu-form-lead,
.fu-common-form .fu-lead {
  margin: 0 0 22px;
  color: var(--fu-form-purple-dark);
}

.fu-common-form .fu-form-card,
.fu-common-form .fu-confirm-form {
  margin: 0;
}

.fu-common-form .fu-form-field {
  margin: 0 0 22px;
}

.fu-common-form .fu-form-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 18px;
  row-gap: 0;
  align-items: start;
}

.fu-common-form .fu-form-row .fu-form-field {
  min-width: 0;
}

.fu-common-form .fu-contact-post-address-row {
  align-items: stretch;
}

.fu-common-form label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px;
  color: var(--fu-form-purple-dark);
  font-weight: 700;
}

.fu-common-form .fu-required {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  min-height: 22px;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--fu-form-urgent);
  color: #fff;
  font-size: 12px;
  line-height: 1.2;
  font-weight: 700;
}

.fu-common-form input[type="text"],
.fu-common-form input[type="email"],
.fu-common-form input[type="tel"],
.fu-common-form input[type="date"],
.fu-common-form select,
.fu-common-form textarea {
  width: 100%;
  max-width: 100%;
  min-height: 46px;
  padding: 10px 13px;
  border: 1px solid var(--fu-form-border-strong);
  border-radius: var(--fu-form-radius-sm);
  background: #fff;
  color: var(--fu-text, #333);
  font-size: 16px;
  line-height: 1.5;
  box-shadow: none;
}

.fu-common-form select {
  appearance: auto;
}

.fu-common-form textarea {
  min-height: 160px;
  resize: vertical;
}

.fu-common-form .fu-address-textarea {
  min-height: 126px;
}

.fu-common-form input:focus,
.fu-common-form select:focus,
.fu-common-form textarea:focus {
  outline: none;
  border-color: var(--fu-form-purple);
  box-shadow: 0 0 0 3px rgba(97, 78, 146, 0.12);
}

.fu-common-form .fu-radio-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  align-items: center;
}

.fu-common-form .fu-radio-list label {
  margin: 0;
  font-weight: 400;
}

.fu-common-form .fu-radio-list input[type="radio"] {
  margin: 0 6px 0 0;
}

.fu-common-form .fu-postcode-input-row {
  display: flex;
  align-items: center;
  gap: 12px;
}

.fu-common-form .fu-postcode-input-row input {
  flex: 1 1 180px;
  min-width: 0;
}

.fu-common-form .fu-postcode-button {
  flex: 0 0 auto;
  width: auto;
  min-width: 138px;
  max-width: 200px;
  height: 44px;
  min-height: 44px;
  padding: 0 18px;
  border: 1px solid var(--fu-form-olive);
  border-radius: 999px;
  background: var(--fu-form-olive);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  cursor: pointer;
  box-shadow: 0 6px 14px rgba(97, 78, 146, 0.14);
}

.fu-common-form .fu-postcode-button:hover {
  opacity: 0.92;
}

.fu-common-form .fu-field-note,
.fu-common-form .fu-form-note {
  margin: 8px 0 0;
  font-size: 14px;
  line-height: 1.7;
  color: var(--fu-text, #333);
}

.fu-common-form .fu-button-row,
.fu-common-form .fu-form-submit,
.fu-common-form .fu-confirm-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  justify-content: center;
  margin-top: 28px;
}

.fu-common-form .fu-btn,
.fu-common-form button[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 10px 26px;
  border: 1px solid var(--fu-form-purple);
  border-radius: 999px;
  background: var(--fu-form-purple);
  color: #fff !important;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  text-decoration: none !important;
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(97, 78, 146, 0.18);
}

.fu-common-form .fu-btn:hover,
.fu-common-form button[type="submit"]:hover {
  opacity: 0.92;
  transform: translateY(-1px);
}

.fu-common-form .fu-btn-secondary,
.fu-common-form .fu-edit-button {
  background: #fff;
  color: var(--fu-form-purple) !important;
  border-color: var(--fu-form-purple);
  box-shadow: none;
}

.fu-common-form .has-error,
.fu-common-form .fu-field-has-error {
  padding: 18px;
  border: 1px solid rgba(123, 63, 75, 0.32);
  border-radius: var(--fu-form-radius-sm);
  background: rgba(123, 63, 75, 0.06);
}

.fu-common-form .has-error input,
.fu-common-form .has-error select,
.fu-common-form .has-error textarea,
.fu-common-form .fu-field-has-error input,
.fu-common-form .fu-field-has-error select,
.fu-common-form .fu-field-has-error textarea {
  border-color: var(--fu-form-urgent);
  background: #fffafa;
}

.fu-common-form .fu-field-error {
  margin: 9px 0 0;
  color: var(--fu-form-urgent);
  font-weight: 700;
  line-height: 1.7;
}

.fu-common-form .fu-field-error::before {
  content: "⚠ ";
}

.fu-common-form .fu-error-summary,
.fu-common-form .fu-confirm-message,
.fu-common-form .fu-thanks-message {
  margin: 18px 0 24px;
  padding: 18px 20px;
  border: 1px solid var(--fu-form-border);
  border-radius: var(--fu-form-radius-sm);
  background: rgba(255, 255, 255, 0.65);
  color: var(--fu-form-purple-dark);
  box-shadow: none;
}

.fu-common-form .fu-error-summary,
.fu-common-form .fu-form-error {
  border-color: rgba(123, 63, 75, 0.25);
  background: rgba(123, 63, 75, 0.06);
  color: var(--fu-form-urgent);
}

.fu-common-form .fu-error-summary p,
.fu-common-form .fu-error-summary ul,
.fu-common-form .fu-form-error p,
.fu-common-form .fu-form-error ul,
.fu-common-form .fu-thanks-message p {
  margin-top: 0;
}

.fu-common-form .fu-error-summary ul,
.fu-common-form .fu-form-error ul {
  margin-bottom: 0;
  padding-left: 1.4em;
}

.fu-common-form .fu-error-summary p:last-child,
.fu-common-form .fu-form-error p:last-child {
  margin-bottom: 0;
}

.fu-common-form .fu-confirm-table {
  width: 100%;
  margin: 16px 0;
  border: 1px solid var(--fu-form-border);
  border-radius: var(--fu-form-radius-sm);
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  background: #fff;
}

.fu-common-form .fu-confirm-table th,
.fu-common-form .fu-confirm-table td {
  padding: 12px 14px;
  border: 0;
  border-bottom: 1px solid var(--fu-form-lavender);
  text-align: left;
  vertical-align: top;
  font-size: 15px;
  line-height: 1.7;
}

.fu-common-form .fu-confirm-table th {
  width: 32%;
  background: var(--fu-form-ivory);
  color: var(--fu-form-purple-dark);
  font-weight: 700;
}

.fu-common-form .fu-confirm-table tr:last-child th,
.fu-common-form .fu-confirm-table tr:last-child td {
  border-bottom: 0;
}

.fu-common-form .fu-is-hidden {
  display: none !important;
}

.fu-common-form .fu-contact-time-field {
  max-width: calc(50% - 9px);
}

@media (max-width: 720px) {
  .fu-common-form .fu-contact-time-field {
    max-width: none;
  }
}

@media (max-width: 640px) {
  .fu-common-form {
    margin: 24px auto;
    padding: 22px 18px;
    border-radius: 16px;
  }

  .fu-common-form .fu-form-row {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .fu-common-form .fu-postcode-input-row {
    flex-direction: column;
    align-items: stretch;
  }

  .fu-common-form .fu-postcode-button {
    width: 100%;
    max-width: 100%;
  }

  .fu-common-form .fu-button-row,
  .fu-common-form .fu-form-submit,
  .fu-common-form .fu-confirm-buttons {
    flex-direction: column;
    align-items: stretch;
  }

  .fu-common-form .fu-btn,
  .fu-common-form button[type="submit"] {
    width: 100%;
    min-width: 100%;
  }

  .fu-common-form .fu-confirm-table,
  .fu-common-form .fu-confirm-table tbody,
  .fu-common-form .fu-confirm-table tr,
  .fu-common-form .fu-confirm-table th,
  .fu-common-form .fu-confirm-table td {
    display: block;
    width: 100%;
  }

  .fu-common-form .fu-confirm-table th {
    border-bottom: 0;
  }
}

