/* ============================================================
   Genyas（ジーにゃあス） — 和モダン × 三毛づくし 共通スタイル
   WordPress 移植を見据え、BEM 風 + WP 慣習クラスで構成
   ============================================================ */

/* ---- 1. デザイントークン -------------------------------- */
:root{
  /* 三毛の三色 + 和の差し色 */
  --washi:      #F4EEE2;   /* 生成り・ページ地 */
  --washi-deep: #EBE1CF;
  --washi-2:    #EDE4D3;   /* セクション替え地 */
  --paper:      #FCFAF4;   /* カード地 */
  --sumi:       #2A2521;   /* 墨・本文 */
  --sumi-soft:  #6A6157;   /* 副次テキスト */
  --cha:        #B96A3C;   /* 茶（三毛・主役色 / アクション） */
  --cha-deep:   #9A5430;
  --cha-deep2:  #8A4E2B;
  --kincha:     #D8A14A;   /* 黄土・ハイライト */
  --kuro:       #211D1A;   /* 三毛の黒斑 */
  --shu:        #C8472E;   /* 朱・落款アクセント */
  --line:       #DED4C1;   /* 罫線 */
  --line-soft:  rgba(42,37,33,0.10);
  --shadow-s:   0 2px 10px rgba(42,37,33,0.06);
  --shadow-m:   0 10px 30px rgba(42,37,33,0.10);
  --shadow-l:   0 24px 60px rgba(42,37,33,0.14);

  /* 字組み */
  --mincho: "Shippori Mincho B1","Shippori Mincho B1 Fallback","Shippori Mincho",serif;
  --gothic: "Zen Kaku Gothic New","Zen Kaku Gothic New Fallback","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --latin:  "Jost",var(--gothic);
  --logo-en: "Henny Penny",cursive;

  --maxw: 1200px;
  --gut: clamp(20px,5vw,64px);
  --radius: 6px;
  --radius-m: 10px;
  --radius-l: 14px;

  /* 統一タイプスケール（流体・傾きを穏やかにして中間幅の暴れを防ぐ） */
  --fs-xs:    .78rem;
  --fs-sm:    .88rem;
  --fs-base:  1rem;
  --fs-lead:  clamp(1rem, .4vw + .9rem, 1.14rem);
  --fs-h4:    clamp(1.14rem, .5vw + 1rem, 1.3rem);
  --fs-h3:    clamp(1.3rem, 1vw + 1.05rem, 1.6rem);
  --fs-h2:    clamp(1.6rem, 1.8vw + 1.1rem, 2.25rem);
  --fs-h1:    clamp(1.85rem, 2.4vw + 1.2rem, 2.7rem);
  --fs-display: clamp(2.1rem, 2.4vw + 1.25rem, 3.05rem);

  /* レイアウト定数（@media の px 値と対応 — 782 は WP 管理バー専用） */
  --header-h: 78px;
  --media-sp-max: 520px;
  --hero-visual-sp-max: 420px;
  /* SP: 760 / タブレット: 900 / 中幅: 980 */
}

/* ---- 2. リセット & ベース ------------------------------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--gothic);
  font-weight:400;
  color:var(--sumi);
  background:var(--washi);
  line-height:1.85;
  letter-spacing:.02em;
  font-feature-settings:"palt" 1;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
  line-break:strict;
  word-break:normal;
}
/* 三毛らしさを背景に“自然に”効かせる装飾レイヤー（極薄・固定） */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(38% 30% at 6% 10%, rgba(190,111,55,.07), transparent 62%),
    radial-gradient(30% 26% at 88% 6%, rgba(216,161,74,.06), transparent 62%),
    radial-gradient(40% 32% at 94% 90%, rgba(33,29,26,.05), transparent 62%),
    radial-gradient(34% 30% at 4% 92%, rgba(190,111,55,.05), transparent 62%);}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
h1,h2,h3,h4{margin:0;font-weight:600;line-height:1.4;letter-spacing:.04em;line-break:strict;text-wrap:wrap;}
p{margin:0;line-break:strict;text-wrap:wrap;}
ul{margin:0;padding:0;list-style:none;}

/* 和文折り返し — pretty/balance は使わず、禁則処理 + 自然な折り返し */
:where(
  li, dd, blockquote,
  .head__lead, .hero__lead, .feature__lead, .about-band__text,
  .feature__vquote,
  .invite__lead, .hina__text, .card__excerpt, .catprof__desc,
  .site-footer__about, .contact-crosslink, .contact-thanks__text,
  .contact-thanks__note, .faq-item__a, .faq-item__q,
  .faq-cta__text, .about-story p, .not-found__text,
  .single-post__content, .page-content__body, .single-cat__content,
  .contact-form-note, .field-check, .empty-state
){
  text-wrap:wrap;
  overflow-wrap:normal;
  word-break:normal;
  line-break:strict;
}

/* グリッド内テキスト列 — min-width:auto による不自然な折り返しを防ぐ */
.hero__copy,
.feature__copy,
.about-band__copy,
.invite__head,
.hina__body,
.card__body,
.catprof__body{
  min-width:0;
}

/* ---- 3. レイアウト ------------------------------------- */
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut);}
.wrap--narrow{max-width:var(--maxw);}
.wrap--wide{max-width:1360px;}
.section{padding-block:clamp(64px,9vw,120px);position:relative;}
.section--alt{background:var(--washi-2);}
.section--paper{background:var(--paper);}
.grid{display:grid;gap:clamp(20px,3vw,34px);}
.cols-2{grid-template-columns:repeat(2,1fr);}
.cols-3{grid-template-columns:repeat(3,1fr);}
.cols-4{grid-template-columns:repeat(4,1fr);}

/* ---- 4. タイポグラフィ部品 ------------------------------ */
.mincho{font-family:var(--mincho);}
.latin{font-family:var(--latin);letter-spacing:.18em;text-transform:uppercase;}
.display{font-family:var(--mincho);font-weight:700;line-height:1.3;letter-spacing:.05em;}

/* セクション見出しユニット（エディトリアル） */
.head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px;margin-bottom:clamp(40px,5.5vw,68px);}
.head--left{align-items:flex-start;text-align:left;}
.eyebrow{font-family:var(--latin);font-size:.72rem;letter-spacing:.34em;text-transform:uppercase;color:var(--cha);font-weight:500;display:inline-flex;align-items:center;gap:.7em;flex-wrap:wrap;}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--cha);opacity:.7;}
.head:not(.head--left) .eyebrow::before{display:none;}
.eyebrow [data-hina-date]{white-space:nowrap;}
.head__title{font-family:var(--mincho);font-weight:700;font-size:var(--fs-h2);letter-spacing:.04em;line-height:1.35;line-break:strict;text-wrap:wrap;}
.head__title .accent{color:var(--cha);}
.head__lead{color:var(--sumi-soft);font-size:var(--fs-lead);line-height:1.95;}

/* 三毛・三色ドット（ブランド署名モチーフ） */
.calico-dots{display:inline-flex;gap:6px;align-items:center;}
.calico-dots i{width:8px;height:8px;border-radius:50%;display:block;}
.calico-dots i:nth-child(1){background:var(--cha);}
.calico-dots i:nth-child(2){background:var(--kuro);}
.calico-dots i:nth-child(3){background:var(--washi);border:1.5px solid rgba(185,106,60,.45);}

.calico-dots--on-dark i:nth-child(1){background:var(--cha);}
.calico-dots--on-dark i:nth-child(2){background:var(--kincha);}
.calico-dots--on-dark i:nth-child(3){background:var(--washi);border:1.5px solid rgba(244,238,226,.35);}

/* ピル型ナビ（カテゴリフィルター・FAQ） */
.pill-link{
	font-family:var(--gothic);
	font-size:.88rem;
	font-weight:600;
	letter-spacing:.04em;
	padding:.55em 1.2em;
	border-radius:999px;
	border:1.5px solid var(--line);
	background:var(--paper);
	color:var(--sumi-soft);
	text-decoration:none;
	display:inline-flex;
	align-items:center;
	transition:background .2s,color .2s,border-color .2s;
}
.pill-link:hover,
.pill-link.is-active{
	background:var(--cha);
	border-color:var(--cha);
	color:#fff;
}

.btn{
  --bg:var(--cha);--fg:#fff;
  display:inline-flex;align-items:center;gap:.6em;
  background:var(--bg);color:var(--fg);
  font-family:var(--gothic);font-weight:600;font-size:.95rem;letter-spacing:.06em;
  padding:.85em 1.7em;border:none;border-radius:999px;
  transition:transform .25s ease,box-shadow .25s ease,background .25s ease;
  box-shadow:0 6px 16px rgba(149,84,46,.22);
}
.btn:hover{background:var(--cha-deep2);transform:translateY(-2px);box-shadow:0 12px 24px rgba(149,84,46,.28);}
.btn .paw{width:1.05em;height:1.05em;display:block;flex-shrink:0;}
.btn--ghost{--bg:transparent;--fg:var(--sumi);border:1.5px solid var(--sumi);box-shadow:none;}
.btn--ghost:hover{background:var(--sumi);--fg:#fff;box-shadow:none;}
.btn--light{--bg:var(--paper);--fg:var(--cha-deep2);box-shadow:var(--shadow-s);}
.btn--light:hover{--bg:#fff;background:#fff;}

/* CTA ボタングループ — 横並び / SP は末尾の @media で縦積み・全幅 */
.cta-row,
.hero__cta,
.feature__cta,
.center-cta,
.faq-cta__actions,
.contact-thanks__actions,
.contact-form-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:14px;
}
.center-cta{
  justify-content:center;
  gap:12px;
  margin-top:clamp(36px,5vw,52px);
}
.contact-form-actions{justify-content:center;margin-top:clamp(20px,3vw,28px);}
.contact-thanks__actions{justify-content:center;gap:12px;margin-top:clamp(24px,4vw,36px);}
.faq-cta__actions{justify-content:center;gap:12px;}
.hero__cta{margin:30px 0 36px;}

.txtlink{
  display:inline;
  font-weight:600;color:var(--cha-deep2);
  border-bottom:1.5px solid transparent;transition:border-color .25s;
}
.txtlink:hover{border-color:var(--cha);}
.txtlink .arr{display:inline-block;margin-left:.15em;transition:transform .25s;}
.txtlink:hover .arr{transform:translateX(3px);}

/* 落款（はんこ）バッジ */
.seal{
  display:inline-grid;place-items:center;text-align:center;
  width:62px;height:62px;border-radius:8px;
  background:var(--shu);color:#fff;
  font-family:var(--mincho);font-weight:700;font-size:.72rem;line-height:1.25;letter-spacing:.08em;
  box-shadow:0 4px 12px rgba(200,71,46,.3);transform:rotate(-4deg);
  writing-mode:vertical-rl;padding:8px 4px;
}
.seal--cols{
  writing-mode:horizontal-tb;
  grid-template-columns:repeat(2,1.15em);
  grid-auto-flow:column;
  gap:1px;
  padding:8px 5px;
  letter-spacing:.05em;
  line-height:1.15;
}
.seal--cols>span{
  writing-mode:vertical-rl;
  text-orientation:upright;
}

/* 保護猫活動中 — hero FV / about band 共通 */
.seal--activity{
  width:74px;
  height:74px;
  font-size:.82rem;
}

.hero__seal{position:absolute;top:-18px;right:-14px;z-index:3;}
.display,
.hero__title,
.feature__title,
.about-band__title,
.invite__title{
  line-break:strict;
  text-wrap:wrap;
}

/* バッジ / タグ */
.badge{display:inline-flex;align-items:center;gap:.4em;font-size:.72rem;font-weight:700;letter-spacing:.08em;
  padding:.35em .85em;border-radius:999px;background:var(--washi-2);color:var(--sumi-soft);}
.badge--cha{background:rgba(185,106,60,.14);color:var(--cha-deep2);}
.badge--kuro{background:rgba(33,29,26,.9);color:var(--washi);}
.badge--shu{background:rgba(200,71,46,.12);color:var(--shu);}
.badge--live{background:var(--shu);color:#fff;}
.badge--live::before{content:"";width:7px;height:7px;border-radius:50%;background:#fff;animation:blink 1.6s infinite;}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:.3;}}

/* ---- 6. ヘッダー / ナビ -------------------------------- */
.site-header{position:sticky;top:0;z-index:60;background:rgba(244,238,226,.86);
  backdrop-filter:blur(12px);border-bottom:1px solid var(--line);transition:box-shadow .3s;}
.site-header.is-scrolled{box-shadow:var(--shadow-s);}
.site-header__bar{display:flex;align-items:center;justify-content:space-between;
  height:var(--header-h);max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut);}
.brand{display:inline-flex;flex-direction:column;align-items:flex-start;gap:5px;line-height:1;}
.brand__en{font-family:var(--logo-en);font-weight:400;font-size:1.74rem;letter-spacing:.03em;color:var(--sumi);line-height:1;}
.brand__en .nya{color:var(--cha);}
.brand__jp{display:inline-flex;align-items:flex-end;gap:1px;font-family:var(--mincho);font-size:.6rem;letter-spacing:.3em;text-indent:.3em;}
.brand__jp .dim{color:var(--sumi-soft);padding-bottom:1px;}
.brand__jp .nya{display:inline-flex;}
.brand__jp .nya i{font-style:normal;color:var(--cha);font-weight:700;display:inline-block;
  animation:brandBob .9s cubic-bezier(.34,1.56,.64,1) both;}
.brand__jp .nya i:nth-child(2){animation-delay:.09s;}
.brand__jp .nya i:nth-child(3){animation-delay:.18s;}
@keyframes brandBob{0%{transform:translateY(0);}40%{transform:translateY(-7px);}72%{transform:translateY(-1px);}100%{transform:translateY(0);}}
@media (prefers-reduced-motion:reduce){.brand__jp .nya i{animation:none;}}
.site-footer .brand__en{color:#fff;}
.site-footer .brand__jp .dim{color:rgba(244,238,226,.6);}
.site-footer .brand__jp .nya i{color:var(--kincha);}
.site-footer .brand__en .nya{color:var(--kincha);}

.site-nav{display:flex;align-items:center;gap:clamp(14px,2vw,30px);}
.site-nav a{position:relative;font-size:.92rem;font-weight:500;padding-block:6px;color:var(--sumi);}
.site-nav a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--cha);
  transform:scaleX(0);transform-origin:left;transition:transform .28s ease;border-radius:2px;}
.site-nav a.btn::after{display:none;}
.site-nav a:hover::after,
.site-nav a.is-active::after,
.site-nav .current-menu-item > a::after{transform:scaleX(1);}
.site-nav a.is-active,
.site-nav .current-menu-item > a{color:var(--cha-deep2);}

/* wp_nav_menu 出力（ul.menu）をフォールバックナビと同じ横並びに */
.site-nav>.menu,
.site-nav>ul.menu{display:flex;align-items:center;gap:clamp(14px,2vw,30px);list-style:none;margin:0;padding:0;flex-wrap:wrap;justify-content:flex-end;}
.site-nav>.menu>li,
.site-nav>ul.menu>li{margin:0;padding:0;}
.site-nav .menu-item a.btn{margin-left:4px;}

/* 管理バー表示時（ログイン中） */
:root{--genyas-admin-offset:0px;}
body.admin-bar{--genyas-admin-offset:32px;}
body.admin-bar .site-header{top:var(--genyas-admin-offset);}
@media screen and (max-width:782px){
  /* SPは WP が html に margin-top:46px を付けるため sticky の top は 0 */
  body.admin-bar{--genyas-admin-offset:46px;}
  body.admin-bar .site-header{top:0;}
}

.nav-toggle{display:none;flex-direction:column;gap:5px;width:44px;height:44px;border:none;background:none;
  align-items:center;justify-content:center;}
.nav-toggle span{width:24px;height:2px;background:var(--sumi);border-radius:2px;transition:.3s;}
.nav-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.is-open span:nth-child(2){opacity:0;}
.nav-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ---- 7. フッター --------------------------------------- */
.site-footer{background:var(--kuro);color:var(--washi);position:relative;}
.calico-band{height:7px;display:flex;}
.calico-band span{flex:1;}
.calico-band span:nth-child(3n+1){background:var(--cha);}
.calico-band span:nth-child(3n+2){background:var(--paper);}
.calico-band span:nth-child(3n){background:var(--kuro);}

.calico-band--on-dark span:nth-child(3n+1){background:var(--cha);}
.calico-band--on-dark span:nth-child(3n+2){background:var(--washi);}
.calico-band--on-dark span:nth-child(3n){background:var(--kincha);}
.site-footer__inner{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;
  padding-block:clamp(48px,7vw,80px);}
.site-footer h4{font-family:var(--mincho);font-size:1rem;letter-spacing:.1em;margin-bottom:18px;color:#fff;}
.site-footer a{color:rgba(244,238,226,.78);font-size:.9rem;display:inline-block;padding-block:5px;transition:color .2s;}
.site-footer a:hover{color:var(--kincha);}
.site-footer__about{margin-top:14px;font-size:.88rem;line-height:1.85;color:rgba(244,238,226,.72);}
.footer-note{border-top:1px solid rgba(244,238,226,.14);padding-block:22px;display:flex;
  justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;font-size:.8rem;color:rgba(244,238,226,.6);}
.footer-note a{color:rgba(244,238,226,.78);font-size:.8rem;transition:color .2s;}
.footer-note a:hover{color:var(--kincha);}
.site-footer .moco-credit__link{color:rgba(244,238,226,.72);}
.site-footer .moco-credit__link:hover{color:var(--kincha);}
.site-footer .moco-credit__label{opacity:1;}

/* ---- レビュー依頼の受付（ダーク帯CTA・全ページ共通） ---- */
.invite-sec{background:var(--kuro);color:var(--washi);}
.invite{display:grid;grid-template-columns:1.5fr auto;gap:clamp(24px,4vw,56px);align-items:center;}
.invite__eyebrow{display:inline-flex;align-items:center;gap:.65em;flex-wrap:wrap;margin-bottom:12px;color:var(--kincha);}
.invite__eyebrow::before{display:none;}
.invite__title{color:#fff;font-size:var(--fs-h2);}
.invite__lead{color:rgba(244,238,226,.78);margin-top:14px;line-height:1.95;}
.invite__cta{flex:none;white-space:nowrap;}

/* ---- 8. カード（記事・猫・汎用） ------------------------ */
.card{background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--radius-l);
  overflow:hidden;display:flex;flex-direction:column;transition:transform .35s ease,box-shadow .35s ease;}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-m);}
.card__media{position:relative;aspect-ratio:3/2;overflow:hidden;}
.card__media .ph{position:absolute;inset:0;}
.card__cat{position:absolute;top:14px;left:14px;background:var(--paper);color:var(--cha-deep2);box-shadow:var(--shadow-s);}
.card__body{padding:24px 24px 28px;display:flex;flex-direction:column;gap:13px;flex:1;}
.card__cat-meta{display:flex;align-items:center;gap:9px;font-family:var(--latin);font-size:.72rem;letter-spacing:.08em;color:var(--sumi-soft);}
.card__title{font-family:var(--mincho);font-weight:600;font-size:var(--fs-h4);line-height:1.55;letter-spacing:.02em;}
.card:hover .card__title{color:var(--cha-deep2);}
.card__excerpt{font-size:.9rem;color:var(--sumi-soft);line-height:1.85;}
.card__foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;
  padding-top:16px;border-top:1px solid var(--line-soft);font-size:.8rem;color:var(--sumi-soft);}

/* ---- 9. 写真プレースホルダー ---- */
/* 写真が入る枠は中立的なグレーに。三毛らしさは背景の装飾で効かせる。
   写真を入れたいときは .ph の中に <img> を置くだけでOK。 */
.ph{width:100%;height:100%;position:relative;overflow:hidden;
  background:linear-gradient(140deg,#E9E5DD 0%,#DDD7CC 100%);}
.ph::after{content:"";position:absolute;inset:0;margin:auto;
  width:clamp(26px,16%,64px);height:clamp(26px,16%,64px);
  background:rgba(58,52,46,.16);
  -webkit-mask:url("../images/paw.svg") center/contain no-repeat;mask:url("../images/paw.svg") center/contain no-repeat;}
.ph>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2;}
/* 微妙に色味を変えて、並んだときの単調さを避ける（いずれも中立グレー系） */
.ph--b{background:linear-gradient(140deg,#E5E0D7 0%,#D6CFC3 100%);}
.ph--c{background:linear-gradient(140deg,#ECE7DF 0%,#DED8CD 100%);}
.ph--d{background:linear-gradient(125deg,#E7E1D8 0%,#D8D1C5 100%);}

/* 肉球レーティング */
.paw-rate{display:inline-flex;gap:3px;align-items:center;color:var(--cha);}
.paw-rate .paw{width:1.05rem;height:1.05rem;display:block;flex-shrink:0;}
.paw-rate .paw.is-off{opacity:.22;}
.paw-rate__num{font-family:var(--latin);font-weight:600;margin-left:.5em;color:var(--sumi);letter-spacing:.05em;}

/* ---- 10. 和モダン装飾 ---------------------------------- */
/* 縦書きラベル */
.vlabel{writing-mode:vertical-rl;font-family:var(--mincho);letter-spacing:.32em;color:var(--cha);
  font-size:.82rem;}
/* 二重罫 */
.rule2{border:none;border-top:1px solid var(--line);position:relative;height:4px;}
.rule2::after{content:"";position:absolute;left:0;right:0;top:3px;border-top:1px solid var(--line);}
/* 麻の葉風の薄い地紋（任意の装飾ブロック） */
.asanoha{background-color:var(--washi-2);
  background-image:linear-gradient(30deg,var(--line-soft) 1px,transparent 1px),
    linear-gradient(-30deg,var(--line-soft) 1px,transparent 1px),
    linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);
  background-size:38px 22px;}

/* ---- 11. スクロール演出 -------------------------------- */
/* 既定は表示状態（no-JS / 印刷 / SEO で必ず見える）。JSが付ける .has-reveal で初めて隠す */
.has-reveal .reveal{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);}
.has-reveal .reveal.is-in{opacity:1;transform:none;}
.has-reveal .reveal[data-delay="1"]{transition-delay:.08s;}
.has-reveal .reveal[data-delay="2"]{transition-delay:.16s;}
.has-reveal .reveal[data-delay="3"]{transition-delay:.24s;}
.has-reveal .reveal[data-delay="4"]{transition-delay:.32s;}
@media (prefers-reduced-motion:reduce){
  .has-reveal .reveal{opacity:1;transform:none;transition:none;}
  html{scroll-behavior:auto;}
}

/* ---- 12. ページトップ / その他 ------------------------- */
.to-top{position:fixed;right:22px;bottom:22px;z-index:50;width:50px;height:50px;border-radius:50%;
  background:var(--cha);color:#fff;border:none;display:grid;place-items:center;
  box-shadow:var(--shadow-m);opacity:0;pointer-events:none;transform:translateY(12px);transition:.35s;}
.to-top.is-show{opacity:1;pointer-events:auto;transform:none;}

/* ===== トップページ専用スタイル ===== */

/* ---- 特集の大扉 ---- */
.feature__inner{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(32px,5vw,76px);align-items:center;}
.feature__media{position:relative;aspect-ratio:5/6;border-radius:18px;overflow:hidden;
  box-shadow:var(--shadow-l);border:6px solid var(--paper);}
.feature__media .ph{position:absolute;inset:0;}
.feature__no{position:absolute;left:0;bottom:0;display:flex;align-items:baseline;gap:9px;
  background:var(--paper);padding:12px 24px 12px 18px;border-top-right-radius:16px;}
.feature__no b{font-family:var(--mincho);font-weight:700;font-size:2.7rem;line-height:.85;color:var(--cha-deep2);}
.feature__no span{font-family:var(--mincho);font-size:.8rem;letter-spacing:.34em;color:var(--sumi);}
.feature__vquote{
  margin:4px 0 20px;
  padding:12px 0 12px 16px;
  border-left:3px solid var(--cha);
  font-size:clamp(.9rem,.25vw + .84rem,1.02rem);
  letter-spacing:.08em;
  line-height:1.8;
  color:var(--cha-deep2);
  background:linear-gradient(90deg,rgba(252,250,244,.95),transparent 90%);
}
.feature__title{font-size:var(--fs-h1);margin:16px 0 20px;}
.feature__lead{color:var(--sumi-soft);font-size:var(--fs-lead);line-height:2;margin-bottom:24px;}
.feature__toc{display:flex;flex-direction:column;margin-bottom:28px;border-top:1px solid var(--line);}
.feature__toc li{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:baseline;padding:13px 2px;
  border-bottom:1px solid var(--line-soft);font-family:var(--mincho);font-size:1.04rem;letter-spacing:.02em;}
.feature__toc li span{font-family:var(--latin);font-weight:600;color:var(--cha);font-size:.8rem;}
.feature__toc a{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s,color .2s;}
.feature__toc a:hover{color:var(--cha-deep2);border-color:var(--cha);}
.feature__media>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}

/* ---- ヒーロー ---- */
.hero{position:relative;overflow:hidden;background:
  radial-gradient(120% 90% at 90% 0%, #FBF5EA, transparent 55%),var(--washi);padding-top:clamp(40px,6vw,72px);}
.hero__inner{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,5vw,72px);
  align-items:center;padding-bottom:clamp(56px,8vw,96px);position:relative;z-index:2;}
.hero__copy .eyebrow{font-family:var(--gothic);font-size:.74rem;font-weight:400;letter-spacing:.14em;text-transform:none;color:var(--sumi-soft);}
.hero__copy .eyebrow::before{display:none;}
.hero__patch{position:absolute;border-radius:50%;filter:blur(5px);opacity:.72;z-index:1;pointer-events:none;}
.hero__patch--cha{width:360px;height:320px;background:radial-gradient(circle,rgba(185,106,60,.72),transparent 65%);top:-68px;right:11%;}
.hero__patch--kincha{width:260px;height:240px;background:radial-gradient(circle,rgba(216,161,74,.62),transparent 65%);top:38%;left:-42px;}
.hero__patch--kuro{width:280px;height:260px;background:radial-gradient(circle,rgba(33,29,26,.42),transparent 65%);bottom:18%;right:6%;left:auto;}
.hero__title{font-size:var(--fs-display);margin:18px 0 22px;}
.hero__lead{font-size:var(--fs-lead);color:var(--sumi-soft);line-height:2;}
.hero__lead strong{color:var(--cha-deep2);font-weight:700;}
.hero__stats{display:flex;gap:clamp(20px,4vw,46px);}
.hero__stats li{display:flex;flex-direction:column;gap:2px;}
.hero__stats b{font-family:var(--mincho);font-weight:700;font-size:2rem;color:var(--cha-deep2);line-height:1;}
.hero__stats span{font-size:.78rem;color:var(--sumi-soft);letter-spacing:.06em;}
.hero__visual{position:relative;width:100%;}
.hero__photo{position:relative;width:100%;border-radius:20px;overflow:hidden;aspect-ratio:4/5;}
.hero__photo .ph{position:absolute;inset:0;}
.hero__photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}

/* ---- 今日の一枚 ---- */
.hina{display:grid;grid-template-columns:auto 1.1fr 1fr;gap:clamp(20px,4vw,48px);align-items:center;}
.hina__label{display:flex;justify-content:center;}
.hina__label .vlabel{font-size:1rem;border-right:2px solid var(--cha);padding-right:14px;}
.hina__media{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:1/1;}
.hina__media>div,.hina__media .ph{position:absolute;inset:0;height:100%;}
.hina__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hina__title{font-size:var(--fs-h3);margin:10px 0 14px;}
.hina__text{color:var(--sumi-soft);margin-bottom:18px;}

/* ---- カテゴリカード ---- */
.cat-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-l);
  padding:30px 24px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;
  transition:transform .3s,box-shadow .3s,border-color .3s;}
.cat-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-m);border-color:var(--cha);}
.cat-card__icon{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;
  background:rgba(185,106,60,.12);color:var(--cha);}
.cat-card__icon .paw{width:28px;height:28px;display:block;}
.cat-card__name{font-family:var(--mincho);font-weight:600;font-size:1.08rem;}
.cat-card__count{font-family:var(--latin);font-size:.74rem;color:var(--sumi-soft);white-space:nowrap;}

/* ---- 猫プロフィール ---- */
.catprof{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-l);overflow:hidden;
  transition:transform .3s,box-shadow .3s;}
.catprof:hover{transform:translateY(-6px);box-shadow:var(--shadow-m);}
.catprof__media{position:relative;aspect-ratio:1/1;}
.catprof__media .ph{position:absolute;inset:0;}
.catprof__status{position:absolute;top:12px;left:12px;}
.catprof__body{padding:20px 22px 24px;}
.catprof__name{font-size:1.3rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;}
.catprof__name span{font-size:.74rem;font-family:var(--gothic);color:var(--sumi-soft);
  background:var(--washi-2);padding:.25em .7em;border-radius:999px;letter-spacing:.06em;}
.catprof__desc{margin-top:10px;font-size:.9rem;color:var(--sumi-soft);}

/* ---- 活動について ---- */
.about-band{background:linear-gradient(180deg,var(--washi),var(--washi-deep));}
.about-band__inner{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(30px,6vw,72px);align-items:center;}
.about-band__media{position:relative;width:100%;}
.about-band__photo{position:relative;width:100%;border-radius:20px;overflow:hidden;aspect-ratio:1/1;}
.about-band__photo .ph{position:absolute;inset:0;}
.about-band__photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.about-band__seal{position:absolute;bottom:-16px;left:-14px;z-index:2;}
.about-band__title{font-size:var(--fs-h1);margin:16px 0 20px;}
.about-band__text{color:var(--sumi-soft);line-height:2;margin-bottom:30px;}

/* ---- 13. レスポンシブ（必ずコンポーネント定義の後・ファイル末尾） ---- */
@media (max-width:980px){
  .site-footer__inner{grid-template-columns:1fr 1fr;gap:32px;}
  .cols-4{grid-template-columns:repeat(2,1fr);}
}

@media (max-width:900px){
  .hina{grid-template-columns:1fr;}
  .hina__label{justify-content:flex-start;}
  .hina__label .vlabel{writing-mode:horizontal-tb;border-right:none;border-bottom:2px solid var(--cha);padding:0 0 6px;}
  .feature__inner{grid-template-columns:1fr;gap:34px;}
  .feature__media{aspect-ratio:4/3;max-width:var(--media-sp-max);margin-inline:auto;width:100%;}
}

@media (max-width:760px){
  /* — グローバル — */
  .site-nav{position:fixed;top:calc(var(--header-h) + var(--genyas-admin-offset, 0px));left:0;right:0;flex-direction:column;align-items:stretch;
    gap:0;background:var(--washi);border-bottom:1px solid var(--line);padding:8px var(--gut) 24px;
    transform:translateY(-130%);transition:transform .4s cubic-bezier(.16,1,.3,1);box-shadow:var(--shadow-m);
    max-height:calc(100dvh - var(--header-h) - var(--genyas-admin-offset, 0px));overflow-y:auto;-webkit-overflow-scrolling:touch;}
  .site-nav.is-open{transform:none;}
  .site-nav>.menu,
  .site-nav>ul.menu{flex-direction:column;align-items:stretch;gap:0;width:100%;}
  .site-nav a{padding:14px 4px;border-bottom:1px solid var(--line-soft);font-size:1.05rem;}
  .site-nav a::after{display:none;}
  .site-nav .btn{margin-top:14px;margin-left:0;}
  .nav-toggle{display:flex;}
  .brand__en{font-size:1.48rem;}
  .cols-2,.cols-3,.cols-4{grid-template-columns:1fr;}
  .site-footer__inner{grid-template-columns:1fr;}
  .footer-note{flex-direction:column;align-items:flex-start;}
  .to-top{right:16px;bottom:max(16px,env(safe-area-inset-bottom));}

  /* — CTA 共通（SP: 縦積み + 全幅ボタン） — */
  .cta-row,
  .hero__cta,
  .feature__cta,
  .center-cta,
  .faq-cta__actions,
  .contact-thanks__actions,
  .contact-form-actions{
    flex-direction:column;
    align-items:stretch;
    flex-wrap:nowrap;
  }
  :is(.cta-row, .hero__cta, .feature__cta, .center-cta, .faq-cta__actions, .contact-thanks__actions, .contact-form-actions) .btn,
  .btn.invite__cta,
  .site-nav .btn{
    display:flex;
    justify-content:center;
    width:100%;
    max-width:none;
    box-sizing:border-box;
  }
  .invite{grid-template-columns:1fr;}
  .invite__cta{justify-self:stretch;white-space:normal;}

  /* — ヒーロー FV — */
  .hero__inner{grid-template-columns:1fr;align-items:stretch;}
  .hero__visual{width:min(100%,var(--hero-visual-sp-max));max-width:var(--hero-visual-sp-max);margin-inline:auto;order:-1;}
  .has-reveal .hero__visual.reveal{opacity:1;transform:none;}
  .hero__copy{margin-top:8px;}
  .hero__stats{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px 16px;
    width:100%;
    max-width:400px;
    margin-inline:auto;
    text-align:center;
  }
  .hero__stats li{align-items:center;}
  .hero__seal{top:-10px;right:-4px;}
  .hero__seal .seal--activity{width:64px;height:64px;font-size:.72rem;}
  .hero__patch--cha{top:-50px;right:2%;}
  .hero__patch--kincha{top:22%;left:-58px;}
  .hero__patch--kuro{bottom:6%;right:-48px;}

  /* — 活動バンド — */
  .about-band__inner{grid-template-columns:1fr;}
  .about-band__media{max-width:var(--media-sp-max);margin-inline:auto;width:100%;}
  .about-band__seal{bottom:-12px;left:-8px;}
}
