/* ==========================================================================
   CMS pages (/{slug}) — service pages and other editor-authored content.
   Loaded via main.css (@import) so it is available site-wide. 2026-08-27.
   ========================================================================== */

.cms-page {
    padding: calc(var(--header-height, 120px) + var(--space-xl, 48px)) var(--space-lg, 24px) var(--space-xl, 48px);
    background-color: var(--color-secondary, #fafafa);
}
.cms-page__inner {
    max-width: 860px;
    margin: 0 auto;
}
.cms-page__draft-banner {
    background: #fff4d6;
    border: 1px solid #e0b64a;
    color: #5a4200;
    padding: 10px 14px;
    border-radius: 6px;
    margin-bottom: var(--space-lg, 24px);
    font-weight: 500;
}
.cms-page__breadcrumb {
    font-size: 0.9rem;
    color: #5a5a5a;
    margin-bottom: var(--space-md, 16px);
}
.cms-page__breadcrumb a { color: var(--color-primary, #003a25); text-decoration: none; }
.cms-page__breadcrumb a:hover { text-decoration: underline; }
.cms-page__title {
    font-family: var(--font-heading, inherit);
    font-weight: 500;
    font-size: clamp(1.9rem, 3.2vw, 2.6rem);
    line-height: 1.15;
    color: var(--color-primary, #003a25);
    margin: 0 0 var(--space-lg, 24px);
}
.cms-page__body {
    font-size: 1.0625rem;
    line-height: 1.7;
    color: #222;
}
.cms-page__body h2 {
    font-size: 1.5rem;
    font-weight: 500;
    color: var(--color-primary, #003a25);
    margin: var(--space-xl, 48px) 0 var(--space-sm, 8px);
}
.cms-page__body h3 {
    font-size: 1.2rem;
    font-weight: 500;
    margin: var(--space-lg, 24px) 0 var(--space-xs, 4px);
}
.cms-page__body p, .cms-page__body ul, .cms-page__body ol { margin: 0 0 1em; }
.cms-page__body ul, .cms-page__body ol { padding-left: 1.4em; }
.cms-page__body ul { list-style: disc; }     /* base.css resets list-style globally */
.cms-page__body ol { list-style: decimal; }
.cms-page__body li { margin-bottom: 0.35em; }
.cms-page__body a { color: var(--color-link, #2ea3f2); }
.cms-page__body blockquote {
    border-left: 4px solid var(--color-primary, #003a25);
    margin: 1.5em 0;
    padding: 0.5em 1em;
    background: #fff;
}
.cms-page__body table { border-collapse: collapse; width: 100%; margin: 1em 0; }
.cms-page__body th, .cms-page__body td { border: 1px solid #ddd; padding: 8px 10px; text-align: left; }
.cms-page__body th { background: #eef3f0; }
.cms-page__body img { max-width: 100%; height: auto; }

.cms-page__cta {
    margin-top: var(--space-xl, 48px);
    padding: var(--space-lg, 24px);
    background: var(--color-primary, #003a25);
    color: #fff;
    border-radius: 8px;
}
.cms-page__cta-heading { color: #fff; font-size: 1.35rem; font-weight: 500; margin: 0 0 var(--space-xs, 4px); }
.cms-page__cta p { margin: 0 0 var(--space-sm, 8px); }
.cms-page__cta-actions { display: flex; flex-wrap: wrap; gap: var(--space-md, 16px); align-items: center; margin-top: var(--space-md, 16px); }
.cms-page__cta .btn { background: #fff; color: var(--color-primary, #003a25); }
.cms-page__cta-phone { color: #fff; font-weight: 600; text-decoration: none; }
.cms-page__cta-phone:hover { text-decoration: underline; }

/* Footer service links (rendered only when published pages exist) */
.site-footer__services { list-style: none; margin: 0; padding: 0; }
.site-footer__services li { margin: 0 0 6px; }
.site-footer__services a { color: inherit; text-decoration: none; }
.site-footer__services a:hover { text-decoration: underline; }

@media (max-width: 768px) {
    .cms-page { padding-left: var(--space-md, 16px); padding-right: var(--space-md, 16px); }
    .cms-page__body { font-size: 1rem; }
}

/* Home service tiles → service pages (links appear only once the page is published) */
.services-detail__heading-link { color: inherit; text-decoration: none; }
.services-detail__heading-link:hover { text-decoration: underline; }
.services-detail__more { margin-top: 0.75em; }
.services-detail__more a { color: inherit; font-weight: 600; text-decoration: none; border-bottom: 1px solid currentColor; }
.services-detail__more a:hover { opacity: 0.85; }
