/* Contact uses the shared lower-page frame and editable HTML form fields. */
.page-contact .grecaptcha-badge { z-index:2147483647 !important; }
.contact-intro { padding-block:90px 100px; }
.contact-heading { margin:0; color:var(--navy); font-size:28px; font-weight:600; line-height:1.6; text-box:trim-both cap alphabetic; }
.contact-intro__copy { margin:60px 0 0; font-size:16px; line-height:2; text-box:trim-both cap alphabetic; }
.contact-flow { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; margin:80px 0 0; padding:0; list-style:none; }
.contact-flow li { min-width:0; }
.contact-flow__number { position:relative; height:55px; width:35px; margin:0 auto 25px; color:var(--navy); font-family:var(--serif-en); text-align:center; }
.contact-flow__number span { display:block; font-size:12px; letter-spacing:.08em; line-height:1.2; text-box:trim-both cap alphabetic; }
.contact-flow__number b { display:block; margin-top:10px; font-size:48px; font-weight:400; line-height:1; letter-spacing:.08em; text-box:trim-both cap alphabetic; }
.contact-flow li:not(:last-child) .contact-flow__number::after { content:""; position:absolute; top:31px; left:59px; width:calc((min(1060px,100vw - 120px) - 72px) / 4 - 59px); height:1px; background:#002e624d; }
.contact-flow__card { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:219px; padding:35px 10px; border-radius:15px; background:#fffffff0; text-align:center; }
.contact-flow h3 { display:flex; align-items:center; justify-content:center; min-height:54px; max-width:210px; margin:0; color:var(--navy); font-size:24px; font-weight:700; line-height:1.5; letter-spacing:.02em; text-box:trim-both cap alphabetic; }
.contact-flow h3 > span { display:block; text-box:trim-both cap alphabetic; }
.contact-flow p { margin:30px 0 0; font-size:16px; line-height:1.5; text-box:trim-both cap alphabetic; }
.contact-section { padding-block:90px 120px; }
.contact-notice { margin:50px 0 0; font-size:14px; line-height:2; text-box:trim-both cap alphabetic; }
.contact-form { width:min(880px,100%); margin:90px auto 0; }
.contact-field + .contact-field { margin-top:40px; }
.contact-label { display:flex; align-items:center; gap:15px; min-height:24px; margin-bottom:20px; font-size:16px; font-weight:700; line-height:1.5; }
.contact-label > span:first-child { text-box:trim-both cap alphabetic; }
.contact-field:has(input:not([required])) .contact-label { min-height:12px; margin-bottom:26px; }
.contact-required { display:inline-flex; flex:none; align-items:center; justify-content:center; min-height:24px; padding:4px 8px; background:#ca0101; color:#fff; font-size:14px; font-weight:700; line-height:1; }
.contact-control input, .contact-control select, .contact-control textarea { display:block; width:100%; min-width:0; border:1px solid transparent; border-radius:0; padding:22px 29px; background:#ffffffe6; color:#000; font:inherit; font-size:16px; line-height:26px; }
.contact-control input, .contact-control select { min-height:72px; }
.contact-control select { appearance:none; -webkit-appearance:none; padding-right:60px; }
.contact-control--select { position:relative; }
/* Figma exports the paired arrows horizontally; rotate the original asset. */
.contact-control--select::after { content:""; position:absolute; top:50%; right:34px; width:17.4142px; height:9px; background:url("../../images/contact/select-arrows.svg") center / 100% 100% no-repeat; transform:translate(50%,-50%) rotate(90deg); pointer-events:none; }
.contact-control textarea { min-height:188px; resize:vertical; }
.contact-control input::placeholder, .contact-control textarea::placeholder { color:#0006; opacity:1; }
.contact-control :focus-visible { outline:2px solid var(--navy); outline-offset:3px; }
.contact-control [aria-invalid="true"] { border-color:#b00020; }
.contact-control--postal { display:flex; align-items:center; gap:40px; }
.contact-control--postal input, [data-field="phone"] input { width:min(400px,100%); }
.page-contact .pill-link.pill-link--outline.contact-postal { flex:none; width:191px; height:48px; background:transparent; font:inherit; font-size:16px; font-weight:700; cursor:pointer; }
.contact-postal { color:inherit; }
.contact-privacy { margin:40px 0 0; font-size:16px; line-height:2; text-box:trim-both cap alphabetic; }
.contact-actions { display:flex; align-items:center; justify-content:center; gap:30px; margin-top:90px; }
.contact-actions button { background:transparent; color:inherit; font-family:inherit; cursor:pointer; }
.contact-actions button:disabled { opacity:.45; cursor:wait; }
.contact-actions .pill-link:focus-visible { outline:2px solid var(--navy); outline-offset:5px; }
.contact-back img { right:auto; left:40px; transform:rotate(180deg); }
.contact-review { width:min(880px,100%); margin:80px auto 0; border-top:1px solid #0000001a; }
.contact-review > div { display:grid; grid-template-columns:210px minmax(0,1fr); gap:30px; align-items:start; padding-block:30px 35px; border-bottom:1px solid #0000001a; }
.contact-review dt { display:flex; align-items:center; gap:10px; min-height:24px; font-size:16px; font-weight:700; line-height:1.5; }
.contact-review dd { margin:0; padding-top:3px; font-size:16px; line-height:2; white-space:pre-wrap; overflow-wrap:anywhere; text-box:trim-both cap alphabetic; }
[data-contact-view="confirm"] .contact-actions { margin-top:60px; }
.contact-complete { text-align:center; }
.contact-complete__copy { margin:60px 0 0; font-size:17px; line-height:2; text-box:trim-both cap alphabetic; }
.contact-complete .contact-actions { margin-top:70px; }
.contact-error { margin:10px 0 0; color:#a60019; font-size:14px; line-height:1.7; }
.contact-feedback, .contact-mode { padding:16px 20px; border:1px solid #002e6255; background:#ffffffbf; font-size:14px; line-height:1.8; }
.contact-feedback { margin:30px auto; color:#a60019; border-color:#a6001966; max-width:880px; }
.contact-feedback a { text-decoration:underline; }
.contact-mode { margin:30px 0 0; color:var(--navy); }
.contact-assist { font-size:14px; line-height:1.8; }
.contact-assist:empty { display:none; }
.contact-trap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.contact-section [hidden] { display:none; }
@media (min-width:768px) and (max-width:1059px) {
 .contact-flow { grid-template-columns:repeat(2,minmax(0,1fr)); gap:35px 24px; }
 .contact-flow__number::after { display:none; }
 .contact-flow h3 { max-width:none; }
}
@media (max-width:767px) {
 .contact-intro { padding-block:50px 60px; }
 .contact-heading { font-size:20px; }
 .contact-intro__copy { margin-top:40px; font-size:14px; }
 .contact-flow { display:block; margin-top:60px; }
 .contact-flow li { display:grid; grid-template-columns:35px minmax(0,1fr); gap:25px; padding-left:15px; }
 .contact-flow li + li { margin-top:20px; }
 .contact-flow__number { margin:0; }
 .contact-flow li:not(:last-child) .contact-flow__number::after { top:70px; left:17px; width:1px; height:81px; }
 .contact-flow__card { align-items:flex-start; min-height:146px; padding:30px; text-align:left; }
 .contact-flow h3 { justify-content:flex-start; min-height:0; max-width:none; font-size:20px; line-height:1.8; }
 .contact-flow li:last-child h3 { max-width:none; font-size:18px; }
 .contact-flow p { margin-top:30px; font-size:14px; line-height:1.5; }
 .contact-section { padding-block:50px 60px; }
 .contact-notice { margin-top:40px; font-size:12px; }
 .contact-form { margin-top:60px; }
 .contact-field + .contact-field { margin-top:35px; }
 .contact-label { gap:10px; margin-bottom:15px; font-size:14px; }
 .contact-required { min-height:23px; font-size:12px; }
 .contact-field:has(input:not([required])) .contact-label { min-height:10px; margin-bottom:21px; }
 .contact-control input, .contact-control select, .contact-control textarea { padding:17px 19px; font-size:16px; line-height:24px; }
 .contact-control input, .contact-control select { min-height:60px; }
 .contact-control textarea { min-height:188px; }
 .contact-control select { padding-right:48px; }
 .contact-control--select::after { right:24px; }
 .contact-control--postal { gap:20px; }
 .contact-control--postal input { width:calc(100% - 175px); flex:1; }
 .page-contact .pill-link.pill-link--outline.contact-postal { width:155px; height:48px; border:0; background:#fff; font-size:12px; }
 .contact-privacy { margin-top:35px; font-size:14px; }
 .contact-actions { flex-direction:column; gap:20px; margin-top:60px; }
 .contact-review { margin-top:60px; }
 .contact-review > div { display:block; padding:30px 0; }
 .contact-review dt { font-size:14px; }
 .contact-review dd { margin-top:25px; padding:0; font-size:14px; }
 [data-contact-view="confirm"] .contact-actions { flex-direction:column-reverse; margin-top:50px; }
 .contact-back img { left:25px; }
 .contact-complete__copy { margin-top:40px; font-size:14px; text-align:left; }
 .contact-complete .contact-actions { margin-top:50px; }
 .contact-feedback, .contact-mode { padding:12px 15px; font-size:13px; }
}

.contact-privacy a { text-decoration: underline; text-underline-offset: .2em; }
