/* ニュース・個人情報保護方針ページ用（クラス名は cn- で始める） */
:root{
  --cn-rose:#a8362e;--cn-rose-dark:#7a1f1a;--cn-rose-light:#e8c0bc;
  --cn-cream:#fdf8f5;--cn-cream-dark:#f5ede7;
  --cn-text:#3a2420;--cn-mid:#6b5450;--cn-muted:#9a8480;--cn-line:#e8dcd6;
}
*{box-sizing:border-box}
body.cn-body{margin:0;background:var(--cn-cream);color:var(--cn-text);font-family:'Noto Sans JP',sans-serif;line-height:1.9}
.cn-body a{color:var(--cn-rose);text-decoration:none}
.cn-body a:hover{color:var(--cn-rose-dark)}

/* header / footer */
.cn-header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--cn-line)}
.cn-header-in{max-width:1100px;margin:0 auto;padding:.6rem 1.25rem;display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}
.cn-logo img{height:48px;width:48px;object-fit:cover;border-radius:6px;display:block}
.cn-nav{display:flex;gap:1.1rem;flex-wrap:wrap;margin-left:auto;align-items:center}
.cn-nav a{color:var(--cn-text);font-weight:500;font-size:.92rem}
.cn-nav a.is-active{color:var(--cn-rose);font-weight:700}
.cn-member{font-size:.82rem;color:var(--cn-mid)}
.cn-member button{margin-left:.5rem;border:0;background:none;color:var(--cn-rose);cursor:pointer;font:inherit;text-decoration:underline}
.cn-footer{margin-top:4rem;background:#3a2420;color:#eadcd6;padding:2rem 1.25rem;font-size:.88rem}
.cn-footer-in{max-width:1100px;margin:0 auto;display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between}
.cn-footer a{color:#f2d9d4}
.cn-footer p{margin:.2rem 0}

/* common */
.cn-wrap{max-width:1000px;margin:0 auto;padding:2.5rem 1.25rem}
.cn-eyebrow{display:block;font-size:.78rem;letter-spacing:.2em;color:var(--cn-rose);font-weight:700}
.cn-title{font-family:'Noto Serif JP',serif;font-size:2rem;margin:.2rem 0 .6rem;line-height:1.4}
.cn-lead{color:var(--cn-mid);margin:0 0 1.5rem}
.cn-btn{display:inline-block;border:0;border-radius:999px;background:var(--cn-rose);color:#fff!important;padding:.7rem 1.4rem;font:inherit;font-weight:700;cursor:pointer}
.cn-btn:hover{background:var(--cn-rose-dark)}
.cn-btn--ghost{background:#fff;color:var(--cn-rose)!important;border:1px solid var(--cn-rose)}
.cn-btn--ghost:hover{background:var(--cn-cream-dark)}

/* list */
.cn-hero{background:var(--cn-cream-dark);border-bottom:1px solid var(--cn-line)}
.cn-banner{display:flex;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap;background:#fff;border:1px solid var(--cn-rose-light);border-radius:14px;padding:1rem 1.25rem;margin:0 0 1.5rem}
.cn-banner p{margin:0;color:var(--cn-mid);font-size:.92rem}
.cn-filters{display:flex;gap:.5rem;flex-wrap:wrap;margin:0 0 1.5rem}
.cn-chip{border:1px solid var(--cn-rose-light);background:#fff;color:var(--cn-rose-dark);border-radius:999px;padding:.35rem .9rem;font:inherit;font-size:.85rem;cursor:pointer}
.cn-chip.is-on{background:var(--cn-rose);border-color:var(--cn-rose);color:#fff}
.cn-list{display:grid;gap:1rem}
.cn-card{display:block;background:#fff;border-radius:14px;padding:1.25rem 1.4rem;box-shadow:0 3px 14px rgba(58,36,32,.07);color:inherit!important}
.cn-card:hover{box-shadow:0 6px 20px rgba(58,36,32,.12)}
.cn-meta{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;font-size:.82rem;color:var(--cn-muted)}
.cn-cat{background:var(--cn-rose-light);color:var(--cn-rose-dark);border-radius:999px;padding:.1rem .7rem;font-weight:700}
.cn-lock{color:var(--cn-rose)}
.cn-card h3{margin:.45rem 0 .3rem;font-size:1.15rem;line-height:1.55;color:var(--cn-text)}
.cn-card p{margin:0;color:var(--cn-mid);font-size:.92rem}
.cn-empty{background:#fff;border-radius:14px;padding:2.5rem 1.5rem;text-align:center;color:var(--cn-mid);box-shadow:0 3px 14px rgba(58,36,32,.07)}

/* article */
.cn-article{background:#fff;border-radius:16px;padding:2rem 2.2rem;box-shadow:0 4px 18px rgba(58,36,32,.08)}
.cn-article h1{font-family:'Noto Serif JP',serif;font-size:1.7rem;line-height:1.55;margin:.5rem 0 1rem}
.cn-body-text p{margin:0 0 1rem}
.cn-body-text ul{margin:0 0 1rem;padding-left:1.4rem}
.cn-fade{position:relative}
.cn-fade::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.6rem;background:linear-gradient(to bottom,rgba(255,255,255,0),#fff)}
.cn-sources{margin-top:1.75rem;padding-top:1.25rem;border-top:1px solid var(--cn-line);font-size:.88rem}
.cn-sources h2{font-size:.95rem;margin:0 0 .5rem}
.cn-sources ul{margin:0;padding-left:1.2rem;word-break:break-all}
.cn-note{margin-top:1rem;font-size:.8rem;color:var(--cn-muted)}
.cn-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.5rem}

/* member wall & form */
.cn-wall{margin-top:1.25rem;border:2px solid var(--cn-rose-light);border-radius:16px;padding:1.5rem;background:var(--cn-cream)}
.cn-wall h2{margin:0 0 .4rem;font-size:1.2rem}
.cn-wall>p{margin:0 0 1rem;color:var(--cn-mid);font-size:.92rem}
.cn-form{display:grid;gap:.9rem}
.cn-row{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.cn-f label,.cn-f legend{display:block;font-weight:700;font-size:.88rem;margin:0 0 .25rem;padding:0}
.cn-f em{color:var(--cn-rose);font-style:normal}
.cn-f input[type=text],.cn-f input[type=email],.cn-f input[type=tel],.cn-f select{width:100%;padding:.65rem .75rem;border:1px solid var(--cn-line);border-radius:8px;font:inherit;background:#fff;color:var(--cn-text)}
.cn-f input:focus,.cn-f select:focus{outline:2px solid #c8736b;border-color:#c8736b}
.cn-f input.error{border-color:#b3261e}
.cn-f fieldset{border:0;margin:0;padding:0}
.cn-err{display:block;min-height:1em;font-size:.78rem;color:#b3261e}
.cn-checks{display:flex;gap:.45rem;flex-wrap:wrap}
.cn-check{display:inline-flex;align-items:center;gap:.35rem;font-weight:500!important;font-size:.85rem!important;border:1px solid var(--cn-line);border-radius:999px;padding:.3rem .75rem;background:#fff;cursor:pointer}
.cn-agree{display:flex;gap:.5rem;align-items:flex-start;font-size:.88rem;font-weight:500!important;line-height:1.7}
.cn-agree input{margin-top:.35rem}
.cn-msg-ok{background:#e9f6ec;color:#1e6b34;border-radius:8px;padding:.8rem 1rem;display:none}
.cn-msg-ng{background:#fdecea;color:#b3261e;border-radius:8px;padding:.8rem 1rem;display:none}
.cn-msg-ng a{font-weight:700;color:#b3261e}
.cn-modal{position:fixed;inset:0;background:rgba(58,36,32,.55);z-index:100;display:none;align-items:flex-start;justify-content:center;overflow:auto;padding:2rem 1rem}
.cn-modal.is-open{display:flex}
.cn-modal-box{background:#fff;border-radius:16px;max-width:640px;width:100%;padding:1.5rem;position:relative}
.cn-modal-close{position:absolute;right:.8rem;top:.6rem;border:0;background:none;font-size:1.6rem;cursor:pointer;color:var(--cn-mid)}

/* privacy */
.cn-doc h2{font-family:'Noto Serif JP',serif;font-size:1.2rem;margin:2rem 0 .5rem;padding-left:.7rem;border-left:4px solid var(--cn-rose)}
.cn-doc p,.cn-doc li{font-size:.95rem}
.cn-doc ul,.cn-doc ol{padding-left:1.4rem}
.cn-doc table{border-collapse:collapse;width:100%;font-size:.92rem;margin:.5rem 0 1rem}
.cn-doc th,.cn-doc td{border:1px solid var(--cn-line);padding:.55rem .75rem;text-align:left;vertical-align:top}
.cn-doc th{background:var(--cn-cream-dark);width:28%}

@media(max-width:700px){
  .cn-row{grid-template-columns:1fr}
  .cn-title{font-size:1.5rem}
  .cn-article{padding:1.4rem 1.1rem}
  .cn-article h1{font-size:1.35rem}
  .cn-nav{margin-left:0}
}

/* A4で印刷・PDF保存 */
@page{size:A4;margin:14mm}
@media print{
  .cn-header,.cn-footer,.cn-actions,.cn-wall,.cn-modal,.coni-float,.cn-noprint{display:none!important}
  body.cn-body{background:#fff;font-size:10.5pt;line-height:1.75}
  .cn-wrap{padding:0;max-width:none}
  .cn-article{box-shadow:none;padding:0}
  .cn-article h1{font-size:15pt}
  .cn-fade::after{display:none}
}

/* ガイド記事の目次 */
.cn-toc{background:#fff;border:1px solid var(--cn-line);border-radius:12px;padding:1rem 1.25rem;margin:0 0 1.5rem}
.cn-toc strong{display:block;margin-bottom:.4rem}
.cn-toc ol{margin:0;padding-left:1.3rem}
.cn-toc li{margin:.15rem 0;font-size:.93rem}
.cfaq-list{display:flex;flex-direction:column;gap:.75rem;margin:1rem 0 0}
.cfaq-item{background:#fff;border-radius:12px;box-shadow:0 2px 10px rgba(58,36,32,.06);overflow:hidden}
.cfaq-item summary{cursor:pointer;padding:1rem 3rem 1rem 1.25rem;font-weight:700;position:relative;list-style:none}
.cfaq-item summary::-webkit-details-marker{display:none}
.cfaq-item summary::after{content:"+";position:absolute;right:1.25rem;top:50%;transform:translateY(-50%);font-size:1.4rem;color:var(--cn-rose)}
.cfaq-item[open] summary::after{content:"\2212"}
.cfaq-item p{margin:0;padding:0 1.25rem 1.1rem;color:var(--cn-mid);line-height:1.9;font-size:.95rem}
.cn-doc h2{scroll-margin-top:5rem}
.cn-ref{font-size:.7em;margin-left:.1em}
.cn-ref a{color:var(--cn-rose)}
.cn-doc h3{font-size:1.05rem;margin:1.5rem 0 .4rem}
.cn-sources-list{font-size:.85rem;word-break:break-all}
.cn-sources-list li{margin:.3rem 0}
.cn-doc table td,.cn-doc table th{line-height:1.8}
.cn-refa{font-size:.72em;vertical-align:super;margin-left:.1em;color:var(--cn-rose)}

/* ダラットページ：地図 */
.vn-mapwrap{display:grid;grid-template-columns:minmax(0,380px) 1fr;gap:1.5rem;align-items:start;margin:1rem 0}
.vn-fig{margin:0}
.vn-fig img{width:100%;height:auto;border-radius:12px;border:1px solid var(--cn-line);background:#fff;display:block}
.vn-fig figcaption{font-size:.8rem;color:var(--cn-muted);margin-top:.4rem;line-height:1.6}
.vn-maptext li{margin:.4rem 0}
.vn-osm iframe{width:100%;height:340px;border:1px solid var(--cn-line);border-radius:12px;background:#eee}
@media(max-width:760px){.vn-mapwrap{grid-template-columns:1fr}.vn-fig{max-width:420px;margin:0 auto}}
.cn-doc table.cn-access{table-layout:fixed}
.cn-doc table.cn-access th{width:auto}
.cn-doc table.cn-access td{word-break:break-word}
@media(max-width:700px){.cn-doc table.cn-access{table-layout:auto;font-size:.85rem}.cn-doc table.cn-access colgroup{display:none}}
