#rk-premium{
    --navy:#123a5e; --navy2:#1b4f7d; --gold:#f2b13c; --ink:#1b2430; --sub:#48556a;
    --line:#c3ccd6; --bg:#eef3f8; --green:#2f6b51; --green2:#3f8f6d;
    --orange:#b56b10; --orange2:#d98218; --red:#c0453a; --blue:#1a5fa8;
  }
  #rk-premium *{box-sizing:border-box; margin:0; padding:0; -webkit-text-size-adjust:100%;}
  #rk-premium{
    font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",sans-serif;
    color:var(--ink); background:#f4f6f8; line-height:1.8; font-size:18px;
    padding-bottom:104px;
  }
  #rk-premium .wrap{max-width:760px; margin:0 auto; padding:0 14px 40px;}

  /* ---- ヘッダー ---- */
  #rk-premium header{background:var(--navy); color:#fff; padding:28px 0 24px; margin-bottom:18px;}
  #rk-premium header .inner{max-width:760px; margin:0 auto; padding:0 16px;}
  #rk-premium header .eyebrow{color:var(--gold); font-size:14px; letter-spacing:.22em;}
  #rk-premium header h1{font-size:28px; line-height:1.45; margin-top:10px; font-weight:700;}
  #rk-premium header h1 .hl{color:var(--gold);}
  #rk-premium header p{font-size:16px; margin-top:14px; color:#dbe6f0; line-height:1.85;}
  #rk-premium header .meta{margin-top:14px; font-size:13.5px; color:#b9cbdd; line-height:1.7;}
  #rk-premium header .supervision{margin-top:12px; text-align:right; font-size:15px; font-weight:700; color:#fff; line-height:1.5;}

  /* ---- カード ---- */
  #rk-premium .card{background:#fff; border-radius:14px; padding:20px 16px; margin-bottom:16px; box-shadow:0 1px 3px rgba(18,58,94,.09);}
  #rk-premium .stephead{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:12px;}
  #rk-premium .stephead .no{background:var(--gold); color:var(--navy); font-weight:700; font-size:14px; padding:4px 12px; border-radius:6px; white-space:nowrap;}
  #rk-premium .stephead .t{font-size:21px; font-weight:700; color:var(--navy); line-height:1.4;}
  #rk-premium .desc{font-size:15.5px; color:var(--sub); line-height:1.85; margin-bottom:14px;}
  #rk-premium h3.sec{font-size:17px; color:var(--navy); border-left:6px solid var(--gold); padding-left:11px; margin:20px 0 10px; line-height:1.5;}

  /* ---- 入力フィールド（縦積み・大きめ） ---- */
  #rk-premium .field{padding:14px 0; border-bottom:1px solid #e6ebf0;}
  #rk-premium .field:last-child{border-bottom:none;}
  #rk-premium .field .fl{display:block; font-size:17px; font-weight:700; color:var(--navy); line-height:1.55;}
  #rk-premium .field .fh{font-size:14px; color:var(--sub); line-height:1.7; margin-top:4px;}
  #rk-premium .fin{display:flex; align-items:center; gap:8px; margin-top:9px;}
  #rk-premium .num{
    flex:1; min-width:0; width:100%;
    font-size:26px; font-weight:700; text-align:right; color:var(--blue);
    padding:13px 14px; border:2px solid var(--line); border-radius:11px; background:#fff;
    font-family:inherit; line-height:1.3;
  }
  #rk-premium .num:focus{outline:none; border-color:var(--navy); background:#fbfdff; box-shadow:0 0 0 4px rgba(18,58,94,.13);}
  #rk-premium .funit{font-size:16px; font-weight:700; color:var(--sub); white-space:nowrap; flex-shrink:0;}
  #rk-premium .fecho{font-size:14.5px; color:var(--sub); text-align:right; margin-top:6px; min-height:1.4em;}
  #rk-premium .fecho b{color:var(--blue); font-size:16px;}
  #rk-premium .auto{background:#fffaf0; border:2px solid var(--gold); border-radius:11px; padding:13px 14px; margin-top:10px;
        display:flex; justify-content:space-between; align-items:baseline; gap:10px; flex-wrap:wrap;}
  #rk-premium .auto .k{font-size:15px; font-weight:700; color:var(--orange);}
  #rk-premium .auto .v{font-size:24px; font-weight:700; color:var(--navy); white-space:nowrap;}
  #rk-premium .auto .v small{font-size:15px; margin-left:2px;}

  #rk-premium select{
    width:100%; font-size:17px; padding:13px 12px; border:2px solid var(--line); border-radius:11px;
    background:#fff; font-family:inherit; color:var(--ink); line-height:1.5;
  }
  #rk-premium .chk{display:flex; align-items:flex-start; gap:11px; padding:9px 0; font-size:16px; line-height:1.65;}
  #rk-premium .chk input{width:26px; height:26px; margin-top:2px; flex-shrink:0; accent-color:var(--navy);}

  /* ---- 早見表ボタン ---- */
  #rk-premium .picks{display:flex; flex-direction:column; gap:8px; margin-top:8px;}
  #rk-premium .pick{
    display:flex; justify-content:space-between; align-items:center; gap:10px; text-align:left;
    font-family:inherit; font-size:15.5px; line-height:1.5; color:var(--ink);
    background:#fff; border:2px solid var(--line); border-radius:11px; padding:12px 13px; cursor:pointer;
  }
  #rk-premium .pick b{color:var(--blue); font-size:18px; white-space:nowrap;}
  #rk-premium .pick:active{background:var(--bg);}
  #rk-premium .pick.on{border-color:var(--navy); background:#eef3f8;}

  /* ---- 切替（厳しめ／ゆるめ） ---- */
  #rk-premium .toggle{display:flex; gap:8px; margin-top:10px;}
  #rk-premium .toggle button{
    flex:1; font-family:inherit; font-size:15.5px; font-weight:700; line-height:1.45;
    padding:13px 8px; border-radius:11px; border:2px solid var(--line);
    background:#fff; color:var(--sub); cursor:pointer;
  }
  #rk-premium .toggle button small{display:block; font-size:13px; font-weight:400; margin-top:2px;}
  #rk-premium .toggle button.on{border-color:var(--navy); background:var(--navy); color:#fff;}
  #rk-premium .toggle button.on small{color:#cfe0ee;}

  /* ---- 小計 ---- */
  #rk-premium .subtotal{
    display:flex; justify-content:space-between; align-items:baseline; gap:10px; flex-wrap:wrap;
    background:var(--navy); color:#fff; border-radius:11px; padding:14px 16px; margin-top:16px;
  }
  #rk-premium .subtotal .k{font-size:16px; font-weight:700;}
  #rk-premium .subtotal .v{font-size:30px; font-weight:700; color:var(--gold); white-space:nowrap; line-height:1.25;}
  #rk-premium .subtotal .v small{font-size:16px; margin-left:2px;}

  #rk-premium .hint{background:var(--bg); border-radius:11px; padding:14px 15px; font-size:15px; color:var(--sub); line-height:1.85; margin-top:14px;}
  #rk-premium .hint strong{color:var(--ink);}
  #rk-premium .warnbox{border:2px solid var(--red); border-left:7px solid var(--red); border-radius:11px; padding:14px 15px; margin-top:14px; background:#fff;}
  #rk-premium .warnbox .t{color:var(--red); font-weight:700; font-size:16.5px; margin-bottom:5px; line-height:1.55;}
  #rk-premium .warnbox p{font-size:15px; color:var(--sub); line-height:1.85;}
  #rk-premium .tiny{font-size:13px; color:#6b7684; line-height:1.75;}

  /* ---- 結果 ---- */
  #rk-premium .result{background:linear-gradient(180deg,#123a5e,#1b4f7d); color:#fff; border-radius:16px; padding:24px 16px; text-align:center;}
  #rk-premium .result .cap{font-size:15px; color:#cfe0ee; line-height:1.6;}
  #rk-premium .result .big{font-size:56px; font-weight:700; color:var(--gold); line-height:1.15; margin:8px 0 4px; word-break:break-all; letter-spacing:-.01em;}
  #rk-premium .result .big small{font-size:24px; letter-spacing:0;}
  #rk-premium .result .yen{font-size:16px; color:#cfe0ee;}
  #rk-premium .result .formula{font-size:14px; color:#b9cbdd; margin-top:14px; line-height:1.9; word-break:break-all;}

  #rk-premium .goal{background:#fffaf0; border:3px solid var(--gold); border-radius:16px; padding:20px 16px; margin-top:14px; text-align:center;}
  #rk-premium .goal .lbl{font-size:16px; font-weight:700; color:var(--orange);}
  #rk-premium .goal .amt{font-size:44px; font-weight:700; color:var(--navy); line-height:1.2; margin:6px 0 2px; word-break:break-all;}
  #rk-premium .goal .amt small{font-size:20px;}
  #rk-premium .goal .sub{font-size:14.5px; color:var(--sub); line-height:1.75;}

  #rk-premium .steps3{margin-top:14px; display:flex; flex-direction:column; gap:10px;}
  #rk-premium .st{display:flex; justify-content:space-between; align-items:baseline; gap:10px; flex-wrap:wrap;
      border:2px solid var(--line); border-radius:11px; padding:13px 14px; background:#fff;}
  #rk-premium .st .k{font-size:15px; color:var(--sub); line-height:1.5;}
  #rk-premium .st .k b{display:block; color:var(--navy); font-size:16px;}
  #rk-premium .st .v{font-size:23px; font-weight:700; color:var(--blue); white-space:nowrap;}
  #rk-premium .st .v small{font-size:14px; color:var(--sub); margin-left:2px;}

  #rk-premium .typecard{border-radius:14px; padding:18px 16px; margin-top:16px; border:3px solid var(--navy); background:#fff;}
  #rk-premium .typecard .tg{display:inline-block; font-size:17px; font-weight:700; color:#fff; background:var(--navy); border-radius:999px; padding:4px 18px;}
  #rk-premium .typecard .tt{font-size:22px; font-weight:700; color:var(--navy); margin:10px 0 8px; line-height:1.45;}
  #rk-premium .typecard p{font-size:16px; color:var(--sub); line-height:1.9;}
  #rk-premium .typecard .act{margin-top:12px; background:var(--bg); border-radius:10px; padding:12px 13px; font-size:15px; color:var(--ink); line-height:1.8;}
  #rk-premium .typecard.tB{border-color:var(--green2);} #rk-premium .typecard.tB .tg{background:var(--green2);} #rk-premium .typecard.tB .tt{color:var(--green);}
  #rk-premium .typecard.tC{border-color:var(--orange2);} #rk-premium .typecard.tC .tg{background:var(--orange2);} #rk-premium .typecard.tC .tt{color:var(--orange);}
  #rk-premium .typecard.tD{border-color:var(--red);} #rk-premium .typecard.tD .tg{background:var(--red);} #rk-premium .typecard.tD .tt{color:var(--red);}

  #rk-premium .life{background:#eef7f2; border:3px solid var(--green2); border-radius:14px; padding:18px 16px; margin-top:16px; text-align:center;}
  #rk-premium .life .lbl{font-size:15.5px; color:var(--sub); line-height:1.6;}
  #rk-premium .life .amt{font-size:40px; font-weight:700; color:var(--green); line-height:1.25; margin:6px 0 2px;}
  #rk-premium .life .amt small{font-size:20px;}

  /* ---- 折りたたみ ---- */
  #rk-premium details{background:#fff; border-radius:12px; margin-bottom:12px; box-shadow:0 1px 3px rgba(18,58,94,.09); overflow:hidden;}
  #rk-premium details summary{
    list-style:none; cursor:pointer; padding:17px 16px; font-size:17px; font-weight:700; color:var(--navy);
    display:flex; align-items:center; justify-content:space-between; gap:10px; line-height:1.5;
  }
  #rk-premium details summary::-webkit-details-marker{display:none;}
  #rk-premium details summary::after{content:"＋"; color:var(--gold); font-size:22px; flex-shrink:0;}
  #rk-premium details[open] summary::after{content:"−";}
  #rk-premium details .body{padding:0 16px 18px; font-size:15.5px; color:var(--sub); line-height:1.9;}
  #rk-premium details .body table{width:100%; border-collapse:collapse; font-size:15px; margin:10px 0;}
  #rk-premium details .body th,#rk-premium details .body td{border:1px solid var(--line); padding:9px 10px; text-align:left;}
  #rk-premium details .body th{background:var(--navy); color:#fff;}
  #rk-premium details .body td.n{text-align:right; font-weight:700; white-space:nowrap; color:var(--blue);}

  /* ---- ボタン ---- */
  #rk-premium .btns{display:flex; gap:10px; flex-wrap:wrap; margin:6px 0 20px;}
  #rk-premium button.act2{
    flex:1; min-width:150px; font-family:inherit; font-size:16px; font-weight:700; padding:15px 10px;
    border-radius:11px; border:2px solid var(--navy); background:#fff; color:var(--navy); cursor:pointer;
  }
  #rk-premium button.act2:active{background:var(--bg);}

  /* ---- CTA ---- */
  #rk-premium .cta{background:var(--navy); color:#fff; border-radius:16px; padding:26px 18px; text-align:center; margin-top:8px;}
  #rk-premium .cta h2{font-size:23px; margin-bottom:12px; line-height:1.45;}
  #rk-premium .cta p{font-size:16px; color:#dbe6f0; line-height:1.95;}
  #rk-premium .cta ul{list-style:none; text-align:left; display:inline-block; margin:16px 0; font-size:15.5px; line-height:2;}
  #rk-premium .cta .line{background:var(--gold); color:var(--navy); font-weight:700; font-size:18px; padding:16px; border-radius:11px; margin-top:6px; line-height:1.55;}

  #rk-premium footer{text-align:center; font-size:13px; color:#6b7684; line-height:1.9; margin-top:24px;}

  /* ---- 固定バー ---- */
  #rk-premium .fixed{
    position:fixed; left:0; right:0; bottom:0; background:rgba(18,58,94,.97); color:#fff;
    padding:12px 14px calc(12px + env(safe-area-inset-bottom)); z-index:50;
    display:flex; align-items:center; justify-content:space-between; gap:12px;
    max-width:760px; margin:0 auto; border-radius:14px 14px 0 0;
  }
  #rk-premium .fixed .k{font-size:14px; color:#cfe0ee; line-height:1.45;}
  #rk-premium .fixed .v{font-size:30px; font-weight:700; color:var(--gold); white-space:nowrap; line-height:1.2;}
  #rk-premium .fixed .v small{font-size:15px;}

  @media (min-width:560px){
    #rk-premium .field{display:grid; grid-template-columns:1fr 250px; grid-template-areas:"l i" "h e"; column-gap:16px; align-items:center;}
    #rk-premium .field .fl{grid-area:l;} #rk-premium .field .fh{grid-area:h; margin-top:0;}
    #rk-premium .fin{grid-area:i; margin-top:0;} #rk-premium .fecho{grid-area:e;}
    #rk-premium .picks{display:grid; grid-template-columns:1fr 1fr;}
  }
  @media (max-width:359px){
    #rk-premium{font-size:17px;}
    #rk-premium header h1{font-size:24px;}
    #rk-premium .num{font-size:23px;}
    #rk-premium .result .big{font-size:44px;}
    #rk-premium .goal .amt{font-size:36px;}
  }
  @media print{
    #rk-premium{background:#fff; padding-bottom:0; font-size:12px;}
    #rk-premium .fixed,#rk-premium .btns,#rk-premium .picks,#rk-premium .toggle{display:none;}
    #rk-premium details{break-inside:avoid;} #rk-premium details[open] .body{display:block;}
    #rk-premium .card,#rk-premium .result,#rk-premium details,#rk-premium .goal{box-shadow:none; border:1px solid var(--line);}
  }
