/* ==========================================================================
   RouteBase / operator hub stylesheet  v2 (refined / 品よく)
   SNFの配色を土台に精緻化:
   - 濃淡: ネイビー(#0c3f5e)で深度、ブランドブルー(#1c87c9)は中明度、
           ゴールド(#b6a264)はヘアライン/ラベルに限定、彩度を一段抑えた背景
   - 余白とタイポのリズムを整え、影は浅く上品に
   すべて .rb-operator 配下にスコープ
   ========================================================================== */
:root{
  --rb-blue:#0a5cb0; --rb-blue-d:#08458a; --rb-navy:#102a6b; --rb-navy-2:#0a1f54;
  --rb-sky:#3d8fd6; --rb-mist:#f4f8fb; --rb-mist-2:#eef4f8; --rb-sand:#faf7f0;
  --rb-gold:#c9a84c; --rb-gold-d:#a8873a;
  --rb-line:#e6edf1; --rb-line-2:#d8e2e9;
  --rb-ink:#1b2b34; --rb-ink2:#5d717c; --rb-ink3:#8a9aa3; --rb-red:#c0392b;
  --rb-white:#fff; --rb-maxw:none; --rb-pad:clamp(24px,5.5vw,72px);
  --rb-font:"M PLUS 1p","Noto Sans JP","ヒラギノ角ゴ ProN W3",Meiryo,sans-serif;
  --rb-shadow:0 1px 2px rgba(12,63,94,.04),0 8px 28px rgba(12,63,94,.07);
  --rb-shadow-sm:0 1px 2px rgba(12,63,94,.05),0 4px 14px rgba(12,63,94,.05);
}

@media (min-width: 900px) {
  #portai-pc-nav,
  #portai-sp-nav { display: none !important; }
}

.rb-operator{
  --rb-blue:#0a5cb0; --rb-blue-d:#08458a; --rb-navy:#102a6b; --rb-navy-2:#0a1f54;
  --rb-sky:#3d8fd6; --rb-mist:#f4f8fb; --rb-mist-2:#eef4f8; --rb-sand:#faf7f0;
  --rb-gold:#c9a84c; --rb-gold-d:#a8873a;
  --rb-line:#e6edf1; --rb-line-2:#d8e2e9;
  --rb-ink:#1b2b34; --rb-ink2:#5d717c; --rb-ink3:#8a9aa3; --rb-red:#c0392b;
  --rb-white:#fff; --rb-maxw:none; --rb-pad:clamp(24px,5.5vw,72px);
  --rb-font:"M PLUS 1p","Noto Sans JP","ヒラギノ角ゴ ProN W3",Meiryo,sans-serif;
  --rb-shadow:0 1px 2px rgba(12,63,94,.04),0 8px 28px rgba(12,63,94,.07);
  --rb-shadow-sm:0 1px 2px rgba(12,63,94,.05),0 4px 14px rgba(12,63,94,.05);
  color:var(--rb-ink); font-family:var(--rb-font); line-height:1.9;
  font-size:17px; letter-spacing:.025em; -webkit-font-smoothing:antialiased; background:var(--rb-white);
}
.rb-operator *{box-sizing:border-box;margin:0;padding:0}
.rb-operator img{max-width:100%;display:block}
.rb-operator a{color:var(--rb-blue);text-decoration:none;transition:color .2s,opacity .2s}
.rb-operator a:hover{color:var(--rb-blue-d)}
.rb-inner{max-width:var(--rb-maxw);margin:0 auto;padding:0 var(--rb-pad)}
.rb-operator h1,.rb-operator h2,.rb-operator h3,.rb-operator h4{font-weight:700;line-height:1.42;letter-spacing:.02em}

/* produced by 追加 */
.rb-operator .rb-brand-tx {
  display: inline-flex;
  flex-direction: column;
}
.rb-operator .rb-brand-tx em {
  font-style: normal;
  font-size: 12px;
}
@media screen and (max-width: 768px) {
  .rb-operator .rb-brand-tx em {
    font-size: 8px;
  }
}

/* ---- section heading ---- */
.rb-sec{padding:clamp(72px,10vw,140px) 0}
.rb-sec.mist{background:var(--rb-mist)}
.rb-sec.sand{background:var(--rb-sand)}
.rb-sechd{text-align:left;max-width:none;margin:0 0 clamp(34px,4.5vw,52px)}
.rb-sechd .en{display:inline-block;font-size:.75rem;letter-spacing:.34em;color:var(--rb-gold-d);font-weight:700;text-transform:uppercase}
.rb-sechd .en:before,.rb-sechd .en:after{content:"";display:inline-block;width:18px;height:1px;background:var(--rb-gold);vertical-align:middle;margin:0 12px 3px}
.rb-sechd h2{font-size:clamp(1.7rem,3.8vw,2.8rem);margin-top:10px;color:var(--rb-navy);letter-spacing:-.02em;font-weight:700;line-height:1.2}
.rb-sechd p{color:var(--rb-ink2);margin-top:14px;font-size:1.12rem;line-height:1.8}

/* ---- header / global nav ---- */
#rb-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--rb-line)}
#rb-header .rb-inner{display:flex;align-items:center;height:66px;gap:18px}
.rb-brand{display:flex;align-items:center;gap:11px;font-weight:700;font-size:1.04rem;color:var(--rb-navy);letter-spacing:.04em}
.rb-brand .rb-mark{width:30px;height:30px;flex:0 0 auto}
#rb-gnav{display:flex;gap:24px;margin-left:auto;font-size:.92rem;font-weight:500}
#rb-gnav a{color:var(--rb-ink);position:relative;padding:4px 0}
#rb-gnav a:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1.5px;background:var(--rb-gold);transform:scaleX(0);transition:transform .25s;transform-origin:left}
#rb-gnav a:hover{color:var(--rb-navy)}#rb-gnav a:hover:after{transform:scaleX(1)}
.rb-lang{font-size:.72rem;letter-spacing:.12em;color:var(--rb-ink2);border:1px solid var(--rb-line-2);border-radius:999px;padding:6px 13px}
.rb-operator a.rb-nav-book{background:var(--rb-blue);color:#fff;font-weight:700;font-size:.9rem;letter-spacing:.04em;padding:10px 20px;border-radius:4px;box-shadow:0 6px 16px rgba(28,135,201,.22)}
.rb-operator a.rb-nav-book:hover{background:var(--rb-blue-d);color:#fff}
.rb-operator a.rb-nav-group{background:#d63031;color:#fff;font-weight:700;font-size:.9rem;letter-spacing:.04em;padding:10px 18px;border-radius:4px;box-shadow:0 6px 16px rgba(214,48,49,.26);margin-right:8px;white-space:nowrap}
.rb-operator a.rb-nav-group:hover{background:#b71c1c;color:#fff}
@media(max-width:880px){#rb-gnav{display:none}}
@media(max-width:640px){
  .rb-lang{display:none}
  .rb-brand{font-size:.92rem;gap:7px}
  .rb-brand .rb-mark{width:26px;height:26px}
  #rb-header .rb-inner{gap:8px;height:60px}
  .rb-operator a.rb-nav-group{padding:8px 12px;font-size:.8rem;margin-right:4px}
  .rb-operator a.rb-nav-book{padding:8px 13px;font-size:.8rem}
}
@media(max-width:380px){
  .rb-operator a.rb-nav-group{padding:7px 10px;font-size:.74rem}
  .rb-operator a.rb-nav-book{padding:7px 10px;font-size:.74rem}
}
@media(max-width:480px){.rb-brand-tx{display:none}}

/* ---- hero ---- */
.rb-hero{position:relative;color:#fff;overflow:hidden;isolation:isolate;background:radial-gradient(140% 110% at 82% -10%,rgba(91,179,224,.42) 0%,rgba(91,179,224,0) 46%),linear-gradient(168deg,#0c3f5e 0%,#125a82 52%,#1c87c9 120%)}
.rb-hero .rb-inner{position:relative;z-index:2;padding:clamp(60px,9vw,108px) var(--rb-pad) clamp(74px,9vw,118px)}
.rb-hero .en{display:inline-block;font-size:.72rem;letter-spacing:.36em;font-weight:700;color:rgba(255,255,255,.82);text-transform:uppercase}
.rb-hero .en:before{content:"";display:inline-block;width:26px;height:1px;background:var(--rb-gold);vertical-align:middle;margin:0 14px 4px}
.rb-hero h1{font-size:clamp(1.95rem,4.7vw,3.05rem);margin-top:18px;line-height:1.32;letter-spacing:.03em;font-weight:700}
.rb-hero h1 small{display:block;font-size:.42em;font-weight:400;margin-top:18px;color:rgba(231,243,248,.9);letter-spacing:.06em;line-height:1.7}
.rb-hero-stats{margin-top:36px;display:inline-flex;border-radius:6px;
  background:linear-gradient(180deg,rgba(255,255,255,.13),rgba(255,255,255,.045));
  border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(9px);overflow:hidden;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.24),0 12px 32px rgba(6,32,48,.24)}
.rb-hero-stats .s{padding:17px 30px;text-align:center;position:relative}
/* ヒーロー内 予約ボタン（PASONA風・縦並び赤ボタン） */
.rb-hero-cta{margin-top:26px;display:flex;flex-direction:column;gap:12px;align-items:flex-start;pointer-events:auto}
.rb-operator a.rb-hero-btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:280px;padding:15px 28px;
  color:#fff;font-weight:800;font-size:1.02rem;letter-spacing:.03em;
  border-radius:6px;text-decoration:none;text-align:center;
  pointer-events:auto;
  transition:background .2s,transform .15s,box-shadow .2s;
}
.rb-operator a.rb-hero-btn--red{background:#d63031;box-shadow:0 8px 22px rgba(214,48,49,.4)}
.rb-operator a.rb-hero-btn--red:hover{background:#b71c1c;color:#fff;transform:translateY(-2px);box-shadow:0 11px 26px rgba(183,28,28,.46)}
/* ご予約方法（中盤CTA帯）2カラム */
.rb-book2{display:grid;grid-template-columns:1fr 1fr;gap:32px;max-width:860px;margin:8px auto 0}
/* 団体予約が可能になるまでの暫定処置 */
.rb-book2{display:grid;grid-template-columns:1fr;gap:32px;max-width:430px;margin:8px auto 0}
.rb-book2-col:last-child{ display: none; }
/* 団体予約が可能になるまでの暫定処置 */
.rb-book2-col{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:28px 24px;background:#fff;border:1px solid var(--rb-line);border-radius:10px;box-shadow:var(--rb-shadow-sm)}
.rb-book2-ttl{margin:0;font-size:1.12rem;font-weight:800;color:var(--rb-navy);border-bottom:2px solid #d63031;padding-bottom:8px}
.rb-book2-tx{margin:0;font-size:.9rem;line-height:1.7;color:var(--rb-ink2);flex:1}
@media(max-width:640px){.rb-book2{grid-template-columns:1fr;gap:18px}.rb-book2-col{padding:22px 18px}}
.rb-hero-stats .s + .s:before{content:"";position:absolute;left:0;top:24%;bottom:24%;width:1px;
  background:linear-gradient(180deg,transparent,rgba(255,255,255,.3),transparent)}
.rb-hero-stats .n{font-size:2.3rem;font-weight:700;line-height:1;letter-spacing:.01em;
  text-shadow:0 1px 10px rgba(6,32,48,.25)}
.rb-hero-stats .n small{font-size:.4em;font-weight:500;margin-left:3px;color:var(--rb-sky)}
.rb-hero-stats .l{font-size:.7rem;color:rgba(231,243,248,.72);margin-top:9px;
  letter-spacing:.12em;text-transform:uppercase}
.rb-hero-note{position:absolute;right:14px;bottom:10px;font-size:.72rem;color:rgba(255,255,255,.55);z-index:2}
.rb-hero-wave{position:absolute;left:0;right:0;bottom:-1px;z-index:1;line-height:0}
.rb-hero-wave svg{width:100%;height:72px;display:block}
@media(max-width:560px){.rb-hero-stats{display:flex;width:100%}.rb-hero-stats .s{flex:1;padding:14px 8px}.rb-hero-stats .n{font-size:1.5rem}
  .rb-hero-cta{width:100%;margin-top:20px;gap:10px}
  .rb-operator a.rb-hero-btn{min-width:0;width:100%;padding:13px 18px;font-size:.94rem}
}

/* ---- inquiry-cont ---- */
.rb-inquiry-wrap{background:var(--rb-white)}
.rb-inquiry-cont{max-width:1000px;margin:0 auto;padding:0 var(--rb-pad);transform:translateY(-104px);margin-bottom:-72px}
.rb-inquiry-box{background:#fff;border:1px solid var(--rb-line);border-radius:6px;box-shadow:0 2px 4px rgba(12,63,94,.04),0 22px 50px rgba(12,63,94,.13);padding:28px 32px}
.rb-inquiry-head{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.rb-inquiry-head h2{font-size:1.14rem;color:var(--rb-navy);letter-spacing:.04em}
.rb-inquiry-head .en{font-size:.64rem;letter-spacing:.28em;color:var(--rb-gold-d);font-weight:700;margin-left:auto}
.rb-trip{display:inline-flex;border:1px solid var(--rb-line-2);border-radius:999px;padding:3px;margin-bottom:16px;position:relative}
.rb-trip label{font-size:.88rem;padding:6px 16px;border-radius:999px;cursor:pointer;color:var(--rb-ink2);font-weight:500}
.rb-trip input{position:absolute;opacity:0;pointer-events:none}
.rb-trip input:checked + label{background:var(--rb-navy);color:#fff}
.rb-inquiry-select{display:grid;grid-template-columns:.95fr 2.1fr .85fr auto;gap:18px;align-items:end}
.rb-field label{display:block;font-size:.76rem;color:var(--rb-gold-d);margin-bottom:6px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.rb-field input,.rb-field select{width:100%;padding:12px 13px;border:1px solid var(--rb-line-2);border-radius:9px;font-family:inherit;font-size:1rem;background:#fff;color:var(--rb-ink);transition:border-color .2s,box-shadow .2s;appearance:none}
.rb-field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%235d717c' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;padding-right:32px}
.rb-field input:focus,.rb-field select:focus{outline:none;border-color:var(--rb-blue);box-shadow:0 0 0 3px rgba(28,135,201,.14)}
.rb-inquiry-serch{display:flex}
.rb-inquiry-serch a{width:100%;background:var(--rb-blue);color:#fff;font-weight:700;letter-spacing:.04em;padding:13px 26px;border-radius:9px;text-align:center;display:flex;align-items:center;justify-content:center;gap:9px;white-space:nowrap;box-shadow:0 8px 20px rgba(28,135,201,.26)}
.rb-inquiry-serch a:hover{background:var(--rb-blue-d);color:#fff;transform:translateY(-1px)}
@media(max-width:880px){.rb-inquiry-select{grid-template-columns:1fr 1fr}.rb-inquiry-serch{grid-column:1/-1}}

/* ---- routes ---- */
.rb-routes{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.rb-route-detail{position:relative;border:1px solid var(--rb-line);border-radius:6px;overflow:hidden;background:#fff;display:flex;flex-direction:column;box-shadow:none;border:1px solid var(--rb-line);transition:box-shadow .3s,transform .3s}
.rb-route-detail:hover{box-shadow:var(--rb-shadow);transform:translateY(-4px)}
.rb-route-media{aspect-ratio:16/9;position:relative;overflow:hidden;
  background:radial-gradient(130% 90% at 78% 8%,rgba(255,255,255,.20),rgba(255,255,255,0) 52%),
            linear-gradient(152deg,#0a3a59 0%,#125f8c 48%,#2f9bd6 100%)}
.rb-route-media.alt{background:radial-gradient(130% 90% at 78% 8%,rgba(255,255,255,.16),rgba(255,255,255,0) 52%),
            linear-gradient(152deg,#082a3e 0%,#0f4d72 52%,#1c87c9 100%)}
.rb-route-media:after{content:"";position:absolute;inset:auto 0 0;height:46%;
  background:linear-gradient(transparent,rgba(7,32,48,.28))}
.rb-route-media .min{position:absolute;left:0;bottom:0;z-index:2;background:rgba(10,58,89,.94);color:#fff;font-weight:700;padding:8px 18px;font-size:1.8rem;border-top-right-radius:12px;letter-spacing:.02em}
.rb-route-media .min small{font-size:.46em;font-weight:500;margin-left:3px;color:var(--rb-sky)}
.rb-route-media .note{position:absolute;right:11px;bottom:9px;z-index:2;font-size:.62rem;color:rgba(255,255,255,.78)}
.rb-route-body{padding:22px 24px 24px}
.rb-route-body h3{font-size:1.28rem;color:var(--rb-navy)}
.rb-route-body .ports{font-size:.86rem;color:var(--rb-ink2);margin:7px 0 11px;letter-spacing:.03em}
.rb-route-body p{font-size:.96rem;color:var(--rb-ink2)}
.rb-route-link{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:.92rem;color:var(--rb-blue);margin-top:14px}
.rb-route-link svg{transition:transform .25s}.rb-route-link:hover svg{transform:translateX(3px)}
@media(max-width:760px){.rb-routes{grid-template-columns:1fr}}

/* ---- cards ---- */
.rb-cards{display:grid;gap:24px}
.rb-cards.c3{grid-template-columns:repeat(3,1fr)}
.rb-card{background:#fff;border:1px solid var(--rb-line);border-radius:6px;overflow:hidden;display:flex;flex-direction:column;box-shadow:none;border:1px solid var(--rb-line);transition:box-shadow .3s,transform .3s}
.rb-card:hover{box-shadow:var(--rb-shadow);transform:translateY(-4px)}
.rb-card-media{aspect-ratio:16/10;position:relative;overflow:hidden;
  background:radial-gradient(125% 85% at 72% 10%,rgba(255,255,255,.22),rgba(255,255,255,0) 50%),
            linear-gradient(155deg,#0f5680 0%,#1c87c9 52%,#62b8e6 100%)}
.rb-card-media.g2{background:radial-gradient(125% 85% at 72% 10%,rgba(255,255,255,.16),rgba(255,255,255,0) 50%),
            linear-gradient(155deg,#082c41 0%,#0f4d72 52%,#1c87c9 100%)}
.rb-card-media.g3{background:radial-gradient(125% 85% at 72% 10%,rgba(255,255,255,.28),rgba(255,255,255,0) 52%),
            linear-gradient(155deg,#a68f3d 0%,#c4ad6a 50%,#e8dbb8 100%)}
.rb-card-media:after{content:"";position:absolute;inset:auto 0 0;height:42%;
  background:linear-gradient(transparent,rgba(7,32,48,.24))}
.rb-card-media.g3:after{background:linear-gradient(transparent,rgba(60,48,16,.16))}
.rb-card-media .note{position:absolute;left:11px;bottom:9px;z-index:2;font-size:.62rem;color:rgba(255,255,255,.82)}
.rb-card-media.g3 .note{color:rgba(27,43,52,.58)}
.rb-card-body{padding:18px 20px 22px;display:flex;flex-direction:column;gap:7px;flex:1}
.rb-card-body h3{font-size:1.18rem;color:var(--rb-navy)}
.rb-card-body p{font-size:.94rem;color:var(--rb-ink2);flex:1}
.rb-card-body .rb-route-link{margin-top:4px}
@media(max-width:880px){.rb-cards.c3{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.rb-cards.c3{grid-template-columns:1fr}}

/* ---- vessel ---- */
.rb-vessel{display:grid;grid-template-columns:1fr 1.05fr;gap:40px;align-items:center}
.rb-vessel-media{aspect-ratio:4/3;border-radius:6px;position:relative;overflow:hidden;box-shadow:var(--rb-shadow);
  background:radial-gradient(120% 90% at 76% 8%,rgba(255,255,255,.22),rgba(255,255,255,0) 54%),
            linear-gradient(155deg,#0a3a59 0%,#125f8c 50%,#3fa3da 110%)}
.rb-vessel-media:after{content:"";position:absolute;inset:auto 0 0;height:42%;
  background:linear-gradient(transparent,rgba(7,32,48,.26))}
.rb-vessel-media .note{position:absolute;left:13px;bottom:11px;z-index:2;font-size:.64rem;color:rgba(255,255,255,.82)}
.rb-spec{width:100%;border-collapse:collapse;border:1px solid var(--rb-line);border-radius:5px;overflow:hidden}
.rb-spec th,.rb-spec td{padding:13px 18px;border-bottom:1px solid var(--rb-line);text-align:left;font-size:1rem}
.rb-spec th{background:var(--rb-mist);color:var(--rb-ink2);font-weight:500;width:44%;letter-spacing:.02em}
.rb-spec td{font-weight:700;color:var(--rb-navy)}
.rb-spec tr:last-child th,.rb-spec tr:last-child td{border-bottom:0}
.rb-seatrow{display:flex;gap:14px;margin-top:18px;flex-wrap:wrap}
.rb-seat{flex:1;min-width:148px;border:1px solid var(--rb-line);border-radius:5px;padding:14px 16px;background:#fff}
.rb-seat .t{font-weight:700;font-size:1rem;color:var(--rb-navy)}
.rb-seat .p{color:var(--rb-blue);font-weight:700;font-size:1.28rem;margin-top:3px}
.rb-seat .d{font-size:.86rem;color:var(--rb-ink2);margin-top:2px}
@media(max-width:760px){.rb-vessel{grid-template-columns:1fr;gap:26px}}

/* ---- fare ---- */
.rb-fare{max-width:560px;margin:0 auto;border-collapse:collapse;width:100%;background:#fff;border:1px solid var(--rb-line);border-radius:5px;overflow:hidden;box-shadow:var(--rb-shadow-sm)}
/* .rb-fare caption: 旧誤セレクタ削除 */
/* (旧).rb-fare の修正は誤セレクタのため削除済。実体は .rb-faretbl */
.rb-fare th{text-align:left;color:var(--rb-ink2);font-weight:500}
.rb-fare td{text-align:right;font-weight:700;color:var(--rb-navy)}
.rb-fare tr:last-child th,.rb-fare tr:last-child td{border-bottom:0}
.rb-fare tr:nth-child(even){background:var(--rb-mist)}

/* ---- guide steps ---- */
.rb-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.rb-step{background:#fff;border:1px solid var(--rb-line);border-radius:5px;padding:24px 20px;box-shadow:var(--rb-shadow-sm);position:relative}
.rb-step .num{width:38px;height:38px;border-radius:50%;border:1.5px solid var(--rb-gold);color:var(--rb-gold-d);font-weight:700;display:grid;place-items:center;font-size:1.05rem}
.rb-step h3{font-size:1.1rem;margin:14px 0 6px;color:var(--rb-navy)}
.rb-step p{font-size:.94rem;color:var(--rb-ink2)}
@media(max-width:880px){.rb-steps{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.rb-steps{grid-template-columns:1fr}}

/* ---- FAQ ---- */
.rb-faq{max-width:880px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
.rb-qa{border:1px solid var(--rb-line);border-radius:12px;background:#fff;box-shadow:var(--rb-shadow-sm);overflow:hidden}
.rb-qa>summary{list-style:none;cursor:pointer;display:flex;gap:14px;align-items:flex-start;padding:22px 24px;position:relative}
.rb-qa>summary::-webkit-details-marker{display:none}
.rb-qa-mk{margin-left:auto;flex:0 0 auto;width:22px;height:22px;position:relative;align-self:center}
.rb-qa-mk::before,.rb-qa-mk::after{content:"";position:absolute;background:var(--rb-blue);transition:transform .25s}
.rb-qa-mk::before{top:10px;left:3px;width:16px;height:2px}
.rb-qa-mk::after{top:3px;left:10px;width:2px;height:16px}
.rb-qa[open] .rb-qa-mk::after{transform:rotate(90deg);opacity:0}
.rb-qa-a{padding:0 24px 22px 62px}
.rb-qa-a p{margin:0}
.rb-qa-link{margin-top:12px!important}
.rb-qa-link a{color:var(--rb-blue);font-weight:700;font-size:.98rem;text-decoration:none}
.rb-qa-link a:hover{text-decoration:underline}
.rb-qa[open]>summary{padding-bottom:8px}
.rb-qa h3,.rb-qa>summary{font-size:1.16rem;color:var(--rb-navy);font-weight:800}
.rb-qa .q{color:#fff;background:linear-gradient(135deg,var(--rb-navy),var(--rb-blue));font-weight:800;flex:0 0 auto;font-size:.95rem;width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center}
.rb-qa-a p{color:var(--rb-ink2);font-size:1.06rem;line-height:1.85}

/* ---- topics ---- */
.rb-news{max-width:880px;margin:0 auto;list-style:none;background:#fff;border:1px solid var(--rb-line);border-radius:14px;box-shadow:var(--rb-shadow-sm);padding:6px 24px}
.rb-news li{display:flex;gap:18px;padding:17px 2px;border-bottom:1px solid var(--rb-line);font-size:1.06rem;align-items:center}
.rb-news .date{color:var(--rb-ink3);flex:0 0 auto;font-variant-numeric:tabular-nums;letter-spacing:.04em}
.rb-news .cat{background:var(--rb-navy);color:#fff;font-size:.82rem;font-weight:700;padding:4px 13px;border-radius:999px;flex:0 0 auto}

/* ---- breadcrumb / subhero ---- */
.rb-crumb{font-size:.84rem;color:var(--rb-ink2);padding:18px 0 0}
.rb-crumb a{color:var(--rb-ink2)}.rb-crumb a:hover{color:var(--rb-blue)}
.rb-crumb span{color:var(--rb-ink3);margin:0 8px}
.rb-subhero{position:relative;color:#fff;overflow:hidden;background:linear-gradient(160deg,#0c3f5e 0%,#136699 70%,#1c87c9 130%)}
.rb-subhero .rb-inner{padding:clamp(40px,6vw,68px) var(--rb-pad)}
.rb-subhero .en{font-size:.7rem;letter-spacing:.34em;font-weight:700;color:rgba(255,255,255,.82);text-transform:uppercase}
.rb-subhero h1{font-size:clamp(1.9rem,4vw,2.8rem);margin-top:12px;letter-spacing:.03em}
.rb-subhero p{margin-top:12px;color:rgba(231,243,248,.88);font-size:1rem;max-width:38em}

/* ---- footer ---- */
#rb-footer{background:var(--rb-navy-2);color:#bcd2dd;padding:56px 0 28px}
#rb-footer .rb-inner{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:30px}
#rb-footer h4{color:#fff;font-size:.86rem;letter-spacing:.06em;margin-bottom:13px;padding-bottom:9px;border-bottom:1px solid rgba(255,255,255,.12)}
#rb-footer a{color:#bcd2dd;font-size:.88rem;line-height:2.1}
#rb-footer a:hover{color:var(--rb-sky)}
#rb-footer .rb-foot-lede{font-size:.88rem;color:#93b0bf;max-width:24em;margin-top:10px}
#rb-footer .rb-disc{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);margin-top:24px;padding-top:18px;font-size:.73rem;color:#7e9bab;line-height:1.9}
@media(max-width:700px){#rb-footer .rb-inner{grid-template-columns:1fr}}

/* ---- reveal ---- */
@media(prefers-reduced-motion:no-preference){
  .js .rb-reveal{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s ease}
  .js .rb-reveal.is-in{opacity:1;transform:none}
}

/* ============ v2 UX ============ */
/* smooth scroll + sticky-header offset */
.rb-operator{scroll-behavior:smooth}
.rb-operator [id]{scroll-margin-top:84px}
@media(prefers-reduced-motion:reduce){.rb-operator{scroll-behavior:auto}}

/* focus-visible（キーボード操作時のみリング表示）*/
.rb-operator a:focus-visible,.rb-operator button:focus-visible,
.rb-operator input:focus-visible,.rb-operator select:focus-visible,
.rb-burger:focus-visible,.rb-drawer a:focus-visible{
  outline:2px solid #1c87c9;outline-offset:2px;border-radius:4px}

/* scrollspy: 現在地ハイライト */
#rb-gnav a.is-active{color:var(--rb-navy)}
#rb-gnav a.is-active:after{transform:scaleX(1)}

/* モバイルナビ: ハンバーガー（#rb-header内＝scope内だが実値で固定）*/
.rb-burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;
  margin-left:6px;border:1px solid #d8e2e9;border-radius:9px;background:#fff;cursor:pointer;padding:0}
.rb-burger span{display:block;width:18px;height:2px;margin:0 auto;background:#0c3f5e;border-radius:2px;
  transition:transform .25s,opacity .25s}
.rb-nav-open .rb-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.rb-nav-open .rb-burger span:nth-child(2){opacity:0}
.rb-nav-open .rb-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ドロワー / バックドロップ（body直下＝scope外なので色・フォントは実値）*/
.rb-drawer{position:fixed;top:0;right:0;z-index:60;height:100%;width:min(78vw,320px);background:#fff;
  box-shadow:-12px 0 40px rgba(12,63,94,.18);transform:translateX(100%);transition:transform .3s ease;
  display:flex;flex-direction:column;padding:78px 22px 22px;gap:2px;
  font-family:"Noto Sans JP","ヒラギノ角ゴ ProN W3",Meiryo,sans-serif}
.rb-nav-open .rb-drawer{transform:none}
.rb-drawer a{color:#1b2b34;text-decoration:none;font-size:.96rem;font-weight:500;padding:14px 6px;
  border-bottom:1px solid #e6edf1}
.rb-drawer a:hover{color:#1c87c9}
.rb-drawer .rb-drawer-book{margin-top:16px;background:#1c87c9;color:#fff;text-align:center;border:0;
  border-radius:999px;padding:13px;font-weight:700;box-shadow:0 8px 18px rgba(28,135,201,.24)}
.rb-drawer .rb-drawer-book:hover{background:#136699;color:#fff}
.rb-drawer .rb-drawer-book--group{margin-top:16px;background:#d63031;box-shadow:0 8px 18px rgba(214,48,49,.28)}
.rb-drawer .rb-drawer-book--group + .rb-drawer-book{margin-top:10px}
.rb-drawer .rb-drawer-book--group:hover{background:#b71c1c}
.rb-backdrop{position:fixed;inset:0;z-index:55;background:rgba(8,40,60,.42);opacity:0;visibility:hidden;
  transition:opacity .3s,visibility .3s}
.rb-nav-open .rb-backdrop{opacity:1;visibility:visible}
.rb-nav-open{overflow:hidden}
@media(max-width:880px){.rb-burger{display:flex}}
@media(min-width:881px){.rb-drawer,.rb-backdrop{display:none}}

/* ============ 比較モジュール（車 vs 高速船 等）— route型で再利用 ============ */
.rb-compare{width:100%;border-collapse:collapse;font-size:.92rem;background:#fff;border:1px solid var(--rb-line);border-radius:6px;overflow:hidden;box-shadow:var(--rb-shadow-sm)}
.rb-compare th,.rb-compare td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--rb-line);vertical-align:top}
.rb-compare thead th{background:var(--rb-navy);color:#fff;font-weight:700;font-size:.9rem}
.rb-compare thead th.win{background:var(--rb-blue)}
.rb-compare tbody th{font-weight:700;color:var(--rb-ink);width:22%;background:var(--rb-mist)}
.rb-compare td.win{color:var(--rb-blue-d);font-weight:600;background:rgba(28,135,201,.05)}
.rb-compare tr:last-child th,.rb-compare tr:last-child td{border-bottom:0}
@media(max-width:640px){.rb-compare{font-size:.82rem}.rb-compare th,.rb-compare td{padding:10px 11px}.rb-compare tbody th{width:28%}}

/* 方向ブロック（往路/復路）見出しチップ */
.rb-dir-chip{display:inline-flex;align-items:center;gap:8px;font-size:.74rem;font-weight:700;letter-spacing:.08em;color:#fff;background:var(--rb-blue);border-radius:999px;padding:5px 14px;margin-bottom:6px}
.rb-dir-chip.ret{background:var(--rb-navy)}
.rb-benefit{display:inline-block;font-size:.84rem;font-weight:700;color:var(--rb-gold-d);background:rgba(182,162,100,.12);border:1px solid rgba(182,162,100,.4);border-radius:999px;padding:4px 12px;margin:0 6px 6px 0}

/* ============ 乗り場クイックビュー・モーダル（SEO安全：実a href維持・fetchなし）============ */
.rb-card-acts{margin-top:auto;padding-top:14px;display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.rb-qv-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;border:0;
  border-radius:999px;background:var(--rb-blue);color:#fff;font-family:var(--rb-font);font-weight:700;font-size:.82rem;
  padding:10px 13px;box-shadow:0 8px 18px rgba(28,135,201,.22);transition:background .2s,transform .15s}
.rb-qv-btn:hover{background:var(--rb-blue-d)}.rb-qv-btn:active{transform:scale(.98)}
.rb-card-acts .rb-route-link{white-space:nowrap}
/* 乗り場カード「詳しく見る」のみ 白字ボタン化（コントラスト確保） */
.rb-card-acts .rb-route-link--port{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin-top:0;padding:10px 16px;border-radius:999px;background:var(--rb-navy);color:#fff;box-shadow:0 8px 18px rgba(16,42,107,.18)}
.rb-card-acts .rb-route-link--port:hover{background:var(--rb-navy-2);color:#fff}
.rb-qv-tpl{display:none}
.rb-qv-backdrop{position:fixed;inset:0;z-index:80;background:rgba(8,30,46,.5);-webkit-backdrop-filter:blur(5px);
  backdrop-filter:blur(5px);opacity:0;visibility:hidden;transition:opacity .28s,visibility .28s}
.rb-qv-backdrop.open{opacity:1;visibility:visible}
.rb-qv-modal{position:fixed;z-index:81;left:50%;top:50%;transform:translate(-50%,-46%) scale(.97);
  width:min(560px,calc(100vw - 32px));max-height:min(88vh,760px);overflow:auto;background:#fff;border-radius:22px;
  box-shadow:0 30px 80px rgba(8,40,60,.32);opacity:0;visibility:hidden;
  transition:opacity .28s,transform .28s,visibility .28s;-webkit-overflow-scrolling:touch;font-family:var(--rb-font)}
.rb-qv-modal.open{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1)}
.rb-qv-close{position:sticky;float:right;top:12px;right:12px;margin:12px 12px -36px 0;z-index:3;width:38px;height:38px;
  border:0;border-radius:50%;background:rgba(255,255,255,.92);box-shadow:0 4px 14px rgba(12,63,94,.18);cursor:pointer;
  font-size:20px;color:var(--rb-navy);line-height:1;display:flex;align-items:center;justify-content:center}
.rb-qv-close:hover{background:#fff}
.rb-qv-hero{height:140px;position:relative;display:flex;align-items:flex-end;padding:18px 22px;color:#fff;
  background:linear-gradient(135deg,var(--rb-navy),var(--rb-blue) 72%,var(--rb-sky))}
.rb-qv-hero.g2{background:linear-gradient(135deg,var(--rb-navy-2),var(--rb-blue) 60%,#7cc6ea)}
.rb-qv-hero.g3{background:linear-gradient(135deg,#123f57,#2f9ad0 60%,#9ad6ef)}
.rb-qv-hero:after{content:"";position:absolute;inset:0;background:radial-gradient(160px 80px at 82% 24%,rgba(255,255,255,.24),transparent 60%)}
.rb-qv-hero .inner{position:relative;z-index:1}
.rb-qv-hero .en{font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;opacity:.9;font-weight:700}
.rb-qv-hero h2{margin:4px 0 0;font-size:1.36rem;color:#fff}
.rb-qv-hero .imgnote{position:absolute;right:16px;top:14px;z-index:1;font-size:.66rem;color:rgba(255,255,255,.8)}
.rb-qv-hero .wave{position:absolute;left:0;right:0;bottom:-1px;line-height:0}
.rb-qv-bd{padding:20px 22px 8px}
.rb-qv-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}
.rb-qv-grid .it{background:var(--rb-mist);border:1px solid var(--rb-line);border-radius:13px;padding:12px 13px}
.rb-qv-grid .it .k{font-size:.7rem;letter-spacing:.08em;color:var(--rb-ink3);font-weight:700}
.rb-qv-grid .it .v{font-size:1.02rem;color:var(--rb-navy);font-weight:700;margin-top:2px}
.rb-qv-grid .it .v.sm{font-size:.84rem}
.rb-qv-grid .it .v small{font-size:.74rem;color:var(--rb-ink2);font-weight:500}
.rb-qv-sect{font-size:.72rem;letter-spacing:.12em;color:var(--rb-gold-d);font-weight:700;text-transform:uppercase;margin:6px 0 8px}
.rb-qv-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.rb-qv-chips .chip{font-size:.82rem;font-weight:700;color:var(--rb-navy);background:#fff;border:1px solid var(--rb-line-2);border-radius:999px;padding:7px 13px}
.rb-qv-chips .chip.hi{background:var(--rb-blue);color:#fff;border-color:var(--rb-blue)}
.rb-qv-chips .chip small{font-weight:500;opacity:.82;margin-left:4px}
.rb-qv-memo{font-size:.87rem;color:var(--rb-ink);background:var(--rb-sand);border-radius:5px;padding:12px 14px}
/* アクセスフロー図（EN RESORT風・起点→所要→港） */
.rb-qv-flow{display:flex;align-items:stretch;gap:0;margin:6px 0 16px;flex-wrap:nowrap}
.rb-qv-flow-node{flex:1 1 0;min-width:0;background:var(--rb-mist);border:1px solid var(--rb-line);border-radius:8px;padding:12px 8px;text-align:center;display:flex;flex-direction:column;justify-content:center;gap:3px}
.rb-qv-flow-node.is-port{background:var(--rb-navy);border-color:var(--rb-navy)}
.rb-qv-flow-node .nd-ttl{font-size:.84rem;font-weight:800;color:var(--rb-navy);line-height:1.3}
.rb-qv-flow-node.is-port .nd-ttl{color:#fff}
.rb-qv-flow-node .nd-sub{font-size:.66rem;color:var(--rb-ink2);line-height:1.3}
.rb-qv-flow-node.is-port .nd-sub{color:rgba(255,255,255,.82)}
.rb-qv-flow-arrow{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:0 4px;min-width:54px}
.rb-qv-flow-arrow .am{font-size:.64rem;font-weight:700;color:var(--rb-ink2);background:#fff;border:1px solid var(--rb-line-2);border-radius:999px;padding:2px 7px;white-space:nowrap}
.rb-qv-flow-arrow .ar{color:var(--rb-blue);font-size:1.1rem;line-height:1}
.rb-qv-flow-arrow .means{font-size:.58rem;color:var(--rb-ink3);text-align:center;line-height:1.2}
@media(max-width:560px){
  .rb-qv-flow{flex-direction:column;gap:0}
  .rb-qv-flow-node{padding:10px}
  .rb-qv-flow-arrow{flex-direction:row;min-width:0;padding:6px 0;gap:8px}
  .rb-qv-flow-arrow .ar{transform:rotate(90deg)}
}
/* 到着後の移動（港起点→複数目的地の分岐リスト） */
.rb-qv-dest{display:flex;flex-direction:column;gap:8px;margin:6px 0 16px}
.rb-qv-dest-row{display:flex;align-items:stretch;gap:0;background:var(--rb-mist);border:1px solid var(--rb-line);border-radius:8px;overflow:hidden}
.rb-qv-dest-to{flex:0 0 38%;min-width:0;padding:10px 12px;display:flex;flex-direction:column;justify-content:center;gap:2px;background:#fff;border-right:1px solid var(--rb-line)}
.rb-qv-dest-to .dt{font-size:.86rem;font-weight:800;color:var(--rb-navy);line-height:1.3}
.rb-qv-dest-to .ds{font-size:.66rem;color:var(--rb-ink2);line-height:1.3}
.rb-qv-dest-means{flex:1 1 0;min-width:0;padding:9px 12px;display:flex;flex-direction:column;justify-content:center;gap:4px}
.rb-qv-dest-opt{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:.74rem;color:var(--rb-ink);line-height:1.4}
.rb-qv-dest-opt .mode{font-size:.66rem;font-weight:700;color:#fff;background:var(--rb-blue);border-radius:4px;padding:1px 7px;white-space:nowrap}
.rb-qv-dest-opt .mode.taxi{background:var(--rb-gold-d)}
.rb-qv-dest-opt .mode.walk{background:var(--rb-ink3)}
.rb-qv-dest-opt .tt{font-weight:700;white-space:nowrap}
.rb-qv-dest-note{font-size:.7rem;color:var(--rb-ink2);margin:-8px 0 14px;padding:0 2px;line-height:1.5}
@media(max-width:480px){
  .rb-qv-dest-row{flex-direction:column}
  .rb-qv-dest-to{flex:none;border-right:0;border-bottom:1px solid var(--rb-line)}
}
.rb-qv-foot{position:sticky;bottom:0;background:linear-gradient(180deg,rgba(255,255,255,0),#fff 26%);padding:14px 22px 20px;display:flex;gap:10px;align-items:center}
.rb-qv-map{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--rb-line-2);border-radius:999px;padding:12px;font-weight:700;font-size:.85rem;color:var(--rb-navy);background:#fff}
.rb-qv-map:hover{border-color:var(--rb-blue);color:var(--rb-blue)}
.rb-qv-detail{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:999px;padding:12px;font-weight:700;font-size:.85rem;color:#fff;background:var(--rb-navy)}
.rb-qv-detail:hover{background:var(--rb-navy-2);color:#fff}
body.rb-qv-lock{overflow:hidden}
@media(max-width:560px){.rb-qv-grid{grid-template-columns:1fr}}

/* ---- クイックビュー横展開：座席小ボタン／ギャラリー／条件リスト ---- */
.rb-qv-btn.sm{font-size:.76rem;padding:8px 12px;box-shadow:0 6px 14px rgba(28,135,201,.2)}
.rb-seat .rb-qv-btn.sm{margin-top:10px;width:100%}
.rb-qv-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.rb-qv-gallery .g{aspect-ratio:4/3;border-radius:5px;position:relative;overflow:hidden;display:flex;align-items:flex-end;
  padding:6px 8px;background:linear-gradient(135deg,var(--rb-navy),var(--rb-blue) 70%,var(--rb-sky))}
.rb-qv-gallery .g.b{background:linear-gradient(135deg,var(--rb-navy-2),#2f9ad0 60%,#9ad6ef)}
.rb-qv-gallery .g.c{background:linear-gradient(135deg,#123f57,#3aa0d4 60%,#a9dcf0)}
.rb-qv-gallery .g:after{content:"";position:absolute;inset:0;background:radial-gradient(60px 30px at 78% 22%,rgba(255,255,255,.22),transparent 60%)}
.rb-qv-gallery .g span{position:relative;z-index:1;font-size:.58rem;color:rgba(255,255,255,.85);letter-spacing:.02em}
@media(max-width:560px){.rb-qv-gallery{grid-template-columns:repeat(2,1fr)}}
.rb-qv-list{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.rb-qv-list .row{display:flex;gap:12px;align-items:flex-start;background:var(--rb-mist);border:1px solid var(--rb-line);border-radius:5px;padding:11px 13px}
.rb-qv-list .row .nm{font-weight:700;color:var(--rb-navy);font-size:.9rem;min-width:90px;flex-shrink:0}
.rb-qv-list .row .cd{font-size:.88rem;color:var(--rb-ink2);line-height:1.7}

/* ============ 動画ヒーロー：縦スライド3面（動画→動画→実写） ============ */
.rb-vhero{position:relative;height:86vh;min-height:560px;max-height:860px;overflow:hidden;background:var(--rb-navy);isolation:isolate}
.rb-vhero-track{position:absolute;inset:0;height:300%;transition:transform 1s cubic-bezier(.16,1,.3,1);will-change:transform}
.rb-vhero-panel{position:relative;width:100%;height:33.33333%;overflow:hidden}
.rb-vhero-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rb-vhero-media.kb{animation:rbKenBurns 14s ease-in-out infinite alternate}
@keyframes rbKenBurns{from{transform:scale(1.05)}to{transform:scale(1.17) translate(-2%,-1.5%)}}
.rb-vhero-cap{position:absolute;right:16px;bottom:96px;z-index:3;font-size:.64rem;color:rgba(255,255,255,.66);letter-spacing:.04em;text-shadow:0 1px 6px rgba(0,0,0,.4)}
.rb-vhero-scrim{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,rgba(8,28,44,.46),rgba(8,28,44,.26) 36%,rgba(8,28,44,.7))}
.rb-vhero-content{position:absolute;inset:0;z-index:3;display:flex;align-items:center;color:#fff;pointer-events:none}
.rb-vhero-content .rb-inner{width:100%}
.rb-vhero-content .en{display:inline-block;font-size:.74rem;letter-spacing:.32em;color:#fff;font-weight:700;text-transform:uppercase;opacity:.92;margin-bottom:16px;text-shadow:0 2px 12px rgba(0,0,0,.4)}
.rb-vhero-content .en:before{content:"";display:inline-block;width:26px;height:1px;background:var(--rb-gold);vertical-align:middle;margin:0 14px 4px}
.rb-vhero-content h1{color:#fff;font-size:clamp(1.9rem,4.6vw,3.3rem);font-weight:900;line-height:1.34;letter-spacing:.01em;margin:0;text-shadow:0 4px 30px rgba(0,0,0,.35)}
.rb-vhero-content h1 small{display:block;margin-top:16px;font-size:clamp(.92rem,1.9vw,1.06rem);font-weight:500;line-height:1.95;color:rgba(255,255,255,.92);text-shadow:0 2px 14px rgba(0,0,0,.45)}
.rb-vhero-content .rb-hero-stats{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
.rb-vhero-content .rb-hero-stats .s{background:rgba(255,255,255,.12);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.22);border-radius:16px;padding:14px 20px;min-width:120px}
.rb-vhero-content .rb-hero-stats .n{font-size:1.7rem;font-weight:900;color:#fff;line-height:1}
.rb-vhero-content .rb-hero-stats .n small{font-size:.8rem;font-weight:700;margin-left:2px}
.rb-vhero-content .rb-hero-stats .l{font-size:.74rem;color:rgba(255,255,255,.82);margin-top:5px;letter-spacing:.04em}
.rb-vhero-dots{position:absolute;right:20px;top:50%;transform:translateY(-50%);z-index:4;display:flex;flex-direction:column;gap:14px;align-items:flex-end}
.rb-vhero-dots .dot{display:flex;align-items:center;gap:9px;background:none;border:0;cursor:pointer;padding:2px 0;font-family:var(--rb-font)}
.rb-vhero-dots .dot .lb{font-size:.74rem;font-weight:700;letter-spacing:.06em;color:rgba(255,255,255,.6);white-space:nowrap;transition:color .3s,opacity .3s;text-shadow:0 1px 8px rgba(0,0,0,.55);opacity:.85}
.rb-vhero-dots .dot .mk{width:16px;height:2px;border-radius:2px;background:rgba(255,255,255,.4);transition:width .35s cubic-bezier(.16,1,.3,1),background .3s;flex:none}
.rb-vhero-dots .dot:hover .lb{color:rgba(255,255,255,.95);opacity:1}
.rb-vhero-dots .dot:hover .mk{background:rgba(255,255,255,.75)}
.rb-vhero-dots .dot.is-on .lb{color:#fff;opacity:1}
.rb-vhero-dots .dot.is-on .mk{width:34px;background:#fff}
@media(max-width:640px){.rb-vhero-dots{right:14px;gap:11px}.rb-vhero-dots .dot .lb{font-size:.68rem}}
.rb-vhero .rb-hero-wave{position:absolute;left:0;right:0;bottom:-1px;z-index:3;line-height:0}
@media(max-width:640px){.rb-vhero{height:78vh;min-height:480px}.rb-vhero-cap{bottom:80px}.rb-vhero-dots{right:12px}}
@media(prefers-reduced-motion:reduce){.rb-vhero-track{transition:none}.rb-vhero-media.kb{animation:none}}
.rb-qv-gallery .g img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.rb-qv-gallery .g span{z-index:2}
.rb-qv-gallery .g:after{z-index:1}
.rb-vessel-media{position:relative;overflow:hidden}
.rb-vessel-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.rb-vessel-media .note{z-index:2}
.rb-card-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.rb-card-media:after{z-index:1}
.rb-card-media .note{z-index:2}

/* ============ ローディング画面（ヒーロー表示までの繋ぎ・軽量CSSのみ） ============ */
.rb-loader{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:var(--rb-navy);transition:opacity .7s ease,visibility .7s ease}
.rb-loader.is-done{opacity:0;visibility:hidden}
.rb-loader-inner{text-align:center;color:#fff;padding:0 24px}
.rb-loader-mark{font-size:clamp(1rem,3.4vw,1.45rem);font-weight:800;letter-spacing:.24em;text-transform:uppercase;opacity:0;transform:translateY(6px);animation:rbLoadIn .9s ease forwards}
.rb-loader-sub{font-size:.66rem;letter-spacing:.34em;color:rgba(255,255,255,.55);margin-top:9px;opacity:0;animation:rbLoadIn .9s .12s ease forwards}
.rb-loader-bar{width:148px;height:2px;background:rgba(255,255,255,.16);border-radius:2px;margin:24px auto 0;overflow:hidden}
.rb-loader-bar span{display:block;width:38%;height:100%;background:var(--rb-gold);border-radius:2px;animation:rbLoadBar 1.15s ease-in-out infinite}
@keyframes rbLoadIn{to{opacity:1;transform:none}}
@keyframes rbLoadBar{0%{transform:translateX(-130%)}100%{transform:translateX(380%)}}

/* ============ ヒーロー下：サムネ動画スライド（クリックでモーダル再生） ============ */
.rb-vstrip{padding:34px 0 6px}
.rb-vstrip-head{display:flex;align-items:baseline;gap:12px;margin-bottom:14px}
.rb-vstrip-head .t{font-size:1.05rem;font-weight:800;color:var(--rb-ink)}
.rb-vstrip-head .s{font-size:.74rem;color:var(--rb-ink3,#6b7a85)}
.rb-vstrip-wrap{position:relative}
.rb-vstrip-track{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:4px 0 6px}
.rb-vthumb{position:relative;width:100%;aspect-ratio:16/10;border-radius:6px;overflow:hidden;cursor:pointer;background:var(--rb-navy);border:0;padding:0;box-shadow:0 6px 18px rgba(8,28,44,.12)}
.rb-vthumb video,.rb-vthumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rb-vthumb:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 42%,rgba(8,28,44,.68));z-index:1}
.rb-vthumb-lb{position:absolute;left:13px;bottom:11px;z-index:2;color:#fff;font-weight:800;font-size:.94rem;letter-spacing:.03em;text-shadow:0 2px 10px rgba(0,0,0,.55)}
.rb-vthumb-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;width:31px;height:31px;border-radius:50%;background:rgba(255,255,255,.22);backdrop-filter:blur(3px);border:0;display:flex;align-items:center;justify-content:center;opacity:.92;transition:opacity .25s,transform .25s,background .25s;box-shadow:0 3px 10px rgba(0,0,0,.3)}
.rb-vthumb:hover .rb-vthumb-play,.rb-vthumb:focus-visible .rb-vthumb-play{opacity:1;transform:translate(-50%,-50%) scale(1.08);background:rgba(255,255,255,.32)}
.rb-vthumb-play svg{width:12px;height:12px;margin-left:2px;fill:#fff;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}
.rb-vstrip-nav{margin-left:auto;display:flex;gap:8px;align-self:center}
.rb-vstrip-arrow{position:static;z-index:3;width:34px;height:34px;border-radius:50%;border:1px solid var(--rb-line,#e2e8ee);background:#fff;box-shadow:0 2px 8px rgba(8,28,44,.10);cursor:pointer;display:none;align-items:center;justify-content:center;flex:0 0 auto;transition:background .2s}
.rb-vstrip-arrow svg{width:15px;height:15px;fill:var(--rb-navy);transition:fill .2s}
.rb-vstrip-arrow:hover{background:var(--rb-navy)}.rb-vstrip-arrow:hover svg{fill:#fff}
/* 動画モーダル */
.rb-vmodal{position:fixed;inset:0;z-index:9998;display:none;align-items:center;justify-content:center;background:rgba(6,20,32,.88);padding:20px}
.rb-vmodal.is-open{display:flex}
.rb-vmodal-box{position:relative;width:min(960px,96vw);background:#000;border-radius:6px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.55)}
.rb-vmodal-box video{width:100%;display:block;max-height:80vh;background:#000}
.rb-vmodal-cap{position:absolute;left:16px;top:13px;z-index:2;color:#fff;font-weight:800;font-size:1rem;text-shadow:0 2px 10px rgba(0,0,0,.6);pointer-events:none}
.rb-vmodal-close{position:absolute;right:12px;top:12px;z-index:3;width:40px;height:40px;border-radius:50%;border:0;background:rgba(0,0,0,.55);color:#fff;font-size:1.4rem;line-height:1;cursor:pointer}
.rb-vmodal-close:hover{background:rgba(0,0,0,.75)}

/* ============ ヒーロー：動画に同期して切り替わるキャッチ ============ */
.rb-vhero-copies{position:relative;min-height:clamp(210px,31vh,300px)}
.rb-vhero-copy{position:absolute;top:0;left:0;right:0;opacity:0;transform:translateY(10px);transition:opacity .6s ease,transform .6s ease;pointer-events:none}
.rb-vhero-copy.is-on{opacity:1;transform:none;pointer-events:auto}
.rb-vhero-content .rb-vhero-h{color:#fff;font-size:clamp(1.9rem,4.6vw,3.3rem);font-weight:900;line-height:1.34;letter-spacing:.01em;margin:0;text-shadow:0 4px 30px rgba(0,0,0,.35)}
.rb-vhero-content .rb-vhero-h small{display:block;margin-top:16px;font-size:clamp(.92rem,1.9vw,1.06rem);font-weight:500;line-height:1.95;color:rgba(255,255,255,.92);text-shadow:0 2px 14px rgba(0,0,0,.45)}
@media(max-width:640px){.rb-vhero-copies{min-height:clamp(200px,38vh,280px)}}
@media(prefers-reduced-motion:reduce){.rb-vhero-copy{transition:opacity .2s}}

/* ============================================================
   追加コンテンツ要素（SNF構造踏襲・KOJトークン）2026-06
   二軸ナビ / 時刻表 / 船窓 / 割引ガイド / 季節 / ギャラリー / Instagram
   ============================================================ */

/* --- 共通: タブUI --- */
.rb-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 22px}
.rb-tab{appearance:none;border:1px solid var(--rb-line-2);background:#fff;color:var(--rb-ink2);
  font-weight:700;font-size:.9rem;padding:11px 20px;border-radius:999px;cursor:pointer;transition:all .2s;font-family:inherit}
.rb-tab:hover{border-color:var(--rb-blue);color:var(--rb-blue)}
.rb-tab.is-on{background:var(--rb-navy);border-color:var(--rb-navy);color:#fff}
.rb-tabpanel{display:none}.rb-tabpanel.is-on{display:block;animation:rbFade .35s ease}
@keyframes rbFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* --- 二軸ナビ rb-guidenav --- */
.rb-gnav2-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:18px}
.rb-operator .rb-gnav2-item,a.rb-gnav2-item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:14px;padding:32px 18px 50px;border:2px solid var(--rb-navy);
  border-radius:0;background:#fff;color:var(--rb-navy);text-decoration:none;font-weight:800;font-size:1.05rem;text-align:center;min-height:240px;overflow:hidden;
  transition:background-color .3s cubic-bezier(.4,0,.2,1),color .3s cubic-bezier(.4,0,.2,1),box-shadow .2s}
.rb-operator .rb-gnav2-item:hover,a.rb-gnav2-item:hover{background:var(--rb-navy);color:#fff;box-shadow:0 8px 24px rgba(16,42,107,.28);border-color:var(--rb-navy);transform:none}
.rb-gnav2-ic{width:88px;height:88px;flex:0 0 auto;border-radius:50%;background:var(--rb-mist);
  display:flex;align-items:center;justify-content:center;color:var(--rb-navy);transition:background-color .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1)}
.rb-gnav2-item:hover .rb-gnav2-ic{background:#fff;transform:scale(1.05)}
.rb-gnav2-ic svg{width:52px;height:52px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:stroke .3s}
.rb-gnav2-item .sub{display:block;font-weight:500;font-size:.86rem;color:var(--rb-ink3);margin-top:5px;transition:color .3s cubic-bezier(.4,0,.2,1)}
.rb-gnav2-item:hover .sub{color:rgba(255,255,255,.78)}
.rb-gnav2-arrow{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);width:22px;height:22px;overflow:hidden;display:flex;align-items:flex-start;justify-content:center}
.rb-gnav2-arrow .a{position:absolute;left:50%;font-size:1.3rem;line-height:1;font-weight:700;transform:translateX(-50%);transition:transform .3s cubic-bezier(.4,0,.2,1)}
.rb-gnav2-arrow .a1{top:0;color:var(--rb-navy)}
.rb-gnav2-arrow .a2{top:-22px;color:#fff}
.rb-gnav2-item:hover .rb-gnav2-arrow .a1{transform:translate(-50%,22px)}
.rb-gnav2-item:hover .rb-gnav2-arrow .a2{transform:translate(-50%,22px)}
@media(max-width:560px){.rb-gnav2-grid{grid-template-columns:repeat(2,1fr);gap:12px}.rb-gnav2-item{min-height:200px;padding:24px 12px 44px}.rb-gnav2-ic{width:72px;height:72px}.rb-gnav2-ic svg{width:42px;height:42px}}
.rb-gnav2-routes{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;align-items:stretch}
.rb-gnav2-route{display:flex;flex-direction:column;padding:26px;border-radius:16px;background:#fff;border:1px solid var(--rb-line);border-left:5px solid var(--rb-blue);
  color:var(--rb-ink);text-decoration:none;box-shadow:var(--rb-shadow-sm);transition:transform .2s,box-shadow .2s}
.rb-gnav2-route:hover{transform:translateY(-3px);box-shadow:var(--rb-shadow);border-left-color:var(--rb-navy)}
.rb-gnav2-route .r-ttl{font-size:1.34rem;font-weight:800;margin:0 0 10px;color:var(--rb-navy);letter-spacing:-.01em}
.rb-gnav2-route .r-meta{font-size:1rem;color:var(--rb-ink2);line-height:1.75;flex:1}
.rb-gnav2-route .r-go{display:inline-flex;align-items:center;gap:6px;margin-top:18px;font-size:.98rem;font-weight:700;color:#fff;background:var(--rb-navy);padding:9px 18px;border-radius:999px;align-self:flex-start;transition:background .18s}
.rb-gnav2-route:hover .r-go{background:var(--rb-blue)}
.rb-gnav2-route .r-go svg{width:16px;height:16px;fill:#fff}

/* --- 時刻表 rb-timetable --- */
.rb-tt-card{border:1px solid var(--rb-line);border-radius:16px;overflow:hidden;box-shadow:var(--rb-shadow-sm);background:#fff}
.rb-tt-meta{display:flex;flex-wrap:wrap;gap:10px;padding:18px 20px;background:var(--rb-mist);border-bottom:1px solid var(--rb-line)}
.rb-tt-chip{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:700;color:var(--rb-navy);
  background:#fff;border:1px solid var(--rb-line-2);border-radius:999px;padding:6px 13px}
.rb-tt-chip b{color:var(--rb-blue)}
.rb-tt-table{width:100%;border-collapse:collapse}
.rb-tt-table th,.rb-tt-table td{padding:13px 16px;text-align:center;border-bottom:1px solid var(--rb-line);font-size:.92rem}
.rb-tt-table thead th{background:var(--rb-navy);color:#fff;font-weight:700;font-size:.9rem;letter-spacing:.03em}
.rb-tt-table tbody th{font-weight:700;color:var(--rb-ink)}
.rb-tt-table .t-time{font-variant-numeric:tabular-nums;font-weight:700;color:var(--rb-navy);font-size:1.02rem}
.rb-tt-table .t-acf{color:var(--rb-ink3);font-weight:600}
.rb-tt-note{margin:14px 0 0;font-size:.8rem;color:var(--rb-ink2);line-height:1.7}
.rb-tt-foot{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:16px}

/* --- 船窓からの景色 rb-views --- */
.rb-views-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.rb-view-card{position:relative;border-radius:16px;overflow:hidden;box-shadow:0 6px 20px rgba(12,63,94,.16);aspect-ratio:4/3;background:#fff;border:5px solid #fff}
.rb-view-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s}
.rb-view-card:hover img{transform:scale(1.06)}
.rb-view-card:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 38%,rgba(10,49,71,.82));z-index:1}
.rb-view-cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:16px;color:#fff}
.rb-view-cap .v-ttl{font-weight:800;font-size:1.02rem;margin:0 0 3px}
.rb-view-cap .v-sub{font-size:.86rem;color:#dbe9f2;line-height:1.78}

/* --- 割引ガイド rb-discounts --- */
.rb-disc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.rb-disc-card{border:1px solid var(--rb-line);border-radius:6px;padding:18px;background:#fff;box-shadow:var(--rb-shadow-sm);display:flex;flex-direction:column}
.rb-disc-card .d-ttl{font-weight:800;color:var(--rb-navy);font-size:1.18rem;margin:0 0 5px}
.rb-disc-card .d-price{font-size:1.75rem;font-weight:800;color:var(--rb-blue);font-variant-numeric:tabular-nums;line-height:1.15}
.rb-disc-card .d-price small{font-size:.95rem;color:var(--rb-ink3);font-weight:600;margin-left:4px}
.rb-disc-card .d-tgt{font-size:.96rem;color:var(--rb-ink2);margin:9px 0 0;line-height:1.7;flex:1}
.rb-disc-card .rb-qv-btn{margin-top:12px;align-self:flex-start}
.rb-disc-badge{display:inline-block;font-size:.68rem;font-weight:700;color:var(--rb-gold-d);background:#f6f1e2;border-radius:6px;padding:3px 8px;margin:0 0 8px}

/* --- 季節のおすすめ rb-seasonal --- */
.rb-season-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.rb-season-card{border:1px solid var(--rb-line);border-radius:16px;overflow:hidden;background:#fff;box-shadow:var(--rb-shadow-sm)}
.rb-season-card .s-top{padding:16px 20px;color:#fff;font-weight:800;font-size:1.22rem;display:flex;align-items:center;gap:8px}
.rb-season-card.spring .s-top{background:linear-gradient(135deg,#7fb88f,#5a9c74)}
.rb-season-card.summer .s-top{background:linear-gradient(135deg,#2aa3d4,#1c7fb8)}
.rb-season-card.autumn .s-top{background:linear-gradient(135deg,#cc9a52,#b5803a)}
.rb-season-card.winter .s-top{background:linear-gradient(135deg,#5a7d9c,#3f5d78)}
.rb-season-card .s-bd{padding:16px 18px}
.rb-season-card .s-bd ul{margin:0;padding:0;list-style:none}
.rb-season-card .s-bd li{position:relative;padding:0 0 0 20px;margin:0 0 10px;font-size:1.05rem;color:var(--rb-ink);line-height:1.7}
.rb-season-card .s-bd li:before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;border-radius:50%;background:var(--rb-blue)}
.rb-season-card .s-bd li:last-child{margin-bottom:0}

/* --- ギャラリー rb-gallery + ライトボックス --- */
.rb-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.rb-gallery-item{position:relative;border-radius:5px;overflow:hidden;cursor:pointer;aspect-ratio:1/1;border:0;padding:0;background:var(--rb-navy)}
.rb-gallery-item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .45s}
.rb-gallery-item:hover img,.rb-gallery-item:focus-visible img{transform:scale(1.08)}
.rb-gallery-item:after{content:"";position:absolute;inset:0;background:rgba(10,49,71,0);transition:background .25s}
.rb-gallery-item:hover:after{background:rgba(10,49,71,.18)}
.rb-lb-backdrop{position:fixed;inset:0;background:rgba(6,24,36,.9);z-index:1200;display:none;align-items:center;justify-content:center;padding:24px}
.rb-lb-backdrop.open{display:flex}
.rb-lb-img{max-width:92vw;max-height:82vh;border-radius:5px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.rb-lb-cap{position:absolute;bottom:24px;left:0;right:0;text-align:center;color:#fff;font-size:.86rem}
.rb-lb-btn{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:0;
  background:rgba(255,255,255,.16);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px)}
.rb-lb-btn:hover{background:rgba(255,255,255,.3)}
.rb-lb-btn svg{width:22px;height:22px;fill:#fff}
.rb-lb-prev{left:18px}.rb-lb-next{right:18px}
.rb-lb-close{position:absolute;top:18px;right:18px;width:42px;height:42px;border-radius:50%;border:0;background:rgba(255,255,255,.16);color:#fff;cursor:pointer;font-size:1.4rem;line-height:1}

/* --- Instagram rb-insta --- */
.rb-insta-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.rb-insta-handle-link{display:inline-flex;align-items:center;gap:9px;text-decoration:none}
.rb-insta-ig{display:inline-flex;width:30px;height:30px;border-radius:8px;align-items:center;justify-content:center;background:linear-gradient(45deg,#f09433,#e6683c 25%,#dc2743 50%,#cc2366 75%,#bc1888)}
.rb-insta-ig svg{width:18px;height:18px;fill:#fff}
.rb-insta-handle-tx{font-weight:800;color:var(--rb-navy);font-size:1.02rem}
.rb-insta-viewall{margin-left:auto;text-decoration:none;font-weight:700;font-size:.86rem;color:var(--rb-navy);display:inline-flex;align-items:center;gap:4px;transition:color .2s}
.rb-insta-viewall:hover{color:var(--rb-blue)}
.rb-insta-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
@media(max-width:760px){.rb-insta-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:480px){.rb-insta-grid{grid-template-columns:repeat(2,1fr);gap:6px}}
.rb-insta-cell{position:relative;aspect-ratio:1/1;border-radius:8px;overflow:hidden;background:var(--rb-mist-2);display:block;transition:transform .25s,box-shadow .25s}
.rb-insta-cell:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(16,42,107,.16)}
.rb-insta-cell img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rb-insta-note{margin:14px 0 0;font-size:.78rem;color:var(--rb-ink2);line-height:1.7}

@media(max-width:600px){
  .rb-tt-table th,.rb-tt-table td{padding:10px 8px;font-size:.82rem}
  .rb-gallery-grid{grid-template-columns:repeat(3,1fr)}
}

/* ===== 時刻表 曜日パターン（実ダイヤ）＋ 運賃早見表 2026-06 ===== */
.rb-tt-periodrow{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 18px}
.rb-tt-period{display:inline-flex;align-items:center;gap:8px;font-weight:800;color:#fff;background:var(--rb-navy);border-radius:999px;padding:11px 24px;font-size:1.1rem}
.rb-tt-meta-chip{font-size:.88rem;color:var(--rb-ink2);font-weight:600}
.rb-tt-patterns{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.rb-tt-pattern{border:1px solid var(--rb-line);border-radius:16px;overflow:hidden;background:#fff;box-shadow:var(--rb-shadow-sm)}
.rb-tt-pattern-hd{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:15px 20px;background:var(--rb-mist);border-bottom:1px solid var(--rb-line)}
.rb-tt-pattern-hd h3{margin:0;font-size:1.28rem;color:var(--rb-navy);font-weight:800}
.rb-tt-days{display:flex;align-items:center;gap:5px}
.rb-tt-days-lb{font-size:.72rem;color:var(--rb-ink3);font-weight:700;margin-right:3px}
.rb-tt-day{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:700;background:var(--rb-blue);color:#fff}
.rb-tt-day.off{background:#eef2f5;color:var(--rb-ink3)}
.rb-tt-legs{padding:6px 20px 16px}
.rb-leg{padding:15px 0;border-bottom:1px dashed var(--rb-line)}
.rb-leg:last-child{border-bottom:0;padding-bottom:4px}
.rb-leg-hd{font-weight:800;color:var(--rb-ink);font-size:1.1rem;margin-bottom:11px;display:flex;align-items:center;gap:8px}
.rb-leg-no{display:inline-flex;align-items:center;justify-content:center;background:var(--rb-navy);color:#fff;font-size:.74rem;font-weight:700;border-radius:6px;padding:3px 9px}
.rb-leg-trip{display:flex;align-items:center;gap:10px;padding:6px 0}
.rb-leg-dir{flex:0 0 auto;width:42px;font-size:.74rem;font-weight:700;color:#fff;background:var(--rb-blue);border-radius:6px;text-align:center;padding:5px 0}
.rb-leg-dir.rev{background:var(--rb-sky)}
.rb-leg-pt{display:flex;flex-direction:column;align-items:center;min-width:60px}
.rb-leg-pt b{font-size:1.42rem;font-weight:800;color:var(--rb-navy);font-variant-numeric:tabular-nums;line-height:1.1}
.rb-leg-pt span{font-size:.86rem;color:var(--rb-ink2)}
.rb-leg-ar{width:22px;height:22px;fill:var(--rb-ink3);flex:0 0 auto}
.rb-tt-notice{display:flex;gap:12px;align-items:flex-start;background:#fff8e8;border:1px solid #f0e0b0;border-radius:6px;padding:16px 18px;margin:18px 0 0}
.rb-tt-notice-ic svg{width:22px;height:22px;fill:#d8a01a}
.rb-tt-notice ul{margin:0;padding:0;list-style:none}
.rb-tt-notice li{position:relative;padding-left:14px;margin-bottom:8px;font-size:.96rem;color:var(--rb-ink);line-height:1.82}
.rb-tt-notice li:before{content:"";position:absolute;left:0;top:9px;width:5px;height:5px;border-radius:50%;background:#d8a01a}
.rb-tt-notice li:last-child{margin-bottom:0}

.rb-tab-sub{display:block;font-size:.7rem;font-weight:600;opacity:.85;margin-top:1px}
.rb-fare-routelb{font-weight:800;color:#fff;background:linear-gradient(135deg,var(--rb-navy),var(--rb-navy-2));border-radius:8px 8px 0 0;padding:18px 22px;font-size:1.18rem;max-width:1200px;margin:0 auto;letter-spacing:.02em}
.rb-faretbl{width:100%;max-width:1200px;margin:0 auto;border-collapse:collapse;border:1px solid var(--rb-line);border-top:0;border-radius:0 0 8px 8px;overflow:hidden;table-layout:auto}
.rb-faretbl thead th{background:var(--rb-navy);color:#fff;font-size:1.3rem;font-weight:800;text-align:left;padding:18px 16px;letter-spacing:.04em}
.rb-faretbl thead th:last-child{text-align:right}
.rb-faretbl tr.cat td{background:var(--rb-sand);color:var(--rb-gold-d);font-weight:800;font-size:1.4rem;padding:17px 18px;letter-spacing:.03em}
.rb-faretbl tbody th{text-align:left;font-weight:800;color:var(--rb-navy);font-size:1.7rem;padding:22px 16px;border-top:1px solid var(--rb-line);width:32%;line-height:1.3}
.rb-faretbl td.ft{color:var(--rb-ink2);font-size:1.22rem;padding:22px 14px;border-top:1px solid var(--rb-line);line-height:1.65}
.rb-faretbl td.pr{text-align:right;font-weight:800;color:var(--rb-navy);font-size:2.4rem;font-variant-numeric:tabular-nums;padding:22px 18px;border-top:1px solid var(--rb-line);white-space:nowrap;letter-spacing:-.03em;width:22%}
.rb-faretbl td.pr.free{color:var(--rb-blue)}
.rb-fare-routelb+.rb-faretbl{border-radius:0 0 12px 12px}
.rb-fare-noticebox{background:var(--rb-mist);border:1px solid var(--rb-line);border-radius:6px;padding:16px 20px;margin:18px 0 0}
.rb-fare-notice-hd{font-weight:800;color:var(--rb-navy);font-size:.92rem;margin-bottom:8px}
.rb-fare-notes{margin:0;padding:0;list-style:none}
.rb-fare-notes li{position:relative;padding-left:16px;margin-bottom:8px;font-size:.96rem;color:var(--rb-ink);line-height:1.82}
.rb-fare-notes li:before{content:"※";position:absolute;left:0;top:0;color:var(--rb-ink3);font-size:.78rem}
.rb-fare-notes li:last-child{margin-bottom:0}
@media(max-width:820px){.rb-tt-patterns{grid-template-columns:1fr}}
@media(max-width:600px){
  .rb-faretbl tbody th,.rb-faretbl td.ft,.rb-faretbl td.pr,.rb-faretbl thead th{padding-left:11px;padding-right:11px}
  .rb-faretbl tbody th{font-size:1.36rem}.rb-faretbl td.pr{font-size:1.88rem}.rb-faretbl thead th{font-size:1.15rem}.rb-faretbl td.ft{font-size:1.04rem}.rb-fare-mc .mc-pr{font-size:2.75rem}.rb-fare-mc .mc-lb{font-size:1.2rem}
  .rb-faretbl td.ft{font-size:.88rem}.rb-leg-pt b{font-size:1.05rem}.rb-leg-pt{min-width:54px}
}

/* ヒーローstat: 連結バンド設計の名残（コンテナ背景）を除去し、独立グラスカードのみに */
.rb-vhero-content .rb-hero-stats{background:none;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0;overflow:visible}
.rb-vhero-content .rb-hero-stats .s+.s:before{display:none}

/* 主要運賃カード */
.rb-fare-mainlb,.rb-fare-alllb{font-weight:800;color:var(--rb-navy);font-size:.92rem;margin:0 0 12px}
.rb-fare-alllb{margin:26px auto 12px;padding-top:18px;border-top:1px solid var(--rb-line);max-width:1200px}
.rb-fare-main{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:0 auto 4px;max-width:1200px}
.rb-fare-mc{border:1px solid var(--rb-line);border-radius:14px;padding:36px 20px;background:#fff;box-shadow:var(--rb-shadow-sm);text-align:center;transition:transform .15s,box-shadow .15s}
.rb-fare-mc:hover{transform:translateY(-2px);box-shadow:var(--rb-shadow)}
.rb-fare-mc .mc-lb{font-size:1.32rem;font-weight:800;color:var(--rb-navy);letter-spacing:.04em}
.rb-fare-mc .mc-pr{font-size:3.5rem;font-weight:800;color:var(--rb-blue);font-variant-numeric:tabular-nums;line-height:1;margin:14px 0 9px;letter-spacing:-.03em}
.rb-fare-mc .mc-sub{font-size:1.05rem;color:var(--rb-ink3);margin-top:8px}
@media(max-width:620px){.rb-fare-main{grid-template-columns:1fr 1fr}}

/* ===== ナビ強化: エリアdrop-down ＋ ページTOPへ ===== */
.rb-nav-dd{position:relative;display:inline-flex;align-items:center}
.rb-nav-ddt{appearance:none;border:0;background:none;font:inherit;font-weight:500;color:var(--rb-ink);cursor:pointer;display:inline-flex;align-items:center;gap:3px;padding:4px 0}
.rb-nav-ddt svg{width:13px;height:13px;fill:currentColor;transition:transform .2s}
.rb-nav-dd:hover .rb-nav-ddt,.rb-nav-dd:focus-within .rb-nav-ddt{color:var(--rb-navy)}
.rb-nav-dd:hover .rb-nav-ddt svg,.rb-nav-dd:focus-within .rb-nav-ddt svg{transform:rotate(180deg)}
.rb-nav-ddm{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(8px);min-width:200px;background:#fff;border:1px solid var(--rb-line);border-radius:5px;box-shadow:0 14px 34px rgba(6,32,48,.16);padding:8px;opacity:0;visibility:hidden;transition:opacity .2s,transform .2s,visibility .2s;z-index:55}
.rb-nav-ddm:before{content:"";position:absolute;top:-12px;left:0;right:0;height:12px}
.rb-nav-dd:hover .rb-nav-ddm,.rb-nav-dd:focus-within .rb-nav-ddm{opacity:1;visibility:visible;transform:translateX(-50%) translateY(2px)}
.rb-nav-ddm a{display:block;padding:10px 12px;border-radius:4px;font-size:.85rem;color:var(--rb-ink);font-weight:600}
.rb-nav-ddm a:after{display:none!important}
.rb-nav-ddm a:hover{background:var(--rb-mist);color:var(--rb-navy)}

.rb-totop{position:fixed;right:20px;bottom:20px;z-index:70;width:48px;height:48px;border-radius:50%;border:0;background:var(--rb-navy);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(6,32,48,.32);opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .25s,transform .25s,visibility .25s,background .2s}
.rb-totop.show{opacity:1;visibility:visible;transform:none}
.rb-totop svg{width:22px;height:22px;fill:#fff}
.rb-totop:hover{background:var(--rb-blue)}
@media(max-width:560px){.rb-totop{right:14px;bottom:14px;width:44px;height:44px}}

/* 浮動ナビ: ガイド一覧へ / TOPへ */
.rb-floatnav{position:fixed;right:20px;bottom:20px;z-index:70;display:flex;flex-direction:column;align-items:flex-end;gap:10px;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .25s,transform .25s,visibility .25s}
.rb-floatnav.show{opacity:1;visibility:visible;transform:none}
.rb-fn-guide{display:inline-flex;align-items:center;gap:8px;border:0;cursor:pointer;background:var(--rb-navy);color:#fff;font-weight:700;font-size:.84rem;padding:12px 18px;border-radius:999px;box-shadow:0 10px 26px rgba(6,32,48,.42)}
.rb-fn-guide svg{width:18px;height:18px;fill:#fff}
.rb-fn-map{display:inline-flex;align-items:center;gap:8px;border:0;cursor:pointer;background:var(--rb-blue);color:#fff;font-weight:700;font-size:.84rem;padding:12px 18px;border-radius:999px;box-shadow:0 10px 26px rgba(10,92,176,.42)}
.rb-fn-map svg{width:18px;height:18px;fill:#fff}
.rb-fn-map:hover{background:var(--rb-navy);color:#fff}
.rb-fn-guide:hover{background:var(--rb-blue);color:#fff}
.rb-fn-top{width:48px;height:48px;border-radius:50%;border:0;background:var(--rb-navy);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(6,32,48,.32);align-self:flex-end}
.rb-fn-top svg{width:22px;height:22px;fill:#fff}
.rb-fn-top:hover{background:var(--rb-blue)}
@media(max-width:560px){.rb-floatnav{right:14px;bottom:14px}.rb-fn-top{width:44px;height:44px}.rb-fn-guide,.rb-fn-map{font-size:.78rem;padding:9px 14px}}

/* === 航路サムネスライダー === */
.rb-thumbslider{margin-top:30px}
.rb-ts-head{display:flex;align-items:baseline;gap:12px;margin:0 0 14px}
.rb-ts-head h3{margin:0;font-size:1.12rem;color:var(--rb-navy)}
.rb-ts-area{font-size:.78rem;font-weight:700;color:#fff;background:var(--rb-blue);padding:3px 11px;border-radius:999px}
.rb-ts-wrap{position:relative}
.rb-ts-viewport{overflow-x:auto;scroll-behavior:smooth;scroll-snap-type:x mandatory;-ms-overflow-style:none;scrollbar-width:none}
.rb-ts-viewport::-webkit-scrollbar{display:none}
.rb-ts-track{display:flex;gap:14px;padding:2px}
.rb-ts-item{position:relative;flex:0 0 auto;width:clamp(240px,42vw,320px);aspect-ratio:4/3;border:0;padding:0;margin:0;border-radius:6px;overflow:hidden;cursor:pointer;background:var(--rb-navy);scroll-snap-align:start;box-shadow:0 6px 18px rgba(12,63,94,.16)}
.rb-ts-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s ease}
.rb-ts-item:hover img,.rb-ts-item:focus-visible img{transform:scale(1.06)}
.rb-ts-item:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 52%,rgba(8,38,56,.8));z-index:1}
.rb-ts-ttl{position:absolute;right:13px;bottom:11px;z-index:2;color:#fff;font-weight:700;font-size:.95rem;letter-spacing:.02em;text-shadow:0 1px 8px rgba(0,0,0,.45)}
.rb-ts-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:6;width:44px;height:44px;border-radius:50%;border:0;cursor:pointer;background:rgba(12,40,60,.4);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;transition:background .2s,opacity .2s;opacity:.92}
.rb-ts-arrow svg{width:22px;height:22px;fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.rb-ts-arrow:hover{background:rgba(12,40,60,.66);opacity:1}
.rb-ts-prev{left:8px}.rb-ts-next{right:8px}
.rb-ts-arrow[hidden]{display:none}
.rb-ts-note{margin:12px 0 0;font-size:.8rem;color:var(--rb-ink3)}
@media(max-width:560px){.rb-ts-arrow{width:38px;height:38px}.rb-ts-ttl{font-size:.86rem;right:10px;bottom:9px}}

/* === 久米島スポットマップ === */
.rb-spot-filter{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 18px}
.rb-spot-fbtn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--rb-line);background:#fff;color:var(--rb-ink);font-weight:700;font-size:.88rem;padding:8px 15px;border-radius:999px;cursor:pointer;transition:all .18s}
.rb-spot-fbtn .dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}
.rb-spot-fbtn:hover{border-color:var(--rb-blue);color:var(--rb-blue)}
.rb-spot-fbtn.is-on{background:var(--rb-navy);border-color:var(--rb-navy);color:#fff}
.rb-spot-mapwrap{border-radius:18px;overflow:hidden;box-shadow:0 10px 30px rgba(12,63,94,.16);border:1px solid var(--rb-line)}
.rb-spot-map{height:clamp(360px,52vh,520px);width:100%;background:#dfe9f0;z-index:1}
.rb-spot-legend{display:flex;flex-wrap:wrap;gap:14px;margin:14px 2px 0;font-size:.78rem;color:var(--rb-ink2)}
.rb-spot-leg{display:inline-flex;align-items:center;gap:6px}
.rb-spot-leg .dot{width:10px;height:10px;border-radius:50%}



.rb-spot-subh{margin:36px 0 16px;font-size:1.16rem;color:var(--rb-navy);padding-left:13px;border-left:4px solid var(--rb-blue)}
.rb-spot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:18px}
.rb-spot-card{background:#fff;border:1px solid var(--rb-line);border-radius:16px;overflow:hidden;box-shadow:var(--rb-shadow-sm);display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}
.rb-spot-card:hover{transform:translateY(-3px);box-shadow:var(--rb-shadow)}
.rb-spot-media{position:relative;aspect-ratio:4/3;overflow:hidden}
.rb-spot-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s}
.rb-spot-card:hover .rb-spot-media img{transform:scale(1.06)}
.rb-spot-cat{position:absolute;left:11px;top:11px;color:#fff;font-size:.72rem;font-weight:700;padding:3px 10px;border-radius:999px}
.rb-spot-body{padding:15px 16px 17px;display:flex;flex-direction:column;gap:7px}
.rb-spot-body h4{margin:0;font-size:1.06rem;color:var(--rb-navy)}
.rb-spot-ph{margin:0;font-size:.82rem;font-weight:700;color:var(--rb-blue)}
.rb-spot-desc{margin:0;font-size:.86rem;line-height:1.72;color:var(--rb-ink2)}
.rb-spot-tags{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:3px 0 0;padding:0}
.rb-spot-tags li{font-size:.72rem;color:var(--rb-ink3);background:var(--rb-mist);border:1px solid var(--rb-line);padding:2px 9px;border-radius:999px}
.rb-spot-glink{margin-top:6px;font-size:.8rem;font-weight:700;color:var(--rb-blue);align-self:flex-start}
.rb-spot-areas{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.rb-spot-area-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:160px;border-radius:16px;text-align:center;padding:24px}
.rb-spot-area-card.is-pending{background:repeating-linear-gradient(45deg,#fff,#fff 12px,var(--rb-mist) 12px,var(--rb-mist) 24px);border:1.5px dashed var(--rb-line);color:var(--rb-ink3)}
.rb-spot-area-card svg{width:30px;height:30px;color:var(--rb-sky);opacity:.8}
.rb-spot-area-ttl{font-weight:800;color:var(--rb-navy);font-size:.98rem}
.rb-spot-area-note{font-size:.78rem;color:var(--rb-ink3)}
@media(max-width:560px){.rb-spot-map{height:340px}.rb-spot-subh{font-size:1.05rem}}

/* 航路スライダー エリアタブ */
.rb-ts-tabs{display:inline-flex;gap:0;background:#fff;padding:5px;border-radius:12px;border:2px solid var(--rb-navy);box-shadow:0 4px 14px rgba(16,42,107,.12)}
.rb-ts-tab{border:0;background:transparent;cursor:pointer;font-weight:800;font-size:1rem;color:var(--rb-navy);padding:11px 26px;border-radius:8px;transition:all .18s;letter-spacing:.02em}
.rb-ts-tab:hover{background:var(--rb-mist)}
.rb-ts-tab.is-on{background:var(--rb-navy);color:#fff;box-shadow:0 3px 10px rgba(16,42,107,.3)}
.rb-ts-panel{display:none}
.rb-ts-panel.is-on{display:block}
@media(max-width:560px){.rb-ts-tab{font-size:.78rem;padding:6px 12px}}

/* === Instagram 大型表示（刷新） === */
.rb-insta-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.rb-insta-handle{display:inline-flex;align-items:center;gap:12px;text-decoration:none}
.rb-insta-handle svg{width:32px;height:32px;fill:#c13584;flex:0 0 auto}
.rb-insta-handle .h-name{font-weight:800;color:var(--rb-navy);font-size:1.2rem;line-height:1.15}
.rb-insta-handle .h-sub{display:block;color:var(--rb-ink3);font-weight:600;font-size:.8rem;margin-top:3px}
@media(max-width:560px){.rb-insta-handle .h-name{font-size:1.05rem}}
.rb-insta-wrap{margin-top:2px}
.rb-insta-tile{position:relative;flex:0 0 auto;width:clamp(240px,40vw,300px);aspect-ratio:1/1;border-radius:6px;overflow:hidden;display:block;background:var(--rb-navy);scroll-snap-align:start;box-shadow:0 6px 18px rgba(12,63,94,.16)}
.rb-insta-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s ease}
.rb-insta-tile:hover img{transform:scale(1.06)}
.rb-insta-ov{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(12,40,60,0);opacity:0;transition:background .25s,opacity .25s}
.rb-insta-ov svg{width:40px;height:40px;fill:#fff}
.rb-insta-tile:hover .rb-insta-ov,.rb-insta-tile:focus-visible .rb-insta-ov{background:rgba(12,40,60,.36);opacity:1}
@media(max-width:560px){.rb-insta-handle .h-name{font-size:1.05rem}}

/* futuretrain.jp style: セクションラベル横線 */
.rb-sechd .en{position:relative;padding-left:36px}
.rb-sechd .en::before{content:'';position:absolute;left:0;top:50%;width:28px;height:1px;background:var(--rb-gold);transform:translateY(-50%)}

/* ---- seasonal futuretrain style ---- */
.rb-season-ft{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--rb-line);border-radius:6px;overflow:hidden}
.rb-season-item{display:flex;flex-direction:column;border-right:1px solid var(--rb-line)}
.rb-season-item:last-child{border-right:0}
.rb-season-img{height:240px;background-size:cover;background-position:center;position:relative;flex-shrink:0}
.rb-season-img::after{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,transparent 40%,rgba(8,30,46,.65))}
.rb-season-label{position:absolute;bottom:0;left:0;right:0;z-index:1;padding:16px 20px;display:flex;align-items:flex-end;gap:10px}
.rb-season-num{font-size:2rem;font-weight:800;color:rgba(255,255,255,.35);line-height:1;letter-spacing:-.03em}
.rb-season-ttl{font-size:1.1rem;font-weight:700;color:#fff;display:flex;flex-direction:column;line-height:1.2}
.rb-season-ttl small{font-size:.7rem;font-weight:400;opacity:.85;margin-top:2px}
.rb-season-list{list-style:none;padding:20px 20px 22px;margin:0;flex:1;background:#fff}
.rb-season-list li{font-size:1rem;color:var(--rb-ink2);padding:9px 0;border-bottom:1px solid var(--rb-line);line-height:1.78}
.rb-season-list li:last-child{border-bottom:0}
@media(max-width:760px){.rb-season-ft{grid-template-columns:1fr 1fr}.rb-season-item:nth-child(2){border-right:0}.rb-season-item:nth-child(1),.rb-season-item:nth-child(2){border-bottom:1px solid var(--rb-line)}}
@media(max-width:480px){.rb-season-ft{grid-template-columns:1fr}.rb-season-item{border-right:0;border-bottom:1px solid var(--rb-line)}}

/* ---- boarding guide futuretrain style ---- */
.rb-guide-ft{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;position:relative}
.rb-guide-step{display:flex;flex-direction:column;padding:24px 20px;background:#fff;border:1px solid var(--rb-line);border-radius:14px;box-shadow:var(--rb-shadow-sm);transition:box-shadow .2s,transform .2s}
.rb-guide-step:hover{box-shadow:var(--rb-shadow);transform:translateY(-2px)}
.rb-guide-num-wrap{display:flex;align-items:center;margin-bottom:20px}
.rb-guide-num{width:50px;height:50px;border-radius:50%;border:0;color:#fff;font-weight:800;font-size:1.1rem;display:flex;align-items:center;justify-content:center;letter-spacing:-.02em;flex-shrink:0;background:linear-gradient(135deg,var(--rb-navy),var(--rb-blue));position:relative;z-index:1;box-shadow:0 4px 12px rgba(16,42,107,.28)}
.rb-guide-line{display:none}
.rb-guide-step.last .rb-guide-line{display:none}
.rb-guide-body h3{font-size:1.3rem;font-weight:800;color:var(--rb-navy);margin:0 0 11px;letter-spacing:-.01em}
.rb-guide-body p{font-size:1.02rem;color:var(--rb-ink2);line-height:1.8;padding-right:0}
@media(max-width:760px){.rb-guide-ft{grid-template-columns:1fr 1fr;gap:32px 24px}.rb-guide-line{display:none}}
@media(max-width:480px){.rb-guide-ft{grid-template-columns:1fr}.rb-guide-step{flex-direction:row;gap:16px}.rb-guide-num-wrap{flex-direction:column;margin-bottom:0;align-items:center;min-width:52px}.rb-guide-line{width:2px;height:40px;background:linear-gradient(to bottom,var(--rb-navy),var(--rb-sky));margin:4px 0 0}}

/* ---- gallery / news strip ---- */
.rb-news-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}
.rb-news-card{border:1px solid var(--rb-line);border-radius:6px;overflow:hidden;background:#fff;box-shadow:var(--rb-shadow-sm);transition:box-shadow .2s,transform .2s}
.rb-news-card:hover{box-shadow:var(--rb-shadow);transform:translateY(-3px)}
.rb-news-card-img{display:block;width:100%;aspect-ratio:1/1;position:relative;overflow:hidden;border:0;padding:0;background:var(--rb-mist);cursor:pointer}
.rb-news-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .45s}
.rb-news-card-img:hover img{transform:scale(1.06)}
.rb-news-card-tag{position:absolute;top:9px;left:9px;background:rgba(8,30,46,.72);color:#fff;font-size:.58rem;letter-spacing:.1em;padding:3px 7px;border-radius:3px;font-weight:600;text-transform:uppercase}
.rb-news-card-body{padding:10px 12px 12px}
.rb-news-card-cap{font-size:.84rem;color:var(--rb-ink);font-weight:600;margin:0;line-height:1.45}
.rb-news-strip-foot{text-align:right;margin-top:16px}
.rb-view-more{font-size:.88rem;color:var(--rb-blue);text-decoration:none;letter-spacing:.04em}
.rb-view-more:hover{text-decoration:underline}
/* instagram cta */
.rb-insta-cta{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.rb-insta-link{display:inline-flex;align-items:center;gap:10px;font-size:1.05rem;font-weight:700;color:var(--rb-navy);text-decoration:none;border:1.5px solid var(--rb-line);border-radius:5px;padding:14px 22px;transition:border-color .18s,color .18s}
.rb-insta-link:hover{border-color:var(--rb-blue);color:var(--rb-blue)}
.rb-insta-arrow{margin-left:4px;font-size:.9rem;transition:transform .18s}
.rb-insta-link:hover .rb-insta-arrow{transform:translateX(4px)}
.rb-insta-note{font-size:.82rem;color:var(--rb-ink3);margin:0}

/* ---- modal hero 写真バリエーション ---- */
.rb-qv-hero.g-naha{background:url(../media/naha_poster.jpg) center/cover;position:relative}
.rb-qv-hero.g-naha::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(8,30,46,.72),rgba(28,135,201,.45))}
.rb-qv-hero.g-naha .inner{position:relative;z-index:2}
.rb-qv-hero.g-kane{background:url(../media/kj_coast.webp) center/cover;position:relative}
.rb-qv-hero.g-kane::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(8,30,46,.68),rgba(28,135,201,.38))}
.rb-qv-hero.g-kane .inner{position:relative;z-index:2}
.rb-qv-hero.g-toku{background:url(../media/motobu_sunset.webp) center/cover;position:relative}
.rb-qv-hero.g-toku::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(8,30,46,.65),rgba(44,154,208,.4))}
.rb-qv-hero.g-toku .inner{position:relative;z-index:2}
.rb-qv-hero.g1{background:linear-gradient(135deg,var(--rb-navy),var(--rb-blue) 70%,#5bb3e0)}
.rb-qv-hero.g-vip{background:linear-gradient(135deg,#2a1a08,#7a5c20 60%,#b6a264)}
/* wave は ::after の前に配置 */
.rb-qv-hero:after{z-index:0}
.rb-qv-hero .wave{z-index:3}

/* ---- modal body / qv-grid 改善 ---- */
.rb-qv-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.rb-qv-grid .it{background:var(--rb-mist);border:1px solid var(--rb-line);border-radius:5px;padding:12px 14px}
.rb-qv-grid .it .k{font-size:.7rem;letter-spacing:.06em;color:var(--rb-ink3);font-weight:700;text-transform:uppercase;margin-bottom:4px}
.rb-qv-grid .it .v{font-size:1.05rem;font-weight:700;color:var(--rb-navy);line-height:1.2}
.rb-qv-grid .it .v small{font-size:.5em;font-weight:400;color:var(--rb-ink2);margin-left:2px}
.rb-qv-grid .it .v.sm{font-size:.84rem;font-weight:500;color:var(--rb-ink);line-height:1.45}
.rb-qv-bd h3{font-size:1rem;font-weight:700;color:var(--rb-navy);margin:14px 0 8px;border-bottom:1px solid var(--rb-line);padding-bottom:8px}
.rb-qv-bd p{font-size:.9rem;color:var(--rb-ink);line-height:1.7;margin-bottom:10px}
.rb-qv-bd ul{padding-left:0;list-style:none;margin:0 0 12px}
.rb-qv-bd ul li{font-size:.88rem;color:var(--rb-ink);padding:5px 0 5px 16px;position:relative;border-bottom:1px solid var(--rb-line)}
.rb-qv-bd ul li:last-child{border-bottom:0}
.rb-qv-bd ul li::before{content:'';position:absolute;left:0;top:13px;width:6px;height:6px;border-radius:50%;background:var(--rb-blue)}
.rb-qv-map{margin-top:12px;border-radius:5px;overflow:hidden;height:180px;border:1px solid var(--rb-line)}
.rb-qv-list .row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--rb-line)}
.rb-qv-list .row:last-child{border-bottom:0}

/* ---- spotmap popup ---- */
.kj-pop{min-width:168px;max-width:208px;font-family:var(--rb-font);border:1px solid var(--rb-line);border-radius:7px;overflow:hidden}
.kj-pop img{width:100%;height:72px;object-fit:cover;display:block;border-radius:0}
.kj-pop strong{display:block;font-size:.95rem;font-weight:700;color:var(--rb-navy);padding:7px 10px 2px}
.kj-pop-cat{display:block;font-size:.7rem;padding:0 10px 4px;letter-spacing:.04em;font-weight:600}
.kj-pop a{display:block;font-size:.74rem;color:var(--rb-blue);padding:5px 10px 8px;text-decoration:none;border-top:1px solid var(--rb-line)}
.kj-pop a:hover{text-decoration:underline}

/* ---- vstrip responsive（動画サムネイル） ---- */
@media(max-width:880px){.rb-vstrip-track{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.rb-vstrip-track{grid-template-columns:1fr 1fr;gap:8px}}

/* vstrip ナビ非表示（grid表示のため不要） */
.rb-vstrip-nav{display:none}

/* スポットマップ 写真ピン */
.kj-pin{background:none;border:none}
.kj-pin-ring{position:absolute;left:50%;top:0;transform:translateX(-50%);width:36px;height:36px;border-radius:50%;border:3px solid #1c87c9;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.3);overflow:hidden;box-sizing:border-box}
.kj-pin-img{display:block;width:100%;height:100%;background-size:cover;background-position:center;border-radius:50%}
.kj-pin-noimg{background:#cfd8dc}
.kj-pin-tip{position:absolute;left:50%;top:33px;transform:translateX(-50%) rotate(45deg);width:11px;height:11px;border-radius:0 0 2px 0;box-shadow:1px 1px 3px rgba(0,0,0,.22);z-index:-1}
.kj-pin:hover .kj-pin-ring{transform:translateX(-50%) scale(1.08);transition:transform .12s ease}
.leaflet-marker-icon.kj-pin{transition:transform .12s ease}

/* 公式Instagram フォローカード（FUTURE TRAIN風） */
.rb-insta-followcard{display:flex;align-items:center;gap:16px;text-decoration:none;background:#fff;border:1px solid var(--rb-line);border-radius:12px;padding:18px 20px;box-shadow:var(--rb-shadow-sm);transition:box-shadow .2s,transform .2s;max-width:560px}
.rb-insta-followcard:hover{box-shadow:var(--rb-shadow);transform:translateY(-2px)}
.rb-insta-fc-icon{flex:0 0 auto;width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888)}
.rb-insta-fc-icon svg{width:30px;height:30px;fill:#fff}
.rb-insta-fc-body{flex:1;min-width:0}
.rb-insta-fc-handle{display:block;font-weight:800;color:var(--rb-navy);font-size:1.08rem;line-height:1.2}
.rb-insta-fc-sub{display:block;color:var(--rb-ink3);font-weight:600;font-size:.8rem;margin-top:3px}
.rb-insta-fc-btn{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:.86rem;color:#fff;padding:9px 16px;border-radius:999px;background:linear-gradient(45deg,#f09433,#dc2743,#bc1888);box-shadow:0 4px 12px rgba(220,39,67,.28)}
.rb-insta-fc-arrow{transition:transform .18s}
.rb-insta-followcard:hover .rb-insta-fc-arrow{transform:translateX(3px)}
@media(max-width:520px){.rb-insta-followcard{gap:12px;padding:15px 16px}.rb-insta-fc-btn{padding:8px 13px;font-size:.8rem}.rb-insta-fc-handle{font-size:1rem}}

/* A VILLAGE型 オーバーレイ予約モーダル */
body.rb-modal-open{overflow:hidden}
.rb-bookmodal{position:fixed;inset:0;z-index:9999;display:none}
.rb-bookmodal.is-open{display:block}
.rb-bookmodal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55);animation:rbBookFade .2s ease}
@keyframes rbBookFade{from{opacity:0}to{opacity:1}}
.rb-bookmodal-panel{position:absolute;inset:0;width:100%;height:100%;background:rgba(10,28,42,.32);display:flex;flex-direction:column;overflow:hidden;animation:rbBookFade .24s ease}
@keyframes rbBookPop{from{opacity:0}to{opacity:1}}
.rb-bookmodal-bar{flex:0 0 auto;display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.14);background:rgba(12,63,94,.82);backdrop-filter:blur(6px)}
.rb-bookmodal-title{font-weight:700;font-size:.95rem;color:#fff;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rb-bookmodal-ext{font-size:.78rem;color:rgba(255,255,255,.85);text-decoration:none;border:1px solid rgba(255,255,255,.4);border-radius:5px;padding:4px 10px;transition:background .15s}
.rb-bookmodal-ext:hover{background:rgba(255,255,255,.14)}
.rb-bookmodal-close{flex:0 0 auto;width:32px;height:32px;border:0;background:rgba(255,255,255,.14);color:#fff;font-size:1.3rem;line-height:1;border-radius:7px;cursor:pointer;transition:background .15s}
.rb-bookmodal-close:hover{background:rgba(255,255,255,.28)}
.rb-bookmodal-frame{position:relative;flex:1;min-height:0;display:flex;justify-content:center;background:transparent}
.rb-bookmodal-iframe{width:min(1000px,100%);height:100%;border:0;display:block;background:#fff;box-shadow:0 0 60px rgba(0,0,0,.28)}
.rb-bookmodal-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:#fff;font-size:.9rem;pointer-events:none}
.rb-bookmodal-spin{width:34px;height:34px;border:3px solid var(--rb-line);border-top-color:var(--rb-blue);border-radius:50%;animation:rbBookSpin .8s linear infinite}
@keyframes rbBookSpin{to{transform:rotate(360deg)}}
@media(max-width:640px){
  .rb-bookmodal-iframe{width:100%;box-shadow:none}
  .rb-bookmodal-panel{background:rgba(10,28,42,.2)}
}

/* QVモーダルは .rb-operator 外＝CSS変数が解決しないため hex で明示（ANA配色踏襲） */
.rb-qv-hero.g1{background:linear-gradient(135deg,#0a1f54 0%,#102a6b 45%,#0a5cb0 100%)!important}
.rb-qv-hero.g2{background:linear-gradient(135deg,#0a1f54,#0a5cb0 60%,#3d8fd6)!important}
.rb-qv-hero.g3{background:linear-gradient(135deg,#102a6b,#0a5cb0 60%,#5ba3e0)!important}
.rb-qv-hero.g-vip{background:linear-gradient(135deg,#3a2c0a,#a8873a 60%,#c9a84c)!important}
.rb-qv-hero{background:linear-gradient(135deg,#0a1f54,#102a6b 72%,#0a5cb0)}
.rb-qv-hero h2{color:#fff!important;text-shadow:0 2px 8px rgba(0,0,0,.3)}
.rb-qv-hero .en{color:#c9a84c!important}
/* 割引モーダルのアクセント */
.rb-qv-modal .rb-qv-body ul li::marker{color:#0a5cb0}

/* 港ピン（発着港・大きめ＋錨アイコン） */
.kj-pin-port .kj-pin-ring.kj-pin-portring{width:46px;height:46px;border-width:4px;box-shadow:0 3px 8px rgba(16,42,107,.45)}
.kj-pin-anchor{position:absolute;top:-7px;left:50%;transform:translateX(-50%);width:22px;height:22px;border-radius:50%;background:#102a6b;display:flex;align-items:center;justify-content:center;border:2px solid #fff;z-index:3}
.kj-pin-anchor svg{width:13px;height:13px}
.kj-pin-port .kj-pin-tip{top:43px}
/* ポップアップ内 経路リンク */
.kj-pop-dir{display:block;font-size:.74rem;color:#fff!important;background:#102a6b;padding:6px 10px;text-decoration:none;text-align:center;border-radius:4px;margin-top:6px;font-weight:600}
.kj-pop-dir:hover{background:#0a5cb0}
.kj-pop-port strong{color:#102a6b}

/* 乗り場 Googleマップ */
.rb-ports-map{margin-top:36px}
.rb-ports-map-h{font-size:1.32rem;color:var(--rb-navy);font-weight:800;margin:0 0 16px}
.rb-ports-map-tabs{display:inline-flex;gap:0;background:#fff;padding:5px;border-radius:12px;border:2px solid var(--rb-navy);margin-bottom:16px;box-shadow:0 4px 14px rgba(16,42,107,.1)}
.rb-ports-map-tab{border:0;background:transparent;cursor:pointer;font-weight:800;font-size:1rem;color:var(--rb-navy);padding:10px 24px;border-radius:8px;transition:all .18s}
.rb-ports-map-tab:hover{background:var(--rb-mist)}
.rb-ports-map-tab.is-on{background:var(--rb-navy);color:#fff;box-shadow:0 3px 10px rgba(16,42,107,.3)}
.rb-ports-map-frame{position:relative;width:100%;height:440px;border-radius:14px;overflow:hidden;border:1px solid var(--rb-line);box-shadow:var(--rb-shadow-sm)}
.rb-ports-map-frame iframe{width:100%;height:100%;border:0;display:block}
.rb-ports-map-acts{display:flex;gap:12px;margin-top:16px;flex-wrap:wrap}
.rb-operator .rb-ports-map-btn,a.rb-ports-map-btn{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:1.05rem;color:#fff;background:var(--rb-navy);padding:15px 28px;border-radius:999px;text-decoration:none;transition:all .18s;box-shadow:0 8px 22px rgba(16,42,107,.32);letter-spacing:.02em}
.rb-operator .rb-ports-map-btn:hover,a.rb-ports-map-btn:hover{background:var(--rb-blue);color:#fff;transform:translateY(-1px);box-shadow:0 10px 26px rgba(10,92,176,.4)}
.rb-operator .rb-ports-map-btn svg,a.rb-ports-map-btn svg{stroke:#fff;color:#fff;width:18px;height:18px;flex:0 0 auto}
.rb-operator .rb-ports-map-btn.ghost,a.rb-ports-map-btn.ghost{background:#fff;color:var(--rb-navy);border:2px solid var(--rb-navy);box-shadow:none}
.rb-operator .rb-ports-map-btn.ghost:hover,a.rb-ports-map-btn.ghost:hover{background:var(--rb-navy);color:#fff;border-color:var(--rb-navy)}
.rb-operator .rb-ports-map-btn.ghost svg,a.rb-ports-map-btn.ghost svg{stroke:currentColor;color:inherit}
@media(max-width:560px){.rb-ports-map-tab{padding:9px 16px;font-size:.9rem}.rb-ports-map-frame{height:340px}.rb-operator .rb-ports-map-btn,a.rb-ports-map-btn{font-size:.98rem;padding:13px 20px}}

/* 浮動ナビ マップジャンプメニュー */
.rb-fn-menu{display:flex;flex-direction:column;gap:2px;background:#fff;border-radius:12px;padding:7px;box-shadow:0 12px 32px rgba(6,32,48,.28);border:1px solid var(--rb-line);margin-bottom:2px;min-width:190px}
.rb-fn-mitem{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:8px;font-weight:700;font-size:.92rem;color:var(--rb-navy);text-decoration:none;transition:background .15s}
.rb-fn-mitem:hover{background:var(--rb-mist);color:var(--rb-navy)}
.rb-fn-mdot{width:11px;height:11px;border-radius:50%;flex:0 0 auto}
.rb-fn-menu[hidden]{display:none}

/* QVギャラリーサムネ クリックで拡大 */
.rb-qv-gallery .g{cursor:zoom-in}
.rb-qv-gallery .g:hover img{transform:scale(1.05)}
.rb-qv-gallery .g img{transition:transform .35s}
.rb-qv-gallery .g span{background:rgba(8,28,46,.6);padding:3px 7px;border-radius:3px;font-size:.66rem!important;left:6px;bottom:6px;position:absolute}

/* 引用先クレジット（さらっとグレー） */
.rb-credit-line{text-align:right;font-size:.72rem;color:#a4b0b8;margin:8px 4px 0;font-weight:500}
.rb-credit-hero{position:absolute;right:14px;bottom:30px;z-index:4;font-size:.68rem;color:rgba(255,255,255,.6);font-weight:500;letter-spacing:.02em;pointer-events:none}
.rb-news-card .rb-news-card-cap + .rb-credit-mini{font-size:.66rem;color:#a4b0b8;margin-top:3px}

/* 蛍光ペン装飾 */
.rb-hl{background:linear-gradient(transparent 58%, #ffe89a 58%, #ffe89a 92%, transparent 92%);padding:0 1px;font-weight:700;color:inherit;border-radius:1px}
.rb-hl-blue{background:linear-gradient(transparent 58%, #bfe0ff 58%, #bfe0ff 92%, transparent 92%);padding:0 1px;font-weight:700}

/* 乗船ガイド IBM Carbonアイコン */
.rb-guide-ic{width:22px;height:22px;fill:var(--rb-blue);vertical-align:-3px;margin-right:9px;flex:0 0 auto}
.rb-guide-body h3{display:flex;align-items:center}

/* 3行カテゴリ別スライドギャラリー */
.rb-gal{display:flex;flex-direction:column;gap:30px}
.rb-gal-row{}
.rb-gal-rowhd{display:flex;align-items:baseline;gap:12px;margin-bottom:14px}
.rb-gal-rowja{font-size:1.32rem;font-weight:800;color:var(--rb-navy)}
.rb-gal-rowen{font-size:.78rem;font-weight:700;letter-spacing:.14em;color:var(--rb-gold-d)}
.rb-gal-track-wrap{position:relative}
.rb-gal-track{display:flex;gap:14px;overflow-x:auto;scroll-behavior:smooth;scroll-snap-type:x mandatory;padding:4px 2px 12px;-ms-overflow-style:none;scrollbar-width:thin}
.rb-gal-track::-webkit-scrollbar{height:7px}
.rb-gal-track::-webkit-scrollbar-thumb{background:var(--rb-line-2);border-radius:4px}
.rb-gal-card{flex:0 0 auto;width:230px;scroll-snap-align:start}
.rb-gal-img{display:block;width:100%;aspect-ratio:1/1;position:relative;overflow:hidden;border:0;padding:0;border-radius:10px;background:var(--rb-mist);cursor:zoom-in}
.rb-gal-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .4s}
.rb-gal-img:hover img{transform:scale(1.06)}
.rb-gal-tag{position:absolute;top:9px;left:9px;background:rgba(8,30,46,.72);color:#fff;font-size:.58rem;letter-spacing:.1em;padding:3px 7px;border-radius:3px;font-weight:600}
.rb-gal-cap{margin:8px 2px 0;font-size:.86rem;font-weight:600;color:var(--rb-ink);line-height:1.4}
.rb-gal-arrow{position:absolute;top:calc(50% - 16px);transform:translateY(-50%);z-index:3;width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,255,255,.96);color:var(--rb-navy);font-size:1.5rem;line-height:1;cursor:pointer;box-shadow:0 4px 14px rgba(6,32,48,.22);display:flex;align-items:center;justify-content:center;transition:background .15s,transform .15s}
.rb-gal-arrow:hover{background:var(--rb-navy);color:#fff}
.rb-gal-arrow.prev{left:-8px}
.rb-gal-arrow.next{right:-8px}
@media(max-width:560px){.rb-gal-card{width:160px}.rb-gal-arrow{display:none}.rb-gal-rowja{font-size:1.14rem}}

/* ギャラリー画像 提供元クレジット（観光協会等） */
.rb-gal-credit{position:absolute;right:8px;bottom:8px;background:rgba(8,30,46,.62);color:rgba(255,255,255,.92);font-size:.56rem;letter-spacing:.02em;padding:2px 7px;border-radius:3px;font-weight:600;backdrop-filter:blur(2px)}

/* ===== 団体予約 ポップアップバナー（HubSpot Overlay CTA準拠） ===== */
.rb-popcta{
  position:fixed;right:70px;bottom:20px;z-index:9901;
  width:min(560px,calc(100vw - 100px));
  background:#fff;border-radius:10px;
  box-shadow:rgba(0,0,0,.25) 0 4px 8px 0;
  overflow:hidden;
  /* 初期: 右下から飛び込むように */
  transform:translateY(30px);
  opacity:0;
  pointer-events:none;
  transition:
    transform .7s linear(
      0 0%,.006 1.15%,.022 2.3%,.091 5.1%,.18 7.6%,
      .508 16.3%,.607 19.3%,.698 22.4%,.773 25.4%,.835 28.5%,
      .887 31.8%,.928 35.3%,.96 39.1%,.979 43%,.989 47.3%,
      .994 52%,1.003 65.1%,1 100%
    ),
    opacity .35s ease;
}
.rb-popcta.is-open{
  opacity:1;
  transform:none;
  pointer-events:auto;
}
/* 閉じるボタン */
.rb-popcta-close{
  position:absolute;top:10px;right:12px;z-index:2;
  width:28px;height:28px;border:0;background:transparent;
  font-size:1.3rem;line-height:1;color:var(--rb-ink3);
  cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;
  transition:background .15s,color .15s;
}
.rb-popcta-close:hover{background:var(--rb-mist);color:var(--rb-navy)}
/* 2カラム */
.rb-popcta-inner{display:flex;align-items:stretch}
/* 左: 船サムネ（写真エリア 半分） */
.rb-popcta-thumb{
  flex:1 1 50%;min-width:0;overflow:hidden;background:var(--rb-navy);
}
.rb-popcta-thumb img{
  width:100%;height:100%;object-fit:cover;object-position:center;
  display:block;filter:brightness(.88) saturate(1.1);
}
/* 右: コンテンツ（テキストエリア 半分） */
.rb-popcta-body{
  flex:1 1 50%;min-width:0;padding:20px 22px 20px 22px;
  display:flex;flex-direction:column;justify-content:center;gap:12px;
}
/* A/B スライドコンテナ（1行タイトル想定・A/B高さ揃え） */
.rb-popcta-slide{position:relative;min-height:88px}
.rb-popcta-slot{
  position:absolute;top:0;left:0;right:0;
  opacity:0;transform:translateY(8px);
  transition:opacity .5s ease,transform .5s ease;
  pointer-events:none;
}
.rb-popcta-slot.is-on{
  opacity:1;transform:none;
  pointer-events:auto;
}
/* eyebrow */
.rb-popcta-eyebrow{
  font-size:.7rem;font-weight:800;letter-spacing:.18em;
  color:var(--rb-blue);margin:0 0 4px;
}
/* タイトル */
.rb-popcta-ttl{
  font-size:1rem;font-weight:800;color:var(--rb-navy);
  margin:0;line-height:1.3;letter-spacing:-.02em;white-space:nowrap;
}
/* サブコピー */
.rb-popcta-sub{
  font-size:.9rem;color:var(--rb-ink2);margin:4px 0 0;
  line-height:1.5;font-weight:500;
}
/* CTAボタン（幅いっぱい・中央・角丸pill） */
.rb-operator .rb-popcta-btn,a.rb-popcta-btn{
  display:flex;align-items:center;justify-content:center;gap:8px;
  background:var(--rb-navy);color:#fff;
  font-size:1rem;font-weight:800;
  padding:13px 18px;border-radius:999px;
  text-decoration:none;align-self:stretch;text-align:center;
  transition:background .2s,transform .15s;
  letter-spacing:.02em;
  box-shadow:0 4px 14px rgba(16,42,107,.28);
}
.rb-operator .rb-popcta-btn:hover,a.rb-popcta-btn:hover{
  background:var(--rb-blue);color:#fff;
}
/* 矢印アニメ */
.rb-popcta-arrow{
  display:inline-block;
  transition:transform .2s ease;
}
.rb-operator .rb-popcta-btn:hover .rb-popcta-arrow,
a.rb-popcta-btn:hover .rb-popcta-arrow{
  transform:translateX(4px);
}
/* ===== レスポンシブ ===== */
@media(max-width:560px){
  .rb-popcta{right:62px;bottom:10px;width:calc(100vw - 80px)}
  .rb-popcta-thumb{flex:1 1 44%}
  .rb-popcta-ttl{font-size:.92rem;line-height:1.25;white-space:normal}
  .rb-popcta-eyebrow{font-size:.62rem;letter-spacing:.12em}
  .rb-popcta-sub{font-size:.76rem;white-space:normal}
  .rb-popcta-slide{min-height:96px}
  .rb-popcta-body{flex:1 1 56%;padding:14px 13px 14px 13px;gap:9px}
  .rb-operator .rb-popcta-btn,a.rb-popcta-btn{font-size:.84rem;padding:11px 10px}
}

/* rb-hdr-sub → rb-sidedock に移行 */

/* ===== バナー 動画サムネ ===== */
.rb-popcta-thumb video{transition:filter .3s}

/* ===== バナー CTAボタン 赤 ===== */
.rb-operator .rb-popcta-btn--red,a.rb-popcta-btn--red{
  background:#d63031;
  box-shadow:0 4px 14px rgba(214,48,49,.36);
}
.rb-operator .rb-popcta-btn--red:hover,a.rb-popcta-btn--red:hover{
  background:#b71c1c;color:#fff;
}

/* ===== 右端固定サイドドック ===== */
.rb-sidedock{
  position:fixed;right:0;top:50%;transform:translateY(-50%) translateX(110%);
  z-index:9800;
  background:var(--rb-navy);
  border-radius:10px 0 0 10px;
  box-shadow:-4px 0 18px rgba(10,28,48,.32);
  display:flex;flex-direction:column;
  overflow:visible;
  opacity:0;pointer-events:none;
  transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .4s ease;
}
/* ヒーローを抜けたら右端にスライドイン（ヒーローのテキストに被らせない） */
.rb-sidedock.is-visible{
  transform:translateY(-50%) translateX(0);
  opacity:1;pointer-events:auto;
}
/* 各ボタン */
.rb-operator .rb-sd-btn,a.rb-sd-btn,.rb-sd-btn{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  width:56px;padding:14px 6px;
  border:0;background:transparent;cursor:pointer;
  color:#fff;font-size:.62rem;font-weight:700;letter-spacing:.04em;line-height:1.3;
  text-decoration:none;transition:background .18s;
  position:relative;
}
.rb-operator .rb-sd-btn:not(:last-child),a.rb-sd-btn:not(:last-child),.rb-sd-btn:not(:last-child){
  border-bottom:1px solid rgba(255,255,255,.18);
}
.rb-operator .rb-sd-btn:hover,a.rb-sd-btn:hover,.rb-sd-btn:hover{
  background:rgba(255,255,255,.14);color:#fff;
}
.rb-operator .rb-sd-btn[aria-expanded="true"],.rb-sd-btn[aria-expanded="true"]{
  background:rgba(255,255,255,.22);
}
.rb-sd-btn svg{width:22px;height:22px;flex:0 0 auto}
.rb-sd-btn span{display:block;writing-mode:horizontal-tb}
/* マップサブメニュー（ドック左に展開） */
.rb-sd-map-menu{
  position:absolute;right:calc(100% + 10px);top:50%;transform:translateY(-50%);
  background:#fff;border:1px solid var(--rb-line);border-radius:12px;padding:8px;
  box-shadow:0 12px 32px rgba(6,32,48,.22);min-width:188px;z-index:10;
  white-space:nowrap;
}
.rb-sd-map-menu[hidden]{display:none}
.rb-sd-map-item{
  display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:8px;
  font-weight:700;font-size:.92rem;color:var(--rb-navy);text-decoration:none;transition:background .15s;
}
.rb-sd-map-item:hover{background:var(--rb-mist)}
.rb-sd-dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}
/* スマホ: ドックを少し小さく */
@media(max-width:560px){
  .rb-sidedock{top:auto;bottom:90px;transform:translateX(110%);border-radius:10px 0 0 10px}
  .rb-sidedock.is-visible{transform:translateX(0)}
  .rb-operator .rb-sd-btn,a.rb-sd-btn,.rb-sd-btn{width:50px;padding:12px 4px;font-size:.58rem}
  .rb-sd-btn svg{width:20px;height:20px}
  .rb-sd-map-menu{right:calc(100% + 8px);top:auto;bottom:0;transform:none;font-size:.86rem}
}