/* === from your style.css === */
/* Apply Noto Sans JP to all elements */
* { font-family: "Noto Sans JP", sans-serif; }
/* Custom gradient background for sections */
.gradient-bg { background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 50%, #e9ecef 100%); }
/* Custom gradient text effect */
.gradient-text {
  background: linear-gradient(135deg, #343a40, #6c757d);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
/* Elegant shadow for cards/sections */
.shadow-elegant { box-shadow: 0 10px 30px rgba(0,0,0,.05), 0 1px 8px rgba(0,0,0,.08); }
/* Softer shadow for elements */
.shadow-soft { box-shadow: 0 4px 15px rgba(0,0,0,.04), 0 1px 6px rgba(0,0,0,.06); }
/* Animations */
.animate-fade-in { opacity:0; transform:translateY(30px); transition:all .8s ease-out; }
.animate-fade-in.visible { opacity:1; transform:translateY(0); }
.animate-slide-in-left { opacity:0; transform:translateX(-50px); transition:all .8s ease-out; }
.animate-slide-in-left.visible { opacity:1; transform:translateX(0); }
.animate-slide-in-right { opacity:0; transform:translateX(50px); transition:all .8s ease-out; }
.animate-slide-in-right.visible { opacity:1; transform:translateX(0); }
/* Hero pattern */
.hero-pattern {
  background-image:
    radial-gradient(circle at 25% 25%, rgba(108,117,125,.03) 2px, transparent 2px),
    radial-gradient(circle at 75% 75%, rgba(108,117,125,.03) 2px, transparent 2px);
  background-size: 60px 60px;
}
/* Mobile menu */
.mobile-menu { transform:translateX(100%); transition:transform .3s ease-in-out; }
.mobile-menu.open { transform:translateX(0); }
/* Parallax */
.parallax-element { will-change: transform; }
/* Navbar shadow */
.navbar-shadow { box-shadow:0 2px 20px rgba(0,0,0,.06); }
/* Member card */
.member-card {
  background: linear-gradient(145deg, #ffffff, #f8f9fa);
  border: 1px solid rgba(233,236,239,.5);
  transition: transform .3s ease-out, box-shadow .3s ease-out;
}
.member-card:hover { transform: translateY(-8px); box-shadow:0 20px 45px rgba(0,0,0,.1); background:#fff; }
/* Section divider */
.section-divider { background: linear-gradient(90deg, transparent, rgba(108,117,125,.2), transparent); }
/* Prep pages */
.preparation-page { opacity:0; visibility:hidden; transition:opacity .3s ease-in-out, visibility .3s ease-in-out; }
.preparation-page.open { opacity:1; visibility:visible; }
/* === Contact Form 7 を見本画像のカードUIに === */
.je-cf7-card{
  background:#fff;
  border-radius:.75rem;          /* rounded-xl */
  padding:2rem;                  /* p-8 */
  box-shadow:0 12px 30px rgba(0,0,0,.06), 0 2px 8px rgba(0,0,0,.05); /* 軽い影 */
}

/* 行間 */
.je-cf7-card .wpcf7-form p{ margin:0 0 1.25rem; }

/* ラベル（上） */
.je-cf7-card .wpcf7 form label{
  display:block;
  font-size:.875rem;             /* text-sm */
  font-weight:600;
  color:#374151;                 /* gray-700 */
  margin:0 0 .5rem;
}

/* 入力枠 */
.je-cf7-card .wpcf7 input[type="text"],
.je-cf7-card .wpcf7 input[type="email"],
.je-cf7-card .wpcf7 textarea{
  width:100%;
  padding:.85rem 1rem;           /* py-3.5 px-4 */
  border:1px solid #e5e7eb;      /* gray-200/300 */
  border-radius:.5rem;           /* rounded-lg */
  font-size:.95rem;
  color:#374151;
  background:#fff;
  transition:border-color .2s, box-shadow .2s;
}
.je-cf7-card .wpcf7 ::placeholder{ color:#9ca3af; }  /* gray-400 */
.je-cf7-card .wpcf7 input:focus,
.je-cf7-card .wpcf7 textarea:focus{
  outline:none;
  border-color:#c7cdd6;
  box-shadow:0 0 0 2px rgba(156,163,175,.25);
}

/* 送信ボタン（全幅・黒） */
.je-cf7-card .wpcf7 input[type="submit"]{
  display:block;
  width:100%;
  background:#111827;            /* gray-900 */
  color:#fff;
  padding:.9rem 1.5rem;
  font-weight:700;
  border:none;
  border-radius:.5rem;
  cursor:pointer;
  transition:background .25s ease;
  box-shadow:0 8px 24px rgba(0,0,0,.06);
}
.je-cf7-card .wpcf7 input[type="submit"]:hover{ background:#0b1220; }

/* 成功/失敗メッセージもカード調に */
.je-cf7-card .wpcf7 .wpcf7-response-output{
  margin:1rem 0 0;
  padding:1rem;
  border-radius:.5rem;
  font-size:.875rem;
}
.je-cf7-card .wpcf7 form.sent    .wpcf7-response-output{ background:#ecfdf5; color:#047857; border:1px solid #a7f3d0; }
.je-cf7-card .wpcf7 form.failed  .wpcf7-response-output,
.je-cf7-card .wpcf7 form.invalid .wpcf7-response-output{ background:#fef2f2; color:#b91c1c; border:1px solid #fecaca; }

/* バリデーション注記 */
.je-cf7-card .wpcf7-not-valid-tip{ color:#b91c1c; font-size:.85rem; margin-top:.25rem; }

/* SP 微調整 */
@media (max-width:640px){ .je-cf7-card{ padding:1.25rem; } }