/* The feature pages (docs/site-redesign.md, mockup approved by the owner 2026-10-21): the 13 data-source pages on the common
   template (google-search-volume.html and its siblings; the five legacy addon pages share the shell), the metric and guide
   article pages (seo-metrics.html and the others with a contents rail) and the remaining one-off feature pages. Scoped to
   .ke-fp so the theme stylesheet the pages still load (Bootstrap 4 + keywordeverywhere.css: the YouTube lightbox, the
   scrollspy of the contents rail, the collapse panels and the logo carousel come from it) does not reach the new layout.
   Same tokens and type as ke-price.css, ke-home.css, ke-start.css, ke-opr.css and ke-account.css.
   Two kinds of rules: the new markup of the shells and partials (.title, .hero, .stores, .final, .kcard, .faq, .docs) and a
   skin for the theme markup kept inside the help includes and the article bodies (.section/.container, .card-numbered,
   .table, figure, .alert, .formula): the copy of those files is unchanged, only its look. */
.ke-fp { --red: #b5332c; --red-dark: #8c2420; --red-soft: #fbedeb; --ink: #1c1a19; --text: #3d3936; --muted: #6f6a66; --line: #e6e1dc; --line-soft: #f0ece8; --ground: #f7f5f2; --r: 10px; --r-lg: 14px;
    --fh: "Bricolage Grotesque", "IBM Plex Sans", "Segoe UI", sans-serif; --fb: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; --fm: "IBM Plex Mono", Menlo, Consolas, monospace;
    font-family: var(--fb); color: var(--text); background: #fff; font-size: 16px; line-height: 1.55; font-weight: 400; -webkit-font-smoothing: antialiased; overflow: visible; }
.ke-fp *, .ke-fp *::before, .ke-fp *::after { box-sizing: border-box; }
.ke-fp h1, .ke-fp h2, .ke-fp h3, .ke-fp h4, .ke-fp h5 { font-family: var(--fh); color: var(--ink); margin: 0; letter-spacing: -0.012em; text-wrap: balance; line-height: 1.15; font-weight: 700; }
.ke-fp p { margin: 0; }
.ke-fp a { color: #1f4f8f; text-decoration: none; }
.ke-fp a:hover { color: #133565; }
.ke-fp strong, .ke-fp b, .ke-fp .bold { font-weight: 600; color: inherit; }
.ke-fp code { font-family: var(--fm); font-size: .92em; background: var(--ground); border: 1px solid var(--line-soft); border-radius: 5px; padding: 1px 6px; color: var(--ink); }
.ke-fp img { max-width: 100%; height: auto; }
.ke-fp .wrap { max-width: 1180px; margin: 0 auto; padding: 0 24px; }
.ke-fp .sec { padding: 64px 0; }
.ke-fp .sec.alt { background: var(--ground); }
.ke-fp .sec h2 { font-size: 32px; margin-bottom: 12px; }
.ke-fp .sub { font-size: 17px; color: var(--muted); }
.ke-fp .head { margin-bottom: 36px; }
.ke-fp .head.c { text-align: center; }
.ke-fp .note { font-size: 14px; color: var(--muted); }
.ke-fp .note a, .ke-fp .prose a, .ke-fp .kcard p a, .ke-fp .faq .a a, .ke-fp .section p a, .ke-fp .section li a, .ke-fp .section td a { text-decoration: underline; text-underline-offset: 3px; }
.ke-fp .kbtn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 48px; padding: 0 22px; border-radius: var(--r); font-weight: 600; font-size: 15.5px; text-decoration: none; background: var(--red); color: #fff; border: 0; cursor: pointer; font-family: inherit; white-space: nowrap; line-height: 1; }
.ke-fp .kbtn:hover { background: var(--red-dark); color: #fff; }
.ke-fp .kbtn.ghost { background: #fff; color: var(--ink); border: 1.5px solid var(--line); }
.ke-fp .kbtn.ghost:hover { background: var(--ground); color: var(--ink); border-color: var(--ink); }
.ke-fp .kbtn svg { flex: 0 0 auto; }
.ke-fp .btns { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.ke-fp .btns.c { justify-content: center; }
/* title bands */
.ke-fp .title { padding: 48px 0 36px; border-bottom: 1px solid var(--line-soft); }
.ke-fp .title h1 { font-size: 40px; margin-bottom: 12px; }
.ke-fp .title .sub { font-size: 17.5px; }
.ke-fp .title.plain h1 { text-wrap: wrap; font-size: 36px; margin-bottom: 0; }
.ke-fp .title.plain .lead { font-size: 17.5px; color: var(--muted); margin-top: 14px; max-width: 900px; line-height: 1.55; }
.ke-fp .title.plain .lead + .lead { margin-top: 10px; }
.ke-fp .title.plain .btns { margin-top: 18px; }
.ke-fp .title .ph { display: flex; align-items: center; gap: 18px; }
.ke-fp .title .ph .logo { width: 72px; height: 72px; border-radius: 50%; border: 1px solid var(--line); background: #fff; display: flex; align-items: center; justify-content: center; flex: 0 0 72px; overflow: hidden; }
.ke-fp .title .ph .logo img { width: 44px; height: 44px; object-fit: contain; }
.ke-fp .title.src h1 { font-size: 30px; line-height: 1.2; text-wrap: wrap; margin-bottom: 0; }
.ke-fp .title.src .sub { margin-top: 14px; }
/* screenshot hero with the video play button (the lightbox comes from the theme's modal-popup) */
.ke-fp .hero { padding: 32px 0 8px; }
.ke-fp .frame { background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 1px 2px rgba(28,26,25,.05), 0 24px 48px rgba(28,26,25,.10); overflow: hidden; }
.ke-fp .frame img { display: block; width: 100%; height: auto; }
.ke-fp .hero .frame { position: relative; }
.ke-fp .hero .play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(28,26,25,.08); }
.ke-fp .hero .play:hover { background: rgba(28,26,25,.14); }
.ke-fp .hero .play i { width: 76px; height: 76px; border-radius: 50%; background: var(--red); color: #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 28px rgba(0,0,0,.28); font-style: normal; }
.ke-fp .hero .play:hover i { background: var(--red-dark); }
/* install cards, review band, guide and tool cards, logos, FAQ */
.ke-fp .stores { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ke-fp .store { display: flex; align-items: center; gap: 14px; background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 16px 20px; color: var(--ink); min-width: 0; }
.ke-fp .store:hover { border-color: var(--ink); color: var(--ink); }
.ke-fp .store img { width: 40px; height: 40px; flex: 0 0 40px; }
.ke-fp .store small { display: block; font-size: 13px; color: var(--muted); }
.ke-fp .store b { font-family: var(--fh); font-size: 19px; font-weight: 700; }
.ke-fp .final { background: var(--ink); color: #fff; padding: 64px 0; }
.ke-fp .final .wrap { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 20px; }
.ke-fp .final h2 { color: #fff; font-size: 32px; }
.ke-fp .final p { color: #cfc9c3; font-size: 16px; max-width: 760px; }
.ke-fp .final .kbtn { background: #fff; color: var(--ink); }
.ke-fp .final .kbtn:hover { background: var(--ground); color: var(--ink); }
.ke-fp .final .kbtn.outline { background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,.5); }
.ke-fp .final .kbtn.outline:hover { border-color: #fff; background: rgba(255,255,255,.08); }
.ke-fp .cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.ke-fp .cards.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ke-fp .kcard { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 24px; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.ke-fp .kcard h3 { font-size: 18px; line-height: 1.25; }
.ke-fp .kcard h3 a { color: var(--ink); }
.ke-fp .kcard h3 a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.ke-fp .kcard p { font-size: 15px; color: var(--text); }
.ke-fp .kcard .more { margin-top: auto; font-weight: 600; font-size: 14.5px; padding-top: 4px; }
.ke-fp .sites { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.ke-fp .site { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 12px 14px; color: var(--ink); font-size: 14.5px; font-weight: 500; min-width: 0; }
.ke-fp .site:hover { border-color: var(--ink); color: var(--ink); }
.ke-fp .site .logo { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line); background: #fff; display: flex; align-items: center; justify-content: center; flex: 0 0 40px; overflow: hidden; }
.ke-fp .site .logo img { width: 24px; height: 24px; object-fit: contain; }
.ke-fp .quote { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 20px; align-items: start; background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 26px 28px; }
.ke-fp .quote img { width: 64px; height: 64px; border-radius: 50%; }
.ke-fp .quote .who { font-weight: 600; color: var(--ink); margin-bottom: 4px; }
.ke-fp .quote .stars { color: var(--ink); font-size: 12px; margin-bottom: 10px; letter-spacing: 2px; }
.ke-fp .quote p { font-size: 15.5px; margin-bottom: 8px; }
.ke-fp .quote p:last-child { margin-bottom: 0; }
.ke-fp .logos { padding: 36px 0 40px; border-top: 1px solid var(--line-soft); }
.ke-fp .logos p { text-align: center; font-size: 14.5px; color: var(--muted); margin-bottom: 22px; }
.ke-fp .logos .swiper-container { min-height: 48px; }
.ke-fp .logos .swiper-slide { display: flex; justify-content: center; align-items: center; }
.ke-fp .logos img { height: 30px; width: auto; max-width: 120px; }
.ke-fp .faq { margin: 0; max-width: 860px; margin: 0 auto; }
.ke-fp .faq.wide { max-width: none; }
.ke-fp .faq .item { border-bottom: 1px solid var(--line); min-width: 0; }
.ke-fp .faq .q { margin: 0; padding: 16px 0 8px; font-family: var(--fh); font-weight: 600; font-size: 17px; line-height: 1.35; color: var(--ink); }
.ke-fp .faq .a { padding: 0 0 18px; font-size: 15px; }
.ke-fp .faq .a p { margin-bottom: 10px; }
.ke-fp .faq .a p:last-child { margin-bottom: 0; }
/* article layout: contents rail + prose (the rail keeps the theme's scrollspy ids and classes) */
.ke-fp .docs { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 48px; align-items: start; }
.ke-fp .toc { display: flex; flex-direction: column; gap: 2px; font-size: 14.5px; position: sticky; top: 24px; }
.ke-fp .toc a, .ke-fp .toc a.nav-link { color: var(--muted); padding: 7px 12px; border-radius: 8px; display: block; font-size: 14.5px; line-height: 1.4; }
.ke-fp .toc a:hover, .ke-fp .toc a.nav-link:hover { color: var(--ink); background: var(--ground); }
.ke-fp .toc a.active { color: var(--ink); background: var(--ground); font-weight: 600; }
.ke-fp .toc .h { font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--ink); font-weight: 600; padding: 0 12px 8px; }
.ke-fp .toc .rel { display: flex; flex-direction: column; gap: 2px; border-top: 1px solid var(--line); margin-top: 16px; padding-top: 16px; }
.ke-fp .prose { min-width: 0; }
.ke-fp .prose h2, .ke-fp .prose h2.article-heading { font-size: 26px; margin: 40px 0 12px; scroll-margin-top: 100px; text-wrap: balance; }
.ke-fp .prose h2:first-child, .ke-fp .prose > h2.mt-0 { margin-top: 0 !important; }
.ke-fp .prose h3 { font-size: 21px; margin: 28px 0 10px; }
.ke-fp .prose h4 { font-size: 18px; margin: 22px 0 8px; }
.ke-fp .prose p, .ke-fp .prose li { font-size: 15.5px; line-height: 1.7; }
.ke-fp .prose p { margin-bottom: 12px; }
.ke-fp .prose ul, .ke-fp .prose ol { margin: 0 0 14px; padding-left: 22px; }
.ke-fp .prose li { margin-bottom: 8px; }
.ke-fp .prose p.lead { display: block; font-size: 17.5px; color: var(--muted) !important; font-style: italic; margin-bottom: 18px !important; line-height: 1.5; }
.ke-fp .prose figure { margin: 8px 0 6px; }
.ke-fp .prose figure img { display: block; width: 100%; height: auto; border: 1px solid var(--line); border-radius: 14px; box-shadow: none; margin: 0; }
.ke-fp .prose figure p, .ke-fp .prose figure figcaption { text-align: center; font-size: 13.5px; color: var(--muted); margin: 10px 0 18px; }
.ke-fp .prose img.img-responsive { border-radius: 14px; border: 1px solid var(--line); box-shadow: none; }
.ke-fp .prose .alert, .ke-fp .prose .alert-info { border: 1px solid var(--line); background: var(--ground); color: var(--ink); padding: 12px 16px; border-radius: 8px; font-size: 15px; margin: 16px 0 20px; box-shadow: none; }
.ke-fp .prose .formula, .ke-fp .prose p.formula { background: var(--ground); border: 1px solid var(--line); border-radius: 10px; padding: 14px 18px; text-align: center; font-family: var(--fm); font-size: 14.5px; margin: 12px 0 18px; box-shadow: none; }
.ke-fp .prose mark { background: var(--ground); color: var(--ink); padding: 0 4px; border-radius: 4px; }
.ke-fp .prose .card { border: 1px solid var(--line); border-radius: 10px; box-shadow: none; margin: 12px 0 18px; }
.ke-fp .prose .card .card-header { background: var(--ground); border-bottom: 1px solid var(--line); font-size: 15px; padding: 10px 16px; }
.ke-fp .prose .card .list-group-item { font-size: 15px; padding: 10px 16px; border-color: var(--line-soft); font-family: var(--fm); }
.ke-fp .prose .card .card-body { padding: 16px; }
.ke-fp .prose .card .card-body p:last-child { margin-bottom: 0; }
.ke-fp .prose blockquote { border-left: 3px solid var(--line); margin: 0 0 14px; padding: 4px 0 4px 18px; color: var(--muted); }
.ke-fp .prose .btn { display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 18px; border-radius: var(--r); font-weight: 600; font-size: 15px; background: var(--red); color: #fff; border: 0; box-shadow: none; text-decoration: none; }
.ke-fp .prose .btn:hover { background: var(--red-dark); color: #fff; }
.ke-fp .prose .badge { background: var(--ground); color: var(--ink); border: 1px solid var(--line); font-weight: 500; }
/* theme markup kept inside the help includes and the one-off pages */
.ke-fp section.section, .ke-fp .section { padding: 36px 0; position: static; background: none; }
.ke-fp .section.bg-6, .ke-fp section.section:has(.card-numbered) { background: var(--ground); padding: 64px 0; }
.ke-fp .section:has(.card-numbered) + .section:has(.card-numbered) { padding-top: 0; }
.ke-fp .section .container, .ke-fp .news-wrapper .container { max-width: 1180px; padding: 0 24px; margin: 0 auto; }
.ke-fp .section .container.pt-5, .ke-fp .section .container.pt-4, .ke-fp .section .container.pt-3 { padding-top: 0 !important; }
.ke-fp .section .container.pb-0, .ke-fp .section .container.py-0 { padding-bottom: 0 !important; }
.ke-fp .section .container + .container { margin-top: 36px; }
.ke-fp .section h2 { font-size: 28px; margin: 0 0 14px; text-wrap: balance; }
.ke-fp .section h2.heading-line { padding: 0; margin-bottom: 14px; }
.ke-fp .section .heading-line::before, .ke-fp .section .heading-line::after { display: none; }
.ke-fp .section h3 { font-size: 22px; margin: 30px 0 12px !important; }
.ke-fp .section h5 { font-size: 17px; }
.ke-fp .section p, .ke-fp .section li, .ke-fp .section p.lead, .ke-fp .section ul.lead li { font-size: 16.5px; line-height: 1.65; font-weight: 400; color: var(--text); margin: 0 0 14px; }
.ke-fp .section p:last-child { margin-bottom: 0; }
.ke-fp .section li { margin-bottom: 8px; font-size: 15.5px; }
.ke-fp .section ul, .ke-fp .section ol { margin: 0 0 14px; padding-left: 22px; }
.ke-fp .text-muted, .ke-fp .text-secondary { color: var(--text) !important; }
.ke-fp .section-heading { margin: 0 0 36px; text-align: left; }
.ke-fp .section-heading p.accent, .ke-fp .section-heading p.text-uppercase { font-family: var(--fh); font-size: 32px; font-weight: 700; color: var(--ink) !important; text-transform: none !important; letter-spacing: -0.012em; line-height: 1.15; margin: 0; }
.ke-fp .section-heading h2 { font-size: 32px; margin-bottom: 12px; }
.ke-fp .section-heading p.lead { color: var(--muted); font-size: 17px; }
.ke-fp .section-heading.text-center { text-align: center; }
.ke-fp .section hr { border-top: 1px solid var(--line-soft); margin: 24px 0; }
/* numbered feature cards (the help includes' card-numbered blocks become the mockup's feature cards) */
.ke-fp .card-numbered { background: #fff !important; background-image: none !important; border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: none !important; margin: 0 0 16px; padding: 28px 32px; overflow: visible; transform: none !important; }
.ke-fp .card-numbered:last-child { margin-bottom: 0; }
.ke-fp .card-numbered > .row { display: grid; grid-template-columns: minmax(0, 1fr) 440px; gap: 36px; align-items: center; margin: 0; }
.ke-fp .card-numbered > .row > [class*="col-"] { flex: none; max-width: none; width: auto; padding: 0; min-width: 0; border: 0 !important; }
.ke-fp .card-numbered .card-body { padding: 0 !important; position: static; }
.ke-fp .card-numbered .card-number { border: 0 !important; overflow: visible; position: static; width: auto; height: auto; background: none !important; color: var(--muted) !important; font-family: var(--fh); font-weight: 700; font-size: 13px; letter-spacing: .08em; margin: 0 0 8px; border-radius: 0; box-shadow: none; display: block; line-height: 1; transform: none; }
.ke-fp .card-numbered .card-number::before { content: "0"; }
.ke-fp .card-numbered h4 { font-size: 22px; color: var(--ink) !important; margin: 0 0 10px; line-height: 1.2; }
.ke-fp .card-numbered h4 a { color: var(--ink) !important; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--line); }
.ke-fp .card-numbered h4 a:hover { text-decoration-color: var(--ink); }
.ke-fp .card-numbered p, .ke-fp .card-numbered p.lead { font-size: 15.5px; margin: 0 0 10px; line-height: 1.6; }
.ke-fp .card-numbered p:last-child { margin-bottom: 0; }
.ke-fp .card-numbered .rounded-xl:not(.card-number) { border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: var(--ground); box-shadow: none !important; display: block !important; margin: 0 !important; }
.ke-fp .card-numbered img { display: block; width: 100%; height: auto; margin: 0; border: 0; border-radius: 0; }
/* standalone screenshots, alerts and tables in the help includes */
.ke-fp .section .rounded-xl.shadow-box, .ke-fp .section .shadow-box.rounded-xl { border: 1px solid var(--line); border-radius: 10px; overflow: hidden; box-shadow: none; background: var(--ground); margin: 20px 0 !important; }
.ke-fp .section .rounded-xl.shadow-box img { display: block; width: 100%; height: auto; border: 0; border-radius: 0; margin: 0 !important; }
.ke-fp .section img.img-responsive { display: block; max-width: 100%; height: auto; border: 1px solid var(--line); border-radius: 10px; margin: 20px 0 !important; }
.ke-fp .section .rounded-xl img.img-responsive { border: 0; border-radius: 0; margin: 0 !important; }
.ke-fp .section .alert { border: 1px solid var(--line); background: var(--ground); color: var(--text); border-radius: 10px; box-shadow: none !important; padding: 14px 18px; font-size: 15px; }
.ke-fp .section .alert p { font-size: 15px; margin-bottom: 8px; }
.ke-fp .section .alert p:last-child { margin-bottom: 0; }
.ke-fp .section .alert .alert-link { color: #1f4f8f; text-decoration: underline; text-underline-offset: 3px; }
.ke-fp .shadow-hover:hover { transform: none !important; box-shadow: none !important; }
.ke-fp .table-responsive { border: 1px solid var(--line); border-radius: var(--r-lg); overflow: auto; background: #fff; margin: 4px 0 20px; }
.ke-fp .table-responsive > .table { margin: 0; }
.ke-fp .table { font-size: 15px; margin: 4px 0 20px; color: var(--text); background: #fff; }
.ke-fp .table th, .ke-fp .table td { padding: 12px 16px; vertical-align: middle; border: 0; border-bottom: 1px solid var(--line-soft); }
.ke-fp .table thead th { text-align: left; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); font-weight: 600; background: var(--ground); border-bottom: 1px solid var(--line); }
.ke-fp .table tbody th, .ke-fp .table th[scope="row"] { color: var(--ink); font-weight: 500; font-family: var(--fb); }
.ke-fp .table tr:last-child td, .ke-fp .table tr:last-child th { border-bottom: 0; }
.ke-fp .table-bordered, .ke-fp .table-bordered th, .ke-fp .table-bordered td { border-left: 0; border-right: 0; border-top: 0; }
.ke-fp table.table-responsive { display: table; width: 100%; }
.ke-fp .tbl { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; }
.ke-fp .tbl table { width: 100%; border-collapse: collapse; font-size: 15px; margin: 0; }
.ke-fp .tbl th { text-align: left; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); font-weight: 600; padding: 12px 16px; background: var(--ground); border-bottom: 1px solid var(--line); }
.ke-fp .tbl td { padding: 12px 16px; border-bottom: 1px solid var(--line-soft); vertical-align: middle; }
.ke-fp .tbl tr:last-child td { border-bottom: 0; }
.ke-fp .tbl td.k { color: var(--ink); font-weight: 500; }
/* cards and media rows of the one-off pages */
.ke-fp .section .card { border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: none !important; background: #fff; }
.ke-fp .section .card .card-body { padding: 20px 22px; }
.ke-fp .section .card .card-body p:last-child { margin-bottom: 0; }
.ke-fp .section .card .card-header { background: var(--ground); border-bottom: 1px solid var(--line); }
.ke-fp .section a > .card:hover { border-color: var(--ink); }
.ke-fp .section figure { margin: 0; }
.ke-fp .section figure img.img-hero { border: 0; border-radius: 0; margin: 0 !important; }
.ke-fp .section .media .rounded-circle { background: var(--ground) !important; color: var(--ink) !important; border: 1px solid var(--line); font-family: var(--fh); font-weight: 700; }
.ke-fp .api-code { border-radius: 10px; border: 1px solid var(--line); background: #1c1a19; color: #f3efe9; }
.ke-fp .section .btn, .ke-fp .section .btn-primary, .ke-fp .section .btn-3, .ke-fp .section .btn-outline-primary { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 44px; padding: 0 18px; border-radius: var(--r); font-weight: 600; font-size: 15px; background: var(--red); color: #fff; border: 0; box-shadow: none; text-decoration: none; line-height: 1; }
.ke-fp .section .btn:hover { background: var(--red-dark); color: #fff; }
.ke-fp .section .btn-outline-primary, .ke-fp .section .btn-outline-secondary, .ke-fp .section .btn-light { background: #fff; color: var(--ink); border: 1.5px solid var(--line); }
.ke-fp .section .btn-outline-primary:hover, .ke-fp .section .btn-outline-secondary:hover, .ke-fp .section .btn-light:hover { background: var(--ground); color: var(--ink); border-color: var(--ink); }
.ke-fp .news-wrapper .content-inner p, .ke-fp .news-wrapper .content-inner li { font-size: 15.5px; line-height: 1.7; margin-bottom: 12px; }
.ke-fp .news-wrapper .content-inner h2 { font-size: 26px; margin: 40px 0 12px !important; }
.ke-fp .news-wrapper .content-inner h3 { font-size: 21px; margin: 28px 0 10px; }
.ke-fp .news-wrapper { padding-bottom: 40px; }
.ke-fp .accent { color: var(--ink) !important; }
.ke-fp .fa-angle-right, .ke-fp .fa-question-circle { color: var(--muted) !important; }

/* leftovers of the theme found on the first staging pass (2026-10-21) */
.ke-fp .toc a.nav-link::before, .ke-fp .toc a.nav-link::after { display: none !important; content: none; }
.ke-fp .toc a.nav-link { border-left: 0 !important; padding-right: 12px !important; }
.ke-fp pre { border-radius: 10px; }
.ke-fp pre code, .ke-fp .api-code code { border: 0; background: none; padding: 0; border-radius: 0; font-size: inherit; }
.ke-fp .section .btn, .ke-fp .prose .btn { text-transform: none !important; letter-spacing: 0 !important; border-radius: var(--r) !important; }
.ke-fp .prose ol.list-group, .ke-fp .prose ul.list-group { padding-left: 0; margin: 0; }
.ke-fp .prose .list-group-item { margin: 0; }
@media (max-width: 767.98px) {
    /* the theme stacks table rows into labelled blocks on phones; the redesign keeps real tables that scroll in their frame */
    .ke-fp .table-responsive tbody, .ke-fp .table-responsive thead { display: table-row-group; }
    .ke-fp .table-responsive thead { display: table-header-group; }
    .ke-fp .table-responsive tr { display: table-row; border: 0; margin: 0; }
    .ke-fp .table-responsive th { display: table-cell; }
    .ke-fp .table-responsive td { display: table-cell; position: static; border-bottom: 1px solid var(--line-soft); }
    .ke-fp .table-responsive thead tr { position: static; }
    .ke-fp .table-responsive td::before { display: none; content: none; }
    .ke-fp .table-responsive table { min-width: 0; }
    .ke-fp .table th, .ke-fp .table td { padding: 10px 12px; font-size: 14px; }
}
@media (max-width: 1000px) {
    .ke-fp .card-numbered > .row { grid-template-columns: 1fr; }
    .ke-fp .stores, .ke-fp .cards, .ke-fp .cards.four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ke-fp .sites { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ke-fp .docs { grid-template-columns: 1fr; }
    .ke-fp .toc { flex-direction: row; flex-wrap: wrap; position: static; }
    .ke-fp .toc .h { width: 100%; }
    .ke-fp .toc .rel { width: 100%; flex-direction: row; flex-wrap: wrap; margin-top: 10px; padding-top: 10px; }
    .ke-fp .title h1, .ke-fp .title.plain h1 { font-size: 32px; }
    .ke-fp .title.src h1 { font-size: 26px; }
}
@media (max-width: 600px) {
    .ke-fp .wrap, .ke-fp .section .container, .ke-fp .news-wrapper .container { padding: 0 16px; }
    .ke-fp .sec { padding: 48px 0; }
    .ke-fp .sec h2, .ke-fp .section h2, .ke-fp .section-heading p.accent, .ke-fp .final h2 { font-size: 26px; }
    .ke-fp .title { padding: 32px 0 24px; }
    .ke-fp .title h1, .ke-fp .title.plain h1 { font-size: 28px; }
    .ke-fp .title.src h1 { font-size: 24px; }
    .ke-fp .title .ph .logo { width: 56px; height: 56px; flex-basis: 56px; }
    .ke-fp .title .ph .logo img { width: 34px; height: 34px; }
    .ke-fp .hero { padding: 20px 0 0; }
    .ke-fp .hero .play i { width: 56px; height: 56px; }
    .ke-fp .stores, .ke-fp .cards, .ke-fp .cards.four, .ke-fp .sites { grid-template-columns: 1fr; }
    .ke-fp .kbtn { width: 100%; }
    .ke-fp .card-numbered { padding: 20px 18px; }
    .ke-fp .card-numbered > .row { gap: 18px; }
    .ke-fp .quote { grid-template-columns: 1fr; }
    .ke-fp .logos img { height: 24px; }
}
