/* Scoped to page-contact.php; shared header, footer and profile keep site styling. */
body.gc-contact-view { min-width:0; }
.gc-contact-page { --gc-ink:#333; --gc-muted:#666; --gc-accent:#337ab7; --gc-line:#e0e0e0; --gc-surface:#fff; --gc-soft:#f8f8f8; --gc-field:#fff; --gc-danger:#b22d2d; box-sizing:border-box; width:95%; max-width:950px; margin:0 auto; padding:48px 0 56px; color:var(--gc-ink); font-size:15px; line-height:1.85; overflow-wrap:anywhere; }
.dark-theme .gc-contact-page { --gc-ink:#e8e8e8; --gc-muted:#bbb; --gc-accent:#91c7f3; --gc-line:#4a4a4a; --gc-surface:#2e2e2e; --gc-soft:#333; --gc-field:#27272a; --gc-danger:#ffb2b2; color-scheme:dark; }
.gc-contact-page * { box-sizing:border-box; }
.gc-contact-page :is(h1,h2,h3,p,ul) { margin:0; padding:0; }
.gc-contact-page h1 { font-size:clamp(28px,3.3vw,36px); line-height:1.5; font-weight:700; letter-spacing:.04em; }
.gc-contact-page h2 { font-size:22px; line-height:1.65; font-weight:600; }
.gc-contact-page h3 { font-size:15px; line-height:1.65; font-weight:600; }
.gc-contact-page p + p { margin-top:14px; }
.gc-contact-heading { padding-bottom:0; margin-bottom:44px; border:0; }
.gc-contact-heading .gc-contact-eyebrow { color:var(--gc-accent); font-size:12px; font-weight:600; letter-spacing:.16em; margin-bottom:8px; }
.gc-contact-heading > p:last-child { margin-top:14px; color:var(--gc-muted); font-size:14px; }
.gc-contact-layout { display:grid; grid-template-columns:minmax(0,1fr); gap:28px; align-items:start; }
.gc-contact-intro { padding:0; }
.gc-contact-intro > h2 br { display:none; }
.gc-contact-intro > p { color:var(--gc-ink); font-size:15px; line-height:2; }
.gc-contact-note { padding:0; margin-top:24px; border:0; }
.gc-contact-note h3 { font-size:18px; font-weight:600; padding:5px; border-bottom:2px solid #E8E8E8; text-align:justify; margin:0 0 30px; }
.gc-contact-note p,.gc-contact-note li { color:var(--gc-ink); font-size:14px; line-height:2; }
.gc-contact-note ul { padding:18px 15px 11px 40px; margin:20px 0 0; background:#FAFAFA; border:0; list-style:disc; }
.dark-theme .gc-contact-note ul { background:#2E2E2E; }
.gc-contact-note li { margin:0 0 10px; font-weight:700; line-height:2; list-style:disc; }
body.gc-contact-view .gc-contact-page a { color:var(--gc-accent); text-decoration:underline; text-underline-offset:4px; }
.gc-contact-page a:hover { text-decoration-thickness:2px; }
.gc-contact-page a:focus-visible { outline:3px solid var(--gc-accent); outline-offset:4px; border-radius:2px; }
.gc-contact-panel { min-width:0; border:1px solid var(--gc-line); border-radius:6px; background:var(--gc-surface); padding:28px; }
.gc-contact-panel-heading { padding:0; margin-bottom:28px; border:0; }
.gc-contact-panel-heading p { margin-top:8px; color:var(--gc-muted); font-size:12px; }
.gc-contact-panel .wpcf7,.gc-contact-panel .wpcf7 form { margin:0; }
.gc-contact-fields { display:grid; gap:22px; }
.gc-contact-fields p { margin:0; }
.gc-contact-page .gc-contact-message-hint { color:var(--gc-muted); font-size:11px; line-height:1.8; margin-top:7px; }
.gc-contact-field label { display:flex; flex-wrap:wrap; gap:8px; align-items:center; color:var(--gc-ink); font-size:14px; font-weight:600; line-height:1.6; margin-bottom:9px; }
.gc-contact-field label + br { display:none; }
.gc-contact-required,.gc-contact-optional { display:inline-block; border-radius:3px; padding:1px 6px; font-size:11px; font-weight:400; }
.gc-contact-required { background:#eaf2f9; color:#225e8d; }
.dark-theme .gc-contact-required { background:#354959; color:#c5e4ff; }
.gc-contact-optional { background:var(--gc-soft); color:var(--gc-muted); }
.gc-contact-field .wpcf7-form-control-wrap { display:block; width:100%; }
.gc-contact-page .gc-contact-field :is(input,select,textarea) { display:block; width:100%; max-width:100%; min-height:46px; margin:0; border:1px solid #aeb6bf; border-radius:4px; padding:10px 12px; background:var(--gc-field); color:var(--gc-ink); font:inherit; font-size:16px; line-height:1.6; box-shadow:none; }
.dark-theme .gc-contact-field :is(input,select,textarea) { border-color:#7d8590; }
.gc-contact-page .gc-contact-field select { padding-right:42px; -webkit-appearance:none; appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23666' stroke-width='2'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; background-size:12px 8px; cursor:pointer; }
.dark-theme .gc-contact-page .gc-contact-field select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23bbb' stroke-width='2'/%3E%3C/svg%3E"); }
.gc-contact-page .gc-contact-field textarea { min-height:175px; height:175px; resize:vertical; }
.gc-contact-field :is(input,textarea)::placeholder { color:#737c87; opacity:1; }
.dark-theme .gc-contact-field :is(input,textarea)::placeholder { color:#aab2bc; }
.gc-contact-page .gc-contact-field :is(input,select,textarea):focus { outline:3px solid #a7ccea; outline-offset:2px; border-color:#337ab7; }
.gc-contact-page .gc-contact-field :is(input,select,textarea)[aria-invalid="true"] { border-color:var(--gc-danger); }
.gc-contact-page .wpcf7-not-valid-tip { display:block; margin-top:7px; color:var(--gc-danger); font-size:13px; }
.gc-contact-page .gc-contact-privacy { color:var(--gc-muted); font-size:12px; line-height:1.9; }
.gc-contact-actions { position:relative; text-align:center; }
.gc-contact-page .gc-contact-submit { display:block; width:100%; min-height:50px; margin:0; border:1px solid #337ab7; border-radius:4px; padding:12px 16px; background:#337ab7; color:#fff; font:inherit; font-size:15px; font-weight:600; line-height:1.6; cursor:pointer; transition:background-color .15s; }
.gc-contact-page .gc-contact-submit:hover { background:#286090; border-color:#286090; }
.gc-contact-submit:focus-visible { outline:3px solid var(--gc-accent); outline-offset:3px; }
.gc-contact-page .gc-contact-submit:disabled,.gc-contact-page .submitting .gc-contact-submit { opacity:.65; cursor:wait; }
.gc-contact-actions .wpcf7-spinner { display:block; margin:10px auto 0; }
.gc-contact-actions .wpcf7-spinner:not(:has(+ *)) { margin-bottom:-10px; }
.gc-contact-page .wpcf7 form .wpcf7-response-output { margin:24px 0 0; padding:14px 16px; border-radius:4px; color:var(--gc-ink); font-size:14px; line-height:1.8; }
.gc-contact-page .wpcf7 form .wpcf7-response-output:empty { display:none; }
.gc-contact-page .wpcf7 form:is(.invalid,.unaccepted,.payment-required) .wpcf7-response-output { border:1px solid #b77b19; background:var(--gc-soft); }
.gc-contact-page .wpcf7 form:is(.failed,.aborted,.spam) .wpcf7-response-output { border:1px solid var(--gc-danger); background:var(--gc-soft); }
.gc-contact-page .wpcf7 form.sent .wpcf7-response-output { border:1px solid #438465; background:var(--gc-soft); }
.gc-contact-page .gc-contact-recaptcha { border:0; padding:0; margin-top:24px; font-size:11px; color:var(--gc-muted); line-height:1.9; }
.gc-contact-profile { margin-top:56px; }
.gc-contact-profile .top_editor_box { border:0; }
.gc-contact-page .top_editor_box p { margin:0; }
.gc-contact-page .top_editor_stats { padding:0; }
.gc-contact-page .top_editor_stats li { list-style:none; }
body.gc-contact-view .gc-contact-page .prof_top_sns a { color:#fff; text-decoration:none; }
@media(max-width:850px) {
 .gc-contact-layout { grid-template-columns:1fr; gap:20px; }
 .gc-contact-intro { padding:0; }
 .gc-contact-review-guide { margin:24px 0 0; padding:0; border:0; background:transparent; }
 .gc-contact-review-guide h3 { font-size:18px; margin-bottom:25px; }
 .gc-contact-panel { padding:26px; }
}
@media(max-width:768px) { .gc-contact-page { padding-top:84px; } }
@media(max-width:520px) {
 .gc-contact-page { padding-bottom:40px; }
 .gc-contact-heading { margin-bottom:32px; padding-bottom:0; }
 .gc-contact-heading > p:last-child { font-size:13px; }
 .gc-contact-panel { padding:23px 18px; }
 .gc-contact-page h2 { font-size:20px; }
 .gc-contact-fields { gap:20px; }
 .gc-contact-page .gc-contact-field textarea { min-height:170px; height:170px; }
 .gc-contact-profile { margin-top:36px; }
}
@media(prefers-reduced-motion:reduce) { .gc-contact-submit { transition:none; } }

/* Match the article .post_body h2 style without styling the profile name. */
.gc-contact-intro > h2,
.gc-contact-panel-heading > h2,
.gc-contact-profile > h2 {
 font-size:20px; font-weight:600; padding:5px; border:0; border-bottom:3px solid #1DA1F1; text-align:justify; line-height:1.5; margin:0 0 30px;
}
@media(max-width:768px) {
 .gc-contact-intro > h2,.gc-contact-panel-heading > h2,.gc-contact-profile > h2 { font-size:18px; }
}

/* Successful delivery: visible modal and a persistent message beside the form. */
body.gc-contact-modal-open { overflow:hidden; }
.gc-contact-page .gc-contact-completed .wpcf7-response-output { display:none; }
.gc-contact-complete { margin-top:24px; padding:20px; border:1px solid #438465; border-radius:6px; background:var(--gc-soft); color:var(--gc-ink); font-size:14px; line-height:1.9; }
.gc-contact-complete[hidden] { display:none; }
.gc-contact-complete > p { margin-bottom:10px; font-size:16px; }
.gc-contact-complete:focus { outline:3px solid var(--gc-accent); outline-offset:3px; }
.gc-contact-success { box-sizing:border-box; width:calc(100% - 32px); max-width:480px; max-height:calc(100dvh - 40px); margin:auto; padding:32px; border:0; border-radius:12px; background:var(--gc-surface); color:var(--gc-ink); box-shadow:0 16px 64px #0005; text-align:center; overflow:auto; }
.gc-contact-success:not([open]) { display:none; }
.gc-contact-success::backdrop { background:#0009; }
.gc-contact-success-icon { display:grid; place-items:center; width:56px; height:56px; margin:0 auto 18px; border-radius:50%; background:#eaf5ee; color:#2f7651; font-size:30px; font-weight:700; }
.dark-theme .gc-contact-success-icon { background:#274536; color:#b2e4c7; }
.gc-contact-page .gc-contact-success h2 { margin:0 0 20px; padding:0; border:0; font-size:22px; font-weight:700; line-height:1.6; text-align:center; }
.gc-contact-success p { font-size:14px; line-height:1.9; text-align:left; }
.gc-contact-page .gc-contact-success-hint { margin-top:12px; color:var(--gc-muted); font-size:12px; }
.gc-contact-success-close { display:block; width:100%; min-height:48px; margin:24px 0 0; padding:10px 16px; border:1px solid #337ab7; border-radius:4px; background:#337ab7; color:#fff; font:inherit; font-size:15px; font-weight:600; cursor:pointer; }
.gc-contact-success-close:hover { background:#286090; }
.gc-contact-success-close:focus-visible { outline:3px solid var(--gc-accent); outline-offset:3px; }
@media(max-width:520px) {
 .gc-contact-success { padding:28px 24px; }
 .gc-contact-page .gc-contact-success h2 { font-size:20px; }
}
