/*
 * Raccoon Proposal — Frontend Popup Styles v1.2
 * Color scheme: #3D1BCC (purple) · #FFFFFF (white) · #CFF44A (lime)
 * No box-shadows anywhere. All selectors prefixed with #rp-overlay.
 */

@import url('https://fonts.googleapis.com/css2?family=Work+Sans:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400&display=swap');

/* ── Tokens ──────────────────────────────────────────────────────────────── */
:root {
  --rp-purple:  #3D1BCC;
  --rp-lime:    #CFF44A;
  --rp-white:   #FFFFFF;
  --rp-dark:    #111111;
  --rp-mid:     #666666;
  --rp-border:  #D5D5D5;
  --rp-error:   #cc2200;
  --rp-font:    'Work Sans', -apple-system, BlinkMacSystemFont, sans-serif;
}

/* ── Overlay ─────────────────────────────────────────────────────────────── */
#rp-overlay {
  position:        fixed;
  inset:           0;
  z-index:         999999;
  display:         flex;
  align-items:     center;
  justify-content: center;
  padding:         16px;
  background:      rgba(20, 8, 80, 0.78);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  opacity:         0;
  pointer-events:  none;
  transition:      opacity 0.28s ease;
  font-family:     var(--rp-font) !important;
}
#rp-overlay.rp-open {
  opacity:       1;
  pointer-events: all;
}

/* ── Modal — NO shadow ───────────────────────────────────────────────────── */
#rp-overlay .rp-modal {
  position:       relative;
  width:          100%;
  max-width:      580px;
  max-height:     92vh;
  background:     var(--rp-white);
  border-radius:  16px;
  border:         2px solid var(--rp-purple);
  display:        flex;
  flex-direction: column;
  overflow:       hidden;
  transform:      scale(0.96) translateY(12px);
  transition:     transform 0.3s cubic-bezier(0.34, 1.4, 0.64, 1);
}
#rp-overlay.rp-open .rp-modal {
  transform: scale(1) translateY(0);
}

/* ── Close Button — explicit purple so Elementor can't override ──────────── */
#rp-overlay .rp-close-btn {
  position:        absolute;
  top:             14px;
  right:           14px;
  z-index:         10;
  width:           34px;
  height:          34px;
  display:         flex;
  align-items:     center;
  justify-content: center;
  background:      var(--rp-white);
  border:          2px solid var(--rp-purple);
  border-radius:   50%;
  cursor:          pointer;
  transition:      background 0.2s, transform 0.3s;
  padding:         0;
  line-height:     1;
}
#rp-overlay .rp-close-btn:hover {
  background:  var(--rp-purple);
  transform:   rotate(90deg);
}
/* Flip SVG stroke to white on hover */
#rp-overlay .rp-close-btn:hover line {
  stroke: #fff !important;
}

/* ── Modal Body (scrollable) ─────────────────────────────────────────────── */
#rp-overlay .rp-modal-body {
  flex:       1;
  overflow-y: auto;
  padding:    20px 24px 16px;
  scrollbar-width: thin;
  scrollbar-color: #E0E0E0 transparent;
}
#rp-overlay .rp-modal-body::-webkit-scrollbar { 
  width: 3px;
}
#rp-overlay .rp-modal-body::-webkit-scrollbar-track {
  background: transparent;
}
#rp-overlay .rp-modal-body::-webkit-scrollbar-thumb {
  background: #E0E0E0;
  border-radius: 99px;
}

/* ── Heading — centre aligned ────────────────────────────────────────────── */
#rp-overlay .rp-modal-heading {
  text-align:    center;
  margin-bottom: 24px;
  display:       flex;
  flex-direction: column;
  align-items:   center;
  padding:       0 10px;
}
/* Lime eyebrow pill */
#rp-overlay .rp-eyebrow {
  display:        inline-block;
  font-size:      10px;
  font-weight:    700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color:          var(--rp-purple);
  background:     var(--rp-lime);
  padding:        3px 10px;
  border-radius:  99px;
  margin-bottom:  10px;
}
#rp-overlay .rp-modal-h1 {
  font-size:      26px;
  font-weight:    800;
  color:          var(--rp-dark);
  line-height:    1.2;
  margin:         0 0 6px;
  letter-spacing: -0.02em;
  white-space:    normal;   /* wraps on small screens */
  word-break:     break-word;
}
#rp-overlay .rp-modal-h1 em {
  font-style: normal;
  color:      var(--rp-purple);
}
#rp-overlay .rp-modal-subtitle {
  font-size:   13px;
  color:       var(--rp-mid);
  margin:      0;
  line-height: 1.5;
}

/* ── Progress Bar — 2px thin, solid purple ───────────────────────────────── */
#rp-overlay .rp-progress {
  display:       flex;
  gap:           5px;
  margin-bottom: 5px;
}
#rp-overlay .rp-progress-bar {
  flex:          1;
  height:        2px;
  border-radius: 99px;
  background:    #E0E0E0;
  transition:    background 0.3s ease;
}
#rp-overlay .rp-progress-bar.active {
  background: var(--rp-purple) !important;
}
#rp-overlay .rp-step-label {
  font-size:      11px;
  font-weight:    600;
  color:          var(--rp-purple);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom:  20px;
}

/* ── Steps ───────────────────────────────────────────────────────────────── */
#rp-overlay .rp-step        { display: none; }
#rp-overlay .rp-step.active { display: block; animation: rpSlide 0.25s ease both; }
@keyframes rpSlide {
  from { opacity: 0; transform: translateX(10px); }
  to   { opacity: 1; transform: translateX(0); }
}

/* ── Field Groups ────────────────────────────────────────────────────────── */
#rp-overlay .rp-field-group { margin-bottom: 14px; }
#rp-overlay .rp-label {
  display:        block;
  font-size:      11px;
  font-weight:    700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color:          var(--rp-dark);
  margin-bottom:  7px;
}
#rp-overlay .rp-req {
  color: var(--rp-error);
  margin-left: 3px;
}
#rp-overlay .rp-optional {
  color: var(--rp-mid);
  font-weight: 400;
  font-size: 11px;
  margin-left: 4px;
}

/* ── Custom Dropdown Multi-Select (Step 1) ──────────────────────────────── */
#rp-overlay .rp-dropdown {
  position: relative;
  width: 100%;
}
#rp-overlay .rp-dropdown-header {
  border: 1.5px solid var(--rp-border);
  padding: 9px 13px;
  border-radius: 7px;
  background: var(--rp-white);
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 13px;
  user-select: none;
}
#rp-overlay .rp-dropdown-header:focus {
  border-color: var(--rp-purple);
  outline: none;
}
#rp-overlay .rp-dropdown-placeholder {
  color: var(--rp-mid);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding-right: 10px;
}
#rp-overlay .rp-dropdown-arrow {
  width: 0;
  height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 5px solid var(--rp-mid);
  transition: transform 0.2s;
}
#rp-overlay .rp-dropdown.open .rp-dropdown-arrow {
  transform: rotate(180deg);
}
#rp-overlay .rp-dropdown-options {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  background: var(--rp-white);
  border: 1.5px solid var(--rp-purple);
  border-radius: 7px;
  max-height: 200px;
  overflow-y: auto;
  z-index: 20;
  display: none;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  -ms-overflow-style: none;
  scrollbar-width: none;
}
#rp-overlay .rp-dropdown-options::-webkit-scrollbar {
  display: none;
}
#rp-overlay .rp-dropdown.open .rp-dropdown-options {
  display: block;
}
#rp-overlay .rp-dropdown-option {
  display: flex;
  align-items: center;
  padding: 8px 13px;
  cursor: pointer;
  transition: background 0.15s;
}
#rp-overlay .rp-dropdown-option:hover {
  background: #f7f7f7;
}
#rp-overlay .rp-dropdown-option input[type="checkbox"],
#rp-overlay .rp-dropdown-option input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
#rp-overlay .rp-checkbox-custom,
#rp-overlay .rp-radio-custom {
  width: 16px;
  height: 16px;
  border: 1.5px solid var(--rp-border);
  border-radius: 4px;
  margin-right: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.2s, border-color 0.2s;
}
#rp-overlay .rp-dropdown-option input[type="checkbox"]:checked + .rp-checkbox-custom {
  background: var(--rp-purple);
  border-color: var(--rp-purple);
}
#rp-overlay .rp-dropdown-option input[type="checkbox"]:checked + .rp-checkbox-custom::after {
  content: '';
  width: 4px;
  height: 8px;
  border: solid white;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
  margin-bottom: 2px;
}
/* Radio specific */
#rp-overlay .rp-radio-custom {
  border-radius: 50%;
}
#rp-overlay .rp-dropdown-option input[type="radio"]:checked + .rp-radio-custom {
  background: var(--rp-purple);
  border-color: var(--rp-purple);
  position: relative;
}
#rp-overlay .rp-dropdown-option input[type="radio"]:checked + .rp-radio-custom::after {
  content: '';
  position: absolute;
  width: 6px;
  height: 6px;
  background: white;
  border-radius: 50%;
}
#rp-overlay .rp-option-text {
  font-size: 13px;
  color: var(--rp-dark);
}

/* ── Selects & Inputs — override Elementor, NO shadow ───────────────────── */
#rp-overlay .rp-input,
#rp-overlay .rp-select {
  all:                unset !important;
  box-sizing:         border-box !important;
  display:            block !important;
  width:              100% !important;
  padding:            9px 13px !important;
  border:             1.5px solid var(--rp-border) !important;
  border-radius:      7px !important;
  font-family:        var(--rp-font) !important;
  font-size:          13px !important;
  font-weight:        400 !important;
  color:              var(--rp-dark) !important;
  background:         var(--rp-white) !important;
  outline:            none !important;
  -webkit-appearance: none !important;
  appearance:         none !important;
  transition:         border-color 0.2s !important;
  box-shadow:         none !important;
}
#rp-overlay .rp-input:focus,
#rp-overlay .rp-select:focus {
  border-color: var(--rp-purple) !important;
  box-shadow:   none !important;
  outline:      none !important;
}
#rp-overlay .rp-input::placeholder { color: #bbb !important; }

/* Chevron arrow for selects */
#rp-overlay .rp-select {
  background-image:    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233D1BCC' stroke-width='2.5' stroke-linecap='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
  background-repeat:   no-repeat !important;
  background-position: right 10px center !important;
  background-size:     14px !important;
  padding-right:       36px !important;
  cursor:              pointer !important;
}

/* ── Name Row ────────────────────────────────────────────────────────────── */
#rp-overlay .rp-name-row {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   12px;
}
#rp-overlay .rp-name-col    { display: flex; flex-direction: column; gap: 4px; }
#rp-overlay .rp-input-hint  {
  font-size:   11px !important;
  color:       var(--rp-mid) !important;
  font-family: var(--rp-font) !important;
}

/* ── Phone Row ───────────────────────────────────────────────────────────── */
#rp-overlay .rp-phone-row {
  display:               grid;
  grid-template-columns: 130px 1fr;
  gap:                   10px;
}

/* ── Error Messages ──────────────────────────────────────────────────────── */
#rp-overlay .rp-error {
  font-size:   12px !important;
  color:       var(--rp-error) !important;
  margin-top:  5px !important;
  min-height:  16px !important;
  font-family: var(--rp-font) !important;
}

/* ── Button Row ──────────────────────────────────────────────────────────── */
#rp-overlay .rp-btn-row {
  display:         flex;
  align-items:     center;
  justify-content: flex-end;
  gap:             8px;
  margin-top:      16px;
  padding-top:     14px;
  border-top:      1.5px solid var(--rp-border);
}

/* Primary — purple bg, white text. Hover → lime bg, purple text. NO shadow */
#rp-overlay .rp-btn-primary {
  all:           unset !important;
  box-sizing:    border-box !important;
  display:       inline-flex !important;
  align-items:   center !important;
  gap:           6px !important;
  padding:       9px 20px !important;
  background:    var(--rp-purple) !important;
  color:         var(--rp-white) !important;
  border:        2px solid var(--rp-purple) !important;
  border-radius: 7px !important;
  font-family:   var(--rp-font) !important;
  font-size:     13px !important;
  font-weight:   700 !important;
  cursor:        pointer !important;
  transition:    background 0.2s, color 0.2s, border-color 0.2s !important;
  line-height:   1 !important;
  box-shadow:    none !important;
}
#rp-overlay .rp-btn-primary:hover:not([disabled]) {
  background:   var(--rp-lime) !important;
  color:        var(--rp-purple) !important;
  border-color: var(--rp-lime) !important;
}
#rp-overlay .rp-btn-primary[disabled] {
  opacity: 0.5 !important;
  cursor:  not-allowed !important;
}

/* Secondary — white bg, purple border. Hover → purple fill */
#rp-overlay .rp-btn-secondary {
  all:           unset !important;
  box-sizing:    border-box !important;
  display:       inline-flex !important;
  align-items:   center !important;
  gap:           6px !important;
  padding:       9px 20px !important;
  background:    var(--rp-white) !important;
  color:         var(--rp-purple) !important;
  border:        2px solid var(--rp-purple) !important;
  border-radius: 7px !important;
  font-family:   var(--rp-font) !important;
  font-size:     13px !important;
  font-weight:   600 !important;
  cursor:        pointer !important;
  transition:    background 0.2s, color 0.2s !important;
  line-height:   1 !important;
  box-shadow:    none !important;
}
#rp-overlay .rp-btn-secondary:hover {
  background: var(--rp-purple) !important;
  color:      var(--rp-white) !important;
}

/* Shortcode trigger button */
.rp-trigger-btn {
  display:        inline-flex;
  align-items:    center;
  padding:        12px 26px;
  background:     var(--rp-purple);
  color:          var(--rp-white);
  border:         2px solid var(--rp-purple);
  border-radius:  8px;
  font-family:    var(--rp-font);
  font-size:      15px;
  font-weight:    700;
  cursor:         pointer;
  transition:     background 0.2s, color 0.2s;
  text-decoration: none;
  box-shadow:     none;
}
.rp-trigger-btn:hover {
  background: var(--rp-lime);
  color:      var(--rp-purple);
  border-color: var(--rp-lime);
}

/* ── Success Screen ──────────────────────────────────────────────────────── */
#rp-overlay .rp-success           { text-align: center; }
#rp-overlay .rp-success-inner     { padding: 20px 16px 12px; }
#rp-overlay .rp-success-checkmark {
  width:   64px;
  height:  64px;
  margin:  0 auto 18px;
  animation: rpPop 0.5s cubic-bezier(0.34,1.56,0.64,1) both;
}
#rp-overlay .rp-success-checkmark svg { width: 100%; height: 100%; }
@keyframes rpPop {
  from { transform: scale(0); opacity: 0; }
  to   { transform: scale(1); opacity: 1; }
}
#rp-overlay .rp-success-heading {
  font-size:   22px;
  font-weight: 800;
  color:       var(--rp-dark);
  margin:      0 0 10px;
}
#rp-overlay .rp-success-text {
  font-size:   14px;
  color:       var(--rp-mid);
  line-height: 1.6;
  max-width:   360px;
  margin:      0 auto 22px;
}
#rp-overlay .rp-success-close { margin: 0 auto !important; }

/* ── Footer — 1/3 Image Left, 2/3 Purple Right ──────────────────────────── */
#rp-overlay .rp-modal-footer {
  display:     flex;
  background:  transparent;
  overflow:    hidden;
  flex-shrink: 0;
  align-items: stretch;
}
#rp-overlay .rp-footer-img-left {
  width:       auto;
  max-width:   45%;
  flex-shrink: 0;
  display:     flex;
  align-items: flex-end; /* keeps the raccoon grounded */
  background:  transparent;
}
#rp-overlay .rp-footer-img-left img.rp-mascot {
  width:       auto;
  max-width:   100%;
  height:      auto;
  max-height:  135px; 
  object-fit:  contain; 
  object-position: left bottom; /* sticks to the left and bottom edges */
  display:     block;
  margin:      0; 
}
#rp-overlay .rp-footer-content {
  flex:        1;
  background:  var(--rp-purple);
  padding:     14px 24px 14px;
  display:     flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
}
#rp-overlay .rp-footer-content  { flex: 1; min-width: 0; }
#rp-overlay .rp-footer-heading  {
  font-family: var(--rp-font) !important;
  font-size:   15px !important;
  font-weight: 700 !important;
  color:       var(--rp-white) !important;
  margin:      0 0 12px !important;
}
#rp-overlay .rp-footer-icons {
  display:  flex;
  gap:      10px;
  flex-wrap: nowrap;
  width:     100%;
  justify-content: space-between;
}
#rp-overlay .rp-footer-icon-item {
  display:        flex;
  flex-direction: column;
  align-items:    center;
  gap:            5px;
  flex:           1;
  min-width:      0;
}
/* Lime circle icons */
#rp-overlay .rp-footer-icon-wrap {
  width:           38px;
  height:          38px;
  border-radius:   50%;
  background:      var(--rp-lime);
  border:          none;
  display:         flex;
  align-items:     center;
  justify-content: center;
  color:           var(--rp-purple);
  transition:      transform 0.2s;
}
#rp-overlay .rp-footer-icon-wrap:hover { transform: scale(1.08); }
#rp-overlay .rp-footer-icon-wrap svg   { width: 17px; height: 17px; }
#rp-overlay .rp-footer-icon-item span  {
  font-family:  var(--rp-font) !important;
  font-size:    10px !important;
  font-weight:  500 !important;
  color:        rgba(255,255,255,0.75) !important;
  text-align:   center !important;
  white-space:  normal !important;
  line-height:  1.3 !important;
}

/* ── Mobile ──────────────────────────────────────────────────────────────── */
@media (max-width: 600px) {
  #rp-overlay { padding: 0; align-items: flex-end; }
  #rp-overlay .rp-modal {
    max-width:     100%;
    max-height:    96vh;
    border-radius: 16px 16px 0 0;
    border-bottom: none;
    transform:     translateY(16px);
  }
  #rp-overlay.rp-open .rp-modal { transform: translateY(0); }

  #rp-overlay .rp-modal-body   { padding: 22px 18px 18px; }
  #rp-overlay .rp-modal-footer { padding: 0; }
  #rp-overlay .rp-modal-h1     { font-size: 22px !important; }

  #rp-overlay .rp-footer-img-left { width: auto; max-width: 40%; }
  #rp-overlay .rp-footer-content  { padding: 12px 14px 12px 10px; }
  #rp-overlay .rp-footer-heading  { font-size: 12px !important; margin: 0 0 8px !important; }
  #rp-overlay .rp-footer-icons    { gap: 4px; }
  #rp-overlay .rp-footer-icon-wrap { width: 26px; height: 26px; }
  #rp-overlay .rp-footer-icon-wrap svg { width: 12px; height: 12px; }
  #rp-overlay .rp-footer-icon-item span { font-size: 8px !important; }

  #rp-overlay .rp-name-row     { grid-template-columns: 1fr; }
  #rp-overlay .rp-phone-row    { grid-template-columns: 110px 1fr; }

  #rp-overlay .rp-btn-row      { flex-direction: column-reverse; }
  #rp-overlay .rp-btn-primary,
  #rp-overlay .rp-btn-secondary { width: 100% !important; justify-content: center !important; }
}
