
.ct-grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:var(--sp-2xl);padding:var(--sp-xl) 0 var(--sp-2xl);align-items:start;}
.ct-side h3{font-family:var(--serif-jp);font-weight:300;font-size:1.25rem;color:var(--navy);letter-spacing:0.08em;margin-bottom:var(--sp-md);}
.ct-side p{font-size:0.88rem;color:var(--ink-soft);line-height:2;letter-spacing:0.03em;margin-bottom:var(--sp-lg);}
.ct-info dt{font-family:var(--serif-en);font-style:italic;font-size:0.72rem;letter-spacing:0.14em;color:var(--gold);text-transform:uppercase;margin-bottom:4px;}
.ct-info dd{font-size:0.9rem;color:var(--ink);margin-bottom:var(--sp-md);line-height:1.8;}
.ct-tel{font-family:var(--serif-en);font-size:1.5rem;color:var(--navy);letter-spacing:0.04em;}
form{display:flex;flex-direction:column;gap:var(--sp-md);}
.fld label{display:block;font-family:var(--serif-jp);font-size:0.82rem;color:var(--navy);letter-spacing:0.05em;margin-bottom:7px;}
.fld label .req{font-size:0.66rem;color:#fff;background:var(--gold);border-radius:3px;padding:2px 7px;margin-left:8px;letter-spacing:0.06em;}
.fld input,.fld textarea,.fld select{width:100%;font-family:var(--serif-jp);font-size:0.92rem;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:2px;padding:0.8rem 0.9rem;transition:border-color 0.25s,box-shadow 0.25s;}
.fld input:focus,.fld textarea:focus,.fld select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 2px rgba(139,115,85,0.14);}
.fld textarea{resize:vertical;min-height:140px;line-height:1.8;}
.fld-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-md);}
.ct-privacy{display:flex;align-items:flex-start;gap:10px;font-size:0.82rem;color:var(--ink-soft);line-height:1.7;}
.ct-privacy input{margin-top:5px;flex-shrink:0;}
.ct-privacy a{color:var(--gold);border-bottom:1px solid var(--gold-soft);}
.ct-submit{align-self:flex-start;font-family:var(--serif-jp);font-size:0.96rem;letter-spacing:0.14em;color:var(--cream);background:var(--navy);border:1px solid var(--navy);padding:0.95rem 3rem;cursor:pointer;transition:all 0.35s;margin-top:8px;}
.ct-submit:hover{background:var(--gold);border-color:var(--gold);}
.ct-note{font-size:0.74rem;color:var(--gold-soft);font-family:var(--serif-en);font-style:italic;letter-spacing:0.04em;margin-top:4px;}
@media(max-width:820px){.ct-grid{grid-template-columns:1fr;gap:var(--sp-lg);}.fld-row{grid-template-columns:1fr;}}


/* お問い合わせ：インライン検証＋送信フィードバック */
#ctForm .fld{position:relative;}
#ctForm .fld-msg{display:block;font-size:0.72rem;letter-spacing:0.02em;margin-top:5px;min-height:1em;color:#B4593F;opacity:0;transform:translateY(-2px);transition:opacity .25s,transform .25s;}
#ctForm .fld.invalid .fld-msg{opacity:1;transform:none;}
#ctForm .fld.invalid input,#ctForm .fld.invalid textarea,#ctForm .fld.invalid select{border-color:#C56B4E !important;}
#ctForm .fld.valid input,#ctForm .fld.valid textarea,#ctForm .fld.valid select{border-color:#7B9A6E !important;}
#ctForm .fld.valid::after{content:'\2713';position:absolute;right:12px;top:38px;color:#7B9A6E;font-size:0.9rem;opacity:0;animation:ctCheck .3s ease forwards;}
#ctForm .fld:has(textarea).valid::after{top:auto;bottom:34px;}
@keyframes ctCheck{from{opacity:0;transform:scale(.6);}to{opacity:1;transform:none;}}
.ct-submit{position:relative;overflow:hidden;transition:background .35s,color .35s,border-color .35s,transform .18s ease,box-shadow .35s;}
.ct-submit:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(27,42,74,0.16);}
.ct-submit.sending{pointer-events:none;opacity:.85;}
.ct-submit .ct-spin{display:none;width:15px;height:15px;border:2px solid rgba(250,247,243,.4);border-top-color:#FAF7F3;border-radius:50%;vertical-align:middle;margin-right:8px;animation:ctSpin .7s linear infinite;}
.ct-submit.sending .ct-spin{display:inline-block;}
@keyframes ctSpin{to{transform:rotate(360deg);}}
.ct-done{display:none;margin-top:16px;padding:16px 18px;background:#EEF3EA;border:1px solid #B9CDB0;color:#3C5A33;font-family:var(--serif-jp,serif);font-size:0.9rem;letter-spacing:0.03em;text-align:center;border-radius:2px;}
.ct-done.show{display:block;animation:ctCheck .4s ease;}
@media(prefers-reduced-motion:reduce){#ctForm .fld-msg,.ct-submit,.ct-submit .ct-spin,#ctForm .fld.valid::after{transition:none;animation:none;}}

/* 追加ぶん（実装時） */
.ct-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.ct-hours{font-size:.78rem;color:var(--ink-soft);}
.ct-link{color:var(--gold);border-bottom:1px solid var(--gold-soft);}
.ct-done.is-error{color:#8B3A3A;border-color:#8B3A3A;}
.cf-turnstile{margin:1.4rem 0;}
.ct-submit[disabled]{opacity:.6;cursor:default;}

/* 送信ボタンの文字（260816） */
.ct-label{display:inline-block;}
