*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#071510;color:#f6f2e8;font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif}a{text-decoration:none;color:inherit}button{font:inherit;cursor:pointer}img{display:block;max-width:100%}.preview{height:26px;line-height:26px;text-align:center;background:#bca06b;color:#102018;font-size:10px;letter-spacing:.08em}.rg-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:35px;min-height:82px;padding:12px 4.3%;background:rgba(6,20,15,.95);backdrop-filter:blur(18px);border-bottom:1px solid #ffffff20}.rg-logo{display:flex;align-items:center;gap:12px;min-width:230px;font-family:Georgia,serif;font-size:18px;letter-spacing:.12em}.rg-logo img{width:53px;height:53px;object-fit:contain;border-radius:3px}.rg-logo em{font-style:normal;color:#cbb481}.rg-nav{display:flex;justify-content:center;gap:24px;flex:1}.rg-nav a{white-space:nowrap;font-size:12px;color:#cdd0c8;transition:color .2s}.rg-nav a:hover,.rg-nav .current{color:#d5b777}.rg-cta{white-space:nowrap;border:1px solid #bfa472;padding:12px 17px;font-size:12px;color:#e9d7b2}.rg-cta span{margin-left:12px}.rg-menu{display:none;background:none;border:0;color:white;font-size:23px}.rg-mobile{position:sticky;top:82px;z-index:49;background:#10251c;padding:20px}.rg-mobile a{display:block;padding:12px;border-bottom:1px solid #ffffff25}.rg-intro{text-align:center;min-height:390px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:55px 20px 30px}.rg-kicker{font:11px Arial,sans-serif;letter-spacing:.32em;color:#c7aa73}.rg-intro h1{font:500 clamp(30px,4vw,60px)/1.55 'Noto Serif JP','Yu Mincho','Hiragino Mincho ProN',serif;letter-spacing:.08em;margin:20px 0}.rg-intro h1 i{font-style:normal;color:#d3b880}.rg-intro p{font-size:13px;line-height:2.2;color:#cbd0c6}.rg-scroll-note{margin-top:23px;color:#b6ad94;font:10px Arial;letter-spacing:.2em}.rg-scroll-note span{margin-left:14px}.rg-stage{position:relative;max-width:1600px;margin:auto;background:#122219}.rg-stage-image{height:min(66vw,640px);min-height:430px;position:relative;overflow:hidden}.rg-stage-image img{width:100%;height:100%;object-fit:cover;animation:rg-zoom 11s ease-in-out infinite alternate;transition:opacity .25s}.rg-stage-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,12,9,.83),rgba(3,12,9,.25) 65%),linear-gradient(0deg,#05140d99,transparent 40%)}@keyframes rg-zoom{to{transform:scale(1.055)}}.rg-stage-inner{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;padding:6% 7%;gap:20px}.rg-slide-copy{max-width:560px}.rg-slide-copy h2{font:500 clamp(32px,4.5vw,65px)/1.5 'Noto Serif JP','Yu Mincho','Hiragino Mincho ProN',serif;letter-spacing:.05em;margin:24px 0}.rg-slide-copy p{color:#e4e5dd;font-size:14px;line-height:2.2}.rg-slide-copy a{display:inline-block;border-bottom:1px solid #d0b17b;padding:14px 0;color:#e7d4ae;font-size:13px;margin-top:20px}.rg-slide-controls{display:flex;gap:18px;align-items:center;align-self:flex-end;color:#eee3cb}.rg-slide-controls button{background:#12271d88;border:1px solid #ffffff77;border-radius:50%;width:44px;height:44px;color:white}.rg-slide-controls button:hover{background:#c5aa76;color:#112015}.rg-slide-controls span{font:12px Arial;white-space:nowrap}.rg-slide-tabs{display:grid;grid-template-columns:repeat(4,1fr);background:#0d1c15}.rg-slide-tabs button{background:none;border:0;border-top:2px solid transparent;border-right:1px solid #ffffff18;color:#aeb7aa;text-align:left;padding:22px 30px;font:11px Arial;letter-spacing:.15em}.rg-slide-tabs button b{display:block;font-size:15px;margin-top:6px;letter-spacing:.14em}.rg-slide-tabs button.active{border-top-color:#d2b679;color:#e6d2a7;background:#182b20}.rg-message{text-align:center;padding:110px 24px}.rg-message p{font:500 clamp(24px,3.1vw,43px)/1.9 'Noto Serif JP','Yu Mincho','Hiragino Mincho ProN',serif;margin:24px auto}.rg-message em{font-style:normal;color:#d1b47b}.rg-message a,.rg-textlink{display:inline-block;border-bottom:1px solid #d1b47b;color:#e6d0a2;padding:13px 0;font-size:13px}.rg-price{background:#f2efe7;color:#15241b;padding:100px max(5%,calc((100% - 1250px)/2))}.rg-price-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:40px}.rg-price-heading h2{font:500 clamp(30px,3.6vw,52px)/1.5 'Noto Serif JP','Yu Mincho','Hiragino Mincho ProN',serif;margin:15px 0 0}.rg-price-heading p{font-size:13px;color:#66736a;line-height:2}.rg-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.rg-plan{padding:32px 25px;border:1px solid #c8c6bb;background:#faf9f5;min-height:250px;display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s}.rg-plan:hover{transform:translateY(-5px);box-shadow:0 15px 35px #14251a24}.rg-plan.featured{background:#18382b;color:#fff;border-color:#b69d69}.rg-plan>span:first-child{font:10px Arial;letter-spacing:.17em;color:#937b50}.rg-plan h3{font-size:16px;font-weight:500;margin:25px 0 12px}.rg-plan strong{font:500 clamp(25px,2.4vw,38px) Georgia,serif}.rg-plan strong small{font:12px Arial}.rg-plan p{font-size:12px;line-height:1.9;opacity:.75}.rg-plan-more{font-size:12px;margin-top:auto;padding-top:15px}.rg-price-note{font-size:11px;color:#67756b;margin:20px 0}.rg-price .rg-textlink{color:#18382b;border-color:#18382b}.rg-bottom{text-align:center;padding:105px 20px}.rg-bottom h2{font:500 clamp(28px,3.3vw,45px)/1.5 'Noto Serif JP','Yu Mincho','Hiragino Mincho ProN',serif;margin:25px auto}.rg-bottom p{font-size:13px;color:#b6c2b9}.rg-bottom>div{display:flex;gap:15px;justify-content:center;margin:30px 0}.rg-bottom a{border:1px solid #bca36e;padding:15px 24px;font-size:13px}.rg-bottom a:first-child{background:#bca36e;color:#15251c}.rg-bottom small{color:#9fa9a0}.rg-footer{border-top:1px solid #ffffff20;padding:30px 5%;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:#b7c1b6;letter-spacing:.04em}@media(max-width:1100px){.rg-nav{gap:12px}.rg-logo{min-width:auto}.rg-logo span{display:none}}@media(max-width:850px){.rg-header{min-height:72px}.rg-logo span{display:block;font-size:13px}.rg-nav,.rg-cta{display:none}.rg-menu{display:block;margin-left:auto}.rg-intro{min-height:320px}.rg-stage-inner{padding:6%}.rg-stage-image{min-height:510px}.rg-slide-controls{position:absolute;right:6%;bottom:35px}.rg-slide-tabs button{padding:15px 12px}.rg-slide-tabs button b{font-size:11px}.rg-price-heading{display:block}.rg-plans{grid-template-columns:1fr}.rg-plan{min-height:200px}.rg-footer{flex-direction:column}}@media(max-width:550px){.rg-intro h1{font-size:28px}.rg-stage-image{min-height:560px}.rg-stage-inner{align-items:flex-start;padding-top:80px}.rg-slide-copy h2{font-size:33px}.rg-slide-copy p{font-size:12px}.rg-slide-tabs button{font-size:9px}.rg-slide-tabs button b{font-size:10px}.rg-message{padding:75px 15px}.rg-price{padding:65px 5%}.rg-bottom>div{flex-direction:column}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Local production adjustments: reference files remain untouched. */
.rg-material-note{position:absolute;right:20px;top:16px;padding:5px 9px;background:#071510a8;color:#f6f2e8;font-size:10px;letter-spacing:.04em;z-index:2}
.rg-mobile[hidden]{display:none!important}.rg-mobile:not([hidden]){position:fixed;top:82px;left:0;right:0;max-height:calc(100svh - 82px);overflow:auto}
.rg-placeholder{padding:100px 7%;min-height:65vh}.rg-placeholder h1{margin-top:20px}.rg-placeholder p{color:#c0c5bd}.rg-placeholder #reservation{margin-top:65px;scroll-margin-top:100px}.rg-reservation{padding:16px 24px;border:1px solid #bca06b;background:#bca06b20;color:#d1bd92;cursor:not-allowed}
.rg-slide-tabs button{min-height:68px}.rg-slide-tabs button:focus-visible{outline-offset:-5px}
@media(max-width:850px){.rg-mobile:not([hidden]){top:78px;max-height:calc(100svh - 78px)}.rg-placeholder{padding:65px 6%}}
@media(max-width:550px){.preview{height:auto;min-height:26px;line-height:1.6;padding:5px 12px;font-size:8px}.rg-material-note{right:12px;top:12px;font-size:8px}.rg-kicker{letter-spacing:.22em}.rg-placeholder h1{font-size:30px}}

/* Keep the lounge photo area in place until a photo is available. */
.rg-stage-image img[hidden] {
  display: none;
}

.lounge-photo-placeholder {
  display: grid;
  place-items: center;
  background: #10231b;
  border: 1px solid #c6a87555;
  color: #c6a875;
  font-size: .85rem;
  letter-spacing: .1em;
}

.rg-intro-photo {
  position: relative;
  isolation: isolate;
  min-height: clamp(480px, 48vw, 680px);
  padding: 48px 7%;
}

.rg-intro-image {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.rg-intro-photo::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, #071510e6, #07151072 55%, #07151020);
}

.rg-intro-content {
  align-self: flex-start;
  text-align: left;
}

.rg-intro-cta {
  display: inline-block;
  margin-top: 20px;
  padding: 13px 22px;
  background: #c6a875;
  color: #071510;
  font-size: 13px;
  font-weight: 700;
}

.split-img:has(.rg-material-note) { position: relative; }
.page-hero.lesson-text-hero {
  height: auto;
  background: linear-gradient(125deg, #10231b, #071510);
}

@media (max-width: 600px) {
  .rg-intro-photo { min-height: 0; padding: 0 0 28px; }
  .rg-intro-image { position: static; width: 100%; height: auto; }
  .rg-intro-photo::after { display: none; }
  .rg-intro-content { padding: 28px 6% 0; }
  .rg-intro-content h1 { margin-block: 12px; }
}

.access-guide-image { min-width: 0; margin: 0; }
.access-guide-image img { width: 100%; height: auto; border-radius: 8px; }
.access-guide-image figcaption { margin-top: 8px; color: var(--muted); font-size: 12px; }

.rg-home-access {
  max-width: 1264px;
  margin-inline: auto;
  padding: clamp(40px, 6vw, 80px) clamp(20px, 4vw, 32px) 0;
}

.rg-home-access-row {
  display: grid;
  gap: clamp(16px, 2vw, 28px);
}

.rg-home-access-primary {
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 10px;
}

.rg-home-access-secondary {
  grid-template-columns: minmax(0, 7fr) minmax(0, 13fr);
  margin-top: clamp(16px, 2vw, 28px);
}

.rg-home-access figure {
  position: relative;
  margin: 0;
  overflow: hidden;
  border-radius: 10px;
}

.rg-home-access-primary figure {
  min-height: 330px;
  border-radius: 0;
}
.rg-home-access-secondary { grid-auto-rows: clamp(280px, 30vw, 380px); }

.rg-home-access figure img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 65%;
}

.rg-home-access figcaption {
  position: absolute;
  bottom: 12px;
  left: 12px;
  padding: 3px 10px;
  background: #071510e6;
  color: var(--cream);
  font-size: 12px;
}

.rg-home-access-info {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(24px, 4vw, 48px);
  background: linear-gradient(145deg, #142c22, #0c1d16);
}

.rg-home-access-info h2 {
  margin-bottom: 14px;
  font-size: clamp(22px, 2.7vw, 38px);
}

.rg-home-access-info p:not(.rg-kicker) {
  color: var(--muted);
  font-size: 14px;
}

.rg-home-map-link {
  display: block;
  padding: 10px 16px;
  border-radius: 7px;
  background: var(--gold);
  color: var(--bg);
  text-align: center;
  font-weight: 700;
}

.rg-home-access iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 260px;
  border: 1px solid var(--line);
  border-radius: 10px;
}

.rg-home-access-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
  background: #10231b;
  border: 1px solid var(--line);
  border-radius: 10px;
}

.rg-home-access-facts li {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px clamp(12px, 2vw, 24px);
}

.rg-home-access-facts li + li { border-left: 1px solid var(--line); }
.rg-home-access-facts svg { width: 26px; height: 26px; flex: 0 0 26px; color: var(--gold); }
.rg-home-access-facts strong, .rg-home-access-facts span { display: block; }
.rg-home-access-facts span { color: var(--muted); font-size: 13px; }

@media (max-width: 720px) {
  .rg-home-access-row { grid-template-columns: minmax(0, 1fr); }
  .rg-home-access-primary figure { min-height: 0; aspect-ratio: 16 / 9; }
  .rg-home-access-secondary { grid-auto-rows: 300px; }
  .rg-home-access-facts { grid-template-columns: minmax(0, 1fr); }
  .rg-home-access-facts li + li { border-left: 0; border-top: 1px solid var(--line); }
}

.rg-tier-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
main > .rg-tier-grid { padding-inline: clamp(20px, 5vw, 80px); margin-bottom: 24px; }
.rg-tier {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #10231b;
  color: var(--cream);
}
.rg-tier h2, .rg-tier h3 {
  margin: 0;
  padding: 12px 22px;
  background: #c6a875;
  color: #10231b;
  font: 500 clamp(20px, 2.5vw, 30px) Georgia, serif;
  letter-spacing: .09em;
}
.rg-tier-prime h2, .rg-tier-prime h3 { background: #173429; color: #f3eee3; }
.rg-tier img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.rg-tier-copy { padding: 18px 22px; }
.rg-tier-copy p:last-child { margin-bottom: 0; }
.rg-tier-price { margin-bottom: 8px; font: 500 clamp(25px, 3vw, 38px) Georgia, serif; }
.rg-tier-price small, .rg-tier-note { font: 12px Arial, sans-serif; }
.rg-tier-note { display: block; margin-bottom: 8px; color: var(--muted); }
.rg-tier-basic {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 20px;
}
.rg-tier-basic h2, .rg-tier-basic h3 { background: transparent; color: var(--gold); }

@media (max-width: 700px) {
  .rg-tier-grid { grid-template-columns: minmax(0, 1fr); }
  .rg-tier-basic { gap: 0; flex-direction: column; align-items: flex-start; }
  .rg-tier-basic .rg-tier-copy { padding-top: 0; }
}

.rg-price { background: #0b1d16; color: var(--cream); }
.rg-price-heading p, .rg-price-note { color: var(--muted); }
.rg-price .rg-textlink { color: var(--gold); border-color: var(--gold); }

.rg-tier-benefits {
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
  font-size: .9rem;
}
.rg-tier-benefits li { display: flex; align-items: flex-start; gap: 10px; }
.rg-tier-benefits li + li { margin-top: 8px; }
.rg-tier-benefits svg {
  width: 21px;
  height: 21px;
  margin-top: 2px;
  flex: 0 0 21px;
  color: var(--gold);
}
.rg-tier-intro { color: var(--muted); }

.rg-tier-basic {
  gap: 12px;
  background: #0d1e17;
}
.rg-tier-basic h2, .rg-tier-basic h3 {
  font-size: 18px;
  color: var(--muted);
}
.rg-tier-basic .rg-tier-copy { padding: 12px 18px; }
.rg-tier-basic .rg-tier-price { font-size: clamp(20px, 2.1vw, 28px); }
.rg-tier-basic .rg-tier-benefits {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 18px;
  margin-top: 6px;
  font-size: .8rem;
}
.rg-tier-basic .rg-tier-benefits li + li { margin-top: 0; }
.rg-tier-basic .rg-tier-benefits svg { width: 16px; height: 16px; flex-basis: 16px; }
.rg-tier-leaflet {
  grid-column: 1 / -1;
  display: grid;
  gap: 14px;
}
.rg-plan-guide {
  padding: clamp(16px, 3vw, 28px);
  background: #10231b;
  border: 1px solid var(--line);
  border-radius: 8px;
}
.rg-plan-guide h2, .rg-plan-guide h3 {
  margin: 0 0 20px;
  padding-inline-start: 12px;
  border-inline-start: 3px solid var(--gold);
  color: var(--cream);
  font-size: clamp(19px, 2vw, 24px);
}
.rg-plan-services, .rg-plan-flow {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.rg-plan-services { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.rg-plan-flow { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.rg-plan-services li, .rg-plan-flow li { text-align: center; }
.rg-plan-guide svg {
  display: block;
  width: 30px;
  height: 30px;
  margin: 0 auto 8px;
  color: var(--gold);
}
.rg-plan-guide strong { display: block; font-size: .9rem; }
.rg-plan-services span, .rg-plan-flow p {
  display: block;
  margin: 4px 0 0;
  color: var(--muted);
  font-size: .8rem;
  line-height: 1.65;
}
.rg-plan-flow li {
  padding: 12px;
  background: #0b1d16;
  border: 1px solid var(--line);
  border-radius: 6px;
}
.rg-plan-step-number {
  display: block;
  margin-bottom: 6px;
  color: var(--gold);
  font: 1rem Georgia, serif;
}
@media (max-width: 760px) {
  .rg-plan-services { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rg-plan-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 420px) {
  .rg-plan-services { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .rg-tier-basic { gap: 0; }
  .rg-tier-basic .rg-tier-copy { padding-top: 0; }
  .rg-tier-basic .rg-tier-benefits { flex-direction: column; }
}


.rg-stage-viewport { position: relative; }
.rg-slide-tab-hint {
  margin: 0;
  padding: 8px 16px;
  background: #0d1c15;
  color: var(--muted);
  font-size: 12px;
}
.rg-slide-tabs button { touch-action: manipulation; }

@media (max-width: 550px) {
  .rg-slide-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rg-slide-tabs button { min-height: 64px; padding-inline: 16px; }
  .rg-slide-tabs button b { font-size: 12px; }
}

.rg-home-programs {
  max-width: 1264px;
  margin-inline: auto;
  padding: clamp(52px, 8vw, 100px) clamp(18px, 4vw, 32px);
}

.rg-home-programs > h2 {
  margin: 12px 0 26px;
  font-size: clamp(24px, 3.2vw, 40px);
}

.rg-program-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  text-align: left;
}

.rg-program {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #10231b;
}

.rg-program-media {
  display: grid;
  place-items: center;
  overflow: hidden;
  aspect-ratio: 2 / 1;
}
.rg-program-media img {
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  object-position: center 58%;
}
.rg-program-bijiris .rg-program-media img { object-position: center 63%; }
.rg-program-copy { padding: clamp(18px, 3vw, 30px); }
.rg-program h3 {
  margin: 0 0 12px;
  font-size: clamp(22px, 2.7vw, 32px);
  line-height: 1.4;
}
.rg-program h3 small { margin-inline-start: 6px; color: var(--muted); font-size: .5em; }
.rg-home-programs .rg-program-copy p {
  margin: 0 0 12px;
  color: var(--muted);
  font: inherit;
  font-size: 15px;
  line-height: 1.7;
}
.rg-home-programs .rg-program-copy .rg-kicker {
  color: var(--gold);
  font: 11px Arial, sans-serif;
  letter-spacing: .15em;
}
.rg-home-programs .rg-program-copy .rg-program-highlight {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 14px;
  padding-block: 10px;
  border-block: 1px solid var(--line);
  color: var(--cream);
  font-weight: 600;
}
.rg-program-highlight span { color: var(--gold); font-size: 20px; }
.rg-home-programs .rg-program-copy .rg-program-detail { font-size: 13px; }
.rg-home-programs .rg-program-copy a { padding-block: 6px; }

@media (max-width: 800px) {
  .rg-program-grid { grid-template-columns: minmax(0, 1fr); }
  .rg-program-media { aspect-ratio: 16 / 9; }
}
