/*
Theme Name:  LienClean
Theme URI:   https://lienclean.com/
Description: Child theme of Astra for LienClean.com — Tampa municipal lien search service. Carries the LienClean design system (navy/gold civic-professional look) and all client-side form logic.
Author:      LienClean
Template:    astra
Version:     1.0.2
Text Domain: lienclean
*/

/* =========================================================
   LienClean Design System
   Brand feel: clean, official, civic-document trustworthy.
   ========================================================= */

:root {
  --lc-navy: #12294B;
  --lc-navy-deep: #0B1B33;
  --lc-gold: #C9A227;
  --lc-gold-dark: #A8861D;
  --lc-paper: #F7F5F0;
  --lc-white: #FFFFFF;
  --lc-ink: #1E2530;
  --lc-slate: #5A6472;
  --lc-line: #E3E0D8;
  --lc-success: #1E7B4F;
  --lc-warn: #B45309;
  --lc-error: #B3261E;
  --lc-radius: 10px;
  --lc-shadow: 0 2px 12px rgba(18, 41, 75, 0.08);
  --lc-shadow-lg: 0 8px 30px rgba(18, 41, 75, 0.14);
}

body {
  color: var(--lc-ink);
  font-size: 16px;
  line-height: 1.6;
}

/* Astra styles headings via `.entry-content :where(h1)` (specificity 0,1,0),
   so these must carry a class to win. */
body h1, body h2, body h3, body h4, body h5, body h6,
.entry-content h1, .entry-content h2, .entry-content h3,
.entry-content h4, .entry-content h5, .entry-content h6,
body .entry-title, body .entry-title a {
  font-family: "Libre Franklin", -apple-system, "Segoe UI", sans-serif;
  color: var(--lc-navy);
  font-weight: 700;
  line-height: 1.2;
}

h1 { font-size: clamp(2rem, 4vw + 0.5rem, 3.25rem); font-weight: 800; }
h2 { font-size: clamp(1.5rem, 2.5vw + 0.5rem, 2.25rem); }
h3 { font-size: clamp(1.2rem, 1.5vw + 0.5rem, 1.5rem); }

a { color: var(--lc-navy); }
a:hover { color: var(--lc-gold-dark); }

/* ---------- Layout helpers ---------- */

.lc-section { padding: 3.5rem 1.25rem; }
.lc-section--paper { background: var(--lc-paper); }
.lc-section--navy { background: var(--lc-navy-deep); color: #E8ECF3; }
.lc-section--navy h2, .lc-section--navy h3 { color: var(--lc-white) !important; }

/* Header CTA: the last primary-nav item rendered as the gold "Order" button */
.lc-nav-cta > a.menu-link,
.lc-nav-cta > a {
  background: var(--lc-gold);
  color: var(--lc-navy-deep) !important;
  border-radius: 6px;
  font-weight: 700;
  padding: 0.55rem 1.1rem !important;
  margin-left: 0.5rem;
}
.lc-nav-cta > a:hover { background: var(--lc-gold-dark); color: var(--lc-white) !important; }
.lc-wrap { max-width: 1100px; margin: 0 auto; }
.lc-wrap--narrow { max-width: 760px; margin: 0 auto; }
.lc-center { text-align: center; }
.lc-muted { color: var(--lc-slate); }
.lc-small { font-size: 0.875rem; }
.lc-fineprint { font-size: 0.8125rem; color: var(--lc-slate); margin-top: 0.75rem; }

.lc-grid { display: grid; gap: 1.5rem; }
@media (min-width: 768px) {
  .lc-grid--2 { grid-template-columns: 1fr 1fr; }
  .lc-grid--3 { grid-template-columns: repeat(3, 1fr); }
  .lc-grid--4 { grid-template-columns: repeat(4, 1fr); }
}
@media (min-width: 600px) and (max-width: 767px) {
  .lc-grid--4, .lc-grid--3 { grid-template-columns: 1fr 1fr; }
}

/* ---------- Buttons & badges ---------- */

.lc-btn {
  display: inline-block;
  padding: 0.9rem 1.8rem;
  border-radius: 6px;
  font-family: "Libre Franklin", sans-serif;
  font-weight: 700;
  font-size: 1.05rem;
  text-decoration: none;
  border: 2px solid transparent;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
.lc-btn--gold {
  background: var(--lc-gold);
  color: var(--lc-navy-deep) !important;
}
.lc-btn--gold:hover { background: var(--lc-gold-dark); color: var(--lc-white) !important; }
.lc-btn--navy {
  background: var(--lc-navy);
  color: var(--lc-white) !important;
}
.lc-btn--navy:hover { background: var(--lc-navy-deep); }
.lc-btn--outline {
  background: transparent;
  border-color: var(--lc-navy);
  color: var(--lc-navy) !important;
}
.lc-btn--outline:hover { background: var(--lc-navy); color: var(--lc-white) !important; }
.lc-btn[disabled] { opacity: 0.6; cursor: not-allowed; }

.lc-pill {
  display: inline-block;
  background: var(--lc-gold);
  color: var(--lc-navy-deep);
  font-family: "Libre Franklin", sans-serif;
  font-weight: 700;
  font-size: 0.8rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.35rem 0.9rem;
  border-radius: 999px;
}

.lc-badge-free {
  display: inline-block;
  background: var(--lc-gold);
  color: var(--lc-navy-deep);
  font-weight: 800;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  padding: 0.25rem 0.7rem;
  border-radius: 4px;
  text-transform: uppercase;
}

/* ---------- Cards ---------- */

.lc-card {
  background: var(--lc-white);
  border: 1px solid var(--lc-line);
  border-radius: var(--lc-radius);
  padding: 1.75rem;
  box-shadow: var(--lc-shadow);
}
.lc-card h3 { margin-top: 0; }
.lc-card--featured {
  border: 2px solid var(--lc-gold);
  box-shadow: var(--lc-shadow-lg);
  position: relative;
}
.lc-card--featured::before {
  content: "Most Popular";
  position: absolute;
  top: -0.8rem;
  left: 50%;
  transform: translateX(-50%);
  background: var(--lc-gold);
  color: var(--lc-navy-deep);
  font-family: "Libre Franklin", sans-serif;
  font-weight: 700;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.25rem 1rem;
  border-radius: 999px;
  white-space: nowrap;
}

.lc-price {
  font-family: "Libre Franklin", sans-serif;
  font-size: 2.5rem;
  font-weight: 800;
  color: var(--lc-navy);
  margin: 0.25rem 0;
}
.lc-price small { font-size: 1rem; font-weight: 600; color: var(--lc-slate); }

.lc-check-list { list-style: none; padding-left: 0; margin: 1rem 0; }
.lc-check-list li {
  padding-left: 1.75rem;
  position: relative;
  margin-bottom: 0.6rem;
}
.lc-check-list li::before {
  content: "";
  position: absolute;
  left: 0; top: 0.32em;
  width: 0.55em; height: 0.9em;
  border: solid var(--lc-success);
  border-width: 0 3px 3px 0;
  transform: rotate(45deg);
}
.lc-check-list--x li::before {
  border: none;
  content: "\2715";
  color: var(--lc-error);
  font-weight: 700;
  transform: none;
  top: 0;
}

/* ---------- Trust strip ---------- */

.lc-trust {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr 1fr;
  text-align: center;
}
@media (min-width: 900px) { .lc-trust { grid-template-columns: repeat(4, 1fr); } }
.lc-trust__item {
  font-family: "Libre Franklin", sans-serif;
  font-weight: 600;
  color: var(--lc-navy);
  font-size: 0.95rem;
  padding: 1rem 0.5rem;
}
.lc-trust__item svg { display: block; margin: 0 auto 0.5rem; }

/* ---------- Two-speed timeline ---------- */

.lc-timeline { display: grid; gap: 1.25rem; }
.lc-track {
  background: var(--lc-white);
  border: 1px solid var(--lc-line);
  border-radius: var(--lc-radius);
  padding: 1.25rem 1.5rem;
}
.lc-track__label {
  font-family: "Libre Franklin", sans-serif;
  font-weight: 700;
  color: var(--lc-navy);
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
}
.lc-track__bar {
  height: 12px;
  border-radius: 999px;
  background: var(--lc-line);
  margin: 0.9rem 0 0.5rem;
  overflow: hidden;
  position: relative;
}
.lc-track__bar span { display: block; height: 100%; border-radius: 999px; }
.lc-track--fast .lc-track__bar span { width: 18%; background: var(--lc-gold); }
.lc-track--slow .lc-track__bar span { width: 100%; background: var(--lc-navy); }
.lc-track__meta { font-size: 0.875rem; color: var(--lc-slate); }

/* ---------- Step cards ---------- */

.lc-steps { display: grid; gap: 1.5rem; counter-reset: lcstep; }
@media (min-width: 768px) { .lc-steps--3 { grid-template-columns: repeat(3, 1fr); } .lc-steps--5 { grid-template-columns: repeat(5, 1fr); } }
.lc-step {
  background: var(--lc-white);
  border: 1px solid var(--lc-line);
  border-radius: var(--lc-radius);
  padding: 1.5rem;
  counter-increment: lcstep;
}
.lc-step::before {
  content: counter(lcstep);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.2rem; height: 2.2rem;
  border-radius: 50%;
  background: var(--lc-navy);
  color: var(--lc-gold);
  font-family: "Libre Franklin", sans-serif;
  font-weight: 800;
  font-size: 1.1rem;
  margin-bottom: 0.75rem;
}
.lc-step h3 { font-size: 1.1rem; margin: 0 0 0.5rem; }
.lc-step p { font-size: 0.925rem; margin: 0; color: var(--lc-slate); }

/* ---------- Tables ---------- */

.lc-table-wrap { overflow-x: auto; }
.lc-table {
  width: 100%;
  border-collapse: collapse;
  background: var(--lc-white);
  border: 1px solid var(--lc-line);
  font-size: 0.95rem;
}
.lc-table th, .lc-table td {
  padding: 0.8rem 1rem;
  border-bottom: 1px solid var(--lc-line);
  text-align: left;
  vertical-align: top;
}
.lc-table thead th {
  background: var(--lc-navy);
  color: var(--lc-white);
  font-family: "Libre Franklin", sans-serif;
}
.lc-table .lc-yes { color: var(--lc-success); font-weight: 700; }
.lc-table .lc-no { color: var(--lc-error); font-weight: 700; }

/* ---------- FAQ accordion ---------- */

.lc-faq details {
  background: var(--lc-white);
  border: 1px solid var(--lc-line);
  border-radius: var(--lc-radius);
  margin-bottom: 0.75rem;
  padding: 0;
}
.lc-faq summary {
  cursor: pointer;
  font-family: "Libre Franklin", sans-serif;
  font-weight: 700;
  color: var(--lc-navy);
  padding: 1rem 1.25rem;
  list-style: none;
  position: relative;
  padding-right: 2.5rem;
}
.lc-faq summary::-webkit-details-marker { display: none; }
.lc-faq summary::after {
  content: "+";
  position: absolute;
  right: 1.25rem; top: 50%;
  transform: translateY(-50%);
  font-size: 1.4rem;
  color: var(--lc-gold-dark);
}
.lc-faq details[open] summary::after { content: "\2212"; }
.lc-faq details > div { padding: 0 1.25rem 1.25rem; }

/* ---------- Notices ---------- */

.lc-notice {
  border-radius: var(--lc-radius);
  padding: 1rem 1.25rem;
  margin: 1.25rem 0;
  border: 1px solid;
  font-size: 0.95rem;
}
.lc-notice--info { background: #EEF2F8; border-color: #C6D2E4; color: var(--lc-navy); }
.lc-notice--success { background: #EAF5EF; border-color: #BCDCCB; color: var(--lc-success); }
.lc-notice--error { background: #FBEAE9; border-color: #EBC0BD; color: var(--lc-error); }
.lc-notice--warn { background: #FBF3E8; border-color: #EBD4B3; color: var(--lc-warn); }

/* ---------- Forms ---------- */

.lc-form { max-width: 640px; }
.lc-form .lc-field { margin-bottom: 1.1rem; }
.lc-form label {
  display: block;
  font-family: "Libre Franklin", sans-serif;
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--lc-navy);
  margin-bottom: 0.3rem;
}
.lc-form input[type="text"],
.lc-form input[type="email"],
.lc-form input[type="tel"],
.lc-form input[type="date"],
.lc-form select,
.lc-form textarea {
  width: 100%;
  padding: 0.7rem 0.9rem;
  border: 1px solid var(--lc-line);
  border-radius: 6px;
  font-size: 1rem;
  background: var(--lc-white);
  color: var(--lc-ink);
}
.lc-form input:focus, .lc-form select:focus, .lc-form textarea:focus {
  outline: 2px solid var(--lc-gold);
  outline-offset: 1px;
  border-color: var(--lc-gold);
}
.lc-form input[readonly] { background: var(--lc-paper); color: var(--lc-slate); }
.lc-form .lc-field--error input, .lc-form .lc-field--error select { border-color: var(--lc-error); }
.lc-field__msg { display: none; color: var(--lc-error); font-size: 0.825rem; margin-top: 0.25rem; }
.lc-field--error .lc-field__msg { display: block; }
.lc-form .lc-checkbox { display: flex; gap: 0.6rem; align-items: flex-start; font-size: 0.9rem; }
.lc-form .lc-checkbox input { margin-top: 0.25rem; width: auto; }
.lc-hp { position: absolute !important; left: -9999px !important; height: 1px; overflow: hidden; }

.lc-spinner {
  display: inline-block;
  width: 1em; height: 1em;
  border: 2px solid rgba(255,255,255,0.4);
  border-top-color: currentColor;
  border-radius: 50%;
  animation: lc-spin 0.8s linear infinite;
  vertical-align: -0.15em;
  margin-right: 0.4em;
}
@keyframes lc-spin { to { transform: rotate(360deg); } }

/* ---------- Order page layout ---------- */

.lc-order-layout { display: grid; gap: 2rem; }
@media (min-width: 900px) {
  .lc-order-layout { grid-template-columns: 1fr 340px; align-items: start; }
  .lc-order-summary { position: sticky; top: 90px; }
}
.lc-tier-cards { display: grid; gap: 1rem; }
@media (min-width: 600px) { .lc-tier-cards { grid-template-columns: 1fr 1fr; } }
.lc-tier-card {
  border: 2px solid var(--lc-line);
  border-radius: var(--lc-radius);
  padding: 1.1rem;
  cursor: pointer;
  display: block;
  background: var(--lc-white);
}
.lc-tier-card input { margin-right: 0.5rem; }
.lc-tier-card--active { border-color: var(--lc-gold); box-shadow: var(--lc-shadow); }

/* ---------- Track page status ---------- */

.lc-status-steps { list-style: none; padding: 0; margin: 1rem 0; }
.lc-status-steps li {
  padding: 0.6rem 0 0.6rem 2.2rem;
  position: relative;
  color: var(--lc-slate);
  border-left: 2px solid var(--lc-line);
  margin-left: 0.7rem;
}
.lc-status-steps li::before {
  content: "";
  position: absolute;
  left: -0.55rem; top: 0.85rem;
  width: 0.9rem; height: 0.9rem;
  border-radius: 50%;
  background: var(--lc-line);
}
.lc-status-steps li.lc-done { color: var(--lc-ink); }
.lc-status-steps li.lc-done::before { background: var(--lc-success); }
.lc-status-steps li.lc-current { color: var(--lc-navy); font-weight: 700; }
.lc-status-steps li.lc-current::before { background: var(--lc-gold); }

/* ---------- Doc mock ---------- */

.lc-docmock {
  background: var(--lc-white);
  border: 1px solid var(--lc-line);
  border-top: 6px solid var(--lc-navy);
  border-radius: 6px;
  box-shadow: var(--lc-shadow-lg);
  padding: 1.5rem;
  font-size: 0.9rem;
}
.lc-docmock__line { height: 8px; background: var(--lc-paper); border-radius: 4px; margin: 0.5rem 0; }
.lc-docmock__line--gold { background: var(--lc-gold); width: 40%; }

/* ---------- Key takeaways box (articles) ---------- */

.lc-takeaways {
  background: var(--lc-paper);
  border-left: 4px solid var(--lc-gold);
  border-radius: 0 var(--lc-radius) var(--lc-radius) 0;
  padding: 1.25rem 1.5rem;
  margin: 1.5rem 0;
}
.lc-takeaways h2, .lc-takeaways h3 { margin-top: 0; font-size: 1.1rem; }

/* ---------- CTA band ---------- */

.lc-cta-band {
  background: var(--lc-navy-deep);
  border-radius: var(--lc-radius);
  padding: 2.5rem 1.5rem;
  text-align: center;
  color: #E8ECF3;
}
.lc-cta-band h2 { color: var(--lc-white) !important; margin-top: 0; }

/* ---------- Footer disclaimer ---------- */

.lc-footer-disclaimer {
  font-size: 0.8rem;
  color: var(--lc-slate);
  border-top: 1px solid var(--lc-line);
  padding-top: 1rem;
  margin-top: 1rem;
}

/* ---------- Misc ---------- */

.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 1rem; top: 1rem; background: var(--lc-white); padding: 0.5rem 1rem; z-index: 999; }

@media (max-width: 400px) {
  .lc-section { padding: 2.5rem 1rem; }
  .lc-btn { width: 100%; text-align: center; }
}
