
.btn { align-items: center; border-radius: var(--radius-sm); display: inline-flex; font-family: var(--font-ui); font-size: 0.75rem; font-weight: 700; justify-content: center; letter-spacing: var(--tracking-wider); line-height: 1; min-height: 44px; padding: 15px 28px; text-decoration: none; text-transform: uppercase; transition: background var(--transition-base), border-color var(--transition-base), color var(--transition-base), transform var(--transition-fast), box-shadow var(--transition-base); }
.btn:hover { transform: translateY(-2px); }
.btn-primary { background: var(--color-caramel); border: 1px solid var(--color-caramel); color: var(--color-ivory); }
.btn-primary:hover { background: var(--color-walnut); border-color: var(--color-walnut); color: var(--color-ivory); box-shadow: var(--shadow-md); }
.btn-secondary { background: transparent; border: 1px solid var(--color-caramel); color: var(--color-caramel); }
.btn-secondary:hover { background: var(--color-caramel); color: var(--color-ivory); }
.btn-ghost { background: transparent; border: 1px solid rgba(245, 236, 217, 0.42); color: var(--color-parchment); }
.btn-ghost:hover { border-color: var(--color-tan); color: var(--color-tan); }
.btn-lg { min-height: 50px; padding: 17px 34px; }
.btn-full { width: 100%; }
.service-card, .testimonial-card, .resource-card, .values-grid article, .process-grid article, .practice-area-item { background: var(--color-ivory); border: 1px solid var(--color-sand); border-radius: var(--radius-md); padding: var(--space-8); transition: transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base); }
.service-card:hover, .resource-card:hover, .practice-area-item:hover { border-color: var(--color-tan); box-shadow: var(--shadow-lg); transform: translateY(-4px); }
.service-card-link, .city-card-link { color: inherit; display: block; height: 100%; text-decoration: none; }
.service-card-icon { align-items: center; background: var(--color-parchment); border-radius: var(--radius-pill); color: var(--color-caramel); display: inline-flex; height: 52px; justify-content: center; margin-bottom: var(--space-5); width: 52px; }
.service-card-title { color: var(--color-walnut); font-family: var(--font-display); font-size: 1.35rem; font-weight: 400; margin-bottom: var(--space-3); }
.service-card-desc { font-size: 0.93rem; margin-bottom: var(--space-5); }
.service-card-cta { color: var(--color-caramel); font-family: var(--font-ui); font-size: 0.72rem; font-weight: 700; letter-spacing: var(--tracking-wider); text-transform: uppercase; }
.city-card { background: var(--color-parchment); border-left: 3px solid var(--color-caramel); border-radius: var(--radius-md); padding: var(--space-6); transition: background var(--transition-base), transform var(--transition-base), box-shadow var(--transition-base); }
.city-card:hover { background: var(--color-ivory); box-shadow: var(--shadow-md); transform: translateX(4px); }
.city-card-label { color: var(--color-caramel); font-family: var(--font-ui); font-size: 0.72rem; letter-spacing: var(--tracking-wide); margin: 0 0 var(--space-2); text-transform: uppercase; }
.city-card-name { color: var(--color-walnut); font-family: var(--font-display); font-size: 1.5rem; font-weight: 400; }
.city-card-services { font-size: 0.9rem; margin: var(--space-2) 0 0; }
.image-panel { border: 1px solid var(--color-sand); border-radius: var(--radius-md); overflow: hidden; box-shadow: var(--shadow-lg); }
.image-panel img { aspect-ratio: 16 / 9; height: 100%; object-fit: cover; width: 100%; }
.faq-item { border-bottom: 1px solid rgba(139, 94, 60, 0.24); }
.faq-question { align-items: center; color: var(--color-walnut); cursor: pointer; display: flex; font-family: var(--font-ui); font-weight: 600; justify-content: space-between; list-style: none; padding: var(--space-5) 0; }
.faq-question::-webkit-details-marker { display: none; }
.faq-icon::before { color: var(--color-caramel); content: '+'; font-size: 1.3rem; }
.faq-item[open] .faq-icon::before { content: '-'; }
.faq-answer { padding-bottom: var(--space-5); }
.contact-form { background: var(--color-parchment); border: 1px solid rgba(196, 154, 108, 0.34); border-radius: var(--radius-md); box-shadow: var(--shadow-xl); padding: var(--space-8); }
.form-row { display: grid; gap: var(--space-5); grid-template-columns: 1fr 1fr; }
.form-group { margin-bottom: var(--space-5); }
.form-label { color: var(--color-walnut); display: block; font-family: var(--font-ui); font-size: 0.74rem; font-weight: 700; letter-spacing: var(--tracking-wider); margin-bottom: var(--space-2); text-transform: uppercase; }
.form-input { background: var(--color-ivory); border: 1px solid var(--color-sand); border-radius: var(--radius-sm); color: var(--color-walnut); min-height: 46px; padding: 13px 14px; width: 100%; }
.form-textarea { min-height: 140px; resize: vertical; }
.form-input:focus { border-color: var(--color-caramel); box-shadow: 0 0 0 3px rgba(139, 94, 60, 0.12); outline: none; }
.form-input.is-invalid { border-color: #8B2D1E; }
.form-error { color: #8B2D1E; display: block; font-family: var(--font-ui); font-size: 0.78rem; margin-top: var(--space-2); min-height: 1rem; }
.form-status { background: rgba(139, 45, 30, 0.08); border-left: 3px solid #8B2D1E; color: #8B2D1E; font-family: var(--font-ui); font-size: 0.88rem; line-height: 1.5; margin: var(--space-4) 0; padding: var(--space-3) var(--space-4); }
.form-honeypot { height: 0; left: -10000px; overflow: hidden; position: absolute; top: auto; width: 1px; }
.form-disclaimer, .contact-alt { font-family: var(--font-ui); font-size: 0.85rem; line-height: 1.6; }
.contact-alt { color: rgba(245, 236, 217, 0.72); margin-top: var(--space-6); text-align: center; }
.contact-phone { color: var(--color-tan); display: inline-block; font-family: var(--font-display); font-size: 1.75rem; margin: var(--space-2) 0; text-decoration: none; }
.form-success { background: var(--color-parchment); border-left: 4px solid var(--color-caramel); color: var(--color-walnut); margin-top: var(--space-6); padding: var(--space-5); }
.check-list { background: var(--color-ivory); border: 1px solid var(--color-sand); border-radius: var(--radius-md); list-style: none; padding: var(--space-8); }
.check-list li { border-bottom: 1px solid rgba(139, 94, 60, 0.15); padding: var(--space-4) 0; }
.check-list li:last-child { border-bottom: 0; }
.check-list li::before { color: var(--color-caramel); content: '\\2713'; font-family: var(--font-ui); font-weight: 700; margin-right: var(--space-3); }
.service-city-links, .neighborhood-grid { display: grid; gap: var(--space-4); grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); list-style: none; }
.service-city-links li, .neighborhood-item { background: var(--color-parchment); border: 1px solid var(--color-sand); border-radius: var(--radius-md); padding: var(--space-4); }
.service-city-links h3 { font-size: 1rem; }
.practice-areas-list { display: grid; gap: var(--space-5); grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.practice-area-title { margin-bottom: var(--space-3); }
.map-container { border: 1px solid var(--color-sand); border-radius: var(--radius-md); overflow: hidden; box-shadow: var(--shadow-md); }
.map-container iframe { border: 0; display: block; }
.contact-info-list { background: var(--color-parchment); border-left: 3px solid var(--color-caramel); padding: var(--space-6); }
@media (max-width: 700px) {
  .form-row { grid-template-columns: 1fr; gap: 0; }
  .contact-form { padding: var(--space-5); }
}
