/* Contact page only: a welcoming invitation and a clear, compact enquiry. */
.contact-page { --contact-tint: #eff6fd; --contact-input: #fbfcfe; }
.contact-intro { padding-block: 34px 42px; }
.contact-intro .template-kicker { color: var(--accent); margin-bottom: 17px; }
.contact-intro h1 { font-size: clamp(32px, 3.4vw, 48px); font-weight: 600; line-height: 1.3; }
html:lang(ja) .contact-page :is(h1, h2) { word-break: keep-all; overflow-wrap: anywhere; }
.contact-intro > p:last-child { font-size: 15px; line-height: 1.9; max-width: 770px; margin-top: 17px; }
.contact-main { padding-block: 0 64px; background: linear-gradient(180deg, var(--bg) 0%, var(--alt) 100%); }
.contact-grid { display: grid; grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr); gap: 28px; align-items: start; }
.contact-grid .contact-form { grid-column: 2; grid-row: 1; }
.contact-grid .contact-invitation { grid-column: 1; grid-row: 1; }
.contact-invitation { position: relative; overflow: hidden; isolation: isolate; padding: 44px 38px 34px; border-radius: 18px; background: radial-gradient(ellipse at 100% 0, #bce8f34d, transparent 56%), var(--contact-tint); }
.contact-invitation > .template-kicker { color: var(--accent); font-size: 10px; }
.contact-invitation h2 { position: relative; margin-top: 30px; font-size: clamp(25px, 2.3vw, 32px); font-weight: 550; line-height: 1.5; max-width: 390px; }
.contact-aside-copy { position: relative; margin-top: 18px; max-width: 360px; font-size: 14px; line-height: 1.95; }
.contact-orbit { position: absolute; z-index: -1; width: 220px; height: 220px; top: -92px; right: -90px; border: 1px solid #4a9fd82b; border-radius: 50%; transform: rotate(-28deg); }
.contact-orbit i { position: absolute; border: 1px solid #4a9fd826; border-radius: 50%; inset: 26px; }
.contact-orbit i:nth-child(2) { inset: 52px; }
.contact-orbit span { position: absolute; inset: 66px; display: grid; place-items: center; color: #3896cc28; font-size: 45px; font-weight: 600; }
.contact-areas { list-style: none; padding: 0; margin: 32px 0 30px; }
.contact-areas li { margin: 0; padding-block: 18px; border-bottom: 1px solid #819ab726; }
.contact-areas li:last-child { border-bottom: 0; }
.contact-areas h3 { font-size: 15px; line-height: 1.6; font-weight: 600; letter-spacing: 0; }
.contact-areas p { margin-top: 4px; font-size: 12px; line-height: 1.85; }
.contact-location { padding-top: 25px; border-top: 1px solid #819ab726; }
.contact-location > p { color: var(--ink); font-size: 13px; font-weight: 550; }
.contact-location > span { display: block; color: var(--muted); font-size: 11px; line-height: 1.9; margin-top: 7px; }
.contact-location > a { font-size: 12px; margin-top: 17px; }
.corporate-template .contact-form { padding: 32px 36px; border-radius: 18px; box-shadow: 0 14px 50px #15375706; }
.contact-form-heading h2 { font-size: 24px; font-weight: 600; line-height: 1.4; }
.contact-form-heading p { margin-top: 10px; font-size: 13px; line-height: 1.85; max-width: 480px; }
.contact-form fieldset { margin: 24px 0 0; padding: 0; border: 0; min-width: 0; }
.contact-form legend { display: flex; align-items: center; gap: 9px; padding: 0; margin-bottom: 16px; width: 100%; font-size: 12px; font-weight: 600; color: var(--muted); }
.contact-form legend > span { display: grid; place-items: center; width: 25px; height: 25px; background: var(--soft); color: var(--accent); border-radius: 7px; font: 10px var(--mono); }
.contact-form .form-row { gap: 16px; }
.contact-form .field { min-width: 0; margin-bottom: 16px; }
.contact-form fieldset > .field:last-child { margin-bottom: 0; }
.corporate-template .contact-form .field label { font-size: 12px; margin-bottom: 7px; }
.corporate-template .contact-form :is(input, textarea) { width: 100%; border-radius: 8px; min-height: 46px; background: var(--contact-input); padding: 11px 13px; font-size: 14px; line-height: 1.65; color: var(--ink); transition: border-color 160ms, background 160ms, box-shadow 160ms; }
.contact-form :is(input, textarea)::placeholder { color: #7890a5; font-size: 12px; opacity: 1; }
.corporate-template .contact-form :is(input, textarea):hover { border-color: #aabed2; }
.corporate-template .contact-form :is(input, textarea):focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-color: var(--accent); background: var(--surface); box-shadow: 0 0 0 5px #2268e808; }
.contact-form textarea { resize: vertical; min-height: 122px; }
.contact-field-help { font-size: 11px; line-height: 1.8; margin-top: 7px; color: var(--muted); }
.contact-form-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 11px; line-height: 1.8; margin-top: 21px; }
.contact-form-meta a { color: var(--accent); text-underline-offset: 3px; }
.contact-form-meta a:hover { text-decoration: underline; }
.contact-preview { display: flex; gap: 10px; margin-top: 15px; padding: 12px 14px; background: var(--alt); border-radius: 8px; color: var(--muted); }
.contact-preview-icon { display: grid; place-items: center; flex: 0 0 15px; height: 15px; margin-top: 3px; border: 1px solid currentColor; border-radius: 50%; font-size: 10px; font-family: Georgia, serif; }
.contact-preview p { font-size: 11px; line-height: 1.9; }
.contact-preview strong { font-weight: 550; color: var(--ink); margin-right: 8px; }
.contact-form .contact-submit { width: 100%; min-height: 48px; margin-top: 19px; justify-content: space-between; border-radius: 8px; padding-inline: 20px; font-size: 13px; }
.contact-form #form-status:empty { display: none; }
.contact-form #form-status { border-radius: 8px; font-size: 12px; line-height: 1.9; }
.contact-form #download-enquiry { display: flex; width: 100%; justify-content: space-between; gap: 15px; border-radius: 8px; font-size: 13px; }
.contact-faq { display: grid; grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr); gap: 28px; padding-block: 64px 80px; }
.contact-faq h2 { font-size: 25px; font-weight: 550; line-height: 1.5; margin-top: 16px; }
.contact-faq > div:first-child > p:last-child { font-size: 13px; max-width: 320px; line-height: 1.9; margin-top: 14px; }
.contact-faq-list details { border-bottom: 1px solid var(--line); }
.contact-faq-list details:first-child { border-top: 1px solid var(--line); }
.contact-faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 20px 0; cursor: pointer; list-style: none; font-size: 14px; font-weight: 550; line-height: 1.8; }
.contact-faq-list summary::-webkit-details-marker { display: none; }
.contact-faq-list summary > span { color: var(--accent); font-weight: 400; font-size: 23px; transition: transform 180ms; }
.contact-faq-list details[open] summary > span { transform: rotate(45deg); }
.contact-faq-list details > p { max-width: 560px; padding: 0 28px 20px 0; font-size: 13px; line-height: 1.95; }
[data-theme="dark"] .contact-page { --contact-tint: #172e46; --contact-input: #102337; }
[data-theme="dark"] .contact-invitation { background: radial-gradient(ellipse at 100% 0, #24667b38, transparent 56%), var(--contact-tint); }
[data-theme="dark"] .contact-form :is(input, textarea)::placeholder { color: #93aabd; }
@media (max-width: 999px) {
  .contact-grid, .contact-faq { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 20px; }
  .contact-invitation { padding: 32px 25px; }
  .corporate-template .contact-form { padding: 28px 25px; }
  .contact-invitation h2 { font-size: 24px; }
  .contact-form .form-row { grid-template-columns: 1fr; gap: 0; }
}
@media (max-width: 719px) {
  .contact-intro { padding-block: 24px 29px; }
  .contact-intro h1 { font-size: 30px; }
  .contact-intro > p:last-child { font-size: 14px; margin-top: 15px; }
  .contact-grid { grid-template-columns: 1fr; gap: 24px; }
  .contact-grid .contact-form { grid-column: 1; grid-row: 1; }
  .contact-grid .contact-invitation { grid-row: 2; }
  .contact-invitation { padding: 26px; }
  .contact-invitation h2 { font-size: 24px; margin-top: 17px; }
  .contact-aside-copy { font-size: 13px; margin-top: 12px; max-width: none; }
  .contact-areas { display: none; }
  .contact-location { margin-top: 22px; padding-top: 19px; }
  .contact-location > a { margin-top: 11px; }
  .corporate-template .contact-form { padding: 26px 22px; }
  .contact-form-heading h2 { font-size: 23px; }
  .corporate-template .contact-form :is(input, textarea) { font-size: 16px; }
  .contact-main { padding-bottom: 40px; }
  .contact-faq { grid-template-columns: 1fr; gap: 27px; padding-block: 42px 56px; }
  .contact-faq h2 { font-size: 23px; }
  .contact-faq > div:first-child > p:last-child { max-width: none; }
}
@media (prefers-reduced-motion: reduce) {
  .contact-form :is(input, textarea), .contact-faq-list summary > span { transition: none; }
}
