/*
 * FindItTnT Real Estate Post-an-Ad Integration
 * Production CSS v3.2 - Pixel-Perfect Prototype Match
 *
 * Scoped strictly to body.fitt-is-real-estate
 */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');

:root {
  --navy: #0A2540;
  --gold: #F59E0B;
  --gold-hover: #D97706;
  --bg: #F7F5F1;
  --border: #D8E1E8;
  --text: #102A43;
  --muted: #637381;
  --soft: #F8F6F2;
  --white: #FFFFFF;
  --green: #1E7A4A;
  --danger: #A83A3A;
}

/* ── Hide native dropdown ONLY for Real Estate on Category Select Screen ── */
body.fitt-is-real-estate ul.select-category > li[data-type-key="property"] {
  display: none !important;
}

body.fitt-is-real-estate #next_step:not(.disabled) {
  background: var(--gold) !important;
  color: var(--navy) !important;
  border: none !important;
  font-weight: 850 !important;
  cursor: pointer !important;
}

/* ── HARD HIDE native "Post an Ad" page unpolished elements (keep site nav/header visible) ── */
body.fitt-is-real-estate #main_container > h1,
body.fitt-is-real-estate #controller_area > h1,
body.fitt-is-real-estate .main-wrapper > h1,
body.fitt-is-real-estate .content-padding > h1,
body.fitt-is-real-estate #category_container > h1,
body.fitt-is-real-estate .selected-category.submit-cell,
body.fitt-is-real-estate .selected-ad-type.submit-cell,
body.fitt-is-real-estate .selected-plan.submit-cell,
body.fitt-is-real-estate .rental-period-help,
body.fitt-is-real-estate .listing-form,
body.fitt-is-real-estate .fitt-native-title-hidden {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* ── Real Estate Global Font & Background ── */
html.fitt-is-real-estate,
body.fitt-is-real-estate,
body.fitt-is-real-estate * {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
}

html.fitt-is-real-estate,
body.fitt-is-real-estate {
  background: var(--bg) !important;
  color: var(--text) !important;
  min-height: 100% !important;
}

body.fitt-is-real-estate > div.main-wrapper {
  display: flex !important;
  flex-direction: column !important;
  min-height: 100vh !important;
}

body.fitt-is-real-estate div#wrapper {
  flex: 1 0 auto !important;
  margin-bottom: 0 !important;
}

body.fitt-is-real-estate section#main_container,
body.fitt-is-real-estate section#main_container > .inside-container,
body.fitt-is-real-estate section#content,
body.fitt-is-real-estate #controller_area {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

body.fitt-is-real-estate #category_container.selected {
  max-width: 1180px !important;
  margin: 0 auto !important;
  padding: 10px 22px 20px !important;
  background: transparent !important;
  color: var(--text) !important;
  border: none !important;
  box-shadow: none !important;
}

.wrap {
  max-width: 1180px;
  margin: auto;
  padding: 0;
  box-sizing: border-box;
}

/* ── Breadcrumbs & Headings ── */
.crumb {
  font-size: 13px !important;
  color: var(--muted) !important;
  margin-bottom: 16px !important;
}

.crumb span {
  color: var(--text) !important;
}

h1 {
  font-size: 32px !important;
  line-height: 1.1 !important;
  margin: 0 0 8px !important;
  color: var(--navy) !important;
  font-weight: 900 !important;
  display: block !important;
}

h2 {
  color: var(--navy) !important;
  margin: 0 0 12px !important;
  font-size: 20px !important;
  font-weight: 800 !important;
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
}

.sub {
  color: var(--muted) !important;
  margin: 0 0 22px !important;
  font-size: 15px !important;
}

/* ── Step Container & Number Badge ── */
.step {
  display: grid !important;
  grid-template-columns: 42px 1fr !important;
  gap: 14px !important;
  align-items: start !important;
  margin-bottom: 18px !important;
}

.num {
  width: 36px !important;
  height: 36px !important;
  border-radius: 50% !important;
  background: var(--navy) !important;
  color: #fff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-weight: 900 !important;
  font-size: 16px !important;
  flex-shrink: 0 !important;
  margin-top: 2px !important;
}

.panel {
  background: #fff !important;
  border: 1px solid var(--border) !important;
  border-radius: 15px !important;
  padding: 20px !important;
  box-shadow: 0 8px 28px rgba(10,37,64,.06) !important;
  box-sizing: border-box !important;
  position: relative !important;
}

/* ── Form Grid & Inputs ── */
.form-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 16px !important;
}

.span2 {
  grid-column: 1 / -1 !important;
}

.field {
  display: flex !important;
  flex-direction: column !important;
}

.field label {
  display: block !important;
  font-weight: 800 !important;
  font-size: 13px !important;
  margin-bottom: 6px !important;
  color: var(--navy) !important;
  text-align: left !important;
  width: 100% !important;
}

.field small {
  display: block !important;
  margin-top: 5px !important;
  color: var(--muted) !important;
  font-size: 11px !important;
}

input, select, textarea {
  width: 100% !important;
  border: 1px solid var(--border) !important;
  border-radius: 9px !important;
  padding: 11px 12px !important;
  background: #fff !important;
  color: var(--text) !important;
  font-size: 14px !important;
  box-sizing: border-box !important;
  transition: border-color .15s ease, box-shadow .15s ease !important;
}

input:focus, select:focus, textarea:focus {
  border-color: var(--gold) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(245,158,11,.12) !important;
}

input:disabled, select:disabled, textarea:disabled {
  background: #f3f5f7 !important;
  color: #8c99a5 !important;
  cursor: not-allowed !important;
  border-color: var(--border) !important;
}

textarea {
  min-height: 125px !important;
  resize: vertical !important;
}

/* ── Step 1: Category Segmented & Cards ── */
.mode-label, .section-label {
  font-weight: 800 !important;
  font-size: 13px !important;
  color: var(--navy) !important;
  margin: 4px 0 7px !important;
}

.segmented {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 10px !important;
  margin-bottom: 18px !important;
  width: 100% !important;
}

.seg {
  position: relative !important;
  width: 100% !important;
}

.seg input[type="radio"] {
  position: absolute !important;
  opacity: 0 !important;
  pointer-events: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.seg label {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 52px !important;
  width: 100% !important;
  border: 1px solid var(--border) !important;
  border-radius: 11px !important;
  background: #fff !important;
  color: var(--navy) !important;
  font-weight: 900 !important;
  font-size: 15px !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
  transition: border-color .16s ease, background .16s ease !important;
}

.seg label:hover {
  border-color: #B9C7D3 !important;
}

.seg input[type="radio"]:checked + label {
  border: 2px solid var(--gold) !important;
  background: #FFF8E7 !important;
  box-shadow: 0 0 0 3px rgba(245,158,11,.12) !important;
}

.class-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 10px !important;
  width: 100% !important;
}

.class-card {
  position: relative !important;
  width: 100% !important;
}

.class-card input[type="radio"] {
  position: absolute !important;
  opacity: 0 !important;
  pointer-events: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.class-card label {
  display: block !important;
  border: 1px solid var(--border) !important;
  border-radius: 12px !important;
  padding: 15px !important;
  background: #fff !important;
  cursor: pointer !important;
  min-height: 104px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  transition: border-color .16s ease, background .16s ease !important;
}

.class-card label b {
  display: block !important;
  color: var(--navy) !important;
  margin-bottom: 4px !important;
  font-size: 14px !important;
}

.class-card label small {
  color: var(--muted) !important;
  line-height: 1.35 !important;
  font-size: 12px !important;
  display: block !important;
}

.class-card input[type="radio"]:checked + label {
  border: 2px solid var(--gold) !important;
  background: #fffaf0 !important;
  box-shadow: 0 0 0 3px rgba(245,158,11,.10) !important;
}

.class-card.is-disabled label {
  opacity: .42 !important;
  cursor: not-allowed !important;
  background: #f5f6f7 !important;
}

.category-status {
  margin-top: 14px !important;
  padding: 11px 13px !important;
  border: 1px solid #d8e4ed !important;
  background: #f5f9fc !important;
  border-radius: 10px !important;
  color: #48657a !important;
  font-size: 12px !important;
}

.category-status strong {
  color: var(--navy) !important;
}

.secondary {
  display: flex !important;
  gap: 9px !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  margin-top: 14px !important;
  padding-top: 13px !important;
  border-top: 1px solid #eef1f4 !important;
}

.secondary span {
  font-size: 12px !important;
  color: var(--muted) !important;
}

.secondary button {
  background: transparent !important;
  color: var(--navy) !important;
  padding: 2px 0 !important;
  text-decoration: underline !important;
  font-size: 12px !important;
  border: none !important;
  cursor: pointer !important;
  font-weight: 800 !important;
}

/* ── Disabled Panel Overlay (Exact Prototype Match & Not-Allowed Cursor) ── */
.disabled-panel {
  opacity: .55 !important;
  cursor: not-allowed !important;
}

.disabled-panel * {
  cursor: not-allowed !important;
}

.disabled-panel .panel {
  position: relative !important;
}

.disabled-panel .panel:after {
  content: "Choose Sale or Rent and a property type first" !important;
  position: absolute !important;
  inset: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  padding: 20px !important;
  background: rgba(247,245,241,.85) !important;
  backdrop-filter: blur(1px) !important;
  border-radius: 15px !important;
  color: var(--navy) !important;
  font-weight: 900 !important;
  font-size: 16px !important;
  z-index: 10 !important;
  cursor: not-allowed !important;
}

/* ── Step 2: Location Map ── */
.map {
  height: 250px !important;
  border-radius: 13px !important;
  background: linear-gradient(145deg,#dcebd7,#cce0ef) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--navy) !important;
  font-weight: 900 !important;
  text-align: center !important;
  padding: 20px !important;
  border: 1px solid var(--border) !important;
  box-sizing: border-box !important;
}

/* ── Step 3: Rental Period & Preview Bar ── */
.rental-period-wrap {
  grid-column: 1 / -1 !important;
}

.rental-period-options {
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0,1fr)) !important;
  gap: 10px !important;
  margin-top: 6px !important;
}

.rental-period-option {
  position: relative !important;
}

.rental-period-option input[type="radio"] {
  position: absolute !important;
  opacity: 0 !important;
  pointer-events: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
}

.rental-period-option label {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 48px !important;
  padding: 10px 8px !important;
  border: 1px solid var(--border) !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: var(--navy) !important;
  font-weight: 800 !important;
  font-size: 13px !important;
  cursor: pointer !important;
  transition: border-color .16s ease, background .16s ease !important;
}

.rental-period-option input[type="radio"]:checked + label {
  border: 2px solid var(--gold) !important;
  background: #FFF8E7 !important;
  box-shadow: 0 0 0 3px rgba(245,158,11,.12) !important;
}

.previewbar {
  grid-column: 1 / -1 !important;
  background: var(--soft) !important;
  border: 1px solid #eee4d5 !important;
  border-radius: 10px !important;
  padding: 11px 12px !important;
  color: var(--muted) !important;
  font-size: 12px !important;
}

.previewbar strong {
  color: var(--navy) !important;
}

.context {
  grid-column: 1 / -1 !important;
  border-top: 1px solid var(--border) !important;
  padding-top: 16px !important;
  margin-top: 2px !important;
}

.context h3 {
  color: var(--navy) !important;
  margin: 0 0 12px !important;
  font-size: 17px !important;
  font-weight: 800 !important;
}

/* ── Step 4: Media Uploader ── */
.upload {
  border: 2px dashed #b9c7d2 !important;
  border-radius: 13px !important;
  padding: 30px !important;
  text-align: center !important;
  background: #fbfcfd !important;
}

.meta {
  color: var(--muted) !important;
  font-size: 13px !important;
  margin: 6px 0 14px !important;
}

/* ── Step 5: Review & Package Cards (Pixel-Perfect Prototype Match) ── */
.review {
  display: grid !important;
  grid-template-columns: 1.05fr .95fr !important;
  gap: 16px !important;
}

.summary {
  background: var(--soft) !important;
  border: 1px solid #eee4d5 !important;
  border-radius: 12px !important;
  padding: 14px !important;
}

.summary-row {
  display: flex !important;
  justify-content: space-between !important;
  gap: 16px !important;
  padding: 8px 0 !important;
  border-bottom: 1px solid #e8e2d8 !important;
  font-size: 13px !important;
}

.summary-row:last-child {
  border-bottom: 0 !important;
}

.summary-row span:first-child {
  color: var(--muted) !important;
}

.summary-row strong {
  text-align: right !important;
  color: var(--navy) !important;
}

.notice {
  padding: 12px 14px !important;
  border-radius: 11px !important;
  background: #eef5f9 !important;
  border: 1px solid #c9dce8 !important;
  color: #36566d !important;
  font-size: 12px !important;
  line-height: 1.45 !important;
}

.notice strong {
  color: var(--navy) !important;
}

/* ── 5-Column Package Cards Grid (1:1 Prototype Match & Reset) ── */
body.fitt-is-real-estate #fitt_post_wrap .plans,
#fitt_post_wrap .plans,
.plans {
  display: grid !important;
  grid-template-columns: repeat(5, 1fr) !important;
  gap: 10px !important;
  margin: 16px 0 0 0 !important;
  padding: 0 !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

body.fitt-is-real-estate #fitt_post_wrap .plans .plan,
#fitt_post_wrap .plans .plan,
#fitt_post_wrap .plan,
.plan {
  position: relative !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  border-radius: 12px !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
  transition: none !important;
  text-align: left !important;
  display: flex !important;
  flex-direction: column !important;
}

body.fitt-is-real-estate #fitt_post_wrap .plans .plan:hover,
#fitt_post_wrap .plans .plan:hover {
  transform: none !important;
  box-shadow: none !important;
  border: none !important;
}

body.fitt-is-real-estate #fitt_post_wrap .plans .plan input[type="radio"],
#fitt_post_wrap .plans .plan input,
.plan input[type="radio"] {
  position: absolute !important;
  opacity: 0 !important;
  pointer-events: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}

body.fitt-is-real-estate #fitt_post_wrap .plans .plan label,
#fitt_post_wrap .plans .plan label,
.plan label {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  align-items: flex-start !important;
  background: #ffffff !important;
  border: 1px solid var(--border, #D8E1E8) !important;
  border-radius: 12px !important;
  padding: 14px !important;
  cursor: pointer !important;
  height: 100% !important;
  min-height: 86px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  text-align: left !important;
  margin: 0 !important;
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease !important;
  position: relative !important;
}

body.fitt-is-real-estate #fitt_post_wrap .plans .plan label:hover,
#fitt_post_wrap .plans .plan label:hover {
  border-color: #B9C7D3 !important;
}

body.fitt-is-real-estate #fitt_post_wrap .plans .plan input[type="radio"]:checked + label,
#fitt_post_wrap .plans .plan input:checked + label,
.plan input[type="radio"]:checked + label {
  border: 2px solid var(--gold, #F59E0B) !important;
  background: #fffaf0 !important;
  box-shadow: 0 0 0 3px rgba(245,158,11,.10) !important;
}

body.fitt-is-real-estate #fitt_post_wrap .plans .plan .badge,
#fitt_post_wrap .plans .plan .badge,
#fitt_post_wrap .badge,
body.fitt-is-real-estate .badge,
.badge {
  display: inline-block !important;
  position: static !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  transform: none !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  letter-spacing: .03em !important;
  background: var(--gold, #F59E0B) !important;
  color: var(--navy, #0A2540) !important;
  padding: 3px 8px !important;
  border-radius: 999px !important;
  margin: 0 0 6px 0 !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
  width: auto !important;
  height: auto !important;
  box-shadow: none !important;
  border: none !important;
  align-self: flex-start !important;
}

body.fitt-is-real-estate #fitt_post_wrap .plans .plan .badge::before,
body.fitt-is-real-estate #fitt_post_wrap .plans .plan .badge::after,
#fitt_post_wrap .badge::before,
#fitt_post_wrap .badge::after,
body.fitt-is-real-estate .badge::before,
body.fitt-is-real-estate .badge::after,
.badge::before,
.badge::after {
  display: none !important;
  content: none !important;
  width: 0 !important;
  height: 0 !important;
}

body.fitt-is-real-estate #fitt_post_wrap .plans .plan b,
#fitt_post_wrap .plans .plan b,
.plan b {
  display: block !important;
  color: var(--navy, #0A2540) !important;
  margin: 0 0 4px 0 !important;
  padding: 0 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  text-align: left !important;
}

body.fitt-is-real-estate #fitt_post_wrap .plans .plan small,
#fitt_post_wrap .plans .plan small,
.plan small {
  color: var(--muted, #637381) !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: left !important;
}

.actions {
  display: flex !important;
  gap: 10px !important;
  justify-content: flex-end !important;
  flex-wrap: wrap !important;
  margin-top: 18px !important;
}

.ghost {
  background: #fff !important;
  border: 1px solid var(--border) !important;
  color: var(--navy) !important;
  border-radius: 9px !important;
  padding: 11px 20px !important;
  font-weight: 800 !important;
  font-size: 14px !important;
  cursor: pointer !important;
}

.gold {
  background: var(--gold) !important;
  color: var(--navy) !important;
  border: none !important;
  border-radius: 9px !important;
  padding: 12px 26px !important;
  font-weight: 850 !important;
  font-size: 15px !important;
  cursor: pointer !important;
  box-shadow: 0 4px 12px rgba(245,158,11,.25) !important;
  transition: background .15s ease, transform .15s ease !important;
}

.gold:hover {
  background: var(--gold-hover) !important;
  transform: translateY(-1px) !important;
}

.hidden {
  display: none !important;
}

/* ── Responsive Breakpoints ── */

/* Tablet / small laptop */
@media (max-width: 900px) {
  body.fitt-is-real-estate #category_container.selected {
    padding: 10px 16px 40px !important;
  }
  .wrap {
    padding: 0 !important;
  }
  .class-grid {
    grid-template-columns: 1fr 1fr !important;
  }
  .rental-period-options {
    grid-template-columns: repeat(3, 1fr) !important;
  }
  body.fitt-is-real-estate #fitt_post_wrap .plans,
  #fitt_post_wrap .plans,
  .plans {
    grid-template-columns: 1fr !important;
  }
  .review {
    grid-template-columns: 1fr !important;
  }
  /* Package cards become a vertical list (ONE per row) on mobile/tablet */
  body.fitt-is-real-estate #fitt_post_wrap .plans .plan label,
  #fitt_post_wrap .plans .plan label,
  .plan label {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 4px !important;
    height: auto !important;
    min-height: 52px !important;
    padding: 14px 16px !important;
  }
  body.fitt-is-real-estate #fitt_post_wrap .plans .plan b,
  #fitt_post_wrap .plans .plan b,
  .plan b {
    display: block !important;
    margin: 0 !important;
    font-size: 15px !important;
  }
  body.fitt-is-real-estate #fitt_post_wrap .plans .plan small,
  #fitt_post_wrap .plans .plan small,
  .plan small {
    display: block !important;
    margin: auto 0 0 0 !important;
    text-align: left !important;
    font-weight: 600 !important;
    font-size: 13px !important;
  }
  body.fitt-is-real-estate #fitt_post_wrap .plans .plan .badge,
  #fitt_post_wrap .plans .plan .badge,
  .badge {
    margin: 0 0 4px 0 !important;
  }
}

/* Large phones */
@media (max-width: 620px) {
  .form-grid, .class-grid, .plans {
    grid-template-columns: 1fr !important;
  }
  .span2 {
    grid-column: auto !important;
  }
  .rental-period-options {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .step {
    grid-template-columns: 30px 1fr !important;
    gap: 10px !important;
  }
  .num {
    width: 28px !important;
    height: 28px !important;
    font-size: 14px !important;
  }
  .panel {
    padding: 16px !important;
  }
  h1 {
    font-size: 26px !important;
  }
  .sub {
    font-size: 14px !important;
  }
  .actions {
    flex-direction: column-reverse !important;
    gap: 10px !important;
  }
  .ghost, .gold {
    width: 100% !important;
    text-align: center !important;
  }
  .summary-row {
    font-size: 12.5px !important;
  }
}

/* Small phones — make the whole post-ad flow truly full-screen */
@media (max-width: 420px) {
  body.fitt-is-real-estate #category_container.selected {
    padding: 8px 12px 36px !important;
  }
  .segmented {
    grid-template-columns: 1fr !important;
  }
  .rental-period-options {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .review {
    gap: 12px !important;
  }
  .plan label {
    min-height: 0 !important;
    padding: 12px !important;
  }
  .actions .ghost, .actions .gold {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  h1 {
    font-size: 23px !important;
  }
  .step {
    grid-template-columns: 26px 1fr !important;
  }
  .num {
    width: 24px !important;
    height: 24px !important;
    font-size: 13px !important;
  }
}
