.brp{--brp-navy:#06385c;--brp-ice:#00c4f8;--brp-card:#fff;--brp-line:rgba(6,56,92,.16);
  --brp-ink:#1b2733;--brp-muted:#68798a;
  background:#fff;padding:44px 28px 8px;border-radius:16px;color:var(--brp-ink);line-height:1.7}
.brp *{box-sizing:border-box}
.brp__tier{margin:0 0 46px;--h:80px;--col:200px;--cw:236px;--lbl:20px;--pad:26px;--nm:13px}
/* 列幅は全ランク共通。ランク差はこの1行ずつで調整する（--h ロゴ高さ／--lbl 見出し／--pad 余白／--nm 社名） */
.brp--special {--h:140px;--lbl:26px;--nm:17px}
.brp--top     {--h:118px;--lbl:24px;--pad:30px;--nm:15px}
.brp--platina {--h:106px;--lbl:23px;--pad:29px;--nm:14.5px}
.brp--gold    {--h:96px; --lbl:22px;--pad:28px;--nm:14px}
.brp--silver  {--h:86px; --lbl:21px;--pad:27px;--nm:13.5px}
.brp--bronze  {--h:74px; --lbl:20px;--pad:25px;--nm:13px}
.brp--arena   {--h:68px; --lbl:19px;--pad:24px;--nm:13px}
.brp--alliance{--h:62px; --lbl:18px;--pad:23px;--nm:12.5px}
.brp--equip   {--h:58px; --lbl:18px;--pad:22px;--nm:12.5px}
.brp--supplier{--h:50px; --lbl:17px;--pad:21px;--nm:12px}
.brp__head{display:flex;align-items:center;gap:16px;margin:0 0 22px}
.brp__head h2,.brp__head h3{margin:0!important;padding:0!important;border:0!important;background:none!important;
  font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--brp-navy);white-space:nowrap;line-height:1.2}
.brp__head h2:before,.brp__head h2:after,.brp__head h3:before,.brp__head h3:after{content:none!important}
.brp__bar{flex:1;height:1px;background:var(--brp-line)}
.brp__num{font-size:13px;letter-spacing:.14em;color:var(--brp-muted);font-variant-numeric:tabular-nums}
.brp__head h2,.brp__head h3{font-size:var(--lbl)!important}

.brp__grid{display:grid;gap:16px;justify-content:center;grid-template-columns:repeat(auto-fit,minmax(var(--col),var(--cw)))}

.brp__card{background:var(--brp-card);border:1px solid var(--brp-line);border-radius:14px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:var(--pad) 20px calc(var(--pad) - 4px);
  text-decoration:none!important;color:inherit;transition:border-color .18s ease}
a.brp__card:hover,a.brp__card:focus-visible{border-color:var(--brp-ice)}
a.brp__card:focus-visible{outline:2px solid var(--brp-ice);outline-offset:3px}
.brp__box{display:flex;align-items:center;justify-content:center;width:100%}
.brp__box img{width:auto!important;height:var(--ih,auto)!important;max-width:100%!important;max-height:100%!important;
  object-fit:contain;display:block;margin:0!important}
.brp__name{font-size:var(--nm);color:var(--brp-muted);text-align:center;line-height:1.55;margin:0!important}
.brp__card--text{min-height:calc(var(--h) + 56px)}
.brp__card--text .brp__name{font-size:15px;font-weight:600;color:var(--brp-ink);letter-spacing:.02em}

.brp__box{height:var(--h)}
.brp__card--wide{grid-column:span 2}
.brp__card--wide.brp__card--tall .brp__box{height:calc(var(--h) * 2)}

.brp__special{background:var(--brp-card);border:1px solid var(--brp-line);border-radius:18px;
  position:relative;overflow:hidden;max-width:720px;margin:0 auto;padding:46px 40px 34px;text-align:center;
  display:block;text-decoration:none!important;color:inherit;transition:border-color .18s ease}
a.brp__special:hover{border-color:var(--brp-ice)}
.brp__special .brp__box{height:var(--h)}
.brp__special .brp__name{margin-top:22px!important;font-size:var(--nm);font-weight:600;color:var(--brp-ink)}
.brp__special .brp__go{margin:8px 0 0!important;font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--brp-navy)}

@media (max-width:640px){
  .brp{padding:28px 16px 4px}
  .brp__grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}
  .brp__special{padding:34px 22px 26px}
  .brp__box{height:calc(var(--h) * .72)}
  .brp__card--wide.brp__card--tall .brp__box{height:calc(var(--h) * 1.35)}
  .brp__box img{height:calc(var(--ih, var(--h)) * .72)!important}
  .brp__head h2,.brp__head h3{font-size:calc(var(--lbl) * .84)!important}
}
@media (prefers-reduced-motion:reduce){.brp *{transition:none!important}}


/* --------------------------------------------------------------
   トップページのロゴ帯 [bluerise_partner_logos]
   ランクごとに1段。ランク名を中央に置き、その下にロゴを中央寄せで並べる。
   ロゴは上位ランクほど大きく出る（倍率は inc/bluerise-partners.php 側）
   -------------------------------------------------------------- */
.brp-strip{--brp-navy:#06385c;--brp-ice:#00c4f8;--brp-line:rgba(6,56,92,.16);--brp-muted:#68798a;
  max-width:1000px;margin:38px auto 0;text-align:left}
.brp-strip__tier{margin:0 0 32px}
.brp-strip__tier:last-of-type{margin-bottom:0}

.brp-strip__head{display:flex;align-items:center;justify-content:center;margin:0 0 15px}
.brp-strip__lbl{font-size:var(--slbl,13px);font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--brp-navy);white-space:nowrap;line-height:1.2}

.brp-strip__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:16px 34px}
.brp-strip__item{display:flex;align-items:center;justify-content:center;height:var(--srh,48px);max-width:100%;
  text-decoration:none!important;color:inherit}
a.brp-strip__item img{transition:opacity .18s ease}
a.brp-strip__item:hover img,a.brp-strip__item:focus-visible img{opacity:.62}
a.brp-strip__item:focus-visible{outline:2px solid var(--brp-ice);outline-offset:4px}
.brp-strip__item img{width:auto!important;height:var(--sh,32px)!important;
  max-width:100%!important;max-height:var(--srh,48px)!important;object-fit:contain;display:block;margin:0!important}

.brp-strip__more{margin:34px 0 0!important;text-align:center;line-height:1.6}
.brp-strip__more a{display:inline-block;font-size:14px;letter-spacing:.08em;color:var(--brp-navy);text-decoration:none!important;
  border-bottom:1px solid rgba(6,56,92,.32);padding-bottom:3px;transition:border-color .18s ease,color .18s ease}
.brp-strip__more a:hover{color:#00a6d6;border-bottom-color:var(--brp-ice)}

@media (max-width:640px){
  .brp-strip{margin-top:28px}
  .brp-strip__tier{margin-bottom:24px}
  .brp-strip__head{margin-bottom:11px}
  .brp-strip__lbl{font-size:calc(var(--slbl,13px) * .86);letter-spacing:.12em}
  /* 1行あたりの数はランクごとの --spc で決める。端数の行は中央にそろう */
  .brp-strip__row{gap:16px 14px}
  .brp-strip__item{flex:0 0 calc((100% - (var(--spc,2) - 1) * 14px) / var(--spc,2));
    height:calc(var(--srh,48px) * .88)}
  .brp-strip__item img{height:calc(var(--sh,32px) * .88)!important;max-height:calc(var(--srh,48px) * .88)!important}
  .brp-strip__more{margin-top:26px!important}
}
