/* =========================================================================
   犬種・猫種 大辞典 共通スタイル（dict.css）
   わんにゃんチェッカー / petdogcat.jp
   ========================================================================= */
:root{
  --ink:#2c2a27; --ink-soft:#5c5850; --line:rgba(120,110,150,.18);
  --dog:#e36e42; --dog-d:#c2542c; --cat:#3cb4a0; --cat-d:#2b8f7f;
  --pv:#c7abf5; --pg:#aae6c0; --card:#ffffff;
  --grad:linear-gradient(135deg,rgba(199,171,245,.60) 0%,rgba(210,200,242,.48) 48%,rgba(170,230,192,.58) 100%);
  --grad-strong:linear-gradient(135deg,rgba(199,171,245,.80) 0%,rgba(210,200,242,.66) 48%,rgba(170,230,192,.78) 100%);
  --font:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Yu Gothic","YuGothic",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font);color:var(--ink);line-height:1.85;-webkit-font-smoothing:antialiased;background:transparent}
a{color:var(--dog-d);text-decoration:none}
img{max-width:100%;display:block}
.container{width:min(1160px,92vw);margin-inline:auto}

/* ---- Header ---- */
.dhead{position:sticky;top:0;z-index:100;background:var(--grad-strong);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);
  box-shadow:0 1px 16px rgba(44,42,39,.06)}
.dhead__in{display:flex;align-items:center;gap:18px;min-height:96px;flex-wrap:wrap}
.dhead__logo img{height:80px;width:auto}
.dnav{display:flex;flex-wrap:wrap;gap:6px 14px;margin-left:auto;align-items:center}
.dnav a{color:var(--ink);font-weight:700;font-size:.94rem;padding:6px 4px;border-radius:8px;white-space:nowrap}
.dnav a:hover{color:var(--dog-d)}
.dnav a.is-current{background:#fff;color:var(--dog-d);padding:6px 12px;box-shadow:0 2px 8px rgba(120,110,150,.18)}
@media(max-width:720px){.dhead__logo img{height:60px}.dnav{gap:4px 10px}.dnav a{font-size:.82rem}}

/* ---- Hero ---- */
.dhero{padding:44px 0 30px;text-align:center}
.dhero__eyebrow{display:inline-block;font-weight:800;letter-spacing:.14em;font-size:.8rem;
  color:#fff;background:linear-gradient(135deg,var(--dog),var(--dog-d));padding:5px 16px;border-radius:999px}
.dhero__eyebrow.cat{background:linear-gradient(135deg,var(--cat),var(--cat-d))}
.dhero h1{font-size:clamp(1.7rem,4.6vw,2.7rem);margin:.5em 0 .2em}
.dhero p{color:var(--ink-soft);margin:.2em auto;max-width:640px}
.dhero__count{font-weight:800;color:var(--dog-d)}
.dhero__count.cat{color:var(--cat-d)}

/* ---- Controls ---- */
.dctrl{position:sticky;top:96px;z-index:40;background:rgba(255,255,255,.78);backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:16px;padding:14px 16px;margin:8px 0 22px;
  box-shadow:0 4px 18px rgba(120,110,150,.10)}
.dctrl__search{width:100%;border:2px solid var(--line);border-radius:12px;padding:11px 14px;font-size:1rem;font-family:inherit}
.dctrl__search:focus{outline:none;border-color:var(--pv)}
.dchips{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.dchip{border:1.5px solid var(--line);background:#fff;color:var(--ink-soft);border-radius:999px;
  padding:5px 13px;font-size:.85rem;font-weight:700;cursor:pointer;font-family:inherit}
.dchip.is-active{background:var(--grad-strong);color:var(--ink);border-color:transparent}
.dcount{font-size:.85rem;color:var(--ink-soft);margin:0 0 12px;font-weight:700}

/* ---- Grid ---- */
.dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px;padding-bottom:40px}
.dcard{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;
  box-shadow:0 3px 12px rgba(44,42,39,.07);transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}
.dcard:hover{transform:translateY(-4px);box-shadow:0 12px 26px rgba(120,110,150,.20)}
.dcard__ph{aspect-ratio:4/3;background:#efeaf6 var(--grad);overflow:hidden}
.dcard__ph img{width:100%;height:100%;object-fit:cover}
.dcard__b{padding:12px 14px 15px;display:flex;flex-direction:column;gap:5px;flex:1}
.dcard__name{font-weight:800;font-size:1.05rem;line-height:1.35}
.dcard__en{font-size:.76rem;color:var(--ink-soft);letter-spacing:.02em}
.dcard__origin{font-size:.74rem;color:var(--dog-d);font-weight:700}
.dcard__origin.cat{color:var(--cat-d)}
.dcard__desc{font-size:.83rem;color:var(--ink-soft);margin-top:2px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dempty{text-align:center;color:var(--ink-soft);padding:50px 0;font-weight:700}

/* ---- Detail ---- */
.dcrumb{font-size:.82rem;color:var(--ink-soft);padding:16px 0 0}
.dcrumb a{color:var(--ink-soft)}
.ddetail{padding:14px 0 40px}
.ddetail__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:30px;align-items:start}
@media(max-width:780px){.ddetail__grid{grid-template-columns:1fr;gap:18px}}
.dfig{margin:0;border-radius:20px;overflow:hidden;background:var(--grad);border:1px solid var(--line);box-shadow:0 6px 22px rgba(120,110,150,.16)}
.dfig img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.dfig figcaption{font-size:.72rem;color:var(--ink-soft);padding:7px 12px;background:#fff}
.ddetail h1{font-size:clamp(1.6rem,4.5vw,2.4rem);margin:.1em 0 .1em}
.ddetail__en{color:var(--ink-soft);font-weight:700;margin:0 0 14px}
.dmeta{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.dmeta span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px 13px;font-size:.83rem;font-weight:700}
.dmeta .k{color:var(--ink-soft);font-weight:700;margin-right:5px}
.dbody p{margin:0 0 1em}
.dcite{margin:22px 0;padding:14px 16px;background:rgba(199,171,245,.14);border:1px solid var(--line);
  border-radius:14px;font-size:.83rem;color:var(--ink-soft)}
.dcite a{color:var(--dog-d);font-weight:700}
.dcv{margin:26px 0 10px;padding:20px;border-radius:18px;background:var(--grad);border:1px solid var(--line)}
.dcv h2{margin:.1em 0 .5em;font-size:1.15rem}
.dcv__row{display:flex;flex-wrap:wrap;gap:10px}
.dcv__btn{display:inline-flex;align-items:center;gap:6px;background:#fff;border-radius:12px;padding:10px 16px;
  font-weight:800;font-size:.9rem;box-shadow:0 3px 10px rgba(120,110,150,.16)}
.dcv__btn:hover{transform:translateY(-2px)}
.dpn{display:flex;justify-content:space-between;gap:12px;margin:26px 0;font-weight:700;font-size:.9rem}
.dpn a{flex:1;padding:12px 14px;background:#fff;border:1px solid var(--line);border-radius:12px}
.dpn a.n{text-align:right}
.dback{display:inline-block;margin:8px 0 0;font-weight:700}

/* ---- Footer ---- */
.dfoot{background:var(--grad-strong);border-top:1px solid var(--line);padding:30px 0;margin-top:20px;font-size:.85rem}
.dfoot__nav{display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:center;margin-bottom:12px}
.dfoot__nav a{color:var(--ink);font-weight:700}
.dfoot__cr{text-align:center;color:var(--ink-soft)}
