/*
Theme Name: ColoringBrush
Theme URI: https://www.coloringbrush.com/
Author: ColoringBrush
Description: A fast, accessible WordPress theme for printable coloring pages and category collections.
Version: 1.4.2
Requires at least: 6.5
Requires PHP: 7.4
Text Domain: coloringbrush
*/

:root {
  --ink: #202033;
  --muted: #62657b;
  --paper: #fff9ec;
  --white: #fff;
  --line: #ece2d5;
  --coral: #ff6b6b;
  --sun: #ffd166;
  --mint: #7bdff2;
  --leaf: #80ed99;
  --berry: #b388ff;
  --blue: #4dabf7;
  --pink: #ffafcc;
  --shadow: 0 18px 45px rgba(44,35,94,.14);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: radial-gradient(circle at 8% 12%,rgba(255,209,102,.45) 0 90px,transparent 92px),radial-gradient(circle at 92% 6%,rgba(123,223,242,.45) 0 110px,transparent 112px),linear-gradient(180deg,#fff4cf 0,#fff9ec 460px,#fffdf8 100%);
  font-family: "Trebuchet MS",Arial,sans-serif;
  line-height: 1.6;
}
a { color: inherit; }
img, svg { display: block; max-width: 100%; height: auto; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { width: auto; height: auto; margin: 8px; padding: 12px 16px; clip: auto; background: #fff; z-index: 100; }

.site-header {
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding: 18px clamp(16px,5vw,64px); background: rgba(255,255,255,.92);
  border-bottom: 1px solid rgba(32,32,51,.08); position: sticky; top: 0; z-index: 20; backdrop-filter: blur(16px);
}
.brand { display: inline-flex; align-items: center; gap: 10px; font-size: 1.5rem; font-weight: 900; text-decoration: none; white-space: nowrap; }
.brand-mark { width: 36px; height: 36px; border-radius: 8px; background: linear-gradient(135deg,var(--coral),var(--sun) 50%,var(--mint)); box-shadow: inset 0 -4px 0 rgba(32,32,51,.12); }
.nav { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.nav a { min-height: 36px; padding: 7px 11px; color: var(--muted); font-size: .9rem; font-weight: 900; text-decoration: none; background: #fff; border: 1px solid rgba(32,32,51,.08); border-radius: 8px; }
.nav a:hover,.nav a:focus-visible { color: var(--ink); border-color: rgba(32,32,51,.2); box-shadow: 0 8px 22px rgba(44,35,94,.1); }

.site-main { width: min(1180px,calc(100% - 32px)); margin: 0 auto; }
.hero { display: grid; grid-template-columns: minmax(0,1fr) minmax(300px,470px); gap: clamp(26px,6vw,72px); align-items: center; min-height: 610px; padding: 48px 0 42px; }
.eyebrow { display: inline-flex; align-items: center; min-height: 30px; margin: 0 0 16px; padding: 7px 11px; color: #6d3b00; font-size: .78rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; background: #ffe8a8; border: 1px solid rgba(109,59,0,.12); border-radius: 8px; }
h1,h2,h3,p { overflow-wrap: anywhere; }
h1 { margin: 0; max-width: 760px; font-size: clamp(2.7rem,6.5vw,5.7rem); line-height: .94; }
h2 { margin: 0; font-size: clamp(2rem,4vw,3.35rem); line-height: 1.05; }
h3 { line-height: 1.2; }
.hero-copy { max-width: 710px; margin: 20px 0 0; color: var(--muted); font-size: 1.12rem; line-height: 1.7; }
.hero-actions,.button-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 12px 18px; color: #fff; font-weight: 900; text-decoration: none; background: var(--ink); border: 0; border-radius: 8px; box-shadow: 0 10px 0 rgba(32,32,51,.12); cursor: pointer; }
.button.secondary { color: var(--ink); background: #fff; border: 1px solid rgba(32,32,51,.12); box-shadow: none; }
.hero-art { position: relative; padding: 16px; background: linear-gradient(145deg,#fff,#fff7df); border: 1px solid rgba(32,32,51,.1); border-radius: 8px; box-shadow: var(--shadow); }
.hero-art:before,.hero-art:after { content: ""; position: absolute; border-radius: 8px; z-index: -1; }
.hero-art:before { inset: 28px -14px -16px 26px; background: var(--mint); }
.hero-art:after { inset: -14px 32px 34px -14px; background: var(--pink); }

.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; padding: 54px 0 22px; }
.section-note { max-width: 520px; margin: 0; color: var(--muted); }
.category-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.category-card { display: block; min-height: 100%; padding: 16px; background: rgba(255,255,255,.86); border: 1px solid rgba(32,32,51,.1); border-radius: 12px; box-shadow: 0 12px 28px rgba(44,35,94,.09); text-decoration: none; transition: transform .2s ease,box-shadow .2s ease; }
.category-card:hover,.category-card:focus-visible { transform: translateY(-4px); box-shadow: var(--shadow); }
.thumb { overflow: hidden; padding: 10px; background: #fff4d9; border-radius: 9px; }
.thumb.mandalas { background: #eee7ff; }.thumb.vehicles { background: #e3f7ff; }.thumb.fantasy { background: #ffe8f2; }.thumb.holidays { background: #e7ffe9; }.thumb.alphabet { background: #fff0c7; }
.card-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; font-size: 1.16rem; font-weight: 900; }
.pill { flex: none; padding: 4px 8px; color: #57546d; font-size: .72rem; background: #f4f1ec; border-radius: 999px; }
.category-card p,.printable-card p,.archive-intro,.entry-content { color: var(--muted); }

.category-panel { margin: 54px 0 0; padding: clamp(22px,4vw,42px); background: rgba(255,255,255,.9); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow); scroll-margin-top: 100px; }
.category-head { display: grid; grid-template-columns: 1fr minmax(220px,320px); gap: 34px; align-items: center; }
.category-head p { max-width: 720px; color: var(--muted); }
.printable-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin-top: 28px; }
.printable-card { padding: 20px; background: #fffdf7; border: 1px solid var(--line); border-radius: 10px; }
.printable-card h3 { margin: 0 0 8px; font-size: 1.15rem; }.printable-card p { margin: 0; }
.card-link { display: block; height: 100%; text-decoration: none; }

.archive-header { padding: 70px 0 32px; max-width: 820px; }
.archive-header h1,.single-header h1 { font-size: clamp(2.5rem,6vw,5rem); }
.archive-intro { font-size: 1.1rem; }
.archive-grid { padding-bottom: 72px; }
.single-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(300px,480px); gap: 50px; align-items: start; padding: 70px 0; }
.single-header .entry-content { font-size: 1.08rem; }.single-art { padding: 16px; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); }
.breadcrumbs { margin: 0 0 18px; color: var(--muted); font-size: .92rem; }.breadcrumbs a { font-weight: 700; }
.site-footer { margin-top: 72px; padding: 32px max(16px,calc((100% - 1180px)/2)); background: var(--ink); color: #fff; }
.site-footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; }.site-footer a { color: #fff; }
.pagination { margin: 32px 0 64px; }.pagination .nav-links { display: flex; gap: 8px; flex-wrap: wrap; }.page-numbers { padding: 8px 12px; background: #fff; border: 1px solid var(--line); border-radius: 6px; }

@media (max-width:900px) {
  .site-header { align-items: flex-start; flex-direction: column; }.nav { justify-content: flex-start; }
  .hero,.single-layout { grid-template-columns: 1fr; }.hero { min-height: auto; padding-top: 64px; }.hero-art { max-width: 430px; }
  .category-grid,.printable-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.category-head { grid-template-columns: 1fr; }.category-head .thumb { max-width: 360px; }
}
@media (max-width:580px) {
  .site-main { width: min(100% - 24px,1180px); }.category-grid,.printable-grid { grid-template-columns: 1fr; }.section-heading,.site-footer-inner { align-items: flex-start; flex-direction: column; }
}
@media print {
  .site-header,.site-footer,.breadcrumbs,.single-header,.print-actions { display: none !important; }
  body { background: #fff; }.site-main,.single-layout { width: 100%; display: block; padding: 0; }.single-art { max-width: 8in; margin: 0 auto; border: 0; box-shadow: none; }
}

/* Hierarchical animal topic pages */
.topic-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,450px); gap:clamp(26px,6vw,72px); align-items:center; padding:52px 0 34px; }
.topic-grid,.topic-design-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.topic-card,.topic-design-card { display:grid; gap:12px; padding:14px; background:#fff; border:1px solid rgba(32,32,51,.1); border-radius:10px; box-shadow:0 12px 30px rgba(44,35,94,.08); }
.topic-card { color:inherit; text-decoration:none; transition:transform .2s ease,box-shadow .2s ease; }
.topic-card:hover,.topic-card:focus-visible { transform:translateY(-4px); box-shadow:var(--shadow); }
.topic-card h2 { font-size:1.2rem; }.topic-card p,.topic-design-card p { margin:0; color:var(--muted); }
.topic-thumb,.page-preview { display:grid; place-items:center; min-height:380px; padding:12px; background:linear-gradient(135deg,#f7fbff,#fff7de); border:1px solid rgba(32,32,51,.08); border-radius:8px; }
.topic-thumb.panda { background:linear-gradient(135deg,#d8f8c8,#fff2b8); }.topic-thumb.cats { background:linear-gradient(135deg,#ffd6e8,#fff3b0); }.topic-thumb.dogs { background:linear-gradient(135deg,#caffbf,#bde0fe); }.topic-thumb.birds { background:linear-gradient(135deg,#dff6ff,#fff1b8); }.topic-thumb.parrots { background:linear-gradient(135deg,#caffbf,#ffd6a5); }.topic-thumb.owls { background:linear-gradient(135deg,#e4c1f9,#f1f1e6); }.topic-thumb.eagles { background:linear-gradient(135deg,#cde7ff,#fff0b5); }.topic-thumb.peacocks { background:linear-gradient(135deg,#9bf6ff,#bdb2ff); }.topic-thumb.ducks { background:linear-gradient(135deg,#fdffb6,#caffbf); }.topic-thumb.flamingos { background:linear-gradient(135deg,#ffadad,#ffd6e8); }.topic-thumb.farm-animals { background:linear-gradient(135deg,#ffd6a5,#fdffb6); }.topic-thumb.safari-animals { background:linear-gradient(135deg,#fbc4ab,#ffdab9); }.topic-thumb.ocean-animals { background:linear-gradient(135deg,#9bf6ff,#bdb2ff); }
.topic-thumb svg,.page-preview svg { max-height:520px; background:#fff; border-radius:8px; }
.topic-hero-image,.coloring-page-image,.single-coloring-image,.thumb img { display:block; width:100%; height:auto; background:#fff; border-radius:8px; }
.topic-hero-image { max-height:620px; object-fit:contain; }
.coloring-page-link { color:inherit; text-decoration:none; overflow:hidden; }
.coloring-page-image { max-height:520px; object-fit:contain; }
.real-coloring-card .card-meta a { color:inherit; text-decoration:none; }
.real-coloring-card .card-meta a:hover,.real-coloring-card .card-meta a:focus-visible { text-decoration:underline; }
.single-coloring-image { max-height:none; object-fit:contain; }
.topic-design-card .card-meta h3 { margin:0; font-size:1.14rem; }
.card-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.small-button { display:inline-flex; align-items:center; justify-content:center; min-height:38px; padding:9px 10px; color:var(--ink); font:900 .86rem inherit; background:#fff; border:1px solid rgba(32,32,51,.12); border-radius:8px; cursor:pointer; }
.info-band { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:60px 0; padding:clamp(20px,4vw,30px); background:rgba(255,255,255,.82); border:1px solid rgba(32,32,51,.08); border-radius:10px; box-shadow:0 12px 34px rgba(44,35,94,.08); }
.info { padding:18px; background:#fff; border:1px solid rgba(32,32,51,.08); border-radius:8px; }.info h3 { margin:0 0 8px; font-size:1rem; }.info p { margin:0; color:var(--muted); }
@media(max-width:980px){.topic-hero{grid-template-columns:1fr}.topic-hero .hero-art{max-width:440px}.topic-grid,.topic-design-grid,.info-band{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.topic-grid,.topic-design-grid,.info-band{grid-template-columns:1fr}.topic-thumb,.page-preview{min-height:320px}}
@media print{
  body.tax-coloring_category .site-header,body.tax-coloring_category .site-footer,body.tax-coloring_category .topic-hero,body.tax-coloring_category .section-heading,body.tax-coloring_category .info-band,body.tax-coloring_category .card-meta,body.tax-coloring_category .card-actions,body.tax-coloring_category .topic-design-card p{display:none!important}
  body.tax-coloring_category .site-main{width:100%} body.tax-coloring_category .topic-design-grid{display:block} body.tax-coloring_category .topic-design-card{display:block;border:0;box-shadow:none;page-break-after:always} body.tax-coloring_category .page-preview{min-height:0;padding:0;border:0;background:#fff} body.tax-coloring_category .page-preview svg,body.tax-coloring_category .page-preview img{max-height:96vh;width:auto;margin:auto}
}
/* Information pages, contact form, and expanded footer */
.content-page { max-width:900px; margin:0 auto; padding:70px 0; }
.content-page-header { margin-bottom:34px; }.content-page-header h1 { font-size:clamp(2.6rem,6vw,5rem); }.page-summary { max-width:760px; color:var(--muted); font-size:1.15rem; }
.content-page .entry-content { padding:clamp(22px,4vw,42px); color:var(--ink); background:rgba(255,255,255,.92); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow); }
.content-page .entry-content h2 { margin:2rem 0 .65rem; font-size:clamp(1.45rem,3vw,2rem); }.content-page .entry-content h2:first-child { margin-top:0; }.content-page .entry-content p,.content-page .entry-content li { color:#4f5268; }.content-page .entry-content a { font-weight:800; text-decoration-thickness:2px; text-underline-offset:3px; }
.cb-contact-form { margin-top:28px; }.cb-contact-form p { margin:0 0 18px; }.cb-contact-form label { display:block; margin-bottom:7px; color:var(--ink); font-weight:900; }.cb-contact-form input,.cb-contact-form textarea { width:100%; padding:12px 14px; color:var(--ink); background:#fff; border:1px solid #cfc8bd; border-radius:8px; font:inherit; }.cb-contact-form input:focus,.cb-contact-form textarea:focus { outline:3px solid rgba(77,171,247,.25); border-color:var(--blue); }.contact-trap { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }.contact-notice { margin:0 0 24px; padding:14px 16px; border-radius:8px; }.contact-notice.success { background:#e6ffec; border:1px solid #80c990; }.contact-notice.error { background:#fff0f0; border:1px solid #e39a9a; }
.site-footer { margin-top:72px; padding:48px max(16px,calc((100% - 1180px)/2)) 24px; color:#fff; background:var(--ink); }
.footer-grid { display:grid; grid-template-columns:1.35fr 1fr .8fr 1fr; gap:clamp(28px,5vw,64px); }.footer-brand p { max-width:320px; color:#d7d7e4; }.footer-logo { color:#fff; }.footer-links h2 { margin:0 0 14px; color:#fff; font-size:1rem; text-transform:uppercase; letter-spacing:.08em; }.footer-links ul { margin:0; padding:0; list-style:none; }.footer-links li+li { margin-top:8px; }.footer-links a { color:#e7e7f0; text-decoration:none; }.footer-links a:hover,.footer-links a:focus-visible { color:#fff; text-decoration:underline; text-underline-offset:4px; }.footer-bottom { display:flex; justify-content:space-between; gap:24px; margin-top:42px; padding-top:20px; color:#bfc0d0; border-top:1px solid rgba(255,255,255,.15); font-size:.9rem; }.footer-bottom p { margin:0; }
@media(max-width:900px){.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){.content-page{padding-top:44px}.footer-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column;gap:8px}}