.reiketsu-top-slider {
position: relative;
width: 100%;
margin: 0;
overflow: visible;
--rz-caption-text-min-h: clamp(8rem, 22vw, 11rem);
--rz-dock-stack: clamp(2.85rem, 7vw, 3.65rem);
padding-bottom: calc(
(var(--rz-caption-text-min-h) / 2) + var(--rz-dock-stack) + clamp(1.5rem, 4vw, 2.5rem)
);
box-sizing: border-box;
}

.reiketsu-top-slider__inner {
position: relative;
width: 100%;
overflow: visible;
}

.reiketsu-top-slider__track {
display: flex;
width: 100%;
align-items: stretch;
transition: transform 0.5s ease;
}

.reiketsu-top-slider--fade .reiketsu-top-slider__track {
display: block;
position: absolute;
inset: 0;
width: 100%;
transition: none;
}

.reiketsu-top-slider__slide {
position: relative;
flex: 0 0 100%;
width: 100%;
min-width: 0;
box-sizing: border-box;
overflow: visible;
}

.reiketsu-top-slider--fade .reiketsu-top-slider__slide {
position: absolute;
inset: 0;
flex: none;
width: 100%;
opacity: 0;
transition: opacity 0.7s ease-in-out;
pointer-events: none;
overflow: visible;
z-index: 1;
}

.reiketsu-top-slider--fade .reiketsu-top-slider__slide.is-active {
opacity: 1;
z-index: 2;
pointer-events: auto;
}

.reiketsu-top-slider--fade .reiketsu-top-slider__inner {
aspect-ratio: 16 / 9;
}

.reiketsu-top-slider__image {
position: relative;
width: 100%;
overflow: hidden;
background: transparent;
line-height: 0;
}

.reiketsu-top-slider__media,
.reiketsu-top-slider__media--solo {
width: 100%;
height: auto;
display: block;
object-fit: cover;
}

.reiketsu-top-slider__media--pc {
display: block;
aspect-ratio: 16 / 10;
}

.reiketsu-top-slider__media--sp {
display: none !important;
}

.reiketsu-top-slider__media--solo {
aspect-ratio: 16 / 10;
}

.reiketsu-top-slider--fade .reiketsu-top-slider__image {
position: absolute;
inset: 0;
height: 100%;
background: transparent;
}

.reiketsu-top-slider--fade .reiketsu-top-slider__media,
.reiketsu-top-slider--fade .reiketsu-top-slider__media--solo,
.reiketsu-top-slider--fade .reiketsu-top-slider__media--sp,
.reiketsu-top-slider--fade .reiketsu-top-slider__media--pc {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
aspect-ratio: unset;
}

.reiketsu-top-slider--fade .reiketsu-top-slider__media--sp {
display: none !important;
}

.reiketsu-top-slider--fade .reiketsu-top-slider__media--pc {
display: block !important;
}

.reiketsu-top-slider__link {
position: absolute;
inset: 0;
z-index: 2;
}

.reiketsu-top-slider__nav {
width: auto;
height: auto;
border: none;
background: transparent;
cursor: pointer;
border-radius: 0;
transition: opacity 0.2s ease, color 0.2s ease;
display: flex;
align-items: center;
justify-content: center;
padding: 0.25rem 0.4rem;
box-shadow: none;
flex-shrink: 0;
color: #1a1a1a;
}

.reiketsu-top-slider__nav--toolbar:hover {
opacity: 0.65;
}

.reiketsu-top-slider__nav:focus-visible {
outline: 2px solid rgba(95, 0, 255, 0.45);
outline-offset: 2px;
}

.reiketsu-top-slider__nav i {
font-size: clamp(1.05rem, 2.4vw, 1.3rem);
line-height: 1;
}

.reiketsu-top-slider__caption-controls {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
flex-wrap: wrap;
gap: 0.5rem 0.65rem;
margin-top: 0;
width: 100%;
box-sizing: border-box;
}

.reiketsu-top-slider__controls-dock {
position: absolute;
left: 50%;
top: calc(100% + (var(--rz-caption-text-min-h) / 2));
z-index: 6;
width: min(88%, 40rem);
max-width: calc(100% - 1.5rem);
transform: translateX(-50%);
box-sizing: border-box;
pointer-events: auto;
margin: -1px 0 0;
padding: clamp(0.75rem, 1.8vw, 1rem) clamp(1rem, 2.5vw, 1.35rem);
background: #fff;
box-shadow: none;
}

.reiketsu-top-slider__controls-dock[hidden] {
display: none !important;
}

.reiketsu-top-slider__dots-fallback {
display: flex;
justify-content: center;
align-items: center;
padding: 0.5rem 0 0;
margin-top: clamp(-0.5rem, -1.5vw, 0);
position: relative;
z-index: 4;
}

.reiketsu-top-slider__dots-fallback:not([hidden]) .reiketsu-top-slider__caption-controls {
margin-top: 0;
}

.reiketsu-top-slider__dots {
display: flex;
justify-content: center;
align-items: center;
gap: 0.45rem;
flex-wrap: wrap;
margin: 0;
padding: 0;
}

.reiketsu-top-slider__dots button {
width: clamp(1.5rem, 10vw, 2.75rem);
height: 0.4rem;
min-width: 1.35rem;
min-height: 5px;
padding: 0;
border: none;
border-radius: 0;
background: #c8c8c8;
cursor: pointer;
transition: background 0.2s ease;
pointer-events: auto;
flex-shrink: 0;
}

.reiketsu-top-slider__dots button.is-active {
background: #5f00ff;
}

.reiketsu-top-slider__overlay-caption {
position: absolute;
left: 50%;
top: 100%;
right: auto;
bottom: auto;
width: min(88%, 40rem);
max-width: calc(100% - 1.5rem);
z-index: 3;
padding: 0;
background: transparent;
pointer-events: none;
transform: translate(-50%, -50%);
box-sizing: border-box;
}

.reiketsu-top-slider__overlay-caption-inner {
display: flex;
flex-direction: column;
align-items: stretch;
text-align: left;
margin: 0;
padding: clamp(0.85rem, 2vw, 1.15rem) clamp(1rem, 2.5vw, 1.35rem) clamp(0.75rem, 1.8vw, 1rem);
background: #fff;
color: #222;
border: none;
box-shadow: 0 12px 40px rgba(0, 0, 0, 0.1);
pointer-events: auto;
min-height: var(--rz-caption-text-min-h);
max-height: var(--rz-caption-text-min-h);
box-sizing: border-box;
}

.reiketsu-top-slider__overlay-caption-text {
flex: 1 1 auto;
min-width: 0;
min-height: 0;
overflow: hidden;
}

.reiketsu-top-slider__overlay-caption h3 {
margin: 0 0 0.4rem;
font-size: clamp(0.95rem, 1.15vw, 1.08rem);
line-height: 1.45;
font-weight: 600;
color: #111;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
line-clamp: 2;
overflow: hidden;
text-overflow: ellipsis;
overflow-wrap: anywhere;
word-break: break-word;
}

.reiketsu-top-slider__overlay-caption p {
margin: 0;
font-size: clamp(0.8rem, 0.9vw, 0.88rem);
line-height: 1.6;
color: #555;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;
line-clamp: 4;
overflow: hidden;
text-overflow: ellipsis;
overflow-wrap: anywhere;
word-break: break-word;
}

@media (max-width: 768px) {
.reiketsu-top-slider {
padding-bottom: 0;
--rz-caption-text-min-h: clamp(5.5rem, 24vw, 7rem);
}

.reiketsu-top-slider--fade .reiketsu-top-slider__inner {
aspect-ratio: unset;
}

.reiketsu-top-slider--fade .reiketsu-top-slider__track {
position: relative;
inset: auto;
width: 100%;
}

.reiketsu-top-slider--fade .reiketsu-top-slider__slide:not(.is-active) {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: auto;
width: 100%;
opacity: 0;
pointer-events: none;
overflow: visible;
transition: opacity 0.7s ease-in-out;
}

.reiketsu-top-slider--fade .reiketsu-top-slider__slide.is-active {
position: relative;
display: flex;
flex-direction: column;
height: auto;
opacity: 1;
z-index: 2;
}

.reiketsu-top-slider--fade .reiketsu-top-slider__image {
position: relative;
flex: 0 0 auto;
width: 100%;
aspect-ratio: 16 / 9;
height: auto;
min-height: 0;
}

.reiketsu-top-slider--fade .reiketsu-top-slider__image .reiketsu-top-slider__media,
.reiketsu-top-slider--fade .reiketsu-top-slider__image .reiketsu-top-slider__media--solo,
.reiketsu-top-slider--fade .reiketsu-top-slider__image .reiketsu-top-slider__media--sp,
.reiketsu-top-slider--fade .reiketsu-top-slider__image .reiketsu-top-slider__media--pc {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
}

.reiketsu-top-slider__overlay-caption {
position: relative;
left: auto;
top: auto;
transform: none;
width: 100%;
max-width: none;
margin: 0;
}

.reiketsu-top-slider__overlay-caption-inner {
min-height: var(--rz-caption-text-min-h);
max-height: var(--rz-caption-text-min-h);
box-shadow: none;
}

.reiketsu-top-slider__overlay-caption h3 br,
.reiketsu-top-slider__overlay-caption p br {
display: none;
}

.reiketsu-top-slider__overlay-caption h3 {
-webkit-line-clamp: 1;
line-clamp: 1;
}

.reiketsu-top-slider__overlay-caption p {
-webkit-line-clamp: 2;
line-clamp: 2;
}

.reiketsu-top-slider__controls-dock {
position: relative;
left: auto;
top: auto;
transform: none;
width: 100%;
max-width: none;
margin: 0;
z-index: 6;
}

.reiketsu-top-slider__slide {
display: flex;
flex-direction: column;
}
}

@media (min-width: 769px) {
.reiketsu-top-slider__track {
min-width: 0;
}

.reiketsu-top-slider__slide {
flex: 0 0 33.333333%;
width: 33.333333%;
padding: 0 0.45rem;
}
}

@media screen and (min-width: 901px) {
.reiketsu-combo-pc-split:has(> .reiketsu-top-slider-shell) {
grid-template-rows: auto auto 1fr;
}

.reiketsu-combo-pc-split > .reiketsu-top-slider-shell {
grid-column: 2;
grid-row: 2;
min-width: 0;
width: 100%;
max-width: min(85vw, 1200px);
margin-top: 2rem;
margin-left: auto;
margin-right: auto;
padding-left: clamp(2rem, 6vw, 8rem);
padding-right: clamp(2rem, 6vw, 8rem);
box-sizing: border-box;
}

.reiketsu-combo-home .reiketsu-combo-home__main:has(> .reiketsu-top-slider:first-child) {
padding-top: 2rem;
}

.reiketsu-combo-pc-split:has(> .reiketsu-top-slider-shell) > .reiketsu-combo-pc-split__left {
grid-row: 3;
}
}
