/* ===========================================================
   JukuCompass main.css
   配色: 深緑 × 山吹 / 見出し: Shippori Mincho B1
   =========================================================== */
:root{
  --green:#1e4d3b; --green-deep:#143427; --ink:#25291f;
  --paper:#fbfaf6; --tint:#e9efe4; --gold:#e3a51e; --gold-deep:#c78d0e;
  --line:#dcd9cf; --white:#fff; --muted:#6b7064;
}
*{box-sizing:border-box}
body{font-family:'Noto Sans JP',sans-serif;color:var(--ink);background:var(--paper);line-height:1.8;margin:0}
.mincho{font-family:'Shippori Mincho B1',serif}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}
.jc-wrap{max-width:1080px;margin:0 auto;padding:0 20px}
.jc-center{text-align:center}

/* ---------- header ---------- */
.jc-header{background:var(--white);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.jc-hd{display:flex;align-items:center;justify-content:space-between;height:64px}
.jc-logo{font-weight:700;font-size:1.3rem;color:var(--green);line-height:1.1}
.jc-logo span{color:var(--gold-deep);font-size:.62rem;display:block;font-weight:500;letter-spacing:.15em}
.jc-nav{display:flex;gap:22px;font-size:.9rem;font-weight:500;align-items:center}
.jc-nav a:hover{color:var(--green)}
.jc-nav-b2b{background:var(--green);color:#fff !important;padding:8px 16px;border-radius:6px;font-size:.85rem}
.jc-nav-b2b:hover{background:var(--green-deep)}

/* ---------- hero (top) ---------- */
.jc-hero{background:linear-gradient(160deg,var(--green) 0%,var(--green-deep) 100%);color:#fff;padding:64px 0 88px;position:relative;overflow:hidden}
.jc-hero::after{content:"";position:absolute;right:-80px;top:-80px;width:380px;height:380px;border-radius:50%;background:rgba(227,165,30,.12)}
.jc-hero h1{font-size:2.1rem;line-height:1.6;letter-spacing:.04em;margin:0}
.jc-lead{margin-top:14px;color:#d9e4dd;font-size:1rem;max-width:560px}
.jc-doors{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:40px}
.jc-door{background:var(--white);color:var(--ink);border-radius:12px;padding:26px 22px 22px;display:flex;gap:16px;align-items:flex-start;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 16px rgba(0,0,0,.18)}
.jc-door:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(0,0,0,.25)}
.jc-tate{writing-mode:vertical-rl;font-weight:700;color:var(--green);letter-spacing:.3em;font-size:1.05rem;border-left:3px solid var(--gold);padding-left:10px}
.jc-door h2{font-size:1.1rem;margin:0 0 6px}
.jc-door small{color:var(--muted);font-size:.82rem;display:block;line-height:1.6}
.jc-go{margin-top:10px;display:inline-block;color:var(--gold-deep);font-weight:700;font-size:.85rem}

/* ---------- search box ---------- */
.jc-searchbox{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:22px;margin:-44px auto 0;max-width:880px;box-shadow:0 8px 28px rgba(20,52,39,.1);position:relative;z-index:5}
.jc-search-row{display:flex;gap:12px;flex-wrap:wrap}
.jc-search-row select,.jc-select{flex:1;min-width:150px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;font-size:.95rem;background:#fff;color:var(--ink)}

/* ---------- buttons ---------- */
.jc-btn-gold{background:var(--gold);color:var(--ink);font-weight:700;border:none;border-radius:8px;padding:12px 32px;font-size:1rem;cursor:pointer;display:inline-block;text-align:center}
.jc-btn-gold:hover{background:var(--gold-deep);color:#fff}
.jc-btn-line{border:1.5px solid var(--green);color:var(--green);background:#fff;border-radius:8px;padding:12px 24px;font-weight:700;display:inline-block;text-align:center}
.jc-btn-line:hover{background:var(--green);color:#fff}
.jc-btn-block{display:block;width:100%}
.jc-btn-inline{padding:14px 40px}

/* ---------- sections ---------- */
.jc-section{padding:64px 0}
.jc-eyebrow{color:var(--gold-deep);font-weight:700;font-size:.8rem;letter-spacing:.25em;margin-bottom:8px}
.jc-eyebrow-gold{color:var(--gold);font-weight:700;font-size:.8rem;letter-spacing:.3em;margin-bottom:14px}
.jc-sec{font-size:1.6rem;letter-spacing:.05em;margin-bottom:28px}
.jc-note{font-size:.75rem;color:#8b9084;margin-top:14px}
.jc-fine{font-size:.78rem;color:var(--muted);margin-top:10px}

/* ---------- cards ---------- */
.jc-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.jc-card{background:var(--white);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:block;transition:box-shadow .2s}
.jc-card:hover{box-shadow:0 6px 18px rgba(0,0,0,.08)}
.jc-ph-wrap{height:140px;overflow:hidden}
.jc-ph-wrap img{width:100%;height:100%;object-fit:cover}
.jc-ph{height:140px;background:var(--tint);display:flex;align-items:center;justify-content:center;color:#9aa394;font-size:.85rem}
.jc-bd{padding:18px}
.jc-bd h3{font-size:1.05rem;margin:0 0 6px}
.jc-meta{font-size:.8rem;color:var(--muted);margin:0}

/* ---------- tags ---------- */
.jc-tag{display:inline-block;background:var(--tint);color:var(--green);font-size:.72rem;font-weight:700;border-radius:4px;padding:2px 8px;margin:0 4px 4px 0}
.jc-pr{background:#fdf3dd;color:var(--gold-deep)}

/* ---------- area / column on top ---------- */
.jc-area-sec{background:var(--tint);padding:64px 0}
.jc-area-list{display:flex;flex-wrap:wrap;gap:10px}
.jc-area-list a{background:var(--white);border:1px solid var(--line);border-radius:999px;padding:8px 18px;font-size:.88rem}
.jc-area-list a:hover{border-color:var(--green);color:var(--green)}
.jc-col-list{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}

/* ---------- b2b strip ---------- */
.jc-b2b{background:var(--green);color:#fff;text-align:center;padding:56px 20px}
.jc-b2b h2{font-size:1.5rem;margin:0 0 10px}
.jc-b2b p{color:#d9e4dd;margin:0 0 22px}

/* ---------- footer ---------- */
.jc-footer{background:var(--green-deep);color:#bcd0c5;font-size:.82rem;padding:36px 0}
.jc-foot-inner{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px}
.jc-foot-nav a:hover{color:#fff}

/* ===========================================================
   archive (検索一覧)
   =========================================================== */
.jc-crumb{font-size:.78rem;color:#8b9084;padding:14px 0}
.jc-page-h{padding-bottom:18px}
.jc-page-h h1{font-size:1.5rem;letter-spacing:.04em;margin:0 0 4px}
.jc-page-h p{font-size:.88rem;color:var(--muted);margin:0}
.jc-layout{display:grid;grid-template-columns:250px 1fr;gap:28px;padding-bottom:64px}

/* filters */
.jc-filters{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:20px;align-self:start;position:sticky;top:84px}
.jc-filters h2{font-size:.95rem;border-left:3px solid var(--gold);padding-left:10px;margin:0 0 14px}
.jc-fgroup{margin-bottom:18px}
.jc-fgroup h3{font-size:.8rem;color:var(--green);font-weight:700;margin:0 0 6px}
.jc-fgroup label{display:block;font-size:.85rem;padding:3px 0;cursor:pointer}
.jc-fgroup input{margin-right:8px;accent-color:var(--green)}
.jc-clear{display:block;text-align:center;font-size:.8rem;color:var(--muted);margin-top:10px}
.jc-clear:hover{color:var(--green)}

/* result list */
.jc-sortbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;font-size:.85rem}
.jc-sortbar select{padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:#fff}
.jc-juku{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:22px;margin-bottom:16px;display:grid;grid-template-columns:170px 1fr;gap:20px;position:relative}
.jc-pr-frame{border:2px solid var(--gold)}
.jc-pr-ribbon{position:absolute;top:-12px;left:18px;background:var(--gold);color:var(--ink);font-size:.7rem;font-weight:700;border-radius:4px;padding:2px 10px}
.jc-juku .jc-ph-wrap,.jc-juku .jc-ph{min-height:120px;height:100%;border-radius:8px;background:var(--tint)}
.jc-juku-body h2{font-size:1.15rem;margin:0 0 4px}
.jc-juku-body h2 a:hover{color:var(--green)}
.jc-addr{font-size:.82rem;color:var(--muted);margin:0 0 8px}
.jc-spec{display:flex;gap:24px;font-size:.85rem;margin:8px 0;flex-wrap:wrap}
.jc-spec b{color:var(--green)}
.jc-acts{display:flex;gap:10px;margin-top:10px}
.jc-acts a{font-size:.85rem;font-weight:700;border-radius:8px;padding:9px 20px;text-align:center}
.jc-a-detail{border:1.5px solid var(--green);color:var(--green)}
.jc-a-detail:hover{background:var(--green);color:#fff}
.jc-a-contact{background:var(--gold);color:var(--ink)}
.jc-a-contact:hover{background:var(--gold-deep);color:#fff}
.jc-empty{background:var(--white);border:1px dashed var(--line);border-radius:12px;padding:40px;text-align:center;color:var(--muted)}
.jc-empty a{color:var(--green);text-decoration:underline}

/* pager */
.jc-pager{display:flex;gap:8px;justify-content:center;margin-top:28px;flex-wrap:wrap}
.jc-pager .page-numbers{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 14px;font-size:.88rem}
.jc-pager .current{background:var(--green);color:#fff;border-color:var(--green)}
.jc-pager a.page-numbers:hover{border-color:var(--green);color:var(--green)}

/* ===========================================================
   single juku (塾詳細)
   =========================================================== */
.jc-jhead{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:28px;display:grid;grid-template-columns:1fr 320px;gap:28px;margin-top:6px}
.jc-jhead h1{font-size:1.6rem;letter-spacing:.03em;margin:4px 0 6px}
.jc-jhead .jc-addr{font-size:.88rem;margin-bottom:10px}
.jc-lead-text{font-size:.92rem}
.jc-lead-text p{margin:.4em 0}
.jc-kv{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-top:14px}
.jc-kv div{background:#fff;padding:12px 14px;font-size:.85rem}
.jc-kv b{display:block;color:var(--green);font-size:.74rem;font-weight:700}
.jc-upd{font-size:.74rem;color:#8b9084;margin-top:8px}
.jc-cta-box{background:var(--tint);border-radius:12px;padding:22px;align-self:start}
.jc-cta-box p{font-size:.85rem;margin:0 0 12px}
.jc-btn{display:block;text-align:center;border-radius:8px;padding:13px;font-weight:700;font-size:.95rem;margin-bottom:10px}
.jc-cta-box small{font-size:.72rem;color:var(--muted);display:block}

.jc-layout-detail{display:grid;grid-template-columns:1fr 300px;gap:28px;margin:28px 0 64px}
.jc-blk{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:26px;margin-bottom:22px}
.jc-blk h2{font-size:1.2rem;border-left:4px solid var(--gold);padding-left:12px;margin:0 0 16px;letter-spacing:.04em}
.jc-table{width:100%;border-collapse:collapse;font-size:.88rem}
.jc-table th,.jc-table td{border:1px solid var(--line);padding:10px 12px;text-align:left}
.jc-table th{background:var(--tint);color:var(--green);font-size:.8rem;white-space:nowrap}
.jc-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.jc-photos div{background:var(--tint);border-radius:8px;overflow:hidden;aspect-ratio:4/3}
.jc-photos img{width:100%;height:100%;object-fit:cover}
.jc-message blockquote{font-size:.92rem;background:var(--paper);border-radius:10px;padding:16px 18px;margin:0}
.jc-message cite{display:block;font-style:normal;font-size:.78rem;color:var(--muted);margin-top:8px}
.jc-map{border-radius:10px;overflow:hidden}
.jc-access-text{font-size:.88rem;margin-top:10px}
.jc-side{align-self:start;position:sticky;top:84px}
.jc-side .jc-blk{padding:20px}
.jc-side h3{font-size:.95rem;border-left:3px solid var(--gold);padding-left:10px;margin:0 0 12px}
.jc-side-item{display:block;font-size:.85rem;border-bottom:1px solid var(--line);padding:10px 0}
.jc-side-item:last-child{border-bottom:none}
.jc-side-item b{display:block;font-size:.88rem}
.jc-side-item span{color:var(--muted);font-size:.76rem}

/* rich text (column / premium report) */
.jc-richtext{font-size:.95rem;line-height:1.95}
.jc-richtext h2{font-size:1.25rem;border-left:4px solid var(--gold);padding-left:12px;margin:1.6em 0 .8em}
.jc-richtext h3{font-size:1.1rem;color:var(--green);margin:1.4em 0 .6em}
.jc-richtext p{margin:0 0 1em}
.jc-richtext img{border-radius:10px}

/* ===========================================================
   for-juku (掲載案内 LP)
   =========================================================== */
.jc-b2b-hero{background:linear-gradient(160deg,var(--green) 0%,var(--green-deep) 100%);color:#fff;padding:72px 0;text-align:center}
.jc-b2b-hero h1{font-size:2rem;line-height:1.7;letter-spacing:.05em;margin:0}
.jc-b2b-hero p{color:#d9e4dd;margin:16px auto 28px;max-width:640px}
.jc-b2b-hero small{display:block;margin-top:12px;color:#bcd0c5;font-size:.8rem}
.jc-merits{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.jc-merit{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:26px}
.jc-num{color:var(--gold-deep);font-size:1.8rem;border-bottom:2px solid var(--gold);display:inline-block;line-height:1.3;margin-bottom:12px}
.jc-merit h3{font-size:1.05rem;margin:0 0 8px}
.jc-merit p{font-size:.88rem;color:#4c5246;margin:0}
.jc-plans-sec{background:var(--tint);padding:64px 0}
.jc-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch}
.jc-plan{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:28px 24px;display:flex;flex-direction:column;position:relative}
.jc-featured{border:2px solid var(--gold)}
.jc-badge{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:var(--gold);color:var(--ink);font-size:.74rem;font-weight:700;border-radius:999px;padding:3px 16px;white-space:nowrap}
.jc-plan h3{font-size:1.1rem;text-align:center;color:var(--green);margin:0}
.jc-price{text-align:center;margin:14px 0;font-family:'Shippori Mincho B1',serif;font-size:1.7rem}
.jc-price small{font-size:.8rem;font-family:'Noto Sans JP',sans-serif;color:var(--muted)}
.jc-plan ul{list-style:none;font-size:.86rem;flex:1;padding:0;margin:0}
.jc-plan li{padding:8px 0 8px 24px;border-bottom:1px dashed var(--line);position:relative}
.jc-plan li::before{content:"✓";position:absolute;left:2px;color:var(--gold-deep);font-weight:700}
.jc-plan li.no{color:#b3b8ac}
.jc-plan li.no::before{content:"−";color:#c9cdc2}
.jc-plan .jc-btn-gold,.jc-plan .jc-btn-line{margin-top:18px;padding:12px}
.jc-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;counter-reset:step}
.jc-step{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:22px 18px;counter-increment:step}
.jc-step::before{content:"STEP " counter(step);color:var(--gold-deep);font-weight:700;font-size:.74rem;letter-spacing:.15em;display:block;margin-bottom:8px}
.jc-step h3{font-size:.98rem;margin:0 0 6px}
.jc-step p{font-size:.82rem;color:#4c5246;margin:0}
.jc-faq-sec{padding-top:0}
.jc-faq{max-width:760px;margin:0 auto}
.jc-faq details{background:var(--white);border:1px solid var(--line);border-radius:10px;margin-bottom:12px;padding:16px 20px}
.jc-faq summary{font-weight:700;cursor:pointer;font-size:.95rem}
.jc-faq details p{font-size:.88rem;margin:10px 0 0;color:#4c5246}
.jc-cta-end{background:var(--green);color:#fff;text-align:center;padding:64px 20px}
.jc-cta-end h2{font-size:1.5rem;margin:0 0 10px}
.jc-cta-end p{color:#d9e4dd;margin:0 0 24px}

/* single / article */
.jc-single{padding:30px 20px 64px}
.jc-article{max-width:760px;margin:0 auto}
.jc-article h1{font-size:1.7rem;line-height:1.6;margin:.2em 0}
.jc-article-thumb{margin:18px 0;border-radius:12px;overflow:hidden}

/* ===========================================================
   responsive
   =========================================================== */
@media(max-width:860px){
  .jc-layout,.jc-layout-detail,.jc-jhead{grid-template-columns:1fr}
  .jc-filters,.jc-side{position:static}
  .jc-juku{grid-template-columns:1fr}
  .jc-merits,.jc-plans,.jc-flow{grid-template-columns:1fr}
  .jc-photos{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  .jc-doors,.jc-cards,.jc-col-list{grid-template-columns:1fr}
  .jc-hero h1,.jc-b2b-hero h1{font-size:1.5rem}
  .jc-nav{display:none}
}

/* reduced motion */
@media(prefers-reduced-motion:reduce){
  *{transition:none !important}
}
