/* =========================================================
   つくし工房 寺社用品カタログ
   モックアップ(jisha-catalogue-design-proposal.html / index.html / search.html)
   から抽出した本番用スタイルシート。
   ========================================================= */
:root{
  --washi:      #F2EAD8;
  --washi-2:    #EAE0C9;
  --sumi:       #221F19;
  --sumi-soft:  #3A352C;
  --bengara:    #A23A28;
  --bengara-d:  #7C2A1C;
  --tokiwa:     #33473A;
  --yamabuki:   #B9862E;
  --nibiiro:    #6E6656;
  --line:       #CFC2A0;
  --tsukusi-green: #049C73;    /* TODO: 正式ブランドカラー確定後に置換 */
  --tsukusi-green-d: #037A5B;
  --radius: 2px;
  --maxw: 1160px;
}
*{box-sizing:border-box;}
body{
  margin:0;
  background:var(--washi);
  color:var(--sumi);
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  line-height:1.8;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.mincho{font-family:"Shippori Mincho",serif;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;}
a{color:inherit;text-decoration:none;}

/* ---------- kasagi bar (torii lintel) ---------- */
.kasagi{
  background:var(--bengara);
  height:10px;
  position:relative;
}
.kasagi::after{
  content:"";
  position:absolute; left:0; right:0; bottom:-4px;
  height:4px; background:var(--bengara-d);
}

/* ---------- header ---------- */
header{
  background:var(--sumi);
  color:var(--washi);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:22px; padding-bottom:22px;
  gap:24px;
  flex-wrap:wrap;
}
.header-right{
  display:flex; align-items:center; gap:26px;
  flex-wrap:wrap;
}
.brand{display:flex; align-items:baseline; gap:14px;}
.brand-mark{font-size:24px; font-weight:700; letter-spacing:.04em;}
.brand-sub{font-size:11px; letter-spacing:.16em; color:#C9BFA6;}
nav{display:flex; gap:28px; font-size:13px; letter-spacing:.03em;}
nav a{opacity:.9; border-bottom:1px solid transparent; padding-bottom:4px;}
nav a:hover{opacity:1; border-color:var(--bengara);}

/* ---------- site search ---------- */
.site-search-form{
  display:flex; align-items:center;
  border:1px solid #4A4436;
  background:rgba(242,234,216,0.05);
  border-radius:999px;
  padding:4px 6px 4px 16px;
}
.site-search-form:focus-within{ border-color:var(--bengara); }
.site-search-input{
  background:transparent; border:none; outline:none;
  color:var(--washi); font-size:13px;
  font-family:"Noto Sans JP",sans-serif; width:150px;
}
.site-search-input::placeholder{color:#A69C86;}
.site-search-btn{
  background:var(--bengara); border:none;
  width:28px; height:28px; border-radius:50%;
  color:#fff; font-size:12px; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background .15s ease;
}
.site-search-btn:hover{background:var(--bengara-d);}
.site-search-wrap{ display:flex; flex-direction:column; align-items:flex-end; gap:3px; }
.site-search-credit{ margin:0; font-size:10px; color:#8B826E; letter-spacing:.03em; }

/* ---------- hero with torii pillars ---------- */
.hero{ position:relative; padding:0; background:var(--washi); overflow:hidden; }
.hero-frame{ display:grid; grid-template-columns:44px 1fr 44px; min-height:420px; }
.pillar{ background:var(--bengara); position:relative; grid-row:1; }
.pillar:first-child{grid-column:1;}
.pillar:last-child{grid-column:3;}
.pillar::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(0,0,0,.14), transparent 40%);
}
.hero-content{
  grid-column:2; grid-row:1;
  display:flex; flex-direction:column; justify-content:center;
  padding:64px 56px; text-align:center; position:relative; z-index:2;
}
.hero-photo{
  grid-column:2; grid-row:1; position:relative; z-index:1;
  background:
    repeating-linear-gradient(-45deg, rgba(162,58,40,0.05) 0 18px, transparent 18px 36px),
    radial-gradient(120% 100% at 50% 20%, #E9DFC5 0%, #DDD0AE 55%, #CBBB8C 100%);
}
.hero-photo::after{
  /*content:"写真:施工事例（差し替え予定）";*/
  position:absolute; right:16px; bottom:14px;
  font-size:10px; letter-spacing:.05em; color:var(--nibiiro);
  background:rgba(242,234,216,.75); padding:3px 9px; border-radius:999px;
}

 ----------Top画像切替用無い場合は　↑を使用 
.hero-photo--photo{
  background:none;
}
.hero-photo--photo::after{
  display:none;
}
.hero-photo img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; object-position:center;
  display:block;
}

---------- 



.hero-content::before{
  content:""; position:absolute; inset:-10px -32px;
  background:radial-gradient(60% 80% at 50% 50%, rgba(242,234,216,0.88) 0%, rgba(242,234,216,0.55) 65%, transparent 100%);
  z-index:-1;
}
.eyebrow{ font-size:12px; letter-spacing:.28em; color:var(--bengara-d); margin-bottom:22px; font-weight:700; }
.hero h1{ font-size:clamp(30px,4.2vw,46px); font-weight:800; line-height:1.55; margin:0 0 22px; color:var(--sumi); }
.hero h1 em{ font-style:normal; color:var(--bengara); }
.hero p{ max-width:520px; margin:0 auto 30px; color:var(--nibiiro); font-size:15px; }
.hero-cta{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.btn{
  display:inline-block; padding:14px 30px; font-size:13px; letter-spacing:.05em;
  font-weight:700; border-radius:var(--radius); border:1px solid var(--sumi);
}
.btn-fill{background:var(--sumi); color:var(--washi);}
.btn-fill:hover{background:#424242;}
/* 追加：資料請求・お問い合わせボタン用（抹茶色） */
.btn-matcha{background:#7C8B4A; color:var(--washi);}
.btn-matcha:hover{background:#64703B;}

.btn-line{background:transparent; color:var(--sumi);}
.btn-line:hover{background:var(--sumi); color:var(--washi);}
/* 追加：商品カテゴリを見るボタン用（紅殻色＝作法バッジ・ヒーロー強調と同色） */
.btn-bengara{background:var(--bengara); color:var(--washi);}
.btn-bengara:hover{background:var(--bengara-d);}

.btn-catalog{
  position:relative;
  background:url('../img/jisya.webp') center 20%/cover no-repeat;
  color:#fff;
  border-color:var(--sumi);
  overflow:hidden;
  text-shadow:0 1px 4px rgba(0,0,0,.7);
}
.btn-catalog::before{
  content:"";
  position:absolute; inset:0;
  background:rgba(20,15,10,.45);
  z-index:0;
}
.btn-catalog span{ position:relative; z-index:1; }
.btn-catalog:hover::before{ background:rgba(20,15,10,.6); }





/* ---------- shimenawa divider (signature element) ---------- */
.shimenawa{ background:var(--washi); padding:14px 0 34px; }
.shimenawa svg{display:block; width:100%; height:auto;}

/* ---------- section heading ---------- */
.section-head{ text-align:center; padding:6px 0 44px; }
.section-eyebrow{ font-size:11px; letter-spacing:.24em; color:var(--nibiiro); margin-bottom:10px; }
.section-head h2{ font-size:26px; font-weight:700; margin:0; }
.section-head .rule{ width:36px; height:2px; background:var(--bengara); margin:18px auto 0; }

/* ---------- category grid ---------- */
.cat-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:20px; padding-bottom:70px; }
.cat-card{
  background:#fff; border:1px solid var(--line); padding:0; position:relative; overflow:hidden;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.cat-card:hover{ transform:translateY(-3px); box-shadow:0 14px 28px rgba(34,31,25,0.09); border-color:var(--bengara); }
.cat-thumb{
  position:relative; height:96px;
  background:
    repeating-linear-gradient(-45deg, rgba(162,58,40,0.06) 0 12px, transparent 12px 24px),
    linear-gradient(160deg, #EDE3C9, #DDD0AE);
  border-bottom:1px solid var(--line);
}
.cat-thumb-icon{
  position:absolute; left:16px; bottom:-19px; width:38px; height:38px;
  background:#fff; border:1px solid var(--line); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 3px 8px rgba(34,31,25,0.10);
}
.cat-thumb-icon .cat-icon{width:19px; height:19px; margin:0; color:var(--bengara);}
.cat-thumb-icon .kanji-badge{width:32px; height:32px; margin:0; font-size:14px; border:none;}

/* ↓ここに追加 */
.cat-thumb--photo{background:var(--washi-2);}
.cat-thumb--photo img{width:100%; height:100%; object-fit:cover;}
/* ↑ここまで追加 */


.cat-body{ padding:38px 24px 26px; }
.cat-icon{ width:40px; height:40px; margin-bottom:18px; color:var(--bengara); }
.cat-card h3{ font-size:17px; font-weight:700; margin:0 0 8px; }
.cat-card p{ font-size:12.5px; color:var(--nibiiro); margin:0; }
.cat-num{
  position:absolute; top:10px; right:12px; font-family:"Shippori Mincho",serif;
  font-size:12px; color:var(--nibiiro); background:rgba(242,234,216,.8); padding:1px 8px; border-radius:999px;
}

/* ---------- kanji badge (神社=社 / お寺=寺) ---------- */
.kanji-badge{
  width:38px; height:38px; border-radius:50%; border:1.4px solid currentColor;
  display:flex; align-items:center; justify-content:center;
  font-family:"Shippori Mincho",serif; font-weight:700; font-size:17px; margin-bottom:18px;
}

/* ---------- sub-item tags within category card ---------- */
.cat-items{
  list-style:none; margin:14px 0 0; padding:12px 0 0; border-top:1px solid var(--line);
  display:flex; flex-wrap:wrap; gap:6px;
}
.cat-items li{ font-size:11px; color:var(--nibiiro); background:var(--washi-2); border-radius:3px; padding:4px 9px; }

/* ---------- ghost card (今後追加予定) ---------- */
.cat-card-ghost{
  background:transparent; border:1px dashed var(--line);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:30px 24px 26px; color:var(--nibiiro);
}
.cat-card-ghost .plus{ font-size:22px; color:var(--bengara); margin-bottom:10px; font-family:"Shippori Mincho",serif; }
.cat-card-ghost p{font-size:12px; margin:0; line-height:1.7;}

/* ---------- mizuhiki badge (signature: tsukusi green x bengara) ---------- */
.mizuhiki-badge{
  display:inline-flex; align-items:center; gap:8px; padding:5px 14px 5px 8px;
  border-radius:999px; background:#fff; border:1px solid var(--line);
  font-size:11px; letter-spacing:.06em; font-weight:700; color:var(--sumi-soft);
}
.mizuhiki-badge svg{width:22px; height:16px; flex-shrink:0;}
.mizuhiki-badge.on-dark{ background:rgba(242,234,216,0.06); border-color:#4A4436; color:#E7DFC8; }

/* ---------- feature strip (dark) — 特注品 ---------- */
.achievements-summary{ padding-bottom:60px; }
.feature{ background:var(--sumi); color:var(--washi); padding:70px 0; }
.feature-head{ text-align:center; margin-bottom:48px; }
.feature-eyebrow{font-size:11px; letter-spacing:.24em; color:var(--yamabuki); margin-bottom:14px; font-weight:700;}
.feature-head h3{font-size:26px; margin:0 0 14px; line-height:1.6; color:var(--washi);}
.feature-head p{font-size:14px; color:#C9BFA6; margin:0 auto; max-width:520px;}
.tokuchu-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:22px; }
.tokuchu-card{ background:var(--sumi-soft); border:1px solid #4A4436; padding:26px 24px 24px; }
.tokuchu-media{
  aspect-ratio:16/10; background:linear-gradient(160deg, #2B2820, #16140F);
  display:flex; align-items:center; justify-content:center; margin-bottom:20px;
}
.tokuchu-media svg{width:38%; color:var(--yamabuki);}
.tokuchu-card h4{font-size:17px; margin:0 0 8px; color:var(--washi); font-weight:700;}
.tokuchu-card p{font-size:12.5px; color:#B9AF95; margin:0 0 16px;}

/* ---------- product preview strip ---------- */
.products{ padding-top:74px; padding-bottom:80px; }
.prod-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:18px; }
.prod-card{
  background:#fff; border:1px solid var(--line); display:block; text-decoration:none; color:inherit;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.prod-card:hover{ transform:translateY(-3px); box-shadow:0 12px 24px rgba(34,31,25,.08); border-color:var(--bengara); }
.prod-thumb{
  aspect-ratio:4/3; background:var(--sumi); color:var(--bengara);
  display:flex; align-items:center; justify-content:center;
  font-family:"Shippori Mincho",serif; font-weight:700; font-size:13px; position:relative;
}
.prod-thumb::after{
  content:""; position:absolute; inset:0;
  background:repeating-linear-gradient(-45deg, rgba(162,58,40,0.10) 0 12px, transparent 12px 24px);
}
.prod-thumb--photo{background:var(--washi-2);}
.prod-thumb--photo::after{content:none;}
.prod-thumb--photo img{width:100%; height:100%; object-fit:cover;}

.prod-body{padding:14px 16px 18px;}
.prod-code{font-size:11px; color:var(--nibiiro); letter-spacing:.05em;}
.prod-name{font-size:14px; font-weight:700; margin-top:5px;}

/* ---------- closing CTA ---------- */
.closing-cta{ background:var(--washi-2); border-top:1px solid var(--line); padding:56px 0; text-align:center; }
.closing-cta h2{ font-size:21px; margin:0 0 10px; }
.closing-cta p{ font-size:13px; color:var(--nibiiro); max-width:480px; margin:0 auto 28px; }
.closing-cta-actions{ display:flex; justify-content:center; gap:14px; flex-wrap:wrap; }
.cc-btn{
  display:flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--line);
  padding:14px 22px; min-width:210px; text-align:left;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.cc-btn:hover{ border-color:var(--bengara); box-shadow:0 10px 22px rgba(34,31,25,.08); }
.cc-btn .icon{
  width:34px; height:34px; flex-shrink:0; border-radius:50%; background:var(--washi);
  display:flex; align-items:center; justify-content:center; font-size:15px;
}
.cc-btn .label-sm{display:block; font-size:10.5px; color:var(--nibiiro); letter-spacing:.03em;}
.cc-btn .label-lg{display:block; font-size:14px; font-weight:700; margin-top:2px;}

/* ---------- main site banner ---------- */
.site-banner{ background:var(--sumi); color:var(--washi); }
.site-banner a.wrap{
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
  padding:26px 24px; text-decoration:none; color:inherit; transition:background .15s ease;
}
.site-banner a.wrap:hover{background:#2A2620;}
.site-banner-title{font-size:15px; font-weight:700;}
.site-banner-sub{font-size:12px; color:#B9AF95; margin-top:4px;}
.site-banner-arrow{
  font-size:13px; font-weight:700; color:var(--tsukusi-green); white-space:nowrap;
  display:flex; align-items:center; gap:6px;
}

/* ---------- back to top ---------- */
.back-to-top{
  position:fixed; right:24px; bottom:24px; width:46px; height:46px; border-radius:50%;
  background:var(--bengara); color:#fff; border:1px solid var(--bengara-d);
  display:flex; align-items:center; justify-content:center; font-size:18px; text-decoration:none;
  box-shadow:0 8px 20px rgba(34,31,25,.22);
  opacity:0; visibility:hidden; transform:translateY(8px);
  transition:opacity .2s ease, transform .2s ease, background .15s ease; z-index:50;
}
.back-to-top.is-visible{opacity:1; visibility:visible; transform:translateY(0);}
.back-to-top:hover{background:var(--bengara-d);}

/* ---------- footer ---------- */
footer{ background:var(--sumi); color:#9A917A; border-top:6px solid var(--bengara); }
.footer-inner{
  padding-top:36px; padding-bottom:36px; display:flex; justify-content:space-between;
  flex-wrap:wrap; gap:12px; font-size:12px;
}

@media (max-width:760px){
  .hero-frame{grid-template-columns:20px 1fr 20px;}
  .hero-content{padding:48px 24px;}
  .feature-inner{grid-template-columns:1fr;}
}

/* =========================================================
   商品詳細ページ (product.html)
   ========================================================= */
.pd-wrap{padding-top:40px; padding-bottom:30px;}
.breadcrumb{ font-size:12px; color:var(--nibiiro); margin-bottom:26px; }
.breadcrumb a{color:var(--nibiiro);}
.breadcrumb a:hover{color:var(--bengara);}
.breadcrumb span{margin:0 8px; color:var(--line);}
.pd-layout{ display:grid; grid-template-columns:1fr 1fr; gap:48px; padding-bottom:60px; }
.pd-layout > *{min-width:0;}
@media (max-width:760px){ .pd-layout{grid-template-columns:1fr;} }
.pd-media{
  width:100%; aspect-ratio:4/3; position:relative;
  background:
    repeating-linear-gradient(-45deg, rgba(162,58,40,0.06) 0 16px, transparent 16px 32px),
    linear-gradient(160deg, #EDE3C9, #DDD0AE);
  border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  font-family:"Shippori Mincho",serif; font-weight:700; font-size:16px; color:var(--nibiiro);
}
.pd-media::after{
  content:"写真:商品画像（差し替え予定）";
  position:absolute; right:14px; bottom:12px;
  font-size:10px; letter-spacing:.05em; color:var(--nibiiro);
  background:rgba(242,234,216,.8); padding:3px 9px; border-radius:999px;
  font-family:"Noto Sans JP",sans-serif; font-weight:400;
}
.pd-media--photo{background:var(--washi-2);}
.pd-media--photo::after{content:none;}
.pd-media--photo img{width:100%; height:100%; object-fit:cover; cursor:zoom-in;}

/* ---------- サブ画像サムネイル（別アングル） ---------- */
.pd-thumbs{
  display:flex; gap:10px; margin-top:12px; flex-wrap:wrap;
}
.pd-thumb{
  width:64px; height:64px; padding:0; overflow:hidden;
  background:var(--washi-2); border:1.5px solid var(--line);
  border-radius:var(--radius); cursor:pointer;
  transition:border-color .15s ease, opacity .15s ease;
}
.pd-thumb img{width:100%; height:100%; object-fit:cover; display:block;}
.pd-thumb:hover{border-color:var(--bengara); opacity:.9;}
.pd-thumb.is-active{border-color:var(--bengara); border-width:2px;}
.pd-code{font-size:12px; color:var(--nibiiro); letter-spacing:.06em; margin-bottom:8px;}
.pd-title{font-family:"Shippori Mincho",serif; font-weight:800; font-size:27px; margin:0 0 16px; line-height:1.5;}
.pd-tags{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:20px;}
.pd-tag{font-size:11px; color:var(--nibiiro); border:1px solid var(--line); padding:4px 11px; border-radius:999px;}
.pd-desc{font-size:14px; color:var(--sumi-soft); margin:0 0 26px;}
.spec-table{width:100%; border-collapse:collapse; font-size:13px; margin-bottom:22px;}
.spec-table th, .spec-table td{padding:11px 14px; border-bottom:1px solid var(--line); text-align:left;}
.spec-table.basic th{width:34%; color:var(--nibiiro); font-weight:500; background:transparent;}
.spec-table.extra thead th{
  background:var(--sumi); color:var(--washi); font-size:11px; letter-spacing:.05em; font-weight:700; border-bottom:none;
}
.pd-section-label{font-size:11px; letter-spacing:.12em; color:var(--nibiiro); margin:0 0 10px; font-weight:700;}
.pd-actions{display:flex; gap:12px; flex-wrap:wrap; margin-top:6px;}
.pd-actions .btn{border-radius:var(--radius);}
.pd-price-note{ margin-top:22px; font-size:11.5px; color:var(--nibiiro); border-left:2px solid var(--tsukusi-green); padding-left:10px; }

/* =========================================================
   カテゴリ一覧ページ (category.html) — index.htmlのcat-cardを
   一覧・商品グリッド用に流用
   ========================================================= */
.category-hero{ padding-top:44px; padding-bottom:8px; }

/* ↓ここに追加 */
.category-hero-media{
  width:100%; max-height:260px; overflow:hidden;
  border-radius:var(--radius); margin:18px 0 22px;
  background:var(--washi-2);
}
.category-hero-media img{ width:100%; height:100%; object-fit:cover; display:block; }
/* ↑ここまで追加 */

.category-hero-name{ font-family:"Shippori Mincho",serif; font-size:clamp(24px,3.2vw,32px); margin:8px 0 12px; }
.category-hero-desc{ color:var(--nibiiro); font-size:14px; max-width:56ch; }
.category-products{ padding-top:28px; padding-bottom:90px; }
.empty-state{ padding:40px 0 100px; color:var(--nibiiro); font-size:14px; }

/* =========================================================
   検索結果ページ (search.html)
   ========================================================= */
.search-hero{padding-top:56px; padding-bottom:20px;}
.search-hero .eyebrow{font-size:12px; letter-spacing:.2em; color:var(--nibiiro); margin-bottom:10px;}
.search-hero h1{font-family:"Shippori Mincho",serif; font-size:26px; margin:0;}
.search-hero h1 span{color:var(--bengara);}
.gcse-wrap{padding-top:10px; padding-bottom:80px;}
.gcse-wrap .gsc-control-cse{ background:transparent !important; border:none !important; font-family:"Noto Sans JP",sans-serif !important; }
.gcse-wrap .gsc-input-box{border-color:var(--line) !important;}
.gcse-wrap .gsc-search-button-v2{ background-color:var(--bengara) !important; border-color:var(--bengara) !important; }
.search-loading{ color:var(--nibiiro); font-size:13px; padding:20px 0; }

/* =========================================================
   実績セクション (achievements) — トップページ抜粋 + 専用一覧ページ
   ========================================================= */
.ach-stats-row{
  display:flex; justify-content:center; gap:56px; flex-wrap:wrap;
  padding-bottom:40px; text-align:center;
}
.ach-stat{ display:flex; flex-direction:column; align-items:center; }
.ach-stat-num{
  font-family:"Shippori Mincho",serif; font-weight:800; font-size:40px; color:var(--bengara); line-height:1;
}
.ach-stat-label{ font-size:12px; color:var(--nibiiro); margin-top:8px; letter-spacing:.04em; }

.ach-highlight-grid, .ach-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,240px));  justify-content:center;   /* ← 寺社写真中央配置追加 */ gap:16px; padding-bottom:8px;
}
.ach-highlight-card, .ach-card{
  background:#fff; border:1px solid var(--line); overflow:hidden;
}
.ach-thumb{
  aspect-ratio:4/3;
  position:relative;
  overflow:hidden;
  background:
    repeating-linear-gradient(-45deg, rgba(162,58,40,0.05) 0 14px, transparent 14px 28px),
    linear-gradient(160deg, #EDE3C9, #DDD0AE);
  display:flex; align-items:center; justify-content:center;
  font-size:11px; color:var(--nibiiro); letter-spacing:.03em;
}
.ach-thumb--photo{background:var(--washi-2); font-size:0;}
.ach-thumb--photo img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; object-position:center;
  display:block;
  cursor:zoom-in;
}

/* ---------- ライトボックス（実績写真の拡大表示） ---------- */
.lightbox-overlay{
  position:fixed; inset:0; z-index:999;
  background:rgba(34,31,25,.88);
  display:none; align-items:center; justify-content:center;
  padding:32px;
}
.lightbox-overlay.is-active{ display:flex; }
.lightbox-img{
  max-width:90vw; max-height:88vh;
  object-fit:contain;
  box-shadow:0 20px 60px rgba(0,0,0,.45);
  background:var(--washi);
}
.lightbox-close{
  position:absolute; top:20px; right:24px;
  width:44px; height:44px; border-radius:50%;
  background:var(--washi); border:none; cursor:pointer;
  font-size:18px; color:var(--sumi);
  display:flex; align-items:center; justify-content:center;
  transition:transform .15s ease;
}
.lightbox-close:hover{ transform:scale(1.08); }

.lightbox-nav{
  position:absolute; top:50%; transform:translateY(-50%);
  width:48px; height:48px; border-radius:50%;
  background:var(--washi); border:none; cursor:pointer;
  font-size:24px; line-height:1; color:var(--sumi);
  display:flex; align-items:center; justify-content:center;
  transition:transform .15s ease, background .15s ease;
}
.lightbox-nav:hover{ background:#fff; transform:translateY(-50%) scale(1.08); }
.lightbox-prev{ left:20px; }
.lightbox-next{ right:20px; }
@media (max-width:640px){
  .lightbox-nav{ width:40px; height:40px; font-size:20px; }
  .lightbox-prev{ left:8px; }
  .lightbox-next{ right:8px; }
}
.ach-highlight-body{ padding:14px 16px 16px; position:relative; }
.ach-type-badge{
  display:inline-flex; align-items:center; justify-content:center;
  width:24px; height:24px; border-radius:50%; border:1.2px solid currentColor;
  font-family:"Shippori Mincho",serif; font-weight:700; font-size:11px; margin-bottom:8px;
}
.ach-type-社{ color:var(--bengara); }
.ach-type-寺{ color:var(--tsukusi-green-d); }
.ach-highlight-name{ font-size:13.5px; font-weight:700; line-height:1.5; }
.ach-highlight-pref{ font-size:11px; color:var(--nibiiro); margin-top:4px; }

.ach-filter-bar{
  display:flex; gap:8px; flex-wrap:wrap; padding-bottom:28px;
}
.ach-filter-btn{
  font-size:12px; padding:8px 16px; border:1px solid var(--line); background:#fff;
  border-radius:999px; cursor:pointer; color:var(--sumi-soft); letter-spacing:.02em;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.ach-filter-btn:hover{ border-color:var(--bengara); }
.ach-filter-btn.is-active{ background:var(--sumi); border-color:var(--sumi); color:var(--washi); }
.ach-grid{ padding-bottom:90px; }

/* ---------- アクセシビリティ ---------- */
a:focus-visible, button:focus-visible{ outline:2px solid var(--bengara); outline-offset:2px; }
@media (prefers-reduced-motion: reduce){
  .cat-card, .prod-card { transition:none; }
}
