/* Styles for things the original compiled Tailwind file doesn't cover. */
:root { --red: rgb(200 16 46); --ink: rgb(51 51 51); }
[hidden] { display: none !important; }
.mobile-menu-links { height: calc(100% - 113px); }

/* Long-form article text on landing pages and guides */
.article { color: var(--ink); font-size: 1.125rem; line-height: 1.8; }
.article > * + * { margin-top: 1.25rem; }
.article h2 { font-family: Montserrat, system-ui, sans-serif; font-weight: 700; color: #000; font-size: 1.75rem; line-height: 1.25; margin-top: 3rem; }
.article h3 { font-family: Montserrat, system-ui, sans-serif; font-weight: 600; color: #000; font-size: 1.3rem; line-height: 1.3; margin-top: 2rem; }
.article a { color: var(--red); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.article ul, .article ol { padding-left: 1.4rem; }
.article ul { list-style: disc; } .article ol { list-style: decimal; }
.article li + li { margin-top: .5rem; }
.article li::marker { color: var(--red); }
.article strong { color: #000; }
.article blockquote { border-left: 4px solid var(--red); padding: .25rem 0 .25rem 1.25rem; font-style: italic; }
.article table { width: 100%; border-collapse: collapse; font-size: 1rem; display: block; overflow-x: auto; }
.article th, .article td { border: 1px solid #e5e7eb; padding: .6rem .8rem; text-align: left; vertical-align: top; }
.article th { background: #111827; color: #fff; font-weight: 600; }
.article tr:nth-child(even) td { background: #f9fafb; }
@media (min-width: 768px) { .article h2 { font-size: 2rem; } }

/* Footer directory of every service / location / guide page */
.footer-directory { display: grid; gap: 2rem; margin-top: 3rem; padding-top: 2.5rem; border-top: 1px solid #1f2937; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
.footer-directory h2 { font-family: Montserrat, system-ui, sans-serif; font-weight: 600; font-size: 1rem; margin-bottom: .75rem; color: #fff; }
.footer-directory ul { display: grid; gap: .4rem; font-size: .875rem; }
.footer-directory a { color: #9ca3af; transition: color .15s; }
.footer-directory a:hover { color: var(--red); }

/* FAQ accordions (native <details>, no JavaScript needed) */
.faq details { border-bottom: 1px solid #e5e7eb; padding: 1.1rem 0; }
.faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 1rem; font-family: Montserrat, system-ui, sans-serif; font-weight: 600; font-size: 1.15rem; color: #000; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; color: var(--red); font-size: 1.5rem; line-height: 1; }
.faq details[open] summary::after { content: "\2212"; }
.faq details > div { margin-top: .75rem; color: var(--ink); line-height: 1.75; }

/* Breadcrumbs */
.crumbs { font-size: .875rem; color: #9ca3af; margin-bottom: 1.25rem; }
.crumbs a { color: #d1d5db; } .crumbs a:hover { color: #fff; }

/* Modals (welcome popup on desktop, homepage video) */
.ccc-modal { position: fixed; inset: 0; z-index: 60; display: flex; align-items: center; justify-content: center; background: rgba(0,0,0,.8); padding: 1rem; }
.ccc-modal-box { position: relative; background: #fff; border-radius: .75rem; max-width: 425px; width: 100%; padding: 2rem; box-shadow: 0 25px 50px -12px rgba(0,0,0,.4); }
.ccc-modal-video { max-width: 56rem; background: #000; padding: 0; overflow: hidden; }
.ccc-modal-close { position: absolute; top: .75rem; right: .75rem; width: 2rem; height: 2rem; border-radius: 9999px; color: #6b7280; font-size: 1.5rem; line-height: 1; }
.ccc-modal-video .ccc-modal-close { color: #fff; z-index: 1; }
.ccc-modal-close:hover { color: #000; background: #f3f4f6; }

/* Contact form status message */
.form-status { margin-top: 1rem; font-weight: 600; }
.form-status.ok { color: #15803d; } .form-status.err { color: var(--red); }

/* Utility classes the old compiled CSS didn't include */
.mt-10 { margin-top: 2.5rem; }
.text-gray-500 { color: rgb(107 114 128); }
@media (min-width: 768px) { .md\:py-20 { padding-top: 5rem; padding-bottom: 5rem; } }
.hover\:shadow-lg:hover { box-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1); }
@media (min-width: 768px) { .md\:text-3xl { font-size: 1.875rem; line-height: 2.25rem; } }
.align-top { vertical-align: top; }
.mb-14 { margin-bottom: 3.5rem; }
