.contact-inquiry { --inquiry-ink: #075568; --inquiry-muted: #527988; --inquiry-accent: #008fab; padding: clamp(40px, 5.5vw, 88px) 0; background: #f5fafc; scroll-margin-top: 100px; }
.contact-inquiry > .container { max-width: 1344px; width: calc(100% - 64px); }
.inquiry-panel { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(32px, 4.5vw, 72px); padding: clamp(28px, 3.8vw, 64px); border-radius: 28px; background: linear-gradient(150deg, #cef3ef 0%, #d0edf6 58%, #d4eaff 100%); color: var(--inquiry-ink); }
.inquiry-intro { display: flex; flex-direction: column; min-width: 0; padding: 24px 0; }
.inquiry-eyebrow { margin: 0 0 16px; color: #267c8b; font-size: 14px; line-height: 1.6; }
.inquiry-intro h2 { margin: 0; color: var(--inquiry-ink); font-size: clamp(30px, 2.65vw, 42px); font-weight: 600; line-height: 1.45; letter-spacing: -.035em; text-wrap: balance; }
.inquiry-intro-copy { max-width: 420px; margin: 24px 0 0; color: var(--inquiry-muted); font-size: 17px; line-height: 1.9; }
.inquiry-contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; margin-top: 64px; }
.inquiry-contact-item, .inquiry-detail { display: flex; align-items: center; gap: 16px; min-width: 0; color: var(--inquiry-ink); }
.inquiry-contact-item { width: fit-content; border-radius: 8px; }
.inquiry-contact-item:hover .inquiry-contact-value { text-decoration: underline; text-underline-offset: 5px; }
.inquiry-contact-icon { display: inline-grid; place-items: center; flex-shrink: 0; width: 48px; height: 48px; border-radius: 50%; background: #fff; color: var(--inquiry-ink); }
.inquiry-contact-icon svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.inquiry-contact-label, .inquiry-contact-value { display: block; }
.inquiry-contact-label { margin-bottom: 6px; color: var(--inquiry-muted); font-size: 13px; line-height: 1.5; }
.inquiry-contact-value { font-size: 18px; font-weight: 500; line-height: 1.5; white-space: nowrap; font-variant-numeric: tabular-nums; }
.inquiry-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; margin-top: 48px; }
.inquiry-detail { align-items: flex-start; }
.inquiry-detail h3 { margin: 0 0 8px; color: var(--inquiry-ink); font-size: 18px; font-weight: 500; line-height: 1.5; }
.inquiry-detail p { margin: 0; color: var(--inquiry-muted); font-size: 14px; line-height: 1.85; }
.inquiry-intro-note { margin: auto 0 0; padding-top: 64px; color: var(--inquiry-muted); font-size: 14px; line-height: 1.9; }
.inquiry-content { padding: clamp(24px, 2.3vw, 36px); border-radius: 24px; background: #fff; }
.inquiry-content, .inquiry-field { min-width: 0; }
.inquiry-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 20px; }
.inquiry-field-wide { grid-column: 1 / -1; }
.inquiry-field label { display: block; margin-bottom: 10px; color: #4c6d80; font-size: 15px; font-weight: 500; line-height: 1.5; }
.inquiry-field label > span { color: var(--inquiry-accent); }
.inquiry-field input, .inquiry-field select, .inquiry-field textarea { display: block; width: 100%; min-height: 50px; margin: 0; padding: 13px 14px; border: 2px solid #e7eef4; border-radius: 8px; background: #fff; color: var(--inquiry-ink); font: inherit; font-size: 15px; line-height: 1.55; box-shadow: none; transition: border-color .16s, box-shadow .16s; }
.inquiry-field select { padding-right: 28px; }
.inquiry-field textarea { min-height: 136px; resize: vertical; }
.inquiry-field input::placeholder, .inquiry-field textarea::placeholder { color: #869ba9; opacity: 1; }
.inquiry-field :is(input, select, textarea):focus { outline: none; border-color: var(--inquiry-accent); box-shadow: 0 0 0 3px rgb(0 143 171 / 10%); }
.inquiry-field [aria-invalid="true"] { border-color: #c63a42; }
.inquiry-trap { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; }
.inquiry-submit-row { display: flex; flex-direction: column; align-items: stretch; gap: 16px; margin-top: 26px; }
.inquiry-submit-row p { order: 1; margin: 0; color: var(--inquiry-muted); font-size: 12px; line-height: 1.85; text-align: center; }
.inquiry-submit { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; gap: 25px; width: 100%; min-height: 52px; padding: 12px 24px; border: 0; border-radius: 9px; background: linear-gradient(110deg, #008fab, #148bd0); color: #fff; font: inherit; font-size: 16px; font-weight: 500; cursor: pointer; transition: background .16s; }
.inquiry-submit:hover { background: linear-gradient(110deg, #007b94, #117cbc); }
.inquiry-submit:disabled { cursor: wait; opacity: .65; }
.inquiry-feedback { margin: 22px 0 0; padding: 14px 16px; border-radius: 4px; background: #fff1f1; color: #a72832; font-size: 14px; line-height: 1.8; overflow-wrap: anywhere; }
.inquiry-feedback[data-kind="preview"] { background: #f3f7ff; color: #315991; }
.inquiry-content:has(.inquiry-success:not([hidden])) { display: grid; place-items: center; }
.inquiry-success { padding: 44px 0; scroll-margin-top: 100px; text-align: center; }
.inquiry-success-mark { display: inline-grid; place-items: center; width: 48px; height: 48px; margin-bottom: 22px; border-radius: 50%; background: #e1f7f8; color: #008b9d; font-size: 26px; }
.inquiry-success h3 { margin: 0 0 16px; font-size: 28px; font-weight: 500; }
.inquiry-success p { color: var(--inquiry-muted); line-height: 1.9; }
.inquiry-success .inquiry-callback-note { margin: 20px 0 0; color: var(--inquiry-ink); }
.inquiry-success .inquiry-reference { margin-top: 22px; font-size: 13px; }
.inquiry-again { margin-top: 22px; padding: 0 0 6px; border: 0; border-bottom: 1px solid currentColor; background: none; color: var(--inquiry-accent); font: inherit; font-size: 14px; cursor: pointer; }
.inquiry-submit:focus-visible, .inquiry-again:focus-visible, .inquiry-contact-item:focus-visible { outline: 2px solid var(--inquiry-accent); outline-offset: 5px; }
.inquiry-success:focus { outline: none; }
.inquiry-form[hidden], .inquiry-success[hidden], .inquiry-feedback[hidden] { display: none; }
.contact-logo-strip { padding: 0 0 clamp(40px, 5vw, 72px); background: #f5fafc; }
.contact-logo-strip > .container { max-width: 1344px; width: calc(100% - 64px); }
.contact-logo-viewport { overflow-x: auto; overflow-y: hidden; scrollbar-width: none; border-radius: 14px; overscroll-behavior-x: contain; scroll-behavior: auto; }
.contact-logo-viewport::-webkit-scrollbar { display: none; }
.contact-logo-track { display: flex; gap: 20px; width: max-content; margin: 0; padding: 0; list-style: none; }
.contact-logo-item { flex: 0 0 240px; width: 240px; overflow: hidden; border: 1px solid #e3edf2; border-radius: 12px; background: #fff; }
.contact-logo-item img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: contain; }
.contact-logo-viewport:focus-visible { outline: 2px solid #008fab; outline-offset: 5px; }
@media (max-width: 540px) { .contact-logo-strip > .container { width: calc(100% - 28px); } .contact-logo-track { gap: 14px; } .contact-logo-item { flex-basis: 176px; width: 176px; border-radius: 10px; } }
.contact-call-visual-section { position: relative; overflow: visible; }
.contact-message-prompt { position: absolute; top: min(75%, var(--contact-prompt-max-top, calc(100svh - 180px))); bottom: auto; left: 50%; z-index: 4; display: flex; align-items: center; gap: 17px; width: max-content; max-width: calc(100% - 32px); min-height: 64px; padding: 12px 23px; border: 1px solid #dbe5f4; border-radius: 12px; background: #fff; color: var(--blue); box-shadow: 0 6px 22px rgb(34 63 109 / 10%); transform: translateX(-50%); transition: border-color .2s, box-shadow .2s; }
.contact-message-prompt:hover { border-color: var(--blue); box-shadow: 0 8px 24px rgb(34 63 109 / 15%); }
.contact-message-copy { display: grid; gap: 3px; }
.contact-message-label { font-size: 16px; line-height: 1.5; font-weight: 500; }
.contact-message-description { color: var(--muted); font-size: 12px; line-height: 1.5; }
.contact-message-icon { flex-shrink: 0; width: 24px; height: 24px; }
.contact-message-arrow { flex-shrink: 0; width: 18px; height: 18px; }
.contact-message-prompt:focus-visible { outline: 2px solid var(--blue); outline-offset: 4px; }
.contact-copy-hint { position: absolute; top: 50%; right: 12px; padding: 4px 9px; border-radius: 4px; background: #edf3ff; color: #315cab; font-size: 12px; line-height: 1.4; white-space: nowrap; transform: translateY(-50%); transition: background .2s, color .2s; }
.contact-copy-hotspot:hover .contact-copy-hint, .contact-copy-hotspot:focus-visible .contact-copy-hint { background: var(--blue); color: #fff; }
.contact-call-hotspot::before { position: absolute; inset: 4px; border: 1px solid rgb(119 103 192 / 45%); border-radius: inherit; content: ''; pointer-events: none; animation: contact-call-pulse 2.6s ease-out infinite; }
.contact-call-motion { position: absolute; top: 50%; left: 18px; width: 19px; height: 19px; color: #fff; transform: translateY(-50%); animation: contact-phone-sway 2.6s ease-in-out infinite; }
@keyframes contact-call-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgb(119 103 192 / 0%); } 18% { box-shadow: 0 0 0 0 rgb(119 103 192 / 20%); } 72% { box-shadow: 0 0 0 9px rgb(119 103 192 / 0%); } }
@keyframes contact-phone-sway { 0%, 18%, 40%, 100% { transform: translateY(-50%) rotate(0deg); } 24%, 34% { transform: translateY(-50%) rotate(-10deg); } 29% { transform: translateY(-50%) rotate(10deg); } }
@media (max-width: 760px) { .contact-copy-hint { right: 8px; padding: 3px 6px; font-size: 10px; } .contact-call-motion { left: 12px; width: 15px; height: 15px; } }
@media (max-width: 960px) { .inquiry-panel { grid-template-columns: minmax(0, 1fr); gap: 32px; padding: 32px; } .inquiry-intro { padding: 0; } .inquiry-contact-grid { margin-top: 32px; } .inquiry-details { margin-top: 30px; } .inquiry-intro-note { padding-top: 28px; } .inquiry-intro-copy { max-width: none; } }
@media (max-width: 540px) { .contact-inquiry > .container { width: calc(100% - 28px); } .inquiry-panel { gap: 28px; padding: 24px 20px 20px; border-radius: 22px; } .inquiry-intro h2 { font-size: 29px; } .inquiry-intro-copy { margin-top: 16px; font-size: 15px; } .inquiry-contact-grid, .inquiry-details { grid-template-columns: minmax(0, 1fr); gap: 22px; } .inquiry-contact-grid { margin-top: 28px; } .inquiry-intro-note { font-size: 12px; } .inquiry-content { padding: 24px 20px; border-radius: 18px; } .inquiry-fields { grid-template-columns: minmax(0, 1fr); gap: 20px; } .inquiry-submit-row { gap: 14px; } }
@media (prefers-reduced-motion: reduce) { .inquiry-field :is(input, select, textarea), .inquiry-submit, .contact-message-prompt, .contact-copy-hint { transition: none; } .contact-call-hotspot::before, .contact-call-motion { animation: none; } }
