/* Contact page v1: practical trust form on the current brand system. */
.contact-page {
  min-width: 0;
  background-color: var(--color-washi-050);
  background-image: linear-gradient(rgba(251, 248, 240, .9), rgba(251, 248, 240, .9)), url("/images/assets/bg_washi.png");
  background-size: auto, 378px auto;
}
.contact-page .skip-link { position:fixed;z-index:1000;top:8px;left:8px;min-height:44px;padding:9px 16px;color:var(--color-surface);background:var(--color-ai-900);transform:translateY(-150%); }
.contact-page .skip-link:focus { transform:translateY(0); }
.contact-page .breadcrumb { max-width:1040px;margin-top:16px;padding-inline:24px; }
.contact-page main a { font-weight:700;text-decoration-thickness:1px;text-underline-offset:.28em; }

.contact-hero {
  margin-top:16px;
  padding:clamp(56px,8vw,96px) 24px;
  border-block:1px solid rgba(183,146,67,.56);
  background:radial-gradient(circle at 84% 24%,rgba(183,146,67,.11),transparent 28%),linear-gradient(120deg,rgba(255,252,245,.98),rgba(247,242,232,.86));
}
.contact-measure,.contact-reading { width:min(100%,800px);margin-inline:auto; }
.contact-hero h1 { color:var(--color-ai-900);font:500 clamp(2.25rem,5vw,3.75rem)/1.35 var(--font-mincho);letter-spacing:.08em; }
.contact-intro { margin-top:clamp(32px,5vw,48px);padding-top:26px;border-top:1px solid var(--color-gold-decorative);color:var(--color-ink-600);font:500 clamp(1rem,1.7vw,1.0625rem)/2.05 var(--font-mincho); }

.contact-reading { padding-inline:24px; }
.contact-section { padding-block:clamp(64px,9vw,96px);border-bottom:1px solid var(--color-border); }
.contact-section:last-child { border-bottom:0; }
.contact-section h2 { color:var(--color-ai-900);font:500 clamp(1.65rem,3.4vw,2.25rem)/1.55 var(--font-mincho);letter-spacing:.045em; }
.contact-methods { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:36px;border-block:1px solid var(--color-gold-decorative); }
.contact-methods section { padding:30px 28px; }
.contact-methods section+section { border-left:1px solid var(--color-border); }
.contact-methods h3 { color:var(--color-ai-900);font:600 1.25rem/1.6 var(--font-mincho);letter-spacing:.04em; }
.contact-methods p { margin-top:12px;color:var(--color-ink-600); }
.contact-text-link { display:inline-block;min-height:44px;padding-block:9px;color:var(--color-ai-700); }

.contact-section--form { position:relative;width:calc(100% + 64px);margin-left:-32px;padding-inline:32px;border-block:1px solid rgba(183,146,67,.58);background:rgba(255,252,245,.62); }
.contact-form-intro { margin-top:24px;color:var(--color-ink-600); }
.form-required { display:inline-block;margin-left:.3em;padding:1px 7px;border:1px solid rgba(141,44,37,.52);border-radius:2px;color:#7e2823;background:#fffaf5;font:700 .75rem/1.6 var(--font-gothic);letter-spacing:.04em;vertical-align:.12em; }
.contact-form-intro .form-required { margin:0 .4em 0 0; }

.form-error-summary,.contact-success { margin-top:32px;padding:24px 26px;border:1px solid #a6483f;border-left:4px solid #8d2c25;background:#fffaf5; }
.form-error-summary:focus,.contact-success:focus { outline:3px solid var(--color-focus);outline-offset:3px; }
.form-error-summary h3,.contact-success h3 { color:var(--color-ai-900);font:600 1.2rem/1.55 var(--font-mincho); }
.form-error-summary p,.contact-success p { margin-top:12px;color:var(--color-ink-600); }
.form-error-summary ul { margin-top:14px;padding-left:1.4em; }
.form-error-summary li+li { margin-top:6px; }
.form-error-summary a { color:#76211c; }
.contact-success { border-color:rgba(183,146,67,.7);border-left-color:var(--color-gold-decorative); }

.contact-form { position:relative;margin-top:36px;border-top:1px solid var(--color-border); }
.form-field { padding-block:28px;border-bottom:1px solid var(--color-border); }
.form-field label { display:block;color:var(--color-ai-900);font-weight:700; }
.form-field :is(input,select,textarea) { display:block;width:100%;margin-top:12px;border:1px solid #67635b;border-radius:2px;color:var(--color-ink-900);background:#fffdfa;box-shadow:inset 0 1px 2px rgba(28,38,45,.06); }
.form-field :is(input,select) { min-height:52px;padding:10px 12px; }
.form-field textarea { min-height:220px;padding:13px 14px;line-height:1.8;resize:vertical; }
.form-field :is(input,select,textarea):hover { border-color:var(--color-ai-700); }
.form-field :is(input,select,textarea):focus-visible { border-color:var(--color-ai-700);outline:3px solid var(--color-focus);outline-offset:2px; }
.form-field--error :is(input,select,textarea) { border-width:2px;border-color:#8d2c25; }
.field-hint { margin-top:8px;color:var(--color-ink-600);font-size:.875rem; }
.field-error { margin-top:9px;color:#76211c;font-weight:700; }
.field-error span { display:inline-grid;width:1.3em;height:1.3em;margin-right:.25em;border:1px solid currentColor;border-radius:50%;place-items:center;font-size:.78em;line-height:1; }
.contact-trap { position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important; }
.form-actions { margin-top:36px; }
.contact-submit { display:inline-flex;align-items:center;justify-content:center;min-width:min(100%,320px);min-height:52px;padding:12px 24px;border:1px solid var(--color-ai-900);border-radius:2px;color:#fff;background:var(--color-ai-900);font-weight:700;letter-spacing:.05em;cursor:pointer; }
.contact-submit:hover { background:var(--color-ai-700); }
.contact-submit:focus-visible { outline:3px solid var(--color-focus);outline-offset:3px; }
.contact-submit:disabled { cursor:wait;opacity:.68; }
.contact-privacy-note { margin-top:32px;padding-top:24px;border-top:1px solid var(--color-gold-decorative);color:var(--color-ink-600);font-size:.9375rem; }

@media (max-width:50em) {
  .contact-page .breadcrumb { padding-inline:16px; }
  .contact-hero,.contact-reading { padding-inline:16px; }
  .contact-section--form { width:calc(100% + 32px);margin-left:-16px;padding-inline:16px; }
}
@media (max-width:36em) {
  .contact-hero { padding-block:48px; }
  .contact-intro { margin-top:28px;padding-top:22px; }
  .contact-section { padding-block:56px; }
  .contact-methods { grid-template-columns:1fr; }
  .contact-methods section { padding:26px 0; }
  .contact-methods section+section { border-top:1px solid var(--color-border);border-left:0; }
  .form-error-summary,.contact-success { padding:22px 18px; }
  .contact-submit { width:100%; }
}
@media (prefers-reduced-motion:reduce) {
  .contact-page *,.contact-page *::before,.contact-page *::after { scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important; }
}
