/* Kingdom of Pets affiliate pages (/aff/, old resource pages, product affiliate pages), 2026-10-22.
   Loaded after kop-base.css and kop-site.css; built only on their tokens (blue bar, pale-blue panels,
   pale-yellow boxes, red buttons, Open Sans headings, Noto Serif text). */
body.kaf { overflow-x: hidden; overflow-x: clip; }
.kaf-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; padding: 0; }

/* Affiliate menu under the blue bar */
.kaf-bar { background: #1b7fb8; position: sticky; top: 56px; z-index: 49; }
.kaf-bar-in { max-width: 1160px; margin: 0 auto; padding: 0 10px; display: flex; flex-wrap: wrap; font: 600 14.5px/1 var(--kop-sans); }
.kaf-bar a { display: block; padding: 12px 12px; color: #fff; text-decoration: none; }
.kaf-bar a + a { border-left: 1px solid rgba(255,255,255,.35); }
.kaf-bar a:hover { background: rgba(255,255,255,.12); }
.kaf-bar .kaf-bar-login { margin-left: auto; border-left: 0; font-weight: 800; }
.kaf-bar a:focus-visible { outline: 3px solid var(--kop-orange); outline-offset: -3px; }
@media (max-width: 860px) {
  .kaf-bar { position: static; }
  .kaf-bar-in { padding: 0 4px; font-size: 13.5px; }
  .kaf-bar a { padding: 11px 9px; }
  .kaf-bar .kaf-bar-login { margin-left: 0; border-left: 1px solid rgba(255,255,255,.35); }
}

/* Page layout: optional side menu on the left */
.kaf-wrap { max-width: 1120px; margin: 0 auto; padding: 36px 20px 64px; }
.kaf-wrap.with-nav { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 40px; align-items: start; }
.kaf-main { max-width: 800px; min-width: 0; }
.kaf-wrap:not(.with-nav) .kaf-main { margin: 0 auto; }
.kaf-side { position: sticky; top: 112px; }
@media (max-width: 900px) {
  .kaf-wrap.with-nav { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .kaf-side { position: static; }
}

.kaf-nav { background: var(--kop-sky-2); border: 1px solid var(--kop-line); border-radius: 12px; padding: 14px; font: 600 15px/1.35 var(--kop-sans); }
.kaf-nav-h { margin: 0 0 8px; padding: 0 8px; font: 800 13px/1.3 var(--kop-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--kop-blue-deep); }
.kaf-nav ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.kaf-nav a { display: block; padding: 9px 10px; border-radius: 8px; color: var(--kop-ink); text-decoration: none; }
.kaf-nav a:hover { background: #fff; }
.kaf-nav a[aria-current="page"] { background: var(--kop-blue); color: #fff; }
.kaf-nav-cat { margin-top: 4px; }
.kaf-nav-cat summary { padding: 9px 10px; border-radius: 8px; cursor: pointer; color: var(--kop-ink); }
.kaf-nav-cat summary:hover { background: #fff; }
.kaf-nav-cat ul { padding-left: 10px; }
.kaf-nav-cat a { font-weight: 500; font-size: 14.5px; }
.kaf-nav-out { margin-top: 8px !important; padding-top: 8px !important; border-top: 1px solid var(--kop-line); }
.kaf-nav-foot { margin: 12px 8px 0; padding-top: 10px; border-top: 1px solid var(--kop-line); font: 500 13.5px/1.5 var(--kop-sans); color: var(--kop-muted); }
.kaf-nav-foot a { display: inline; padding: 0; color: var(--kop-blue-deep); overflow-wrap: anywhere; }
@media (max-width: 900px) {
  .kaf-nav > ul { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
}

/* Buttons */
.kaf-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 13px 24px; border-radius: 40px; text-align: center;
  font: 800 16.5px/1.2 var(--kop-sans); color: #fff !important; text-decoration: none; border: 0; cursor: pointer;
  background: linear-gradient(var(--kop-red-hi), var(--kop-red) 55%, var(--kop-red-lo)); box-shadow: 0 4px 0 #7d0f00, 0 10px 22px rgba(200, 32, 32, .22); }
.kaf-btn:hover { transform: translateY(-1px); }
.kaf-btn.big { font-size: 19px; padding: 16px 32px; }
.kaf-btn.ghost { background: #fff; color: var(--kop-blue-ink) !important; border: 2px solid #b9d3ea; box-shadow: none; }
.kaf-btn.ghost:hover { border-color: var(--kop-blue); }
.kaf-btns { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin: 18px 0 0; }
.kaf-copy { flex: none; padding: 6px 13px; border: 1px solid #c4d7ea; border-radius: 999px; background: #fff; color: var(--kop-blue-ink); cursor: pointer; font: 700 13px/1.2 var(--kop-sans); }
.kaf-copy:hover { border-color: var(--kop-blue); background: var(--kop-sky-2); }
.kaf-copy.ok { background: #e7f4ea; border-color: #9fd0ab; color: #1f7a3a; }

/* Panels */
.kaf-panel { background: #fff; border: 1px solid var(--kop-line); border-radius: 14px; padding: 22px 24px; box-shadow: var(--kop-shadow); margin: 0 0 24px; }
.kaf-panel > :last-child { margin-bottom: 0; }
.kaf-panel h2:first-child, .kaf-panel h3:first-child { margin-top: 0; }
.kaf-sky { background: var(--kop-sky-2); border: 1px solid var(--kop-line); border-radius: 14px; padding: 22px 24px; margin: 0 0 24px; }
.kaf-sky > :last-child { margin-bottom: 0; }
.kaf-cream { background: var(--kop-cream-2); border: 2px dashed #e0d36a; border-radius: 14px; padding: 22px 24px; margin: 0 0 24px; }
.kaf-cream > :last-child { margin-bottom: 0; }
.kaf-msg { background: #fff4f2; border: 1px solid #f1b9b0; border-left: 5px solid var(--kop-red); border-radius: 10px; padding: 14px 18px; margin: 0 0 20px;
  font: 600 15px/1.55 var(--kop-sans); color: #7a1408; }
.kaf-msg span, .kaf-msg strong { color: inherit; font-weight: 600; }
.kaf-ok { background: #e7f4ea; border: 1px solid #9fd0ab; border-left: 5px solid #1f7a3a; border-radius: 10px; padding: 14px 18px; margin: 0 0 20px; font: 600 15.5px/1.55 var(--kop-sans); color: #174f29; }

/* "Use the new area" panel */
.kaf-new { display: flex; gap: 18px; align-items: center; background: var(--kop-cream-2); border: 2px dashed #e0d36a; border-radius: 14px; padding: 18px 20px; margin: 0 0 28px; }
.kaf-new img { flex: none; width: 80px; border-radius: 4px; }
.kaf-new p { margin: 0 0 10px !important; font-size: 16.5px !important; line-height: 1.55 !important; }
.kaf-new .kaf-new-h { font: 800 19px/1.3 var(--kop-sans) !important; color: var(--kop-ink); }
.kaf-new .kaf-btn { padding: 10px 18px; font-size: 15px; box-shadow: 0 3px 0 #7d0f00; }
@media (max-width: 560px) { .kaf-new { flex-direction: column; text-align: center; } }

/* Hoplink generators (the old forms, restyled) */
.kaf-gen { background: var(--kop-sky-2); border: 1px solid var(--kop-line); border-radius: 14px; padding: 20px 22px; margin: 0 0 26px; }
.kaf-gen h3 { margin: 0 0 12px !important; font-size: 19px; }
.site-main .kaf-gen form { background: none; border: 0; padding: 0; margin: 0; }
.kaf-gen table { display: table !important; width: 100%; margin: 0 !important; border: 0; font: 15.5px/1.45 var(--kop-sans); }
.kaf-gen td { display: block; border: 0 !important; padding: 0 0 6px !important; background: none !important; }
.kaf-gen td:empty { display: none; }
.kaf-gen tr { display: block; margin: 0 0 8px; }
.kaf-gen input[type=text], .kaf-gen select { width: 100%; max-width: 420px; font: 16px/1.3 var(--kop-sans); padding: 11px 12px; border: 1px solid #b6c2d4; border-radius: 8px; background: #fff; margin: 0 !important; }
.kaf-gen input[type=submit] { font: 700 16px/1.2 var(--kop-sans); color: #fff; border: 0; border-radius: 40px; padding: 12px 26px; cursor: pointer;
  background: linear-gradient(var(--kop-red-hi), var(--kop-red) 55%, var(--kop-red-lo)); box-shadow: 0 3px 0 #7d0f00; }
.kaf-gen .kaf-gen-out, .kaf-gen tr[bgcolor] td[colspan] { background: #fff !important; border: 2px solid var(--kop-blue) !important; border-radius: 10px; padding: 12px 14px !important;
  font: 14.5px/1.5 ui-monospace, Consolas, monospace; overflow-wrap: anywhere; color: var(--kop-ink); }
.kaf-gen font[color="red"] { color: var(--kop-red); }
.kaf-gen ul { margin: 0 0 10px; }

/* Embed codes */
.kaf-code { background: #fff; border: 1px solid var(--kop-line); border-radius: 12px; padding: 16px 18px; margin: 0 0 18px; }
.kaf-code-h { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 0 0 8px; }
.kaf-code-h label { font: 700 16px/1.3 var(--kop-sans); color: var(--kop-ink); margin: 0 !important; }
.kaf-code textarea { width: 100%; font: 13px/1.5 ui-monospace, Consolas, monospace; padding: 10px 12px; border: 1px solid #c8d6e5; border-radius: 8px; background: var(--kop-sky-2); color: var(--kop-ink); resize: vertical; }
.kaf-code-prev { margin-top: 12px; overflow-x: auto; }
.kaf-code-prev img { display: block; max-width: 100%; height: auto; border-radius: 0 !important; }

/* Keyword groups */
.kaf-kw { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 16px; margin: 0 0 24px; }
.kaf-kw-g { background: #fff; border: 1px solid var(--kop-line); border-radius: 12px; padding: 14px 16px; }
.kaf-kw-h { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin: 0 0 8px; }
.kaf-kw-h h3 { margin: 0 !important; font-size: 16px !important; }
.site-main .kaf-kw ul { list-style: none; margin: 0; padding: 0; }
.site-main .kaf-kw li { margin: 0; padding: 3px 0; border-bottom: 1px dashed #e3ebf3; font: 14.5px/1.4 var(--kop-sans); }
.site-main .kaf-kw li:last-child { border-bottom: 0; }
.kaf-kw-g.wide { grid-column: 1 / -1; }
.site-main .kaf-kw-g.wide ul { columns: 3 190px; column-gap: 24px; }
.site-main .kaf-kw-g.wide li { break-inside: avoid; }

/* Tables of hoplinks */
.kaf-links { width: 100%; }
.site-main .kaf-links td:last-child { font: 13.5px/1.45 ui-monospace, Consolas, monospace; overflow-wrap: anywhere; word-break: break-all; }

/* Steps */
.kaf-steps { counter-reset: s; list-style: none; padding: 0 !important; margin: 0 0 24px; display: grid; gap: 14px; }
.kaf-steps > li { counter-increment: s; position: relative; padding: 16px 18px 16px 64px !important; background: #fff; border: 1px solid var(--kop-line); border-radius: 12px; margin: 0 !important; }
.kaf-steps > li::before { content: counter(s); position: absolute; left: 16px; top: 15px; width: 34px; height: 34px; border-radius: 50%; background: var(--kop-blue); color: #fff;
  font: 800 17px/34px var(--kop-sans); text-align: center; }
.kaf-steps > li p { margin: 0 !important; }
.kaf-steps > li b { display: block; font: 800 17px/1.35 var(--kop-sans); color: var(--kop-ink); margin: 0 0 4px; }

/* Ordinary forms on these pages (application, log in, password) */
.kaf-form { background: var(--kop-sky-2); border: 1px solid var(--kop-line); border-radius: 14px; padding: 22px 24px; margin: 0 0 24px; }
.site-main .kaf-form form, .site-main form.kaf-form { background: var(--kop-sky-2); border: 1px solid var(--kop-line); padding: 22px 24px; }
.site-main .kaf-form form { border: 0; padding: 0; margin: 0; background: none; }
.kaf-field { margin: 0 0 14px; }
.kaf-field label, .kaf-label { display: block; margin: 0 0 5px !important; font: 700 15px/1.35 var(--kop-sans) !important; color: var(--kop-ink); }
.kaf-field small { display: block; margin-top: 4px; font: 13.5px/1.45 var(--kop-sans); color: var(--kop-muted); }
.site-main .kaf-field input[type=text], .site-main .kaf-field input[type=password], .site-main .kaf-field input[type=email], .site-main .kaf-field select {
  max-width: 100%; margin: 0 !important; }
.kaf-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
@media (max-width: 640px) { .kaf-grid2 { grid-template-columns: 1fr; } }
.kaf-fieldset { border: 0; margin: 0 0 18px; padding: 0; min-width: 0; }
.kaf-fieldset legend { padding: 0; margin: 0 0 12px; font: 800 19px/1.3 var(--kop-sans); color: var(--kop-blue-ink); }
.kaf-check { display: grid !important; grid-template-columns: 28px minmax(0, 1fr); gap: 10px; align-items: start; background: #fff; border: 1px solid var(--kop-line); border-radius: 10px;
  padding: 14px 16px; margin: 0 0 10px !important; font: 400 15.5px/1.55 var(--kop-sans) !important; color: var(--kop-text) !important; cursor: pointer; }
.kaf-check input { width: 22px !important; height: 22px; margin: 2px 0 0 !important; }
.kaf-check p { margin: 0 !important; font-size: 15.5px !important; line-height: 1.55 !important; }
.kaf-check strong { color: var(--kop-ink); }
.kaf-submit { text-align: center; margin-top: 18px; }
.site-main .kaf-submit input[type=submit] { font-size: 19px; padding: 15px 40px; }
.kaf-formlinks { margin: 14px 0 0 !important; font: 600 15px/1.5 var(--kop-sans) !important; text-align: center; }
.kaf-formlinks a { margin: 0 8px; }

/* Landing page (/aff/) */
.kaf-hero { background: linear-gradient(180deg, #d6e8f7 0%, var(--kop-sky) 60%, var(--kop-sky-2) 100%); border-bottom: 1px solid var(--kop-line); }
.kaf-hero-in { max-width: 1120px; margin: 0 auto; padding: 42px 20px 44px; display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 40px; align-items: center; }
.kaf-hero h1 { margin: 0; font-size: clamp(30px, 4.4vw, 46px); font-weight: 800; line-height: 1.12; letter-spacing: -.5px; color: var(--kop-blue-ink); }
.kaf-hero-lead { margin: 16px 0 0; font-size: 19.5px; line-height: 1.6; color: var(--kop-ink); max-width: 640px; }
.kaf-hero-note { margin: 14px 0 0; font: 600 14.5px/1.5 var(--kop-sans); color: var(--kop-muted); }
@media (max-width: 900px) { .kaf-hero-in { grid-template-columns: minmax(0, 1fr); gap: 26px; padding: 30px 18px 34px; } }

.kaf-login { background: #fff; border: 1px solid var(--kop-line); border-radius: 16px; padding: 22px; box-shadow: var(--kop-shadow); }
.kaf-login h2 { margin: 0 0 4px; font-size: 21px; color: var(--kop-ink); }
.kaf-login > p { margin: 0 0 14px; font: 15px/1.5 var(--kop-sans); color: var(--kop-muted); }
.kaf-login form { display: grid; gap: 12px; margin: 0; }
.kaf-login label { display: grid; gap: 5px; font: 700 14.5px/1.3 var(--kop-sans); color: var(--kop-ink); }
.kaf-login input[type=text], .kaf-login input[type=password] { width: 100%; font: 16px/1.3 var(--kop-sans); padding: 12px 13px; border: 1px solid #b6c2d4; border-radius: 8px; }
.kaf-login input[type=submit] { font: 800 17px/1.2 var(--kop-sans); color: #fff; border: 0; border-radius: 40px; padding: 13px 20px; cursor: pointer;
  background: linear-gradient(var(--kop-blue), var(--kop-blue-deep)); box-shadow: 0 3px 0 var(--kop-blue-ink); }
.kaf-login .kaf-formlinks { font-size: 14px !important; margin-top: 4px !important; }

.kaf-stats { max-width: 1120px; margin: -26px auto 0; padding: 0 20px; position: relative; z-index: 2; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.kaf-stats div { background: #fff; border: 1px solid var(--kop-line); border-radius: 12px; padding: 16px; box-shadow: 0 8px 22px rgba(15, 79, 120, .1); font: 14px/1.45 var(--kop-sans); color: var(--kop-muted); }
.kaf-stats b { display: block; font: 800 25px/1.15 var(--kop-sans); color: var(--kop-blue-ink); margin: 0 0 4px; }
.kaf-stats b.red { color: var(--kop-red); }
@media (max-width: 960px) { .kaf-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 22px; } .kaf-stats div:last-child { grid-column: 1 / -1; } }

.kaf-sec { max-width: 1120px; margin: 0 auto; padding: 54px 20px 0; }
.kaf-sec:last-of-type { padding-bottom: 64px; }
.kaf-sec > h2, .kaf-sec-h h2 { margin: 0 0 10px; font-size: clamp(25px, 3vw, 33px); font-weight: 800; color: var(--kop-ink); line-height: 1.2; }
.kaf-sec-h { max-width: 760px; margin: 0 0 22px; }
.kaf-sec-h p { margin: 0; font-size: 18px; line-height: 1.65; }
.kaf-sec-h p + p { margin-top: 12px; }
.kaf-two { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px; align-items: start; }
@media (max-width: 860px) { .kaf-two { grid-template-columns: minmax(0, 1fr); } }
.kaf-sec p { font-size: 18px; line-height: 1.7; }

.kaf-product { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 28px; align-items: center; }
.kaf-product img { width: 200px; display: block; margin: 0 auto; }
.kaf-product ul { margin: 12px 0 0; padding-left: 1.3em; }
.kaf-product li { margin: 6px 0; font-size: 17px; line-height: 1.55; }
.kaf-product li::marker { color: var(--kop-blue-deep); }
@media (max-width: 680px) { .kaf-product { grid-template-columns: minmax(0, 1fr); } .kaf-product img { width: 150px; } }

.kaf-table { width: 100%; border-collapse: collapse; font: 16px/1.4 var(--kop-sans); background: #fff; border-radius: 12px; overflow: hidden; box-shadow: var(--kop-shadow); }
.kaf-table th, .kaf-table td { padding: 12px 16px; border-bottom: 1px solid var(--kop-line); text-align: left; }
.kaf-table th { background: var(--kop-blue); color: #fff; font-weight: 700; }
.kaf-table td + td, .kaf-table th + th { text-align: right; white-space: nowrap; }
.kaf-table td:last-child { font-weight: 800; color: var(--kop-ink); }
.kaf-fine { margin: 10px 0 0 !important; font: 14px/1.5 var(--kop-sans) !important; color: var(--kop-muted); }
@media (max-width: 520px) { .kaf-table th, .kaf-table td { padding: 10px 10px; font-size: 14.5px; } .kaf-table td + td, .kaf-table th + th { white-space: normal; } }

.kaf-flow { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.kaf-flow li { position: relative; background: #fff; border: 1px solid var(--kop-line); border-radius: 12px; padding: 16px; font: 15px/1.5 var(--kop-sans); color: var(--kop-text); }
.kaf-flow li b { display: block; margin: 0 0 4px; font: 800 16.5px/1.3 var(--kop-sans); color: var(--kop-blue-ink); }
@media (max-width: 860px) { .kaf-flow { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
@media (max-width: 480px) { .kaf-flow { grid-template-columns: minmax(0, 1fr); } }

.kaf-tools { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; }
.kaf-tool { display: block; background: #fff; border: 1px solid var(--kop-line); border-radius: 12px; padding: 16px 18px; text-decoration: none; color: var(--kop-text);
  font: 15px/1.5 var(--kop-sans); transition: border-color .12s ease, box-shadow .12s ease; }
.kaf-tool b { display: block; margin: 0 0 4px; font: 800 17px/1.3 var(--kop-sans); color: var(--kop-blue-deep); }
.kaf-tool:hover { border-color: var(--kop-blue); box-shadow: var(--kop-shadow); }

.kaf-prods { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 16px; }
.kaf-prod { background: #fff; border: 1px solid var(--kop-line); border-radius: 12px; padding: 16px; text-align: center; font: 15px/1.45 var(--kop-sans); }
.kaf-prod img { width: 110px; height: auto; display: block; margin: 0 auto 10px; }
.kaf-prod b { display: block; font: 800 16.5px/1.3 var(--kop-sans); color: var(--kop-ink); }
.kaf-prod span { display: block; color: var(--kop-muted); margin: 2px 0 10px; }
.kaf-prod a { font-weight: 700; }

.kaf-dl { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.kaf-dl > div { background: #fff; border: 1px solid var(--kop-line); border-radius: 12px; padding: 18px 20px; }
.kaf-dl h3 { margin: 0 0 8px; font-size: 18px; }
.kaf-dl ul { margin: 0; padding-left: 1.2em; }
.kaf-dl li { margin: 5px 0; font: 15.5px/1.5 var(--kop-sans); }
@media (max-width: 700px) { .kaf-dl { grid-template-columns: minmax(0, 1fr); } }

.kaf-close { text-align: center; background: var(--kop-cream-2); border: 2px dashed #e0d36a; border-radius: 16px; padding: 30px 22px; }
.kaf-close h2 { margin: 0 0 10px; font-size: clamp(24px, 3vw, 31px); }
.kaf-close p { max-width: 640px; margin: 0 auto 6px; }
.kaf-close .kaf-btns { justify-content: center; }

/* Category buttons in the logged-in area */
.kaf-cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; margin: 0 0 24px; }
.kaf-cats a.cat-thumb { display: block; height: 66px; border-radius: 6px; background-repeat: no-repeat; background-size: auto; border: 1px solid var(--kop-line); }
.kaf-cats a.cat-thumb:hover { background-position: 0 -66px; }
.kaf-page img { max-width: 100%; height: auto; }
.kaf-page table { display: block; overflow-x: auto; }

/* FAQ from the old affiliate help */
.kaf-faq details { background: #fff; border: 1px solid var(--kop-line); border-radius: 10px; margin: 0 0 8px; }
.kaf-faq summary { padding: 12px 16px; cursor: pointer; font: 700 16px/1.4 var(--kop-sans); color: var(--kop-ink); }
.kaf-faq .answer { padding: 0 16px 14px; }
/* Inputs written without a type attribute (old forms kept exactly) */
.site-main form:not(.kop-optin) input:not([type]) { width: 100%; max-width: 520px; font: 16px/1.3 var(--kop-sans); padding: 12px 13px; border: 1px solid #b6c2d4; border-radius: 6px; margin: 0 0 14px; background: #fff; }
.site-main .kaf-field input:not([type]) { max-width: 100%; margin: 0 !important; }
