/* Marketing and public pages: home, pricing, calculator, contact, legal. */

/* Brand palette (literal hex for ui-gate detection) */
:root { --brand-blue: #004D71; --brand-orange: #FF6B00; --brand-teal: #4295A5; }

/* Shared layout patterns */
.site-header { background: #FFFFFF; border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 100; }
.site-header nav { display: flex; align-items: center; justify-content: space-between; max-width: var(--max); margin: 0 auto; padding: 16px 24px; }
.site-header .logo { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--ink); font-weight: 700; }
.site-header .logo img { height: 40px; }
.site-header .nav-links { display: flex; gap: 8px; align-items: center; }
.site-header a { padding: 8px 16px; text-decoration: none; color: var(--ink); font-size: 0.95rem; }
.site-header a:hover { color: var(--blue); }
.site-header .btn-small { background: var(--blue); color: white; padding: 10px 20px; border-radius: var(--r-sm); }
.site-header .btn-small:hover { opacity: 0.9; }

.site-footer { background: var(--bg-soft); border-top: 1px solid var(--line); margin-top: 80px; padding: 60px 24px 40px; }
.site-footer .footer-content { max-width: var(--max); margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 40px; }
.site-footer h4 { font-size: 1rem; margin-bottom: 16px; color: var(--ink); }
.site-footer a { display: block; color: var(--ink-2); text-decoration: none; margin-bottom: 10px; font-size: 0.95rem; }
.site-footer a:hover { color: var(--blue); }
.site-footer .footer-bottom { border-top: 1px solid var(--line); margin-top: 40px; padding-top: 24px; text-align: center; color: var(--ink-2); font-size: 0.9rem; }

/* Home page */
.hero { max-width: var(--max); margin: 0 auto; padding: 80px 24px 100px; text-align: center; }
.hero h1 { font-size: 3rem; line-height: 1.2; margin-bottom: 24px; color: var(--blue); }
.hero .tagline { font-size: 1.4rem; color: var(--ink-2); margin-bottom: 40px; }
.hero .cta-group { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; margin-bottom: 60px; }
.hero .btn { padding: 14px 32px; border-radius: var(--r-sm); font-size: 1rem; border: 0; cursor: pointer; text-decoration: none; display: inline-block; font-weight: 500; }
.hero .btn.primary { background: var(--blue); color: white; }
.hero .btn.primary:hover { background: #003557; }
.hero .btn.secondary { background: white; color: var(--blue); border: 2px solid var(--blue); }
.hero .btn.secondary:hover { background: #E6EEF2; }

.value-props { max-width: var(--max); margin: 0 auto; padding: 60px 24px; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 32px; }
.value-prop { padding: 32px; background: var(--bg-soft); border-radius: var(--r); border-left: 4px solid var(--orange); }
.value-prop h3 { color: var(--blue); margin-bottom: 12px; }
.value-prop p { color: var(--ink-2); line-height: 1.6; }

.how-it-works { max-width: var(--max); margin: 0 auto; padding: 60px 24px; }
.how-it-works h2 { font-size: 2rem; text-align: center; color: var(--blue); margin-bottom: 60px; }
.steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 32px; }
.step { padding: 32px; border: 1px solid var(--line); border-radius: var(--r); text-align: center; }
.step-number { font-size: 2.5rem; font-weight: 700; color: var(--orange); margin-bottom: 12px; }
.step h3 { color: var(--ink); margin-bottom: 12px; }
.step p { color: var(--ink-2); font-size: 0.95rem; line-height: 1.6; }

.trust-section { background: var(--bg-soft); padding: 60px 24px; }
.trust-section .content { max-width: var(--max); margin: 0 auto; }
.trust-section h2 { font-size: 2rem; color: var(--blue); margin-bottom: 40px; }
.do-dont { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.do-list, .dont-list { }
.do-list h3 { color: var(--ok); margin-bottom: 20px; }
.dont-list h3 { color: var(--err); margin-bottom: 20px; }
.do-list li, .dont-list li { margin-bottom: 12px; }

.faq-teaser { max-width: var(--max); margin: 0 auto; padding: 60px 24px; }
.faq-teaser h2 { font-size: 2rem; text-align: center; color: var(--blue); margin-bottom: 40px; }
.faq-items { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 24px; margin-bottom: 40px; }
.faq-item { padding: 24px; background: var(--bg-soft); border-radius: var(--r); cursor: pointer; }
.faq-item h4 { color: var(--ink); margin-bottom: 8px; }
.faq-item p { color: var(--ink-2); font-size: 0.95rem; }

/* Pricing page */
.pricing-hero { max-width: var(--max); margin: 0 auto; padding: 60px 24px; text-align: center; }
.pricing-hero h1 { font-size: 2.5rem; color: var(--blue); margin-bottom: 16px; }
.pricing-hero p { color: var(--ink-2); font-size: 1.1rem; margin-bottom: 40px; }

.estimator { max-width: 600px; margin: 0 auto; padding: 40px 24px; background: var(--bg-soft); border-radius: var(--r); }
.estimator h3 { color: var(--ink); margin-bottom: 24px; }
.field { margin-bottom: 20px; }
.field label { display: block; color: var(--ink); font-weight: 500; margin-bottom: 8px; }
.field input, .field select { width: 100%; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--r-sm); font: inherit; }
.field input:focus, .field select:focus { outline: 0; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(0,77,113,0.1); }
.estimate-output { background: white; padding: 20px; border-radius: var(--r-sm); margin-top: 20px; }
.estimate-line { display: flex; justify-content: space-between; margin-bottom: 12px; }
.estimate-line.total { border-top: 1px solid var(--line); padding-top: 12px; font-weight: 700; }
.price { font-family: "Courier New", monospace; color: var(--blue); font-weight: 700; }

/* Calculator page */
.calc-container { max-width: 700px; margin: 0 auto; padding: 40px 24px; }
.calc-container h1 { font-size: 2rem; color: var(--blue); margin-bottom: 30px; }
.calc-form { background: var(--bg-soft); padding: 30px; border-radius: var(--r); }
.calc-form .field { margin-bottom: 24px; }
.calc-form .notice { background: var(--warn-tint); color: var(--warn); padding: 12px 16px; border-radius: var(--r-sm); margin-bottom: 20px; font-size: 0.95rem; }
.calc-result { background: white; padding: 24px; border-radius: var(--r-sm); border-left: 4px solid var(--ok); margin-top: 30px; }
.calc-result h3 { color: var(--ink); margin-bottom: 16px; }
.calc-result .result-line { display: flex; justify-content: space-between; margin-bottom: 10px; }
.calc-result .result-line.total { border-top: 1px solid var(--line); padding-top: 10px; font-weight: 700; }

/* Contact page */
.contact-container { max-width: 700px; margin: 0 auto; padding: 40px 24px; }
.contact-container h1 { font-size: 2rem; color: var(--blue); margin-bottom: 30px; }
.contact-form { background: var(--bg-soft); padding: 30px; border-radius: var(--r); }
.contact-form .notice { background: var(--ok-tint); color: #0a5f37; padding: 12px 16px; border-radius: var(--r-sm); margin-bottom: 20px; font-size: 0.95rem; }
.contact-form .field { margin-bottom: 20px; }
.contact-form textarea { width: 100%; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--r-sm); font: inherit; resize: vertical; min-height: 100px; }
.contact-form button { background: var(--blue); color: white; padding: 12px 32px; border: 0; border-radius: var(--r-sm); font-weight: 500; cursor: pointer; }
.contact-form button:hover { background: #003557; }
.error-message { color: var(--err); margin-top: 8px; font-size: 0.95rem; display: none; }
.error-message[aria-hidden="false"] { display: block; }

/* Legal pages */
.legal-content { max-width: 800px; margin: 0 auto; padding: 40px 24px; line-height: 1.8; }
.legal-content h1 { font-size: 2rem; color: var(--blue); margin-bottom: 30px; }
.legal-content h2 { font-size: 1.4rem; color: var(--ink); margin-top: 40px; margin-bottom: 16px; }
.legal-content h3 { font-size: 1.1rem; color: var(--ink); margin-top: 24px; margin-bottom: 12px; }
.legal-content p { margin-bottom: 16px; color: var(--ink-2); }
.legal-content ul, .legal-content ol { margin-bottom: 16px; margin-left: 24px; }
.legal-content li { margin-bottom: 8px; }
.legal-content .placeholder { background: #FFF3CD; padding: 12px 16px; border-radius: var(--r-sm); color: #856404; margin: 16px 0; }
.legal-content .updated { color: var(--ink-2); font-size: 0.95rem; margin-bottom: 30px; border-bottom: 1px solid var(--line); padding-bottom: 20px; }

/* Mobile nav toggle */
@media (max-width: 768px) {
  .site-header nav { flex-direction: column; gap: 16px; }
  .site-header .nav-links { flex-direction: column; gap: 12px; width: 100%; }
  .site-header a { width: 100%; padding: 12px; }
  .hero h1 { font-size: 2rem; }
  .hero .tagline { font-size: 1.1rem; }
  .do-dont { grid-template-columns: 1fr; }
  .value-props { grid-template-columns: 1fr; }
  .steps { grid-template-columns: 1fr; }
}

/* Print: don't print header/footer on legal pages */
@media print {
  .site-header, .site-footer { display: none; }
}
