@import url('https://fonts.googleapis.com/css2?family=Zen+Antique+Soft&family=Zen+Kaku+Gothic+New:wght@400;500;700;900&display=swap');

/* =========================================================
   にいみ往来 — 色は新見の素材から
   石灰白（カルスト）／高梁川の青緑／ピオーネの紫／紅葉の朱／稲穂の金
   ========================================================= */
:root{
  --limestone:#F2F4EF;
  --limestone-deep:#E4E8DF;
  --river:#16797A;
  --river-deep:#0E5557;
  --river-pale:#DDF0EE;
  --pione:#5E2B74;
  --pione-pale:#F0E7F4;
  --maple:#C8373B;
  --maple-pale:#FBE9E7;
  --gold:#E8A317;
  --gold-pale:#FDF3DC;
  --leaf-pale:#E8F2DE;
  --ink:#1C2B2E;
  --ink-sub:#4B5A5D;
  --line:rgba(28,43,46,0.14);
  --white:#FFFFFF;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}

body{
  margin:0;
  background:var(--limestone);
  color:var(--ink);
  font-family:'Zen Kaku Gothic New','Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;
  font-weight:500;
  line-height:1.9;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:'Zen Antique Soft','Hiragino Mincho ProN','Yu Mincho',serif;
  font-weight:400;
  margin:0 0 .5em;
  line-height:1.45;
  letter-spacing:.02em;
}
p{margin:0 0 1em;}
a{color:var(--river-deep);}
a:hover{color:var(--maple);}
:focus-visible{outline:3px solid var(--gold); outline-offset:3px; border-radius:4px;}
img,svg{max-width:100%; display:block;}

.wrap{max-width:1120px; margin:0 auto; padding:0 24px;}

/* ---------- header ---------- */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(242,244,239,.94);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.site-header .wrap{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:12px; padding-bottom:12px; flex-wrap:wrap; gap:10px;
}
.brand{display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--ink);}
.brand-icon{width:42px; height:42px; flex-shrink:0;}
.brand-name{font-family:'Zen Antique Soft',serif; font-size:1.55rem; line-height:1.2; display:block; color:var(--river-deep);}
.brand-sub{display:block; font-size:.7rem; color:var(--ink-sub); letter-spacing:.04em;}
.main-nav{display:flex; gap:4px; flex-wrap:wrap;}
.main-nav a{
  display:inline-block; padding:7px 13px; border-radius:999px;
  font-weight:700; font-size:.9rem; color:var(--ink); text-decoration:none;
}
.main-nav a:hover{background:var(--river-pale); color:var(--river-deep);}
.main-nav a.active{background:var(--river); color:#fff;}

/* ---------- hero ---------- */
.hero{position:relative; background:#BFE2EE;}
.hero .panorama{width:100%; height:clamp(260px,38vw,440px);}
.hero-copy{
  position:relative; margin-top:-90px; z-index:2;
  background:var(--white); border-radius:22px; padding:34px 36px 30px;
  max-width:720px; border:1px solid var(--line);
}
.hero-copy .lead-place{color:var(--maple); font-weight:700; font-size:.95rem; display:block; margin-bottom:6px;}
.hero-copy h1{font-size:clamp(1.8rem,4.2vw,2.8rem); margin-bottom:.4em; color:var(--ink);}
.hero-copy p{color:var(--ink-sub); font-size:1.02rem; max-width:44em;}
.hero-sub{padding:52px 0 36px; background:linear-gradient(180deg,#D7ECF2 0%,var(--limestone) 100%);}
.hero-sub .hero-copy{margin-top:0; max-width:none; display:grid; grid-template-columns:1.3fr 1fr; gap:28px; align-items:center;}
.hero-sub .hero-copy .art{border-radius:16px;}
.btn{
  display:inline-block; padding:12px 26px; border-radius:999px; margin:8px 6px 0 0;
  background:var(--river); color:#fff; font-weight:700; text-decoration:none;
}
.btn:hover{background:var(--river-deep); color:#fff;}
.btn-outline{background:transparent; border:2px solid var(--river); color:var(--river-deep);}
.btn-outline:hover{background:var(--river-pale); color:var(--river-deep);}

/* ---------- facts band ---------- */
.facts{padding:34px 0 10px;}
.facts dl{display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:14px; margin:0;}
.facts .fact{background:var(--white); border:1px solid var(--line); border-radius:14px; padding:14px 18px;}
.facts dt{font-size:.8rem; color:var(--ink-sub);}
.facts dd{margin:0; font-family:'Zen Antique Soft',serif; font-size:1.5rem; color:var(--river-deep); line-height:1.3;}
.facts dd small{font-family:'Zen Kaku Gothic New',sans-serif; font-size:.78rem; color:var(--ink-sub);}
.facts .src{font-size:.75rem; color:var(--ink-sub); margin-top:8px;}

/* ---------- sections ---------- */
.section{padding:60px 0;}
.section.tint-river{background:var(--river-pale);}
.section.tint-pione{background:var(--pione-pale);}
.section.tint-gold{background:var(--gold-pale);}
.section.tint-leaf{background:var(--leaf-pale);}
.section.tint-maple{background:var(--maple-pale);}
.section-head{max-width:700px; margin:0 0 30px;}
.section-head .tag{color:var(--maple); font-weight:700; font-size:.88rem; display:block; margin-bottom:4px;}
.section-head h2{font-size:clamp(1.45rem,3vw,2rem);}
.section-head p{color:var(--ink-sub); margin-bottom:0;}

/* ---------- illustrated cards ---------- */
.grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:22px;}
.grid.wide{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));}
.card{
  background:var(--white); border:1px solid var(--line); border-radius:18px;
  overflow:hidden; display:flex; flex-direction:column;
}
.card .art{width:100%; aspect-ratio:16/9; height:auto;}
.card-body{padding:18px 20px 20px; display:flex; flex-direction:column; gap:6px; flex:1;}
.card .place{font-size:.78rem; font-weight:700; color:var(--river-deep);}
.card h3{font-size:1.14rem; margin:0;}
.card p{color:var(--ink-sub); font-size:.92rem; margin:0;}
.card .note{
  margin-top:auto; padding-top:10px; font-size:.8rem; color:var(--ink);
}
.card .note span{display:inline-block; background:var(--limestone); border-radius:8px; padding:3px 10px;}
.card .alert{font-size:.8rem; color:var(--maple); font-weight:700;}

/* ---------- spot list (gourmet etc.) ---------- */
.spots{display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:16px;}
.spot{background:var(--white); border-radius:14px; padding:18px 20px; border-left:6px solid var(--gold);}
.spot:nth-child(3n+2){border-left-color:var(--river);}
.spot:nth-child(3n){border-left-color:var(--pione);}
.spot h3{font-size:1.05rem; margin-bottom:2px;}
.spot .where{font-size:.8rem; color:var(--ink-sub); display:block; margin-bottom:6px;}
.spot p{font-size:.92rem; color:var(--ink-sub); margin:0;}

/* ---------- feature split ---------- */
.split{display:grid; grid-template-columns:1fr 1fr; gap:34px; align-items:center;}
.split .art, .split .railmap, .split .areamap{border-radius:18px; border:1px solid var(--line); background:#fff;}
.split.reverse > :first-child{order:2;}
.split h3{font-size:1.35rem;}
.split p{color:var(--ink-sub);}

/* ---------- data table ---------- */
.table-scroll{overflow-x:auto; background:#fff; border-radius:14px; border:1px solid var(--line);}
table.info{border-collapse:collapse; width:100%; min-width:520px; font-size:.92rem;}
table.info th, table.info td{padding:12px 16px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top;}
table.info th{background:var(--river-pale); color:var(--river-deep); white-space:nowrap; font-weight:700;}
table.info tr:last-child th, table.info tr:last-child td{border-bottom:none;}

/* ---------- area blocks ---------- */
.area-block{display:grid; grid-template-columns:320px 1fr; gap:28px; padding:30px 0; border-bottom:1px solid var(--line); align-items:start;}
.area-block:last-child{border-bottom:none;}
.area-block .art{border-radius:16px; width:100%; height:auto; aspect-ratio:16/9;}
.area-block .old-name{font-size:.84rem; color:var(--river-deep); font-weight:700; display:block;}
.area-block h3{font-size:1.4rem; margin-bottom:6px;}
.area-block p{color:var(--ink-sub);}
.chips{display:flex; flex-wrap:wrap; gap:6px; margin-top:4px;}
.chips span{font-size:.8rem; background:var(--limestone-deep); padding:3px 11px; border-radius:999px;}
.chips span.hot{background:var(--pione-pale); color:var(--pione);}

/* ---------- timeline ---------- */
.month-block{margin-bottom:42px;}
.month-block > h3{
  font-size:1.3rem; display:flex; align-items:center; gap:10px;
  padding-bottom:6px; border-bottom:2px solid var(--maple); margin-bottom:18px;
}
.events{display:grid; grid-template-columns:repeat(auto-fill,minmax(310px,1fr)); gap:16px;}
.event{background:#fff; border:1px solid var(--line); border-radius:16px; padding:16px 18px; display:grid; grid-template-columns:56px 1fr; gap:14px;}
.event .ev-icon{width:56px; height:56px; background:var(--limestone); border-radius:12px; padding:4px;}
.event .when{font-size:.8rem; font-weight:700; color:var(--maple);}
.event h4{font-family:'Zen Antique Soft',serif; font-size:1.08rem; margin:2px 0 4px;}
.event .meta{font-size:.78rem; color:var(--ink-sub); margin-bottom:4px;}
.event p{font-size:.88rem; color:var(--ink-sub); margin:0;}
.event.highlight{grid-column:1/-1; background:var(--maple-pale); border-color:rgba(200,55,59,.35); grid-template-columns:120px 1fr;}
.event.highlight .ev-icon{width:120px; height:120px; background:#fff;}
.event.highlight h4{font-size:1.4rem;}
.event.highlight p{font-size:.95rem;}

/* ---------- lodging ---------- */
.lodging-item{display:flex; gap:18px; padding:20px 0; border-bottom:1px solid var(--line);}
.lodging-item:last-child{border-bottom:none;}
.lodging-item .icon{width:48px; height:48px; flex-shrink:0; margin-top:4px;}
.lodging-item h4{font-size:1.1rem; margin-bottom:2px;}
.lodging-item .where{font-size:.8rem; color:var(--ink-sub);}
.lodging-item p{color:var(--ink-sub); font-size:.92rem; margin:4px 0 0;}
.lodge-group{background:#fff; border-radius:18px; padding:8px 26px; border:1px solid var(--line);}

/* ---------- callout ---------- */
.callout{background:#fff; border:2px dashed var(--gold); border-radius:16px; padding:16px 20px; font-size:.9rem; color:var(--ink-sub);}
.callout strong{color:var(--ink);}

/* ---------- furusato / ad ---------- */
.furusato-block{margin-top:40px; padding:24px; background:#fff; border:1px dashed var(--gold); border-radius:18px;}
.furusato-block .furusato-label{font-weight:700; color:#A5720C; font-size:.9rem; margin-bottom:14px; display:block;}
.furusato-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:16px;}
.furusato-slot{background:var(--gold-pale); border-radius:14px; padding:18px; text-align:center; font-size:.85rem; color:var(--ink-sub); min-height:120px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:6px;}
.furusato-slot .slot-title{font-weight:700; color:var(--ink);}
.ad-row{display:flex; gap:16px; flex-wrap:wrap; margin-top:18px;}
.ad-slot{flex:1 1 300px; min-height:100px; border:1px dashed var(--line); border-radius:14px; background:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; padding:16px;}
.ad-slot .ad-label{font-size:.72rem; letter-spacing:.05em; color:var(--ink-sub);}
.ad-slot .ad-note{font-size:.8rem; color:var(--ink-sub);}

/* ---------- sources ---------- */
.sources{font-size:.8rem; color:var(--ink-sub);}
.sources ul{padding-left:1.2em; margin:6px 0 0;}
.sources li{margin-bottom:2px;}

/* ---------- footer ---------- */
.site-footer{background:var(--river-deep); color:#E3F1EF; padding:46px 0 24px;}
.site-footer a{color:#fff;}
.footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:28px; margin-bottom:28px;}
.footer-grid h4{color:#fff; font-size:1rem; margin-bottom:10px;}
.footer-grid p, .footer-grid li{color:#C8E2DF; font-size:.88rem;}
.footer-grid ul{list-style:none; padding:0; margin:0;}
.footer-grid li{margin-bottom:6px;}
.disclaimer{border-top:1px solid rgba(255,255,255,.2); padding-top:18px; font-size:.78rem; color:#B5D5D1; line-height:1.9;}
.copyright{margin-top:16px; font-size:.78rem; color:#9CC4BF; text-align:center;}

/* ---------- operator page（まにわ往来と同形式） ---------- */
.op-card{max-width:640px; margin:0 auto; background:var(--river-deep); color:#E3F1EF; border-radius:18px; padding:32px 28px;}
.op-card h1{color:#fff; font-size:1.4rem; margin-bottom:16px;}
.op-card a{color:#fff;}
.footer-op-table{width:100%; border-collapse:collapse; font-size:.9rem;}
.footer-op-table th{text-align:left; color:#9CC4BF; font-weight:500; padding:6px 12px 6px 0; vertical-align:top; white-space:nowrap;}
.footer-op-table td{padding:6px 0; color:#fff;}
.footer-contact{margin-top:22px;}
.footer-contact h5{color:#fff; font-size:1rem; margin:0 0 10px; font-family:'Zen Antique Soft',serif; font-weight:400;}
.footer-contact label{display:block; font-size:.82rem; color:#C8E2DF; margin-bottom:12px;}
.footer-contact input, .footer-contact textarea{display:block; width:100%; margin-top:4px; padding:9px 11px; border-radius:8px; border:1px solid rgba(255,255,255,.3); background:rgba(255,255,255,.08); color:#fff; font-family:inherit; font-size:.9rem;}
.footer-contact textarea{min-height:90px; resize:vertical;}
.footer-contact input:focus, .footer-contact textarea:focus{outline:2px solid var(--gold); outline-offset:1px;}
.footer-contact button{margin-top:2px; padding:10px 26px; border-radius:999px; border:none; background:var(--gold); color:var(--ink); font-weight:700; font-size:.9rem; cursor:pointer; font-family:inherit;}
.footer-contact button:hover{background:#F2B93A;}
.fs-privacy-link{display:block; margin-top:12px; font-size:.74rem; line-height:1.7; color:#9CC4BF;}

/* ---------- map page ---------- */
.map-filters{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px;}
.f-btn{display:inline-flex; align-items:center; gap:8px; padding:7px 14px; border-radius:999px; border:1px solid var(--line); background:#fff; font:inherit; font-size:.85rem; font-weight:700; color:var(--ink); cursor:pointer;}
.f-btn[aria-pressed="false"]{opacity:.45; text-decoration:line-through;}
.f-btn .dot{width:12px; height:12px; border-radius:50%; display:inline-block;}
.map-box{height:clamp(420px,62vh,640px); border-radius:18px; border:1px solid var(--line); overflow:hidden; background:var(--limestone-deep); z-index:1;}
.map-note{font-size:.78rem; color:var(--ink-sub); margin-top:8px;}
.map-fallback{padding:40px 20px; text-align:center; color:var(--ink-sub);}
.pin{background:none; border:none;}
.pin-dot{display:flex; align-items:center; justify-content:center; width:28px; height:28px; border-radius:50%; color:#fff; font-weight:700; font-size:13px; border:3px solid #fff; box-shadow:0 1px 4px rgba(0,0,0,.35); font-family:'Zen Kaku Gothic New',sans-serif;}
.pin-dot.big{width:34px; height:34px; font-size:15px;}
.pop strong{display:block; font-size:1rem; margin-bottom:2px;}
.pop span{font-size:.75rem; color:var(--ink-sub);}
.pop p{margin:6px 0 0; font-size:.82rem; line-height:1.6;}
.pop .pn{color:var(--maple);}
.pop a{display:inline-block; margin-top:8px; font-weight:700;}
.schem-wrap{background:#fff; border-radius:18px; border:1px solid var(--line); padding:10px; overflow-x:auto;}
.schem{min-width:560px; width:100%; height:auto;}
table.access td{font-size:.86rem;}
table.access th small{font-weight:500; color:var(--ink-sub);}
.num{display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:50%; color:#fff; font-size:.75rem; margin-right:6px;}
table.access tr:first-child th{background:var(--river); color:#fff;}
table.access th{white-space:normal; min-width:150px;}

@media (max-width:820px){
  .hero-copy{margin:-50px 12px 0; padding:24px 22px;}
  .hero-sub .hero-copy{grid-template-columns:1fr; margin:0;}
  .split{grid-template-columns:1fr;}
  .split.reverse > :first-child{order:0;}
  .area-block{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .event.highlight{grid-template-columns:72px 1fr;}
  .event.highlight .ev-icon{width:72px; height:72px;}
  .brand-name{font-size:1.3rem;}
}

/* ---------- 広告表示（ads.js 用） ---------- */
[hidden]{display:none !important;}
.ad-body{text-align:center; width:100%;}
.ad-body img{max-width:100%; height:auto;}
.ad-slot[data-rendered]{border-style:solid;}
.furusato-slot .ad-label{font-size:.72rem; letter-spacing:.05em; color:var(--ink-sub); margin-bottom:6px;}
