/* =========================================================
   Franchise Query
   File: /assets/css/franchise-query.css
   ========================================================= */

.fr.page-hero{
  background:#fff;
  color:#111827;
  padding-top: calc(var(--site-header-offset, 110px) + 34px);
  padding-bottom: 18px;
}

.fr.page-section{
  background:#fff;
  color:#111827;
  padding: 18px 0 70px;
}

/* Hero */
.fr-hero{ max-width: 70ch; }
.fr-kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#111827;
  opacity:.92;
  margin: 0 0 10px;
}
.fr-kickerIco{
  width:28px; height:28px;
  border-radius:12px;
  border:1px solid rgba(250,57,74,.22);
  background: rgba(250,57,74,.10);
  display:grid; place-items:center;
}
.fr-title{
  margin:0 0 10px;
  font-size:36px;
  line-height:1.12;
  letter-spacing:-0.02em;
}
.fr-lead{
  margin:0;
  font-size:14px;
  line-height:1.75;
  color:#4b5563;
}

/* Layout */
.fr-wrap{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 18px;
  align-items:start;
  margin-top: 18px;
}

.fr-card{
  border:1px solid rgba(15,23,42,.10);
  border-radius: 22px;
  box-shadow: 0 16px 46px rgba(15,23,42,.08);
  background:#fff;
  padding: 16px;
}

/* Sections */
.fr-sectionHead h2{
  margin: 0 0 6px;
  font-size: 16px;
  font-weight: 900;
}
.fr-sectionHead p{
  margin: 0;
  font-size: 13px;
  color:#64748b;
  line-height: 1.6;
}
.fr-divider{
  height:1px;
  background: rgba(15,23,42,.10);
  opacity:.65;
  margin: 14px 0;
}

/* Form grid */
.fr-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 12px;
}
.fr-field--wide{ grid-column: 1 / -1; }

.fr-field label{
  display:block;
  font-size: 12px;
  font-weight: 800;
  color:#111827;
  margin-bottom: 6px;
}
.fr-field input,
.fr-field select,
.fr-field textarea{
  width:100%;
  border-radius: 14px;
  border:1px solid rgba(15,23,42,.14);
  background:#fff;
  padding: 11px 12px;
  font-size: 14px;
  outline: none;
}
.fr-field textarea{ resize: vertical; min-height: 110px; }
.fr-field input:focus,
.fr-field select:focus,
.fr-field textarea:focus{
  border-color: rgba(250,57,74,.35);
  box-shadow: 0 0 0 4px rgba(250,57,74,.10);
}

/* Checkbox */
.fr-check{
  display:flex;
  gap:10px;
  align-items:flex-start;
  margin-top: 10px;
  padding: 12px;
  border-radius: 14px;
  border:1px solid rgba(15,23,42,.10);
  background: rgba(2,6,23,.02);
}
.fr-check input{ margin-top: 3px; }
.fr-check span{
  font-size: 13px;
  color:#111827;
  line-height: 1.5;
  font-weight: 700;
}

/* Buttons */
.fr-actions{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.fr-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 10px;
  height: 42px;
  padding: 0 16px;
  border-radius: 999px;
  font-weight: 900;
  font-size: 13px;
  text-decoration:none;
  border: 1px solid transparent;
}
.fr-btn--primary{
  background: linear-gradient(135deg, #ff445e, #ff6a2a);
  color:#fff;
  box-shadow: 0 16px 38px rgba(250,57,74,.22);
}
.fr-btn--primary:hover{ filter: brightness(.98); }
.fr-btn--ghost{
  background:#fff;
  border-color: rgba(15,23,42,.14);
  color:#111827;
}
.fr-btn--ghost:hover{ background:#f9fafb; }

.fr-footnote{
  margin: 10px 0 0;
  font-size: 12px;
  color:#64748b;
}

/* Side card */
.fr-sideCard{
  border:1px solid rgba(15,23,42,.10);
  border-radius: 22px;
  box-shadow: 0 16px 46px rgba(15,23,42,.08);
  background:#fff;
  overflow:hidden;
  position: sticky;
  top: calc(var(--site-header-offset, 110px) + 18px);
}
.fr-sideHead{
  padding: 14px;
  border-bottom: 1px solid rgba(15,23,42,.08);
}
.fr-sideHead b{ display:block; font-size: 14px; font-weight: 900; }
.fr-sideHead span{ display:block; margin-top:2px; font-size: 12px; font-weight: 700; color:#64748b; }
.fr-sideBody{ padding: 14px; }

.fr-point{
  display:flex;
  gap: 10px;
  align-items:flex-start;
  padding: 12px;
  border-radius: 18px;
  border:1px solid rgba(15,23,42,.10);
  background: rgba(2,6,23,.02);
  margin-bottom: 10px;
}
.fr-ico{ width: 28px; display:inline-flex; justify-content:center; }
.fr-point b{ display:block; font-size: 13px; font-weight: 900; margin-bottom: 4px; }
.fr-point p{ margin:0; font-size: 13px; line-height: 1.6; color:#4b5563; }

.fr-sideCta{
  display:inline-flex;
  width: 100%;
  justify-content:center;
  align-items:center;
  gap: 10px;
  height: 44px;
  border-radius: 999px;
  background: rgba(250,57,74,.10);
  border: 1px solid rgba(250,57,74,.25);
  color:#111827;
  font-weight: 900;
  text-decoration:none;
}
.fr-sideCta:hover{ filter: brightness(.98); }

/* Alerts */
.fr-alert{
  padding:14px 18px;
  border-radius:14px;
  font-size:14px;
  font-weight:600;
  margin-bottom:14px;
  border:1px solid transparent;
}
.fr-alert--success{
  background: rgba(34,197,94,.08);
  border-color: rgba(34,197,94,.25);
  color:#166534;
}
.fr-alert--error{
  background: rgba(239,68,68,.08);
  border-color: rgba(239,68,68,.25);
  color:#991b1b;
}

.fr-inlineSuccess,
.fr-inlineError{
  margin-top:12px;
  padding:12px 16px;
  border-radius:12px;
  font-size:14px;
  font-weight:600;
  line-height:1.5;
  animation: frFadeIn .35s ease;
}
.fr-inlineSuccess{
  background: linear-gradient(135deg, rgba(34,197,94,.08), rgba(16,185,129,.05));
  border:1px solid rgba(34,197,94,.25);
  color:#166534;
}
.fr-inlineError{
  background: linear-gradient(135deg, rgba(239,68,68,.08), rgba(220,38,38,.05));
  border:1px solid rgba(239,68,68,.25);
  color:#991b1b;
}
@keyframes frFadeIn{
  from{ opacity:0; transform: translateY(6px); }
  to{ opacity:1; transform: translateY(0); }
}

/* Responsive */
@media (max-width: 980px){
  .fr-wrap{ grid-template-columns: 1fr; }
  .fr-sideCard{ position: static; }
}
@media (max-width: 560px){
  .fr-title{ font-size: 28px; }
  .fr-grid{ grid-template-columns: 1fr; }
  .fr-actions .fr-btn{ width: 100%; }
}