/* A friendly letter to the nursery, with soft paper and stitched edges. */
.form-section { background:#fffbee; background-image:radial-gradient(#eadba1 1px,transparent 1px); background-size:26px 26px; }
.form-section .form-card { position:relative; isolation:isolate; max-width:850px; padding:44px 48px 42px; border:1px solid #e3cd8e; border-radius:36px 42px 34px 40px; background:#fffef9; box-shadow:0 8px 0 #e9d99c40; }
.form-section .form-card::before { content:''; position:absolute; inset:9px; border:1px dashed #e1c776; border-radius:28px 34px 26px 32px; pointer-events:none; z-index:-1; }
.form-section .form-card::after { content:''; position:absolute; top:-10px; left:calc(50% - 45px); width:90px; height:24px; background:#ffe79c; transform:rotate(-4deg); opacity:.85; pointer-events:none; }
.form-welcome { display:flex; align-items:center; gap:23px; margin-bottom:27px; padding-bottom:27px; border-bottom:1px dashed #e3cf96; }
.form-welcome img { flex:0 0 70px; width:70px; height:70px; transform:rotate(-9deg); }
.form-welcome .form-welcome-label { display:table; margin:0 0 8px; padding:3px 12px; border-radius:20px; background:#fff1bb; color:#74561e; font-size:12px; letter-spacing:.08em; }
.form-welcome h3 { margin:0 0 8px; font-family:'Zen Maru Gothic',sans-serif; font-size:25px; line-height:1.6; color:#463719; }
.form-welcome p { color:#6b5a3c; font-size:14px; line-height:1.85; }
.form-welcome-break { display:none; }
.form-card .ntp-mockform { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:20px; }
.form-card .ntp-mockform > * { grid-column:1 / -1; }
.form-card .ntp-mockform > .form-group--half { grid-column:span 1; }
.form-section .form-note { margin-bottom:28px; padding:11px 16px; background:#f7f5ec; border-radius:13px; color:#746953; font-size:12px; line-height:1.75; text-align:center; }
.form-section .form-note br { display:none; }
.form-section .form-group { gap:10px; margin-bottom:24px; min-width:0; }
.form-section .form-group label { display:flex; align-items:center; gap:9px; font-family:'Zen Maru Gothic',sans-serif; font-size:16px; font-weight:700; color:#463719; }
.form-section .form-group label::before { content:''; width:7px; height:7px; flex:0 0 7px; border-radius:50%; background:#f3c837; box-shadow:0 0 0 3px #fff5cd; margin-right:1px; }
.form-section .form-group .req,.form-section .form-group .optional { display:inline-block; margin:0 0 0 auto; padding:1px 10px 2px; border-radius:20px; font-size:11px; font-family:'Zen Kaku Gothic New',sans-serif; line-height:1.7; font-weight:700; }
.form-section .form-group .req { background:#fbe7dd; color:#844c35; }
.form-section .form-group .optional { background:#eef3e5; color:#596247; }
.form-section .form-group input,.form-section .form-group textarea { width:100%; min-height:54px; padding:14px 17px; background:#fff; border:1px solid #d9c99c; border-radius:17px 20px 17px 20px; color:#463719; font-size:16px; line-height:1.6; box-shadow:0 3px 0 #efeadc; transition:border-color .15s,box-shadow .15s,background .15s; }
.form-section .form-group textarea { min-height:165px; resize:vertical; }
.form-section .form-group input::placeholder,.form-section .form-group textarea::placeholder { color:#8b8578; opacity:1; }
.form-section .form-group input:focus,.form-section .form-group textarea:focus { outline:2px solid #d1aa37; outline-offset:3px; border-color:#d1aa37; background:#fffdf1; box-shadow:0 3px 0 #f2dc8b; }
.form-section .form-submit { margin-top:6px; }
.form-section .form-submit button { position:relative; display:inline-flex; align-items:center; justify-content:center; gap:18px; min-width:260px; min-height:68px; padding:13px 20px; border:1px solid #bd9934; border-radius:32px 36px 30px 35px; background:#ffdb53; color:#4c3815; box-shadow:0 5px 0 #cba743; font:700 17px/1.6 'Zen Maru Gothic',sans-serif; letter-spacing:.07em; cursor:pointer; transition:transform .15s,background .15s,box-shadow .15s; }
.form-section .form-submit button::before { content:''; position:absolute; inset:5px; border:1px dashed #bc9432; border-radius:inherit; pointer-events:none; }
.form-submit button > svg { width:32px; height:32px; flex:none; transform:rotate(-7deg); }
.form-send-arrow { display:flex; align-items:center; justify-content:center; width:29px; height:29px; border-radius:50%; background:#fff5c9; font-family:sans-serif; font-size:18px; letter-spacing:0; }
@media(hover:hover) {
 .form-section .form-submit button:hover { transform:translateY(-2px); background:#ffe578; box-shadow:0 7px 0 #cba743; }
}
.form-section .form-submit button:active { transform:translateY(3px); box-shadow:0 2px 0 #cba743; }
.form-section .form-submit button:focus-visible { outline:3px solid #86671d; outline-offset:5px; }
@media(max-width:768px) {
 .form-section .form-card { padding:33px 24px 31px; border-radius:28px 32px 26px 30px; }
 .form-section .form-card::before { inset:7px; border-radius:22px 26px 20px 24px; }
 .form-welcome { flex-direction:column; text-align:center; gap:12px; margin-bottom:22px; padding-bottom:22px; }
 .form-welcome img { width:58px; height:58px; flex-basis:58px; }
 .form-welcome .form-welcome-label { margin-inline:auto; }
 .form-welcome h3 { font-size:21px; }
 .form-welcome p { font-size:13px; }
 .form-welcome-break { display:initial; }
 .form-card .ntp-mockform { grid-template-columns:minmax(0,1fr); }
 .form-section .form-group { margin-bottom:22px; }
 .form-section .form-note { padding:10px; font-size:11px; }
 .form-section .form-note br { display:initial; }
 .form-section .form-submit button { width:100%; min-width:0; gap:14px; }
}
@media(max-width:380px) {
 .form-section .form-card { padding-inline:19px; }
 .form-welcome h3 { font-size:18px; }
 .form-section .form-group label { font-size:15px; }
}
@media(prefers-reduced-motion:reduce) {
 .form-section .form-group input,.form-section .form-group textarea,.form-section .form-submit button { transition:none; }
}

/* === CF7 === 本番フォーム（Contact Form 7）の自動マークアップを静的モックと同じ見た目に揃える */
.form-card .wpcf7 { margin:0; }
.form-card .wpcf7-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:20px; }
.form-card .wpcf7-form > * { grid-column:1 / -1; }
.form-card .wpcf7-form > .form-group--half { grid-column:span 1; }
.form-card .wpcf7-form > .hidden-fields-container { display:none; }
.form-section .form-group .wpcf7-form-control-wrap { display:block; position:relative; min-width:0; }
.form-section .form-group .wpcf7-form-control-wrap > input,.form-section .form-group .wpcf7-form-control-wrap > textarea { display:block; }
.form-card .wpcf7-form > .form-submit { margin-bottom:0; }
.form-section .form-group .wpcf7-not-valid { border-color:#c9694f; background:#fff8f5; }
.form-section .wpcf7-not-valid-tip { display:block; margin-top:8px; color:#9b3b22; font-size:14px; font-weight:700; line-height:1.6; }
.form-section .form-submit { position:relative; }
.form-section .form-submit .wpcf7-submit { position:relative; display:inline-flex; align-items:center; justify-content:center; min-width:260px; min-height:68px; padding:13px 20px; border:1px solid #bd9934; border-radius:32px 36px 30px 35px; background:#ffdb53; color:#4c3815; box-shadow:0 5px 0 #cba743; font:700 17px/1.6 'Zen Maru Gothic',sans-serif; letter-spacing:.07em; cursor:pointer; -webkit-appearance:none; appearance:none; transition:transform .15s,background .15s,box-shadow .15s; }
@media(hover:hover) {
 .form-section .form-submit .wpcf7-submit:hover { transform:translateY(-2px); background:#ffe578; box-shadow:0 7px 0 #cba743; }
}
.form-section .form-submit .wpcf7-submit:active { transform:translateY(3px); box-shadow:0 2px 0 #cba743; }
.form-section .form-submit .wpcf7-submit:focus-visible { outline:3px solid #86671d; outline-offset:5px; }
.form-section .form-submit .wpcf7-submit:disabled { opacity:.6; cursor:wait; }
.form-section .form-submit .wpcf7-spinner { position:absolute; top:50%; right:8px; margin:-12px 0 0; }
.form-card .wpcf7 form .wpcf7-response-output { margin:20px 0 0; padding:12px 16px; border-width:1px; border-radius:14px; font-size:15px; line-height:1.7; color:#463719; background:#fff; }
.form-card .wpcf7 form.sent .wpcf7-response-output { border-color:#8aa35a; background:#f3f8ea; }
.form-card .wpcf7 form.invalid .wpcf7-response-output,.form-card .wpcf7 form.unaccepted .wpcf7-response-output,.form-card .wpcf7 form.failed .wpcf7-response-output,.form-card .wpcf7 form.spam .wpcf7-response-output { border-color:#d29a4a; background:#fff8ec; }
@media(max-width:768px) {
 .form-card .wpcf7-form { grid-template-columns:minmax(0,1fr); }
 .form-section .form-submit .wpcf7-submit { width:100%; min-width:0; }
 .form-section .form-submit .wpcf7-spinner { right:12px; }
}
@media(prefers-reduced-motion:reduce) {
 .form-section .form-submit .wpcf7-submit { transition:none; }
}
