/* Independent contact/account views; no homepage layout overrides. */
.contact-page { background:#08090B; color:#f7f3ea; font-family:Inter,system-ui,-apple-system,sans-serif; margin:0; min-height:100svh; }
.contact-page * { box-sizing:border-box; }
.contact-page [hidden] { display:none !important; }
.contact-page :focus-visible { outline:2px solid #D4AA24; outline-offset:4px; }
.contact-layout { display:grid; grid-template-columns:minmax(420px,.88fr) minmax(0,1.2fr); gap:24px; max-width:1800px; margin:auto; padding:max(28px,env(safe-area-inset-top)) max(28px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(28px,env(safe-area-inset-left)); }
.contact-panel,.visual-panel,.account-panel,.legal-panel { border:1px solid #ffffff16; border-radius:24px; background:radial-gradient(ellipse at top,#176B6808,transparent 70%),#0b0d10; }
.contact-page .contact-panel { padding:32px; min-width:0; }
.contact-brand { display:block; width:280px; max-width:85%; margin-bottom:20px; }
.contact-brand img { display:block; width:100%; height:auto; }
.contact-back { display:inline-flex; align-items:center; gap:10px; font-size:14px; color:#bcbec4; min-height:44px; margin-bottom:20px; }
.contact-page h1 { font:750 clamp(32px,3vw,48px)/1.1 Inter,system-ui,sans-serif; letter-spacing:-.045em; margin:12px 0 12px; }
.contact-intro { font-size:18px; line-height:1.5; color:#bcbec4; margin:0 0 24px; }
.contact-page form { margin:0; }
.name-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:20px; }
.field { margin:0 0 18px; min-width:0; }
.field label { display:block; font-size:15px; color:#f7f3ea; margin-bottom:8px; line-height:1.5; }
.contact-page input:not([type=checkbox]),.contact-page select,.contact-page textarea { display:block; width:100%; min-height:50px; border:1px solid #555d65; border-radius:10px; background:#11161bc0; color:#f7f3ea; font:400 16px/1.5 Inter,system-ui,sans-serif; padding:12px 16px; box-shadow:none; }
.contact-page textarea { min-height:106px; resize:vertical; }
.contact-page input::placeholder,.contact-page textarea::placeholder { color:#9ba2ad; opacity:1; }
.contact-page select { color-scheme:dark; padding-right:36px; }
.contact-page [aria-invalid=true] { border-color:#ff94a0 !important; }
.optional-account { border:1px solid #C21870; border-radius:14px; padding:20px; margin:8px -10px 18px; }
.account-switch-row { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.account-switch-row label { font-size:18px; font-weight:700; line-height:1.35; cursor:pointer; }
.account-switch-row input { appearance:none; flex-shrink:0; width:64px; height:48px; border:0; background:transparent; position:relative; cursor:pointer; }
.account-switch-row input::before { content:''; position:absolute; width:54px; height:30px; top:9px; left:5px; border:1px solid #676b72; border-radius:40px; background:#34383e; }
.account-switch-row input::after { content:''; position:absolute; width:24px; height:24px; top:12px; left:8px; background:white; border-radius:50%; transition:transform .2s; }
.account-switch-row input:checked::before { background:#C21870; border-color:#C21870; }
.account-switch-row input:checked::after { transform:translateX(22px); }
.field-help { color:#bcbec4; font-size:13px; line-height:1.6; margin:8px 0 12px; }
.contact-page fieldset { padding:0; border:0; min-width:0; margin:16px 0 0; }
.contact-page fieldset .field { margin-bottom:0; }
.password-wrap { position:relative; }
.contact-page .password-wrap input { padding-right:48px; }
.password-toggle { position:absolute; right:1px; top:1px; height:48px; width:48px; color:#c6ccd4; background:transparent; border:0; cursor:pointer; display:grid; place-items:center; border-radius:8px; }
.password-toggle svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.5; }
.privacy-note,.account-entry { color:#bcbec4; font-size:14px; line-height:1.7; margin:16px 0; }
.privacy-note a,.account-entry a,.account-nav a,.legal-panel a { text-decoration:underline; text-underline-offset:3px; color:#f7f3ea; }
.contact-submit { display:flex; align-items:center; justify-content:center; gap:20px; width:100%; min-height:54px; border:0; border-radius:12px; background:#C21870; color:#fff; font-size:16px; font-weight:650; line-height:1.5; padding:14px 20px; cursor:pointer; }
.contact-submit:hover { background:#d21e7d; }
.contact-submit:disabled { opacity:.55; cursor:default; }
.account-entry { text-align:center; }
.form-status { border:1px solid #176B68; background:#176B6820; border-radius:10px; padding:16px; font-size:15px; line-height:1.6; margin:18px 0; }
.form-status.is-error { border-color:#ff94a0; color:#ffb9c0; background:#c2187010; }
.form-status p { margin:0; }
.contact-page .honeypot { position:absolute; left:-9999px; opacity:0; width:1px !important; height:1px; }
.contact-language { display:flex; justify-content:center; margin-top:22px; }
.visual-panel { position:relative; overflow:hidden; min-width:0; min-height:960px; }
.desktop-art { pointer-events:none; display:block; width:100%; height:100%; position:absolute; inset:0; object-fit:cover; }
.visual-copy { position:absolute; top:43%; left:5%; right:5%; text-align:center; }
.visual-copy h2 { font:750 clamp(30px,4vw,68px)/1.05 Inter,system-ui,sans-serif; letter-spacing:-.055em; margin:0 0 12px; }
.visual-copy h2 span { display:block; }
.visual-accent { color:#d62a87; }
.visual-copy p { color:#bcbec4; font-size:clamp(15px,1.7vw,24px); line-height:1.4; }
.visual-note { position:absolute; bottom:16px; left:10px; right:10px; text-align:center; font-size:12px; color:#bcbec4; }
.mobile-art { display:none; }
.account-panel,.legal-panel { max-width:720px; margin:28px auto; padding:32px; }
.account-nav { display:flex; flex-wrap:wrap; gap:12px 22px; font-size:14px; line-height:1.7; margin-bottom:24px; }
.account-logout { margin-top:18px; }
.legal-panel section { padding:24px 0; }
.legal-panel h2 { font-size:23px; margin-bottom:12px; }
.legal-panel p { line-height:1.8; color:#c6c8ce; }
.legal-draft { padding:16px; border-left:2px solid #D4AA24; background:#D4AA2410; }
.visually-hidden { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
@media(max-width:1100px) {
  .contact-layout { display:block; max-width:780px; padding:max(24px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left)); }
  .contact-page .contact-panel { border:0; padding:0; background:none; }
  .visual-panel { display:none; }
  .mobile-art { display:block; margin:28px 0; }
  .mobile-art object { pointer-events:none; display:block; width:100%; height:auto; aspect-ratio:1200/350; object-fit:cover; border:1px solid #ffffff30; border-radius:16px; }
  .contact-page h1 { font-size:clamp(36px,8vw,54px); max-width:650px; }
  .contact-brand { width:280px; margin-bottom:12px; }
}
@media(max-width:600px) {
  .name-row { grid-template-columns:minmax(0,1fr); gap:0; }
  .contact-page h1 { font-size:clamp(36px,9vw,48px); }
  .contact-intro { font-size:18px; }
  .optional-account { padding:18px 14px; margin-inline:0; }
  .account-switch-row label { font-size:18px; }
  .contact-page fieldset .field { margin-bottom:18px; }
  .contact-page fieldset .field:last-child { margin:0; }
  .account-panel,.legal-panel { border:0; background:none; margin:0; padding:max(24px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left)); }
}
@media(prefers-reduced-motion:reduce) { .account-switch-row input::after { transition:none; } }

/* D-021: compact only the inquiry page, not login/privacy or field behaviour. */
.contact-layout { gap:20px; padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left)); }
/* Base spacing; mobile keeps its approved unit, desktop restores compact below. */
.contact-page .contact-panel { padding:22px; --contact-gap-step:16px; }
.contact-topbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:8px; }
.contact-topbar .contact-brand { width:250px; max-width:calc(100% - 60px); margin:0; }
.contact-topbar .contact-back { display:grid; place-items:center; flex:0 0 44px; width:44px; height:44px; margin:0; font-size:28px; text-decoration:none; }
.contact-panel h1 { font-size:clamp(30px,2.7vw,42px); margin:0 0 8px; }
.contact-panel .contact-intro { font-size:16px; line-height:1.4; margin-bottom:16px; }
.contact-panel .name-row { gap:12px; }
.contact-panel .field { margin-bottom:calc(8px + var(--contact-gap-step)); }
.contact-panel .field label { font-size:14px; margin-bottom:4px; }
.contact-panel input:not([type=checkbox]),.contact-panel select,.contact-panel textarea { min-height:48px; padding:8px 12px; }
.contact-panel textarea { min-height:72px; }
.contact-panel .optional-account { padding:6px 12px; margin:4px 0 calc(10px + var(--contact-gap-step)); }
.contact-panel .account-switch-row { gap:8px; }
.contact-panel .account-switch-row label { font-size:15px; font-weight:650; }
.contact-panel .account-switch-row input { width:48px; height:44px; margin:0; }
.contact-panel .account-switch-row input::before { width:40px; height:24px; left:4px; top:10px; }
.contact-panel .account-switch-row input::after { width:18px; height:18px; left:7px; top:13px; }
.contact-panel .account-switch-row input:checked::after { transform:translateX(16px); }
.contact-panel fieldset { margin:4px 0 6px; }
.contact-panel .field-help { font-size:12px; line-height:1.4; margin:4px 0 8px; }
.contact-panel .password-wrap input { padding-right:48px; }
.contact-panel .password-toggle { height:46px; }
.contact-panel .privacy-note,.contact-panel .account-entry { font-size:13px; line-height:1.5; margin:10px 0; }
.contact-panel .privacy-note { margin-bottom:calc(10px + var(--contact-gap-step)); }
.contact-panel .contact-submit { min-height:48px; padding:10px 16px; }
.contact-panel .contact-language { margin-top:8px; }
.contact-layout .visual-panel { min-height:0; }
@media(max-width:1100px) {
  .contact-layout { max-width:780px; padding:max(12px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left)); }
  .contact-page .contact-panel { padding:0; --contact-gap-step:8px; }
  .contact-panel h1 { font-size:clamp(30px,7.5vw,42px); }
  .contact-panel .mobile-art { margin:10px 0; }
  .contact-panel .mobile-art object { max-height:140px; }
}
@media(max-width:600px) {
  .contact-panel .contact-name-row { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .contact-panel .contact-intro { font-size:15px; margin-bottom:10px; }
  .contact-panel fieldset .name-row { grid-template-columns:minmax(0,1fr); gap:calc(8px + var(--contact-gap-step)); }
  .contact-panel fieldset .field { margin:0; }
  .contact-panel .account-switch-row label { font-size:14px; }
}
/* Desktop-only refinement. Keep the approved mobile/tablet geometry intact. */
@media(min-width:1101px) {
  .contact-layout { grid-template-columns:minmax(0,.88fr) minmax(0,1.2fr); min-height:100svh; align-items:center; }
  .contact-page .contact-panel { --contact-gap-step:0px; border:0; border-radius:0; background:none; box-shadow:none; width:100%; max-width:660px; justify-self:center; align-self:center; }
  .contact-panel .contact-topbar { margin-bottom:8px; }
  .contact-panel h1 { margin-bottom:8px; }
  .contact-panel .contact-intro { margin-bottom:16px; }
  .contact-panel .field label { margin-bottom:4px; }
  /* The right column is viewport-sized, not stretched by the inquiry form. */
  .contact-layout .visual-panel { display:grid; place-items:center; align-self:start; position:sticky; top:16px; height:calc(100svh - 32px); border:0; border-radius:0; background:none; overflow:visible; }
  .contact-visual-stage { position:relative; width:min(100%,1000px,calc((100svh - 32px) * .8)); aspect-ratio:4/5; border:1px solid #ffffff16; border-radius:24px; overflow:hidden; background:#08090B; container-type:inline-size; }
  .contact-visual-stage .desktop-art { object-fit:contain; }
  .contact-visual-stage .visual-copy h2 { font-size:6.8cqw; margin-bottom:1.2cqw; }
  .contact-visual-stage .visual-copy p { font-size:2.4cqw; margin:1.2cqw 0 0; }
  .contact-visual-stage .visual-note { font-size:clamp(11px,1.2cqw,12px); bottom:1.6cqw; }
}
