@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
*/

/*PCにハンバーガーメニューを入れる*/
@media screen and (min-width: 961px) {
    .l-header__menuBtn.sp_ {
        display: block!important;
        position: relative;
        top: 14px; //表示位置
    }
    .p-spMenu {
        display: block!important;
    }
    .p-spMenu__inner {
        max-width: 600px; //幅を設定
    }     
}

/* Contact Form7スマホ・タブレット用カスタマイズ */
@media(max-width:850px){
/* テーブルの見出しとフォーム */
table.inquiry th,table.inquiry td {
   display:block;
   padding:1em 0.5em!important;
   width:100%;
   border:0;
}

/* 送信ボタン */
input.wpcf7-submit{
   margin-bottom:30px;
   width:100%;
}
}

/* 日付タグ上のテキストをPCとスマホで変更 */
@media(max-width:900px){
.pcdate{
   display: none;
}
}
@media(min-width:1000px){
.spdate{
   display: none;
}
/* 日付タグの幅を調整 */
.wpcf7-date.dateform{
   width: 25%;
}
}

/* ========================================
   Contact Form 7 フォーム装飾
======================================== */

.wpcf7 {
  max-width: 800px;
  margin: 0 auto;
  padding: 40px 20px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  line-height: 1.8;
}

/* セクション見出し */
.wpcf7 h3 {
  font-size: 1.5rem;
  font-weight: 700;
  padding: 12px 20px;
  background: #4a5568;
  color: #fff;
  border-radius: 8px;
  margin: 40px 0 24px;
  position: relative;
}

.wpcf7 h3:first-of-type {
  margin-top: 0;
}

.wpcf7 h3:first-of-type {
  margin-top: 0;
}

/* 区切り線 */
.wpcf7 hr {
  border: none;
  border-top: 2px solid #e5e7eb;
  margin: 40px 0;
}

/* フォーム項目全体 */
.wpcf7 p {
  margin-bottom: 24px;
}

/* ラベル */
.wpcf7 label {
  display: block;
  font-weight: 600;
  color: #374151;
  margin-bottom: 8px;
  font-size: 0.95rem;
}

/* 必須マーク */
.wpcf7 label:has(+ [class*="text*"]),
.wpcf7 label:has(+ [class*="email*"]),
.wpcf7 label:has(+ [class*="textarea*"]),
.wpcf7 label:has(+ [class*="select*"]) {
  position: relative;
}

.wpcf7 label:has(+ [class*="text*"])::after,
.wpcf7 label:has(+ [class*="email*"])::after,
.wpcf7 label:has(+ [class*="textarea*"])::after,
.wpcf7 label:has(+ [class*="select*"])::after {
  content: "必須";
  background: #ef4444;
  color: #fff;
  font-size: 0.7rem;
  padding: 2px 8px;
  border-radius: 4px;
  margin-left: 8px;
  font-weight: 700;
  vertical-align: middle;
}

/* テキスト入力 */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="url"],
.wpcf7 input[type="tel"] {
  width: 100%;
  padding: 12px 16px;
  border: 2px solid #e5e7eb;
  border-radius: 8px;
  font-size: 1rem;
  transition: all 0.3s ease;
  background: #fff;
}

.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="url"]:focus,
.wpcf7 input[type="tel"]:focus {
  outline: none;
  border-color: #667eea;
  box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
}

/* テキストエリア */
.wpcf7 textarea {
  width: 100%;
  padding: 12px 16px;
  border: 2px solid #e5e7eb;
  border-radius: 8px;
  font-size: 1rem;
  min-height: 120px;
  resize: vertical;
  transition: all 0.3s ease;
  font-family: inherit;
  background: #fff;
}

.wpcf7 textarea:focus {
  outline: none;
  border-color: #667eea;
  box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
}

/* セレクトボックス */
.wpcf7 select {
  width: 100%;
  padding: 12px 16px;
  border: 2px solid #e5e7eb;
  border-radius: 8px;
  font-size: 1rem;
  background: #fff;
  cursor: pointer;
  transition: all 0.3s ease;
}

.wpcf7 select:focus {
  outline: none;
  border-color: #667eea;
  box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
}

/* チェックボックス */
.wpcf7 .wpcf7-list-item {
  display: inline-block;
  margin: 0 16px 12px 0;
}

.wpcf7 input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin-right: 6px;
  cursor: pointer;
  vertical-align: middle;
}

.wpcf7 .wpcf7-list-item-label {
  font-weight: 400;
  cursor: pointer;
  vertical-align: middle;
}

/* ファイルアップロード */
.wpcf7 input[type="file"] {
  width: 100%;
  padding: 12px;
  border: 2px dashed #d1d5db;
  border-radius: 8px;
  background: #f9fafb;
  cursor: pointer;
  transition: all 0.3s ease;
}

.wpcf7 input[type="file"]:hover {
  border-color: #667eea;
  background: #f3f4f6;
}

/* 同意チェックボックス */
.wpcf7 .wpcf7-acceptance {
  margin: 24px 0;
  padding: 16px;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
}

.wpcf7 .wpcf7-acceptance .wpcf7-list-item {
  margin: 0;
  display: inline-flex;
  align-items: center;
}

.wpcf7 .wpcf7-acceptance input[type="checkbox"] {
  margin-right: 8px;
  margin-top: 0;
}

.wpcf7 .wpcf7-acceptance .wpcf7-list-item-label {
  display: inline;
}

.wpcf7 .wpcf7-acceptance a {
  color: #2563eb;
  text-decoration: underline;
  font-weight: 600;
}

.wpcf7 .wpcf7-acceptance a:hover {
  color: #1d4ed8;
}

/* 送信ボタン */
.wpcf7 input[type="submit"] {
  width: 70%;
  max-width: 560px;
  display: block;
  margin: 0 auto;
  padding: 16px 32px;
  background: #10b981;
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 1.1rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 4px 6px rgba(16, 185, 129, 0.3);
}

.wpcf7 input[type="submit"]:hover {
  background: #059669;
  transform: translateY(-2px);
  box-shadow: 0 6px 12px rgba(16, 185, 129, 0.4);
}

.wpcf7 input[type="submit"]:active {
  transform: translateY(0);
}

/* エラーメッセージ */
.wpcf7 .wpcf7-not-valid-tip {
  color: #ef4444;
  font-size: 0.875rem;
  margin-top: 6px;
  display: block;
}

.wpcf7 .wpcf7-not-valid {
  border-color: #ef4444 !important;
}

.wpcf7 .wpcf7-response-output {
  margin: 24px 0;
  padding: 16px;
  border-radius: 8px;
  font-weight: 600;
}

.wpcf7 .wpcf7-validation-errors {
  background: #fee2e2;
  border: 2px solid #ef4444;
  color: #991b1b;
}

.wpcf7 .wpcf7-mail-sent-ok {
  background: #d1fae5;
  border: 2px solid #10b981;
  color: #065f46;
}

/* プレースホルダー */
.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder {
  color: #9ca3af;
  opacity: 1;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  .wpcf7 {
    padding: 24px 16px;
  }
  
  .wpcf7 h3 {
    font-size: 1.25rem;
    padding: 10px 16px;
  }
  
  .wpcf7 .wpcf7-list-item {
    display: block;
    margin: 0 0 12px 0;
  }
}

/* ローディング中 */
.wpcf7 .ajax-loader {
  display: inline-block;
  margin-left: 12px;
  vertical-align: middle;
}
