:root {
  --usip-ink: #101827;
  --usip-ink-2: #172033;
  --usip-gold: #b89356;
  --usip-gold-2: #d4bd8b;
  --usip-paper: #ffffff;
  --usip-soft: #f5f6f8;
  --usip-line: #e3e6eb;
  --usip-muted: #6b7280;
}

.usip-consultation-wrap,
.usip-consultation-wrap * { box-sizing: border-box; }
.usip-consultation-wrap { width: 100%; font-family: inherit; color: var(--usip-ink); }
.usip-consultation-card {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  background: var(--usip-paper);
  border: 1px solid var(--usip-line);
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 24px 70px rgba(16, 24, 39, .13);
}
.usip-form-intro {
  padding: 40px 34px;
  color: #fff;
  background:
    radial-gradient(circle at 15% 10%, rgba(184,147,86,.27), transparent 34%),
    linear-gradient(145deg, #0c1422, #172033 62%, #101827);
}
.usip-kicker { display:block; font-size:12px; letter-spacing:.18em; color:var(--usip-gold-2); font-weight:800; margin-bottom:16px; }
.usip-form-intro h2 { color:#fff; font-size:clamp(28px,3vw,44px); line-height:1.08; margin:0 0 18px; }
.usip-form-intro p { color:#d6dbe3; font-size:16px; line-height:1.75; margin:0; }
.usip-contact-mini { margin-top:34px; display:grid; gap:14px; }
.usip-contact-mini span { display:block; padding:14px 0; border-top:1px solid rgba(255,255,255,.12); color:#d6dbe3; font-size:14px; }
.usip-contact-mini strong { display:block; color:#fff; font-size:12px; letter-spacing:.08em; text-transform:uppercase; margin-bottom:5px; }

.usip-consultation-form { padding: 38px 40px 32px; background:#fff; }
.usip-grid { display:grid; gap:18px; }
.usip-grid-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.usip-field { margin-bottom:18px; }
.usip-field label { display:block; font-size:13px; font-weight:750; color:var(--usip-ink-2); margin:0 0 8px; }
.usip-field label span, .usip-consent strong { color:#9b2c2c; }
.usip-field label small { color:var(--usip-muted); font-weight:500; }
.usip-field input,
.usip-field select,
.usip-field textarea {
  width:100%; border:1px solid #d7dbe2; background:#fff; color:var(--usip-ink);
  border-radius:10px; padding:13px 14px; font:inherit; outline:none;
  transition:border-color .2s, box-shadow .2s, background .2s;
}
.usip-field input:focus,
.usip-field select:focus,
.usip-field textarea:focus { border-color:var(--usip-gold); box-shadow:0 0 0 3px rgba(184,147,86,.15); }
.usip-field textarea { resize:vertical; min-height:120px; }
.usip-consent { display:flex; gap:10px; align-items:flex-start; font-size:13px; line-height:1.55; color:#4b5563; margin:2px 0 18px; }
.usip-consent input { margin-top:4px; width:16px; height:16px; accent-color:var(--usip-gold); }
.usip-submit {
  appearance:none; border:0; cursor:pointer; width:100%; border-radius:10px; padding:15px 18px;
  background:var(--usip-gold); color:#101827; font:inherit; font-weight:850; letter-spacing:.01em;
  box-shadow:0 10px 24px rgba(184,147,86,.24); transition:transform .2s, box-shadow .2s, opacity .2s;
}
.usip-submit:hover { transform:translateY(-1px); box-shadow:0 14px 28px rgba(184,147,86,.31); }
.usip-submit:disabled { opacity:.65; cursor:not-allowed; transform:none; }
.usip-form-status { display:none; margin-top:14px; padding:12px 14px; border-radius:9px; font-size:14px; line-height:1.5; }
.usip-form-status.is-success { display:block; background:#ecfdf3; color:#166534; border:1px solid #bbf7d0; }
.usip-form-status.is-error { display:block; background:#fff1f2; color:#9f1239; border:1px solid #fecdd3; }
.usip-disclaimer { color:#737b89; font-size:11px; line-height:1.55; margin:15px 0 0; }
.usip-hp { position:absolute!important; left:-99999px!important; width:1px!important; height:1px!important; overflow:hidden!important; }

.usip-floating-dock {
  position:fixed;
  left:28px;
  bottom:28px;
  z-index:99990;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
  font-family:inherit;
}
.usip-floating-nudge {
  position:relative;
  max-width:205px;
  border:1px solid rgba(8,54,47,.12);
  border-radius:14px;
  padding:10px 14px 11px;
  text-align:left;
  background:#fff;
  color:#08362f;
  box-shadow:0 16px 38px rgba(8,54,47,.16);
  cursor:pointer;
  animation:usipNudgeIn .35s ease-out both;
}
.usip-floating-nudge::after {
  content:"";
  position:absolute;
  left:27px;
  bottom:-7px;
  width:14px;
  height:14px;
  background:#fff;
  transform:rotate(45deg);
  border-right:1px solid rgba(8,54,47,.12);
  border-bottom:1px solid rgba(8,54,47,.12);
}
.usip-nudge-title {
  display:block;
  font-size:13px;
  font-weight:800;
  line-height:1.2;
  margin-bottom:3px;
}
.usip-nudge-copy {
  display:block;
  color:#667085;
  font-size:10px;
  line-height:1.35;
}
.usip-floating-button {
  position:relative;
  border:1px solid rgba(212,189,139,.74);
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:48px;
  padding:6px 14px 6px 6px;
  border-radius:999px;
  background:#08362f;
  color:#fff;
  font:inherit;
  font-size:13px;
  font-weight:800;
  letter-spacing:.01em;
  box-shadow:0 14px 34px rgba(8,54,47,.28);
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.usip-floating-icon {
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  flex:0 0 34px;
  border-radius:50%;
  background:linear-gradient(145deg, var(--usip-gold-2), var(--usip-gold));
  color:#08362f;
  font-size:14px;
  line-height:1;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);
}
.usip-floating-label { white-space:nowrap; }
.usip-floating-badge {
  position:absolute;
  top:-6px;
  right:-5px;
  min-width:20px;
  height:20px;
  padding:0 6px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#d92323;
  color:#fff;
  border:2px solid #fff;
  font-size:10px;
  font-weight:900;
  line-height:1;
  box-shadow:0 5px 14px rgba(217,35,35,.32);
  animation:usipBadgePulse 2.1s ease-in-out infinite;
}
.usip-floating-button:hover {
  transform:translateY(-2px);
  background:#0b433a;
  box-shadow:0 18px 38px rgba(8,54,47,.34);
}
.usip-floating-button:focus-visible,
.usip-floating-nudge:focus-visible { outline:3px solid rgba(184,147,86,.35); outline-offset:3px; }
.usip-floating-dock.usip-dock-quiet .usip-floating-nudge { display:none; }
.usip-floating-dock.usip-dock-seen .usip-floating-badge { display:none; }
@keyframes usipNudgeIn { from { opacity:0; transform:translateY(8px) scale(.98); } to { opacity:1; transform:none; } }
@keyframes usipBadgePulse { 0%,100% { transform:scale(1); } 50% { transform:scale(1.08); } }
.usip-modal { position:fixed; inset:0; z-index:99999; display:none; padding:24px; overflow:auto; }
.usip-modal.is-open { display:grid; place-items:center; }
.usip-modal-backdrop { position:fixed; inset:0; background:rgba(5,10,18,.78); backdrop-filter:blur(6px); }
.usip-modal-dialog { position:relative; z-index:1; width:min(980px,100%); margin:auto; animation:usipPop .22s ease-out; }
.usip-modal-close { position:absolute; right:13px; top:10px; z-index:4; width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.16); background:rgba(17,24,39,.82); color:#fff; font-size:25px; line-height:1; cursor:pointer; }
body.usip-modal-open { overflow:hidden; }
@keyframes usipPop { from { opacity:0; transform:translateY(10px) scale(.99); } to { opacity:1; transform:none; } }

.usip-context-popup .usip-consultation-card { max-height:calc(100vh - 48px); }
.usip-context-popup .usip-form-intro,
.usip-context-popup .usip-consultation-form { overflow:auto; }

@media (max-width: 780px) {
  .usip-consultation-card { grid-template-columns:1fr; border-radius:16px; }
  .usip-form-intro { padding:32px 24px; }
  .usip-consultation-form { padding:26px 22px 24px; }
  .usip-grid-2 { grid-template-columns:1fr; gap:0; }
  .usip-contact-mini { display:none; }
  .usip-modal { padding:12px; align-items:start; }
  .usip-context-popup .usip-consultation-card { max-height:none; }
  .usip-floating-dock { left:14px; bottom:16px; gap:7px; }
  .usip-floating-nudge { max-width:190px; padding:9px 12px 10px; border-radius:13px; }
  .usip-floating-button { min-height:46px; padding:6px 13px 6px 6px; font-size:12.5px; }
  .usip-floating-icon { width:32px; height:32px; flex-basis:32px; }
}

/* v1.4: compact, fully scrollable consultation modal */
.usip-modal.is-open {
  display:flex;
  align-items:center;
  justify-content:center;
}
.usip-modal-dialog {
  max-height:calc(100vh - 32px);
}
.usip-context-popup .usip-consultation-card {
  max-height:calc(100vh - 48px);
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
}
.usip-context-popup .usip-form-intro,
.usip-context-popup .usip-consultation-form {
  overflow:visible;
}
.usip-context-popup .usip-consultation-form {
  padding:28px 32px 24px;
}
.usip-context-popup .usip-grid {
  gap:14px;
}
.usip-context-popup .usip-field {
  margin-bottom:12px;
}
.usip-context-popup .usip-field label {
  margin-bottom:6px;
}
.usip-context-popup .usip-field input,
.usip-context-popup .usip-field select,
.usip-context-popup .usip-field textarea {
  padding:11px 13px;
}
.usip-context-popup .usip-field textarea {
  min-height:88px;
}
.usip-context-popup .usip-consent {
  margin:0 0 12px;
}
.usip-context-popup .usip-submit {
  padding:13px 18px;
}
.usip-context-popup .usip-disclaimer {
  margin-top:10px;
}

@media (max-height: 760px) and (min-width: 781px) {
  .usip-context-popup .usip-form-intro { padding:28px 28px; }
  .usip-context-popup .usip-form-intro h2 { font-size:34px; margin-bottom:12px; }
  .usip-context-popup .usip-form-intro p { font-size:14px; line-height:1.55; }
  .usip-context-popup .usip-contact-mini { margin-top:20px; gap:8px; }
  .usip-context-popup .usip-contact-mini span { padding:10px 0; }
}

@media (max-width: 780px) {
  .usip-modal.is-open { align-items:flex-start; }
  .usip-modal-dialog { max-height:none; }
  .usip-context-popup .usip-consultation-card { max-height:none; overflow:visible; }
  .usip-context-popup .usip-consultation-form { padding:24px 20px 22px; }
}


/* v1.6: official modal sizing, always-visible submit, clear internal scrolling */
.usip-modal {
  padding:20px;
}
.usip-modal.is-open {
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.usip-modal-dialog {
  width:min(1040px, 96vw);
  max-height:calc(100vh - 40px);
  margin:0 auto;
}
.usip-context-popup .usip-consultation-card {
  height:min(720px, calc(100vh - 40px));
  max-height:calc(100vh - 40px);
  overflow:hidden;
  grid-template-columns:minmax(300px,.82fr) minmax(0,1.18fr);
}
.usip-context-popup .usip-form-intro {
  overflow-y:auto;
  min-height:0;
}
.usip-context-popup .usip-consultation-form {
  overflow-y:scroll !important;
  min-height:0;
  padding:26px 30px 22px;
  scrollbar-width:auto;
  scrollbar-color:var(--usip-gold) #eef0f3;
}
.usip-context-popup .usip-consultation-form::-webkit-scrollbar {
  width:11px;
}
.usip-context-popup .usip-consultation-form::-webkit-scrollbar-track {
  background:#eef0f3;
  border-radius:10px;
}
.usip-context-popup .usip-consultation-form::-webkit-scrollbar-thumb {
  background:var(--usip-gold);
  border-radius:10px;
  border:2px solid #eef0f3;
}
.usip-context-popup .usip-submit {
  position:sticky;
  bottom:0;
  z-index:3;
  margin-top:4px;
  box-shadow:0 -10px 18px rgba(255,255,255,.94), 0 10px 24px rgba(184,147,86,.24);
}
.usip-context-popup .usip-field textarea {
  min-height:96px;
  max-height:150px;
}

@media (max-width:780px) {
  .usip-modal { padding:10px; overflow:auto; }
  .usip-modal.is-open { align-items:flex-start; overflow:auto; }
  .usip-modal-dialog { width:100%; max-height:none; }
  .usip-context-popup .usip-consultation-card {
    height:auto;
    max-height:none;
    overflow:visible;
    grid-template-columns:1fr;
  }
  .usip-context-popup .usip-form-intro { overflow:visible; }
  .usip-context-popup .usip-consultation-form {
    overflow:visible !important;
    padding:22px 18px 20px;
  }
  .usip-context-popup .usip-submit {
    position:static;
    box-shadow:0 10px 24px rgba(184,147,86,.24);
  }
}


.usip-contact-mini a {
    color: inherit;
    text-decoration: none;
}
.usip-contact-mini a:hover {
    text-decoration: underline;
}
