/* Christian Faith Press theme additions (header CTA fallback, blog, notices). */
.navbar-sp .cfp-mega-trigger { cursor: pointer; }
.cfp-notice { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 12000; background: var(--secondary-color); color: #fff; padding: 12px 22px; border-radius: 50px; font-size: 14px; box-shadow: 0 6px 20px #0003; }
.cfp-notice--error { background: #b42318; }
.mob-menu-sp .mob-menu-close { font-size: 26px; line-height: 1; color: var(--secondary-color); }
.partner-section-content-wrap ul li img { flex: 0 0 auto; }
.cfp-html-section { width: 100%; }

/* ------------------------------------------------------------------ blog */
.cfp-blog-sp { padding-block: 70px; }
.cfp-blog-intro { max-width: 760px; margin: 0 auto 40px; }
.cfp-blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
@media (max-width: 991px) { .cfp-blog-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575px) { .cfp-blog-grid { grid-template-columns: 1fr; } }
.cfp-blog-card { background: #fff; border-radius: var(--border-radius-blog-img); box-shadow: 0 9px 25px #0000000f; overflow: hidden; display: flex; flex-direction: column; transition: transform .25s ease, box-shadow .25s ease; }
.cfp-blog-card:hover { transform: translateY(-4px); box-shadow: 0 14px 30px #0000001a; }
.cfp-blog-card-img { display: block; aspect-ratio: 16/10; background: var(--third-color); overflow: hidden; }
.cfp-blog-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.cfp-blog-card:hover .cfp-blog-card-img img { transform: scale(1.04); }
.cfp-blog-card-body { padding: 22px 22px 26px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.cfp-blog-meta { font-size: 13px; color: var(--paragraph-color); display: flex; flex-wrap: wrap; gap: 6px 14px; }
.cfp-blog-meta a { color: var(--primary-color); text-decoration: none; font-weight: 500; }
.cfp-blog-card-title { font-size: 20px; font-weight: 600; letter-spacing: var(--blog-letter-spacing); line-height: 1.3; }
.cfp-blog-card-title a { color: var(--secondary-color); text-decoration: none; }
.cfp-blog-card-title a:hover { color: var(--primary-color); }
.cfp-blog-card-excerpt { font-size: 14px; line-height: 22px; color: var(--paragraph-color); }
.cfp-blog-readmore { margin-top: auto; align-self: flex-start; padding: 9px 22px; border-radius: var(--border-radius-blog-btn); background: var(--primary-color); color: #fff; font-size: 14px; text-decoration: none; }
.cfp-blog-readmore:hover { background: var(--secondary-color); color: #fff; }
.cfp-blog-empty { text-align: center; padding: 40px 0; color: var(--paragraph-color); }
.cfp-pagination { display: flex; justify-content: center; gap: 8px; margin-top: 48px; flex-wrap: wrap; }
.cfp-pagination a, .cfp-pagination span { min-width: 42px; height: 42px; padding: 0 14px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50px; border: 1px solid var(--input-border-color); color: var(--secondary-color); text-decoration: none; font-size: 14px; }
.cfp-pagination .active { background: var(--primary-color); border-color: var(--primary-color); color: #fff; }
.cfp-pagination .disabled { opacity: .45; }

.cfp-post-sp { padding-block: 60px 70px; }
.cfp-post-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 48px; align-items: start; }
@media (max-width: 991px) { .cfp-post-layout { grid-template-columns: 1fr; } }
.cfp-post-hero-img { border-radius: var(--border-radius-blog-img); overflow: hidden; margin-bottom: 28px; }
.cfp-post-hero-img img { width: 100%; height: auto; display: block; }
.cfp-post-meta { margin-bottom: 18px; }
.cfp-post-content { font-size: 17px; line-height: 1.75; color: #333; }
.cfp-post-content h2 { font-size: 28px; font-weight: 700; margin: 36px 0 14px; letter-spacing: -.02em; }
.cfp-post-content h3 { font-size: 22px; font-weight: 600; margin: 28px 0 12px; }
.cfp-post-content p { margin-bottom: 18px !important; }
.cfp-post-content img { max-width: 100%; height: auto; border-radius: var(--border-radius-blog-img); }
.cfp-post-content a { color: var(--primary-color); }
.cfp-post-content blockquote { border-left: 4px solid var(--primary-color); background: var(--third-color); padding: 18px 22px; border-radius: 0 8px 8px 0; margin: 24px 0; font-style: italic; }
.cfp-post-content ul, .cfp-post-content ol { padding-left: 22px; margin-bottom: 18px; }
.cfp-post-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 30px; }
.cfp-post-tags a, .cfp-chip { padding: 6px 16px; border-radius: 50px; background: var(--third-color); color: var(--secondary-color); text-decoration: none; font-size: 13px; }
.cfp-post-tags a:hover { background: var(--primary-color); color: #fff; }
.cfp-post-nav { display: flex; justify-content: space-between; gap: 20px; margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--input-border-color); }
.cfp-post-nav a { color: var(--secondary-color); text-decoration: none; font-weight: 500; max-width: 48%; }
.cfp-post-nav a small { display: block; color: var(--primary-color); font-weight: 400; }
.cfp-post-share { display: flex; align-items: center; gap: 10px; margin-top: 26px; font-size: 14px; }
.cfp-post-share a { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--input-border-color); display: inline-flex; align-items: center; justify-content: center; color: var(--secondary-color); text-decoration: none; }
.cfp-post-share a:hover { background: var(--primary-color); border-color: var(--primary-color); color: #fff; }
.cfp-sidebar { position: sticky; top: 120px; display: flex; flex-direction: column; gap: 26px; }
.cfp-widget { background: var(--third-color); border-radius: 12px; padding: 24px; }
.cfp-widget-title { font-size: 19px; font-weight: 600; margin-bottom: 16px !important; }
.cfp-widget ul { list-style: none; padding: 0; margin: 0; }
.cfp-widget li + li { margin-top: 12px; }
.cfp-widget li a { color: var(--secondary-color); text-decoration: none; font-size: 14px; }
.cfp-widget li a:hover { color: var(--primary-color); }
.cfp-recent { display: flex; gap: 12px; align-items: center; }
.cfp-recent img { width: 64px; height: 64px; object-fit: cover; border-radius: 8px; flex: 0 0 64px; }
.cfp-recent small { display: block; color: var(--paragraph-color); font-size: 12px; }
.cfp-widget-cta { background: var(--secondary-color); color: #fff; text-align: center; }
.cfp-widget-cta p { font-size: 14px; opacity: .85; margin: 8px 0 18px !important; }
.cfp-widget-cta .cta { display: inline-block; padding: 12px 26px; background: var(--primary-color); }
.cfp-search { display: flex; gap: 8px; }
.cfp-search input { flex: 1; border: 1px solid var(--input-border-color); border-radius: 50px; padding: 10px 16px; font-size: 14px; }
.cfp-search button { border: 0; border-radius: 50px; background: var(--primary-color); color: #fff; padding: 0 18px; }
.cfp-related { margin-top: 56px; }
.cfp-related .cfp-blog-grid { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 575px) { .cfp-related .cfp-blog-grid { grid-template-columns: 1fr; } }

/* Inline lead forms: inputs have an intrinsic minimum width, which made the 1fr tracks
   overflow the pill-shaped form and push the Submit button off the (overflow:hidden)
   right edge. minmax(0,1fr) + min-width:0 lets the inputs shrink so the button stays visible. */
@media (min-width: 769px) {
    .service-hero-section-form { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) 152.76px; }
    .service-hero-section-form input { min-width: 0; width: 100%; }
    .service-hero-section-form button { min-width: 0; white-space: nowrap; }
    .contect-form-section-sp .contect-form-section-wrap form { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) 220px; }
    .contect-form-section-sp .contect-form-section-wrap form input { min-width: 0; }
}

/* Cookie notice */
.cfp-cookie-banner { position: fixed; left: 16px; right: 16px; bottom: 16px; max-width: 760px; margin-inline: auto; z-index: 13000; background: var(--secondary-color, #222733); color: #fff; border-radius: 12px; padding: 14px 18px; display: flex; gap: 16px; align-items: center; justify-content: space-between; box-shadow: 0 6px 24px rgba(0,0,0,.3); font-size: 13px; line-height: 1.5; }
.cfp-cookie-banner[hidden] { display: none; }
.cfp-cookie-banner p { margin: 0 !important; }
.cfp-cookie-banner a { color: var(--primary-color, #f68f3d); text-decoration: underline; }
.cfp-cookie-actions { display: flex; gap: 8px; flex-shrink: 0; }
.cfp-cookie-btn { border: 1px solid var(--primary-color, #f68f3d); border-radius: 50px; padding: 8px 18px; font-size: 13px; font-weight: 600; cursor: pointer; }
.cfp-cookie-accept { background: var(--primary-color, #f68f3d); color: #fff; }
.cfp-cookie-decline { background: transparent; color: #fff; }
.cfp-cookie-settings { background: none; border: 0; padding: 0; color: #fff; font-size: 14px; text-decoration: underline; cursor: pointer; }
@media (max-width: 600px) { .cfp-cookie-banner { flex-direction: column; align-items: stretch; text-align: center; } .cfp-cookie-actions { justify-content: center; } }

/* FAQ accordion (native <details>, no JS) */
.cfp-faq-sp { padding-block: 60px; background: var(--third-color, #f8f3ed); }
.cfp-faq-intro { max-width: 760px; margin-top: 10px; }
.cfp-faq-list { max-width: 860px; margin: 30px auto 0; display: flex; flex-direction: column; gap: 12px; }
.cfp-faq-item { background: #fff; border-radius: 10px; box-shadow: 0 1px 6px rgba(0,0,0,.06); }
.cfp-faq-item summary { cursor: pointer; list-style: none; padding: 16px 52px 16px 20px; font-size: 17px; font-weight: 600; color: var(--secondary-color, #222733); position: relative; }
.cfp-faq-item summary::-webkit-details-marker { display: none; }
.cfp-faq-item summary::after { content: '+'; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); font-size: 24px; font-weight: 400; color: var(--primary-color, #f68f3d); }
.cfp-faq-item[open] summary::after { content: '\2212'; }
.cfp-faq-answer { padding: 0 20px 18px; font-size: 15px; line-height: 1.7; color: var(--paragraph-color, #777); }
.cfp-faq-answer a { color: var(--primary-color, #f68f3d); }
@media (max-width: 768px) { .cfp-faq-sp { padding-block: 40px; } .cfp-faq-item summary { font-size: 15px; } }

/* Blog article extras: byline, table of contents, CTA, author box, related services */
.cfp-breadcrumb { font-size: 13px; color: #777; margin-bottom: 14px; }
.cfp-breadcrumb a { color: var(--primary-color, #f68f3d); text-decoration: none; }
.cfp-toc { background: var(--third-color, #f8f3ed); border-radius: 10px; padding: 18px 22px; margin: 0 0 26px; }
.cfp-toc-title { font-weight: 700; margin: 0 0 8px !important; }
.cfp-toc ol { margin: 0; padding-left: 20px; }
.cfp-toc li { padding: 2px 0; font-size: 14px; }
.cfp-toc li.cfp-toc-l3 { margin-left: 16px; list-style-type: circle; }
.cfp-toc a { color: var(--secondary-color, #222733); text-decoration: none; }
.cfp-toc a:hover { color: var(--primary-color, #f68f3d); }
.cfp-post-content h2, .cfp-post-content h3 { scroll-margin-top: 110px; }
.cfp-post-cta { background: var(--secondary-color, #222733); color: #fff; border-radius: 12px; padding: 26px; text-align: center; margin: 30px 0; min-height: 150px; }
.cfp-post-cta-title { font-size: 22px; font-weight: 600; margin: 0 0 8px !important; }
.cfp-post-cta-text { font-size: 15px; opacity: .85; margin: 0 0 16px !important; }
.cfp-post-cta .cta { display: inline-block; padding: 12px 28px; background: var(--primary-color, #f68f3d); }
.cfp-post-faq { margin: 34px 0; }
.cfp-post-faq .cfp-faq-list { margin-top: 18px; max-width: none; }
.cfp-author-box { display: flex; gap: 18px; align-items: flex-start; border: 1px solid #e5e5e5; border-radius: 12px; padding: 20px; margin: 30px 0; min-height: 110px; }
.cfp-author-box img { border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.cfp-author-name { font-weight: 700; font-size: 17px; margin: 0 0 4px !important; }
.cfp-author-name span { display: block; font-weight: 400; font-size: 13px; color: #777; }
.cfp-author-bio { font-size: 14px; color: #555; margin: 6px 0 !important; }
.cfp-related-services { margin: 30px 0; }
.cfp-related-services ul { display: flex; flex-wrap: wrap; gap: 10px; padding: 0; list-style: none; margin-top: 12px; }
.cfp-related-services a { display: inline-block; border: 1px solid var(--primary-color, #f68f3d); border-radius: 50px; padding: 6px 16px; font-size: 14px; text-decoration: none; color: var(--secondary-color, #222733); }
.cfp-blog-filter { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 0 0 26px; }
.cfp-blog-filter a { border: 1px solid #ddd; border-radius: 50px; padding: 5px 16px; font-size: 14px; text-decoration: none; color: var(--secondary-color, #222733); }
.cfp-blog-filter a.is-active { background: var(--primary-color, #f68f3d); border-color: var(--primary-color, #f68f3d); color: #fff; }
.cfp-related-articles-sp { padding-block: 50px; }

/* Blog listing layout: keep the grid inside the container (large card images were stretching the 1fr
   columns past the viewport), centre the intro, and tighten the vertical spacing. */
.cfp-blog-sp { padding-block: 40px 60px; }
.cfp-blog-sp .container { max-width: 1200px; margin-inline: auto; padding-inline: 15px; }
.cfp-blog-intro { max-width: 760px; margin: 0 auto 28px; text-align: center; }
.cfp-blog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 991px) { .cfp-blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575px) { .cfp-blog-grid { grid-template-columns: minmax(0, 1fr); } }
.cfp-related .cfp-blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cfp-blog-card, .cfp-blog-card-img { min-width: 0; }
.cfp-blog-card-img img { display: block; width: 100%; height: auto; max-width: 100%; }

/* Table of contents: collapsed accordion, sections numbered, sub-headings nested */
details.cfp-toc { padding: 0; overflow: hidden; }
details.cfp-toc > summary.cfp-toc-title { cursor: pointer; list-style: none; padding: 16px 52px 16px 22px; position: relative; margin: 0 !important; font-weight: 700; }
details.cfp-toc > summary::-webkit-details-marker { display: none; }
details.cfp-toc > summary::after { content: '+'; position: absolute; right: 22px; top: 50%; transform: translateY(-50%); font-size: 24px; font-weight: 400; color: var(--primary-color, #f68f3d); }
details.cfp-toc[open] > summary::after { content: '\2212'; }
details.cfp-toc nav { padding: 0 22px 16px; }
details.cfp-toc ol { margin: 0; padding-left: 22px; }
details.cfp-toc ul { margin: 4px 0 6px; padding-left: 18px; list-style: circle; }
details.cfp-toc li { padding: 2px 0; font-size: 14px; }

/* Table of contents: collapsed accordion, sections numbered, sub-headings nested */
details.cfp-toc { padding: 0; overflow: hidden; }
details.cfp-toc > summary.cfp-toc-title { cursor: pointer; list-style: none; padding: 16px 52px 16px 22px; position: relative; margin: 0 !important; font-weight: 700; }
details.cfp-toc > summary::-webkit-details-marker { display: none; }
details.cfp-toc > summary::after { content: '+'; position: absolute; right: 22px; top: 50%; transform: translateY(-50%); font-size: 24px; font-weight: 400; color: var(--primary-color, #f68f3d); }
details.cfp-toc[open] > summary::after { content: '\2212'; }
details.cfp-toc nav { padding: 0 22px 16px; }
details.cfp-toc ol { margin: 0; padding-left: 22px; }
details.cfp-toc ul { margin: 4px 0 6px; padding-left: 18px; list-style: circle; }
details.cfp-toc li { padding: 2px 0; font-size: 14px; }

/* Tables inside blog posts: bordered, padded, striped, scrolls sideways on small screens */
.cfp-post-content .cfp-table-wrap { overflow-x: auto; margin: 24px 0; -webkit-overflow-scrolling: touch; }
.cfp-post-content table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 15px; line-height: 1.5; border: 1px solid #e3ddd3; border-radius: 10px; overflow: hidden; background: #fff; }
.cfp-post-content th, .cfp-post-content td { padding: 12px 16px; text-align: left; vertical-align: top; border-bottom: 1px solid #ece7df; }
.cfp-post-content thead th, .cfp-post-content tr:first-child th { background: var(--secondary-color, #222733); color: #fff; font-weight: 600; white-space: nowrap; border-bottom: 0; }
.cfp-post-content tbody tr:nth-child(even) td { background: var(--third-color, #f8f3ed); }
.cfp-post-content tbody tr:last-child td, .cfp-post-content tr:last-child td { border-bottom: 0; }
.cfp-post-content td:first-child { font-weight: 500; }
.cfp-post-content caption { caption-side: bottom; padding: 8px 4px; font-size: 13px; color: #777; text-align: left; }
@media (max-width: 575px) { .cfp-post-content th, .cfp-post-content td { padding: 10px 12px; font-size: 14px; } }

/* Article call-to-action: the generic post-link colour made the button text orange on orange */
.cfp-post-content .cfp-post-cta { padding: 32px 28px; }
.cfp-post-content .cfp-post-cta-title { color: #fff; font-size: 24px; line-height: 1.3; margin: 0 0 10px !important; }
.cfp-post-content .cfp-post-cta-text { color: rgba(255,255,255,.85); margin: 0 0 22px !important; }
.cfp-post-content .cfp-post-cta a.cta,
.cfp-post-cta a.cta { display: inline-block; background: var(--primary-color, #f68f3d); color: #fff !important; text-decoration: none; font-weight: 600; font-size: 15px; padding: 14px 34px; border-radius: 50px; line-height: 1.2; transition: filter .2s ease, transform .2s ease; }
.cfp-post-cta a.cta:hover { filter: brightness(1.08); transform: translateY(-1px); color: #fff !important; }
.cfp-post-cta a.cta:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }

/* Blog intro line: the global "p { margin-block-end: 0 !important }" was removing the space below it */
.cfp-blog-sp .cfp-blog-intro { margin-block-end: 40px !important; }
@media (max-width: 575px) { .cfp-blog-sp .cfp-blog-intro { margin-block-end: 28px !important; } }

/* Long-form text section for in-depth service pages (reuses the article typography and table styles) */
.cfp-text-sp { padding-block: 56px; }
.cfp-text-sp--beige { background: var(--third-color, #f8f3ed); }
.cfp-text-wrap { max-width: 920px; margin-inline: auto; }
.cfp-text-intro { max-width: 760px; margin: 14px auto 0 !important; }
.cfp-text-body { margin-top: 26px; font-size: 16px; line-height: 1.75; color: var(--paragraph-color, #555); }
.cfp-text-body h3 { font-size: 21px; font-weight: 600; color: var(--secondary-color, #222733); margin: 28px 0 10px; }
.cfp-text-body p { margin-bottom: 16px !important; }
.cfp-text-body ul, .cfp-text-body ol { padding-left: 22px; margin-bottom: 18px; }
.cfp-text-body li { margin-bottom: 8px; }
.cfp-text-body a { color: var(--primary-color, #f68f3d); }
.cfp-text-body strong { color: var(--secondary-color, #222733); }
@media (max-width: 768px) { .cfp-text-sp { padding-block: 40px; } .cfp-text-body { font-size: 15px; } }

/* Image + text sections carrying longer copy (paragraphs, lists) in the existing split layout */
.cfp-split-rich p { margin: 0 0 14px !important; }
.cfp-split-rich p:last-child { margin-bottom: 0 !important; }
.cfp-split-rich ul, .cfp-split-rich ol { padding-left: 20px; margin: 0 0 14px; }
.cfp-split-rich li { margin-bottom: 6px; }
.cfp-split-rich h4 { font-size: 17px; font-weight: 600; margin: 16px 0 8px; color: var(--secondary-color, #222733); }
.cfp-split-rich a { color: var(--primary-color, #f68f3d); }
.cfp-split-rich .cfp-split-lead { font-weight: 600; color: var(--secondary-color, #222733); }

/* Image + text sections: when the text column is taller than the picture, the picture follows the scroll
   (sticky) until the row ends. When the text is shorter, it is centred beside the picture. Desktop only. */
@media (min-width: 769px) {
    .choose-amazon-publishing-services-wrap { align-items: stretch; }
    .choose-amazon-publishing-services-wrap .choose-amazon-publishing-services-img { align-self: flex-start; position: sticky; top: 110px; }
}

/* Breathing room above the "Let's Begin!" contact strip */
.contect-form-section-sp { padding-top: 70px; }
@media (max-width: 768px) { .contect-form-section-sp { padding-top: 44px; } }

/* Live chat call-to-actions */
.cfp-chat-btn { cursor: pointer; }
.home-cta-section-2-wrap-btns { flex-wrap: wrap; row-gap: 12px; }
.cfp-strip-chat { margin: 6px 0 14px !important; font-size: 15px; }
.cfp-strip-chat-link { color: var(--primary-color, #f68f3d); font-weight: 600; text-decoration: underline; }
.cfp-post-cta-chat { display: inline-block; margin-left: 14px; color: #fff; text-decoration: underline; font-size: 14px; }
.cfp-footer-chat { color: #fff; font-size: 14px; text-decoration: underline; margin-left: 14px; }

/* FAQ accordion inside blog post bodies (converted from the editor's FAQ block) */
.cfp-post-content .cfp-faq-list { max-width: none; margin: 18px 0 30px; display: flex; flex-direction: column; gap: 12px; }
.cfp-post-content .cfp-faq-item summary { font-size: 16px; }
.cfp-post-content .cfp-faq-answer { font-size: 15px; }
.cfp-post-content .cfp-faq-answer p { margin-bottom: 10px !important; }
