.elementor-309 .elementor-element.elementor-element-074778e{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-309 .elementor-element.elementor-element-5dba017{text-align:center;}.elementor-309 .elementor-element.elementor-element-5dba017 .elementor-heading-title{font-size:24px;color:#008E66;}.elementor-309 .elementor-element.elementor-element-e3f9b84 .elementor-heading-title{font-family:"BioRhyme", Sans-serif;font-size:40px;color:#004B36;}.elementor-309 .elementor-element.elementor-element-240e06b{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-309 .elementor-element.elementor-element-1d40c8e{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}/* Start custom CSS for shortcode, class: .elementor-element-ced978c *//* Google Fonts 読み込み */
@import url('https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+Antique:wght@400;500;700&display=swap');

/* Contact Form 7 基本スタイル */
.elementor-309 .elementor-element.elementor-element-ced978c .wpcf7 {
    max-width: 800px;
    margin: 0 auto;
    padding: 40px;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
    font-family: 'Zen Kaku Gothic Antique', sans-serif !important;
    color: #008E66 !important;
    font-size: 16px !important;
    line-height: 1.6em !important;
    letter-spacing: 0.03em !important;
}

/* ラベルのデザイン */
.elementor-309 .elementor-element.elementor-element-ced978c .wpcf7 label {
    display: block;
    font-weight: bold;
    margin-bottom: 8px;
    color: #008E66 !important;
}

/* 必須マーク */
.elementor-309 .elementor-element.elementor-element-ced978c .wpcf7 .required {
    color: #e74c3c !important;
    font-weight: bold;
    margin-left: 5px;
}

/* フィールド間の余白 */
.elementor-309 .elementor-element.elementor-element-ced978c .wpcf7 p {
    margin-bottom: 25px;
}

/* 入力フィールド */
.elementor-309 .elementor-element.elementor-element-ced978c .wpcf7 input[type="text"],
.elementor-309 .elementor-element.elementor-element-ced978c .wpcf7 input[type="email"],
.elementor-309 .elementor-element.elementor-element-ced978c .wpcf7 input[type="tel"],
.elementor-309 .elementor-element.elementor-element-ced978c .wpcf7 textarea,
.elementor-309 .elementor-element.elementor-element-ced978c .wpcf7 select {
    width: 100%;
    padding: 15px;
    border: 1px solid #ccc;
    border-radius: 5px;
    font-size: 16px;
    box-sizing: border-box;
    background-color: #fff;
    color: #333;
    font-family: 'Zen Kaku Gothic Antique', sans-serif;
}

.elementor-309 .elementor-element.elementor-element-ced978c .wpcf7 textarea {
    height: 200px;
    resize: vertical;
}

/* プレースホルダー */
.elementor-309 .elementor-element.elementor-element-ced978c .wpcf7 ::placeholder {
    color: #aaa;
    font-family: 'Zen Kaku Gothic Antique', sans-serif;
}

/* 送信ボタン */
.elementor-309 .elementor-element.elementor-element-ced978c .wpcf7 input[type="submit"] {
    background-color: #008E66;
    color: white;
    padding: 15px 80px;
    border: none;
    border-radius: 50px;
    font-size: 18px;
    font-weight: bold;
    cursor: pointer;
    transition: background-color 0.3s, transform 0.1s;
    box-shadow: 0 4px 10px rgba(0, 142, 102, 0.3);
    font-family: 'Zen Kaku Gothic Antique', sans-serif;
    display: block;
    margin: 40px auto 0;
}

.elementor-309 .elementor-element.elementor-element-ced978c .wpcf7 input[type="submit"]:hover {
    background-color: #006b4d;
    transform: translateY(-2px);
}

/* エラーメッセージ */
.elementor-309 .elementor-element.elementor-element-ced978c .wpcf7-not-valid-tip {
    color: #e74c3c !important;
    font-size: 12px;
    display: block;
    margin-top: 5px;
}

.elementor-309 .elementor-element.elementor-element-ced978c .wpcf7-validation-errors {
    color: #e74c3c !important;
    border: 1px solid #e74c3c;
    background-color: #fdf2f2;
    padding: 10px;
    margin: 10px 0;
}

.elementor-309 .elementor-element.elementor-element-ced978c .wpcf7-mail-sent-ok {
    color: #008E66 !important;
    border: 1px solid #008E66;
    background-color: #f0f9f4;
    padding: 10px;
    margin: 10px 0;
}/* End custom CSS */
/* Start custom CSS *//* Google Fonts 読み込み (URL修正済み) */
@import url('[https://fonts.googleapis.com/css2?family=BioRhyme:wght@400;700&family=Zen+Kaku+Gothic+Antique:wght@400;500;700&display=swap](https://fonts.googleapis.com/css2?family=BioRhyme:wght@400;700&family=Zen+Kaku+Gothic+Antique:wght@400;500;700&display=swap)');

/* Contact Form 7 基本スタイル (詳細度強化) */
body .contact-form {
    max-width: 800px;
    margin: 0 auto;
    padding: 40px;
    background-color: #fff; /* カードの背景色は白 */
    border-radius: 8px;     /* 角丸 */
    box-shadow: 0 4px 15px rgba(0,0,0,0.05); /* 薄い影 */
    
    /* フォント指定 */
    font-family: 'BioRhyme', 'Zen Kaku Gothic Antique', serif !important;
    
    /* 文字色指定 */
    color: #008E66 !important;
    
    font-size: 16px !important;
    line-height: 1.6em !important;
    letter-spacing: 0.03em !important;
}

/* ラベルのデザイン */
body .contact-form label {
    display: block;
    font-weight: bold;
    margin-bottom: 8px;
    color: #008E66 !important;
    font-family: 'BioRhyme', 'Zen Kaku Gothic Antique', serif !important;
}

/* 必須マーク */
body .contact-form .required {
    color: #e74c3c !important;
    font-weight: bold;
    margin-left: 5px;
}

/* フィールド間の余白 */
body .contact-form .cf7-field-group {
    margin-bottom: 25px;
}

/* 入力フィールド */
body .contact-form input[type="text"],
body .contact-form input[type="email"],
body .contact-form input[type="tel"],
body .contact-form textarea,
body .contact-form select {
    width: 100%;
    padding: 15px;
    border: 1px solid #ccc;
    border-radius: 5px;
    font-size: 16px;
    box-sizing: border-box;
    background-color: #fff;
    color: #333;
    font-family: 'BioRhyme', 'Zen Kaku Gothic Antique', serif !important;
}

body .contact-form textarea {
    height: 200px;
    resize: vertical;
}

/* プレースホルダー */
body .contact-form ::placeholder {
    color: #aaa;
    font-family: 'Zen Kaku Gothic Antique', serif;
}

/* 送信ボタンエリア */
body .contact-form .cf7-submit-wrap {
    text-align: center;
    margin-top: 40px;
}

/* 送信ボタン */
body .contact-form input[type="submit"] {
    background-color: #008E66 !important;
    color: white !important;
    padding: 15px 80px;
    border: none;
    border-radius: 50px;
    font-size: 18px;
    font-weight: bold;
    cursor: pointer;
    transition: background-color 0.3s, transform 0.1s;
    box-shadow: 0 4px 10px rgba(0, 142, 102, 0.3);
    font-family: 'BioRhyme', 'Zen Kaku Gothic Antique', serif !important;
    -webkit-appearance: none; /* スマホでのデフォルトスタイル解除 */
}

body .contact-form input[type="submit"]:hover {
    background-color: #006b4d !important;
    transform: translateY(-2px);
}

/* Elementor用 強制スタイル（念のため残しますが、上記のbody指定で十分効くはずです） */
.elementor-widget-shortcode .contact-form label {
    color: #008E66 !important;
}

/* エラーメッセージ等のスタイル */
body .contact-form .wpcf7-not-valid-tip {
    color: #e74c3c !important;
    font-size: 12px;
    display: block;
    margin-top: 5px;
}

body .contact-form .wpcf7-validation-errors {
    color: #e74c3c !important;
    border: 1px solid #e74c3c;
    background-color: #fdf2f2;
    padding: 10px;
    margin: 10px 0;
}

body .contact-form .wpcf7-mail-sent-ok {
    color: #008E66 !important;
    border: 1px solid #008E66;
    background-color: #f0f9f4;
    padding: 10px;
    margin: 10px 0;
}/* End custom CSS */