.nf-wrap,
.nf-result{
  max-width:960px;
  margin:1.5rem auto;
  padding:0 1rem;
}
.nf-wrap{
  margin: 1.5rem auto;
  font-size: 16px;
  background-color: #f5f5f5;
  padding: 2rem;
  box-sizing: border-box;
  color: #111;
  text-align: center;
}
.post_content .nf-result h2{
  margin: 2em 0 1em;
}
.post_content .nf-result h4{
  margin: 1em 0 0.5em;
}
.nf-field{
  margin:0 0 1rem;
}
.nf-field label{
  display:block;
  font-weight:600;
  margin-bottom:.25rem;
}
.nf-field input{
  width:100%;
  padding:1rem .5rem;
  border:1px solid #ddd;
  background-color: #fff;
  border-radius:.5rem;
}
.nf-field input[type="date"]{
  padding:.5rem;
  border:1px solid #ddd;
  border-radius:.5rem;
  position: relative;
}
.nf-field input[type=date]::-webkit-calendar-picker-indicator {
  position: absolute;
  width: 100%;
  height: 100%;
}
.nf-field input[type=date]::-webkit-calendar-picker-indicator {
  /*省略*/
  opacity: 0;
}
button.nf-btn{
  background-color: rgb(255, 135, 175);
  box-shadow: 0 4px 0 rgba(191, 101, 131, 1);
  border:0;
  color:#fff;
  padding:1rem 1rem;
  border-radius: 80px;
  cursor:pointer;
  width: 70%;
  box-sizing: border-box;
  font-size: 1.2rem;
  font-weight: 700;
  transition: box-shadow .25s, -webkit-transform .25s;
  transition: transform .25s, box-shadow .25s;
  transition: transform .25s, box-shadow .25s, -webkit-transform .25s;
}
button.nf-btn:active,
button.nf-btn:hover{
  box-shadow: 0 0 0 transparent !important;
  -webkit-transform: translate3d(0, 4px, 0);
  transform: translate3d(0, 4px, 0);
}
.req{color:#e11}
/* ========== Tabs (CSS-only, 9 items fixed) ========== */
/* お好みパラメータ（距離・速度・イージング） */
.nf-tabs-css{
  --nf-tab-anim-duration: .24s;     /* 切替速度：速→ .18s / 遅→ .3s */
  --nf-tab-anim-ease: ease-out;     /* ease / ease-in-out など */
  --nf-tab-anim-distance: 18px;     /* スライド距離。0でフェードのみ */
}
/* ラジオは非表示（配置外へ） */
.nf-tabs-css .nf-tab-input{ position:absolute; left:-9999px; }
/* ラベル帯：横スクロール */
.nf-tabs-css .nf-tablabels{
  display:flex;
  gap:.5rem;
  overflow-x:auto;
  padding:.0;
  margin:0;
  -webkit-overflow-scrolling: touch;
  position: relative;
}
.nf-tabs-css .nf-tablabels::-webkit-scrollbar{
  position: absolute;
  bottom: -6px;
  height:6px;
}
.nf-tabs-css .nf-tablabels::-webkit-scrollbar-track{
  background:rgba(51, 51, 51, 0.5);
}
.nf-tabs-css .nf-tablabels::-webkit-scrollbar-thumb{
  background:rgb(51, 51, 51);
  border-radius:3px;
}
.nf-tabs-css .nf-tab-label{
  flex:0 0 auto;
  cursor:pointer;
  padding:.5rem .75rem;
  border-bottom:none;
  border-radius:.5rem .5rem 0 0;
  background:rgba(51, 51, 51, 0.2);
  color:rgb(51, 51, 51);
  transition: background .18s ease, color .18s ease, border-color .18s ease;
}
/* パネル容器 */
.nf-tabs-css .nf-tabpanels{
  position:relative;
  border:10px solid rgba(51, 51, 51, 0.1);
  border-radius:0 0 .5rem .5rem;
  padding:1rem;
  isolation:isolate;
  min-height: 3rem; /* 中身が空の瞬間のガタつき防止（任意） */
}
/* パネル基本：重ねて非表示（display:noneを使わない） */
.nf-tabs-css .nf-tabpanels .nf-tabpanel{
  position:absolute; inset:0;
  opacity:0; visibility:hidden; pointer-events:none;
}
/* アニメーション定義：フェード＋横スライド */
@keyframes nfFadeSlide {
  from { opacity:0; transform: translateX(var(--nf-tab-anim-distance)); }
  to   { opacity:1; transform: none; }
}
/* ====== 9個のマッピング（順序固定） ======
   N番目のinput:checked → N番目のpanelを表示
   N番目のinput:checked → N番目のlabelをアクティブ見た目
*/
.nf-tabs-css input:nth-of-type(1):checked ~ .nf-tabpanels .nf-tabpanel:nth-of-type(1),
.nf-tabs-css input:nth-of-type(2):checked ~ .nf-tabpanels .nf-tabpanel:nth-of-type(2),
.nf-tabs-css input:nth-of-type(3):checked ~ .nf-tabpanels .nf-tabpanel:nth-of-type(3),
.nf-tabs-css input:nth-of-type(4):checked ~ .nf-tabpanels .nf-tabpanel:nth-of-type(4),
.nf-tabs-css input:nth-of-type(5):checked ~ .nf-tabpanels .nf-tabpanel:nth-of-type(5),
.nf-tabs-css input:nth-of-type(6):checked ~ .nf-tabpanels .nf-tabpanel:nth-of-type(6),
.nf-tabs-css input:nth-of-type(7):checked ~ .nf-tabpanels .nf-tabpanel:nth-of-type(7),
.nf-tabs-css input:nth-of-type(8):checked ~ .nf-tabpanels .nf-tabpanel:nth-of-type(8),
.nf-tabs-css input:nth-of-type(9):checked ~ .nf-tabpanels .nf-tabpanel:nth-of-type(9){
  position:relative;
  z-index:1;
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  animation: nfFadeSlide var(--nf-tab-anim-duration) var(--nf-tab-anim-ease) 0s 1 both;
}
/* ラベルのアクティブ見た目（同じく順序対応） */
.nf-tabs-css input:nth-of-type(1):checked ~ .nf-tablabels label:nth-of-type(1),
.nf-tabs-css input:nth-of-type(2):checked ~ .nf-tablabels label:nth-of-type(2),
.nf-tabs-css input:nth-of-type(3):checked ~ .nf-tablabels label:nth-of-type(3),
.nf-tabs-css input:nth-of-type(4):checked ~ .nf-tablabels label:nth-of-type(4),
.nf-tabs-css input:nth-of-type(5):checked ~ .nf-tablabels label:nth-of-type(5),
.nf-tabs-css input:nth-of-type(6):checked ~ .nf-tablabels label:nth-of-type(6),
.nf-tabs-css input:nth-of-type(7):checked ~ .nf-tablabels label:nth-of-type(7),
.nf-tabs-css input:nth-of-type(8):checked ~ .nf-tablabels label:nth-of-type(8),
.nf-tabs-css input:nth-of-type(9):checked ~ .nf-tablabels label:nth-of-type(9){
  background:rgb(51, 51, 51);
  border-color:rgb(51, 51, 51);
  border-bottom-color:rgb(51, 51, 51);
  color:#fff;
  font-weight: bold;
}
/* 動きを弱めたいユーザーへの配慮 */
@media (prefers-reduced-motion: reduce){
  .nf-tabs-css .nf-tab-label{
    transition:none;
  }
  .nf-tabs-css .nf-tabpanels .nf-tabpanel{
    animation:none !important;
    transform:none !important;}
}
.post_content .nf-year-block h3{
  margin: 1rem 0;
  line-height: 1.5rem;
}
.post_content .nf-year-block h4{
  margin: 1rem 0 0.5rem;
}
.nf-year-block h3 span{
  color:rgb(255, 135, 175);
  font-size: 1.2rem;
  font-family: "novantique-script", sans-serif;
  font-style: normal;
  font-weight: 400;
  font-size: 2rem;
}
/* 年の小見出しブロック（恋愛・仕事・金運） */
.nf-year-cats{
  display:grid;
  gap:.75rem;
  margin:.75rem 0;
}
@media (min-width: 720px){
  .nf-year-cats{
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: .75rem 1rem;
  }
}
.nf-year-cat h5{
  font-size:1rem;
  margin:.25rem 0;
  font-weight:700;
  color:rgb(255, 135, 175);
}
.nf-year-cat p{
  margin:0;
}
.nf-lucky{
  display:grid;
  gap:.25rem .75rem;
  margin:.75rem 0 0;
  padding: 0.5rem 1rem 1rem;
  background: rgba(255, 135, 175, 0.15);
  border-radius: 10px;
}
.nf-lucky-point{
  font-family: "novantique-script", sans-serif;
  font-style: normal;
  font-weight: 400;
  font-size: 1.5rem;
  color: rgb(255, 135, 175);
  text-align: center;
}
.nf-lucky.nf-lucky--month{
  background-color: #fff;
}
@media (min-width:640px){
  .nf-lucky{
    grid-template-columns: repeat(1, minmax(0,1fr));
  }
}
.nf-lucky strong{
  font-weight:600;
}
.nf-year-visual{
  width: 100%;
  text-align: center;
}
.nf-day-table{
  width:100%;
  border-collapse:collapse;
  font-size:.95rem;
}
.post_content .nf-day-table thead td,
.post_content .nf-day-table thead th{
  background-color: #333;
  vertical-align: middle;
  white-space: nowrap;
  font-family: "novantique-script", sans-serif;
  font-style: normal;
  font-weight: 400;
  font-size: 16px;
}
.nf-day-table td{
  border-bottom:1px solid #eee;
}
.nf-day-table th{
  text-align: center;
  padding:.5rem .25rem;
}
.nf-day-table td:nth-child(1),
.nf-day-table td:nth-child(2){
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
}
.nf-day-table td:nth-child(1){
  font-size: 12px;
}
.nf-day-table td:nth-child(2){
  font-family: "novantique-script", sans-serif;
  font-style: normal;
  font-weight: 400;
  font-size: 2rem;
  color: rgb(255, 135, 175);
}
.nf-day-table td:nth-child(3){
  text-align:left;
  vertical-align: middle;
}
#nf-result{
  scroll-margin-top:80px;
}
.nf-panel[hidden]{
  display:none !important;
}
/* details/summary 版（JS不要） */
.nf-accordion--details details {
  border-top:1px solid #eee;
  padding:.0;
}
.nf-accordion--details details:last-child{
  border-bottom:1px solid #eee;
}
.nf-accordion--details summary {
  cursor:pointer;
  font-weight:600;
  padding:.6rem 0;
  list-style:none;
  outline:none;
  display:flex;
  gap:.5rem;
  align-items:center;
  position: relative;
}
.nf-accordion--details summary::-webkit-details-marker {
  display:none;
}
.nf-accordion--details details[open] summary {
  color:#333;
}
.nf-accordion--details summary::after {
  content: '';
  position: absolute;
  transform: translateY(-25%) rotate(45deg);
  width: 9px;
  height: 9px;
  right: 0;
  border-bottom: 2px solid #ccc;
  border-right: 2px solid #ccc;
  transition: transform .3s;
}
.nf-accordion--details details[open] summary::after {
  transform: rotate(225deg);
}
.nf-accordion--details .nf-acc-content {
  transform: translateY(-10px);
  opacity: 0;
  margin: 0;
  color: #333333;
  transition: transform .5s, opacity .5s;
  padding: 1.5em .75rem .75em;
  background-color: #f5f5f5;
}
.nf-accordion--details details[open] .nf-acc-content{
  transform: none;
  opacity: 1;
}

.nf-accordion--details .nf-acc-month {
  font-size:1rem;
  width: 2.5rem;
}
.nf-accordion--details .nf-acc-pm {
  color:#666;
  font-size:.95rem;
  letter-spacing: -0.1rem;
}
.nf-accordion--details .nf-acc-pm strong{
  font-size: 1rem;
  color:rgb(255, 135, 175);
  font-weight: bold;
  letter-spacing: 0;
}
.nf-lucky--month{
  margin:.5rem 0 0;
  display:grid;
  gap:.25rem .75rem;
}
@media(min-width:640px){
  .nf-lucky--month{
    grid-template-columns:repeat(1, minmax(0,1fr));
  }
}
.nf-lucky--month strong{font-weight:600}
