/* Shared contact experience: full page and home-page panel. */
.contact-experience { --contact-ink:#0b2238; --contact-blue:#165df5; --contact-muted:#607184; color:var(--contact-ink); }
.contact-experience [v-cloak] { display:none; }
.contact-experience button, .contact-experience input, .contact-experience textarea { font:inherit; }
.contact-experience button { cursor:pointer; }
.contact-experience button:disabled { cursor:default; }
.contact-experience :is(button,a,input,textarea):focus-visible { outline:3px solid #165df5; outline-offset:4px; }
.contact-experience [tabindex="-1"]:focus { outline:none; }
.contact-experience.sextan-contact { background:radial-gradient(ellipse at 4% 45%,#eaf2ff 0,transparent 46%),#f8fafc; padding:145px 32px 80px; }
.contact-layout { max-width:1160px; margin:auto; display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.35fr); gap:70px; align-items:start; }
.contact-intro { padding-top:28px; }
.contact-eyebrow { display:flex; align-items:center; gap:9px; color:var(--contact-blue); text-transform:uppercase; font-size:10px; letter-spacing:1.5px; font-weight:600; }
.contact-eyebrow > span { width:6px; height:6px; background:var(--contact-blue); border-radius:50%; box-shadow:0 0 0 5px #165df50d; }
.contact-intro h1 { font-size:46px; line-height:1.18; letter-spacing:-1.7px; margin:22px 0; color:var(--contact-ink); }
.contact-intro h1 em { font-style:normal; color:var(--contact-blue); }
.contact-intro > p { font-size:15px; line-height:1.8; color:var(--contact-muted); max-width:360px; }
.contact-topics { display:flex; flex-wrap:wrap; gap:7px; margin:22px 0 34px; }
.contact-topics > span { font-size:11px; color:#42576d; border:1px solid #dce5f0; border-radius:30px; padding:7px 10px; background:#ffffff70; }
.contact-invitation { position:relative; background:#0b2238; color:white; border-radius:20px; padding:22px; transform:rotate(-3deg); margin:40px 8px 38px 0; box-shadow:0 22px 45px -22px #0b223870; animation:contact-invite-in 1s cubic-bezier(.2,.8,.2,1) both; }
.contact-invitation-top, .contact-invitation-bottom { display:flex; justify-content:space-between; align-items:center; gap:10px; font-size:9px; letter-spacing:1px; }
.contact-invitation-top > span:first-child { font-weight:700; font-size:12px; letter-spacing:2px; }
.contact-invitation-top > span:last-child { color:#b0c3d8; font-size:8px; }
.contact-invitation-date { display:flex; gap:15px; align-items:center; padding:30px 0; }
.contact-invitation-date strong { font-size:17px; font-weight:500; line-height:1.5; display:block; }
.contact-invitation-date div > span { display:block; margin-top:5px; font-size:11px; color:#b0c3d8; }
.contact-invitation-icon { flex-shrink:0; display:grid; place-items:center; width:48px; height:52px; border:1px solid #ffffff26; border-radius:13px; background:#ffffff0a; }
.contact-invitation-icon svg { width:26px; stroke:#ffe7aa; stroke-width:1.4; }
.contact-invitation-bottom { border-top:1px dashed #ffffff30; padding-top:16px; color:#c6d2dd; letter-spacing:0; font-size:10px; }
.contact-invitation-bottom > span:last-child { color:#ffe7aa; }
.contact-invitation-spark { position:absolute; right:24px; top:-26px; color:#165df5; font-size:45px; animation:contact-spark 6s ease-in-out 2; }
.contact-intro .contact-trust { font-size:12px; line-height:1.8; margin-left:8px; }
.contact-trust strong { color:var(--contact-ink); font-weight:600; }
.contact-card { border:1px solid #e7ecf3; border-radius:24px; padding:28px 32px 24px; background:#fff; box-shadow:0 16px 65px -35px #15386240; min-width:0; scroll-margin-top:110px; animation:contact-card-in .7s cubic-bezier(.2,.8,.2,1) both; }
.contact-mode { position:relative; display:flex; background:#f2f5fa; border-radius:12px; padding:5px; isolation:isolate; margin-bottom:25px; }
.contact-mode-slider { position:absolute; top:5px; bottom:5px; width:calc(50% - 5px); left:5px; border-radius:9px; background:#fff; box-shadow:0 2px 7px #102e4b10; transition:transform .4s cubic-bezier(.2,.9,.2,1); z-index:-1; }
.contact-mode-slider.is-message { transform:translateX(100%); }
.contact-mode button { width:50%; padding:11px 5px; display:flex; justify-content:center; align-items:center; gap:8px; background:none; border:0; color:var(--contact-muted); font-size:12px; font-weight:500; transition:color .25s; }
.contact-mode button[aria-pressed=true] { color:var(--contact-blue); }
.contact-mode svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.6; }
.contact-progress { display:flex; align-items:center; gap:12px; margin:0 0 27px; }
.contact-progress > span { display:flex; align-items:center; gap:7px; color:#637387; font-size:10px; white-space:nowrap; }
.contact-progress b { display:grid; place-items:center; width:21px; height:21px; border-radius:50%; background:#f0f3f8; font-size:9px; font-weight:500; transition:background .3s,color .3s; }
.contact-progress .is-current { color:var(--contact-ink); }
.contact-progress .is-current b { background:var(--contact-ink); color:white; }
.contact-progress .is-done b { background:#e4f4ed; color:#23735c; }
.contact-progress > i { flex:1; height:1px; background:#e7ecf3; position:relative; }
.contact-progress > i:after { content:''; display:block; height:100%; background:#23735c; transform:scaleX(0); transform-origin:left; transition:transform .4s; }
.contact-progress > i.is-filled:after { transform:scaleX(1); }
.contact-panel-heading { margin-bottom:25px; }
.contact-panel-heading .contact-eyebrow { font-size:9px; letter-spacing:1.1px; margin-bottom:9px; }
.contact-panel-heading h2 { font-size:26px; line-height:1.3; letter-spacing:-.8px; color:var(--contact-ink); margin:0 0 8px; }
.contact-panel-heading p { color:var(--contact-muted); font-size:12px; line-height:1.7; margin:0; }
.contact-panel-heading p.contact-schedule-note { margin-top:10px; font-size:10px; }
.contact-picker { display:grid; grid-template-columns:1fr; gap:20px; }
.contact-calendar { min-width:0; }
.contact-range-nav { display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; gap:10px; }
.contact-range-nav strong { display:block; font-size:13px; font-weight:600; }
.contact-range-nav > div > span { display:block; color:var(--contact-muted); font-size:11px; line-height:1.5; margin-top:4px; }
.contact-range-arrows { display:flex; gap:6px; flex-shrink:0; }
.contact-range-nav button { width:44px; height:44px; border-radius:50%; border:1px solid #e1e8f2; background:white; color:var(--contact-ink); display:grid; place-items:center; font-size:24px; line-height:1; transition:background .2s,transform .2s; }
.contact-range-nav button:hover:enabled { background:#eef3ff; transform:translateY(-1px); }
.contact-range-nav button:disabled { opacity:.3; }
.contact-days { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; animation:contact-card-in .3s ease-out; }
.contact-days button { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; min-width:0; min-height:88px; padding:10px 2px; border:1px solid #dfe6ef; background:#fafbfd; border-radius:13px; color:var(--contact-ink); line-height:1.2; transition:background .2s,color .2s,transform .25s,box-shadow .25s,border-color .2s; }
.contact-days button:hover { background:#eaf1ff; border-color:#a6bef7; transform:translateY(-2px); }
.contact-day-weekday { font-size:11px; font-weight:500; }
.contact-days button strong { font-size:27px; font-weight:600; line-height:1.1; }
.contact-day-month { font-size:10px; opacity:.7; }
.contact-days button.is-selected, .contact-days button.is-selected:hover { background:var(--contact-blue); border-color:var(--contact-blue); color:white; box-shadow:0 5px 12px #165df530; transform:translateY(-1px); }
.contact-days button.is-selected strong { animation:contact-pop .3s ease-out; }
.contact-calendar-help { color:#687b8c; font-size:9px; line-height:1.6; margin:12px 0 0; }
.contact-times { padding-top:16px; border-top:1px solid #edf0f5; }
.contact-times-title { display:block; font-size:12px; font-weight:500; margin:0 0 12px; }
.contact-time-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.contact-time-grid button { border:1px solid #dfe6ef; border-radius:9px; background:white; padding:12px 2px; min-height:44px; font-size:12px; position:relative; color:#354c63; transition:background .2s,border-color .2s,transform .2s; }
.contact-time-grid button:disabled { color:#a4adba; background:#fafbfc; border-color:#eef1f6; }
.contact-time-grid button:hover:enabled { border-color:var(--contact-blue); transform:translateY(-2px); }
.contact-time-grid button.is-selected { border-color:var(--contact-blue); background:#eef3ff; color:var(--contact-blue); }
.contact-time-check { display:none; }
.contact-time-grid button.is-selected .contact-time-check { display:grid; place-items:center; position:absolute; right:-4px; top:-5px; width:13px; height:13px; background:var(--contact-blue); color:white; border:2px solid white; border-radius:50%; font-size:7px; animation:contact-pop .3s ease-out; }
.contact-text-button { padding:0; background:none; border:0; color:#405a76; font-size:11px!important; text-decoration:none; }
.contact-text-button:hover { color:var(--contact-blue); }
.contact-custom-toggle { display:flex; justify-content:space-between; gap:10px; width:auto; margin-top:15px; text-align:left; font-size:10px!important; }
.contact-custom-time { margin-top:13px; animation:contact-card-in .25s ease-out; }
.contact-custom-time label { font-size:10px; color:var(--contact-muted); display:block; }
.contact-custom-time input { width:100%; border:1px solid #dfe6ef; border-radius:8px; padding:6px; font-size:12px; background:white; color:var(--contact-ink); }
.contact-selection { display:flex; align-items:center; gap:8px; padding:13px 14px; border-radius:9px; background:#f6f8fb; font-size:11px; color:var(--contact-muted); margin:20px 0 13px; transition:background .3s,color .3s; min-height:43px; }
.contact-selection.has-selection { background:#edf7f2; color:#276b55; }
.contact-selection-dot { flex-shrink:0; height:5px; width:5px; border-radius:50%; background:currentColor; }
.contact-primary { width:100%; display:flex; justify-content:center; align-items:center; gap:12px; padding:16px 20px; border:0; border-radius:11px; background:var(--contact-blue); color:white; font-size:12px!important; font-weight:500; line-height:1.4; box-shadow:0 5px 15px #165df51c; transition:background .2s,transform .25s,box-shadow .25s; }
.contact-primary:hover:enabled, a.contact-primary:hover { transform:translateY(-2px); background:#0f4ddd; color:white; box-shadow:0 7px 20px #165df52b; }
.contact-primary > span:last-child { transition:transform .25s; }
.contact-primary:hover:enabled > span:last-child { transform:translateX(3px); }
.contact-primary:disabled { background:#e8edf6; color:#78899e; box-shadow:none; }
.contact-skip { display:block; margin:15px auto 0; font-size:10px!important; }
.contact-direct { display:flex; justify-content:center; flex-wrap:wrap; gap:4px; margin-top:24px; padding-top:20px; border-top:1px solid #eef1f5; color:var(--contact-muted); font-size:10px; }
.contact-direct a { color:var(--contact-ink); font-weight:500; }
.contact-recap { display:flex; align-items:center; gap:12px; background:#f3f7ff; border:1px solid #e4edff; padding:14px; border-radius:12px; margin-bottom:22px; }
.contact-recap > span { width:30px; height:30px; flex-shrink:0; border-radius:8px; background:white; display:grid; place-items:center; color:var(--contact-blue); }
.contact-recap > div { flex:1; }
.contact-recap strong { display:block; font-size:11px; font-weight:500; line-height:1.6; }
.contact-recap small { display:block; color:var(--contact-muted); font-size:9px; line-height:1.5; margin-top:3px; }
.contact-recap button { font-size:10px!important; text-decoration:underline; text-underline-offset:3px; }
.contact-fields { border:0; padding:0; margin:0; min-width:0; display:grid; grid-template-columns:1fr 1fr; gap:18px 16px; }
.contact-field { min-width:0; }
.contact-field label { display:block; font-size:11px; font-weight:500; color:var(--contact-ink); margin-bottom:8px; }
.contact-field label > span { color:var(--contact-blue); }
.contact-field small, .contact-interest small, .contact-details-toggle small { color:var(--contact-muted); font-size:9px; font-weight:400; margin-left:4px; }
.contact-field input, .contact-field textarea { width:100%; padding:13px 12px; border:1px solid #dce4ef; border-radius:9px; font-size:12px; color:var(--contact-ink); background:#fff; transition:border-color .2s,box-shadow .2s; }
.contact-field textarea { resize:vertical; min-height:90px; }
.contact-field input::placeholder, .contact-field textarea::placeholder { color:#7b899c; }
.contact-field input:focus, .contact-field textarea:focus { border-color:var(--contact-blue); box-shadow:0 0 0 3px #165df50c; }
.contact-field input[aria-invalid=true] { border-color:#b3443e; }
.contact-interest, .contact-details-toggle, .contact-extra, .contact-field-wide { grid-column:1 / -1; }
.contact-interest > span { display:block; font-size:11px; margin-bottom:10px; }
.contact-interest > div { display:flex; flex-wrap:wrap; gap:7px; }
.contact-interest button { border:1px solid #dfe6ef; background:white; padding:7px 10px; font-size:10px; border-radius:30px; color:#506279; transition:background .2s,border-color .2s,transform .2s; }
.contact-interest button:hover { transform:translateY(-1px); border-color:#9eb9f7; }
.contact-interest button.is-selected { background:#edf3ff; border-color:#165df5; color:#165df5; }
.contact-details-toggle { text-align:left; width:fit-content; }
.contact-details-toggle > span { margin-right:4px; }
.contact-extra { display:grid; grid-template-columns:1fr 1fr; gap:16px; animation:contact-card-in .25s ease-out; }
.contact-fields + .contact-primary { margin-top:24px; }
.contact-privacy { color:var(--contact-muted); font-size:9px; line-height:1.7; margin:12px 0 0; text-align:center; }
.contact-error { color:#a1312b; font-size:11px; line-height:1.6; margin:7px 0; }
.contact-send-error { padding:12px; background:#fff5f3; border-radius:8px; margin:20px 0 12px; }
.contact-spinner { display:inline-block; width:14px; height:14px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:contact-spin .8s linear infinite; }
.contact-success { text-align:center; padding:22px 0; }
.contact-success-mark { position:relative; width:90px; margin:0 auto 25px; }
.contact-success-mark svg { width:90px; fill:#e9f6ef; stroke:#298466; stroke-width:1.5; }
.contact-success-mark path { fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:40; animation:contact-check .7s .2s ease both; }
.contact-success-mark span { position:absolute; color:#165df5; top:2px; right:-20px; font-size:24px; animation:contact-pop .7s ease both; }
.contact-success-mark span:last-child { top:auto; bottom:4px; left:-24px; right:auto; font-size:15px; color:#b3822a; }
.contact-success .contact-eyebrow { justify-content:center; font-size:9px; }
.contact-success h2 { color:var(--contact-ink); font-size:28px; margin:15px 0; }
.contact-success > p { color:var(--contact-muted); font-size:13px; line-height:1.8; }
.contact-success .contact-recap { text-align:left; margin-top:24px; }
.contact-success .contact-success-email { font-size:11px; word-break:break-word; margin:20px 0; }
.contact-step-enter-active, .contact-step-leave-active { transition:opacity .18s ease,transform .24s ease; }
.contact-step-enter { opacity:0; transform:translateY(12px); }
.contact-step-leave-to { opacity:0; transform:translateY(-8px); }
.contact-home-card.box--signup { padding:32px 36px; background:#fff; }
.contact-home-card .contact-picker { grid-template-columns:1fr; gap:16px; }
.contact-home-card .contact-times { padding:14px 0 0; border-left:0; border-top:1px solid #edf0f5; }
.contact-home-card .contact-times-title { margin:0 0 10px; }
.contact-home-card .contact-time-grid { grid-template-columns:repeat(4,1fr); }
.contact-home-card .contact-custom-toggle { width:auto; gap:10px; margin-top:10px; }
.contact-home-card .contact-calendar-help { margin-top:7px; }
.contact-home-card .contact-panel-heading h2 { font-size:23px; }
.contact-home-card .contact-progress { margin-bottom:24px; }
.contact-home-card .contact-days { gap:6px; }
.contact-home-card .contact-days button { min-height:80px; }
@keyframes contact-invite-in { from { opacity:0; transform:translateY(22px) rotate(1deg); } to { opacity:1; transform:translateY(0) rotate(-3deg); } }
@keyframes contact-card-in { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }
@keyframes contact-pop { from { opacity:.3; transform:scale(.7); } to { opacity:1; transform:scale(1); } }
@keyframes contact-spark { 0%,100% { transform:rotate(-8deg); } 50% { transform:rotate(25deg) scale(1.08); } }
@keyframes contact-check { from { stroke-dashoffset:40; } to { stroke-dashoffset:0; } }
@keyframes contact-spin { to { transform:rotate(360deg); } }
@media (max-width:1199px) {
    .contact-layout { gap:35px; grid-template-columns:minmax(0,.8fr) minmax(0,1.3fr); }
    .contact-intro h1 { font-size:38px; }
    .contact-card { padding:25px; }
    .contact-picker { gap:16px; }
}
@media (max-width:991px) {
    .contact-experience.sextan-contact { padding:125px 30px 60px; }
    .contact-layout { max-width:640px; grid-template-columns:1fr; gap:25px; }
    .contact-intro { padding-top:0; }
    .contact-intro h1 { max-width:520px; font-size:39px; margin:16px 0; }
    .contact-intro > p { max-width:500px; margin-bottom:0; }
    .contact-topics { margin:15px 0 0; }
    .contact-invitation, .contact-intro .contact-trust { display:none; }
    .contact-card { padding:30px; }
    .contact-picker { gap:20px; }
}
@media (max-width:575px) {
    .contact-experience.sextan-contact { padding:108px 16px 35px; }
    .contact-layout { gap:22px; }
    .contact-intro h1 { font-size:31px; letter-spacing:-1px; max-width:310px; }
    .contact-intro > p { font-size:13px; line-height:1.7; }
    .contact-eyebrow { font-size:9px; }
    .contact-topics { display:none; }
    .contact-card { padding:20px; border-radius:18px; }
    .contact-mode { margin-bottom:22px; }
    .contact-mode button { font-size:11px; padding:10px 3px; }
    .contact-progress { gap:8px; margin-bottom:22px; }
    .contact-progress > span { font-size:9px; gap:5px; }
    .contact-progress b { height:18px; width:18px; }
    .contact-panel-heading h2 { font-size:24px; }
    .contact-panel-heading p { font-size:11px; }
    .contact-picker { grid-template-columns:1fr; gap:18px; }
    .contact-days { gap:6px; }
    .contact-days button { min-height:80px; border-radius:10px; }
    .contact-days button strong { font-size:24px; }
    .contact-day-weekday { font-size:10px; }
    .contact-range-nav > div > span { font-size:10px; }
    .contact-times { padding:16px 0 0; border-left:0; border-top:1px solid #edf0f5; }
    .contact-times-title { margin:0 0 12px; }
    .contact-time-grid { grid-template-columns:repeat(4,1fr); }
    .contact-time-grid button { padding:12px 2px; }
    .contact-custom-toggle { width:auto; gap:10px; }
    .contact-custom-time input { max-width:150px; font-size:16px; }
    .contact-fields, .contact-extra { grid-template-columns:1fr; }
    .contact-field input, .contact-field textarea { font-size:16px; padding:12px; }
    .contact-recap { gap:8px; flex-wrap:wrap; }
    .contact-recap > div { min-width:150px; }
    .contact-success h2 { font-size:25px; }
}
@media (prefers-reduced-motion:reduce) {
    .contact-experience *, .contact-experience *:before, .contact-experience *:after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
