@charset "UTF-8";
/* CSS Document */
:root {
    --color-text: #555555;
    --color-main: #ff7f96;
    --color-main-dark: #f06f88;
    --color-sub: #fff7ef;      /* クリーム系 */
    --color-footer: #f06f88;   /* フッター用の薄いピンク */
    --color-accent: #7ed9c6;
    --color-warm: #ffc874;
    --color-line: #e5eee9;
    --color-white: #fff;
    --content-width: 1180px;
    --side-padding: clamp(20px, 4vw, 48px);
    --radius: 20px;
}
*, *::before, *::after {
    box-sizing: border-box;
}
html {
    scroll-behavior: smooth;
}
body {
    margin: 0;
    color: var(--color-text);
    background: var(--color-white);
    font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Noto Sans JP", Arial, sans-serif;
    line-height: 1.8;
    -webkit-font-smoothing: antialiased;
}
img {
    display: block;
    max-width: 100%;
    height: auto;
}
button {
    font: inherit;
}
a {
    color: inherit;
}

.pc-br{
	display:inline;
}
.sp-br {
    display: none;
}

.dogyutto-lp {
    overflow: hidden;
}
.dogyutto-inner {
    width: min(100%, calc(var(--content-width) + var(--side-padding) * 2));
    margin-inline: auto;
    padding-inline: var(--side-padding);
}

.kv-slider {
    position: relative;
    padding-bottom: 24px;
    background: var(--color-sub);
}

.kv-slider__controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin-top: 18px;
}

.kv-slider__viewport {
    overflow: hidden;
}
.kv-slider__track {
    display: flex;
    transition: transform .6s ease;
}
.kv-slider__slide {
    flex: 0 0 100%;
    min-width: 0;
	position: relative;
}

.kv-slider__logo {
	position: absolute;
	top: 3%;
	left: 50%;
	transform: translateX(-50%);
	width: min(24vw, 520px);
	z-index: 5;
	filter: drop-shadow(0 2px 6px rgba(80, 44, 28, .08));
}

.kv-slider__picture, 
.kv-slider__picture img {
    width: 100%;
}
.kv-slider__picture img {
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.kv-slider__button {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 2px solid var(--color-main);
    border-radius: 50%;
    color: var(--color-main-dark);
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 3px 10px rgba(80, 80, 80, .10);
    cursor: pointer;
}

.kv-slider__dots {
    display: flex;
    gap: 9px;
}
.kv-slider__dot {
    width: 10px;
    height: 10px;
    padding: 0;
    border: 1px solid var(--color-main);
    border-radius: 50%;
    background: var(--color-white);
    cursor: pointer;
}
.kv-slider__dot[aria-current="true"] {
    background: var(--color-main);
}
.section {
    padding-block: clamp(72px, 9vw, 130px);
}
.section--tint {
    background: var(--color-sub);
}
.section-heading {
    margin: 0 0 clamp(36px, 5vw, 64px);
    text-align: center;
}
.section-heading__en {
    display: inline-block;
    position: relative;
    color: var(--color-main);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(34px, 5vw, 64px);
    font-weight: 700;
    letter-spacing: .08em;
    line-height: 1.1;
}
.section-heading__en::after {
    content: "";
    display: block;
    width: 64%;
    height: 5px;
    margin: 12px auto 0;
    border-radius: 999px;
    background: var(--color-warm);
}
.section-heading__ja {
    display: block;
    margin-top: 8px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .18em;
}
.lineup-lead{
    margin:0 0 40px;
    text-align:center;
    font-size:clamp(16px,1.8vw,20px);
    font-weight:700;
    line-height:1.8;
}

.lineup-toggle{
	display:block;
	width:100%;
	padding:0;
	margin:0 auto 32px;
	overflow:hidden;
	border:1px solid var(--color-line);
	border-radius:var(--radius);
	background:var(--color-white);
	box-shadow:0 8px 24px rgba(76,126,114,.08);
	cursor:pointer;
	transition:
		transform .35s ease,
		box-shadow .35s ease;
}

.lineup-toggle img{
	display:block;
	width:100%;
	height:auto;
	transition:transform .35s ease;
}

/* ホバー演出（任意） */

.lineup-toggle:hover{
	transform:translateY(-4px);
	box-shadow:0 14px 32px rgba(76,126,114,.14);
}

.lineup-toggle:hover img{
	transform:scale(1.02);
}

.lineup-body {
    max-height: 0;
    overflow: hidden;
    visibility: hidden;
    transition:
        max-height .4s ease,
        visibility 0s linear .4s;
}

.lineup-body.is-open {
    max-height: 5000px;
    visibility: visible;
    transition:
        max-height .4s ease,
        visibility 0s;
}

.lineup-spec {
    margin: 0 0 32px;
    padding: clamp(20px, 3vw, 32px);
    border-radius: var(--radius);
    background: var(--color-sub);
}

.lineup-spec__title {
    margin: 0 0 14px;
    color: var(--color-main-dark);
    font-size: clamp(18px, 2vw, 22px);
    font-weight: 700;
}

.lineup-spec__list {
    margin: 0;
}

.lineup-spec__item {
    display: flex;
    margin: 0;
}

.lineup-spec__item dt {
    flex: 0 0 80px;
    font-weight: 700;
}

.lineup-spec__item dd {
    margin: 0;
}

@media (min-width: 768px){

	.lineup-spec {
		--lineup-gap: clamp(14px, 2.5vw, 28px);
		padding: clamp(20px, 3vw, 32px);
	}

	.lineup-spec__title,
	.lineup-spec__list {
		width: calc((100% - var(--lineup-gap) * 3) / 2 + var(--lineup-gap));
		margin-inline: auto;
	}

	.lineup-spec__title {
		margin-bottom: 14px;
	}

}

.about {
    padding-top: clamp(56px, 7vw, 90px);
    text-align: center;
}
.about__logo {
    width: min(440px, 75%);
    margin: 0 auto 34px;
}
.about__lead {
    margin: 0 0 24px;
    color: var(--color-main-dark);
    font-family: Georgia, "Yu Mincho", serif;
    font-size: clamp(22px, 3vw, 38px);
    font-weight: 700;
    letter-spacing: .08em;
}
.about__text {
    max-width: 720px;
    margin: 0 auto;
    font-size: clamp(15px, 1.6vw, 18px);
}
.lineup-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(22px, 3vw, 38px) clamp(14px, 2.5vw, 28px);
    margin: 0;
    padding: 0;
    list-style: none;
}


.lineup-card {
    min-width: 0;
    text-align: center;
}

.lineup-card__link {
    display: block;
    color: inherit;
    text-decoration: none;
}

.lineup-card__image-wrap {
    overflow: hidden;
    margin-bottom: 16px;
    border: 1px solid var(--color-line);
    border-radius: var(--radius);
    background: var(--color-white);
    box-shadow: 0 8px 24px rgba(76, 126, 114, .08);
    transition:
        transform .35s ease,
        box-shadow .35s ease;
}

.lineup-card__image {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    transition: transform .35s ease;
}

.lineup-card__series {
    margin: 0 0 6px;
    font-size: 12px;
    line-height: 1.5;
}

.lineup-card__name {
    margin: 0;
    font-size: clamp(14px, 1.6vw, 18px);
    font-weight: 700;
    line-height: 1.55;
}

/*
.lineup-card__link:hover .lineup-card__image-wrap {
    transform: translateY(-4px);
    box-shadow: 0 14px 32px rgba(76, 126, 114, .14);
}

.lineup-card__link:hover .lineup-card__image {
    transform: scale(1.025);
}

.lineup-card__link:focus-visible {
    outline: 3px solid var(--color-main);
    outline-offset: 4px;
    border-radius: var(--radius);
}
*/

.photo-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(8px, 1.5vw, 18px);
    margin: 0;
    padding: 0;
    list-style: none;
}
.photo-grid__button {
    display: block;
    width: 100%;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--color-line);
    border-radius: 18px;
    background: var(--color-white);
    box-shadow: 0 6px 18px rgba(76, 126, 114, .08);
    cursor: zoom-in;
}
.photo-grid__image {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    transition: transform .35s ease, filter .35s ease;
}
.photo-grid__button:hover .photo-grid__image {
    transform: scale(1.035);
    filter: brightness(.97);
}
.photo-modal[hidden] {
    display: none;
}
.photo-modal {
    position: fixed;
    z-index: 1000;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 24px;
}
.photo-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(35, 50, 46, .84);
}
.photo-modal__dialog {
    position: relative;
    width: min(92vw, 940px);
    max-height: 90vh;
}
.photo-modal__image {
    width: 100%;
    max-height: 86vh;
    object-fit: contain;
}
.photo-modal__close {
    position: absolute;
    top: -16px;
    right: -16px;
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    color: var(--color-text);
    background: #fff;
    font-size: 0;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 5px 18px rgba(0, 0, 0, .2);
}

.photo-modal__close::before {
    content: "×";
    display: block;
    font-size: 28px;
    line-height: 1;
    transform: translateY(2px);
}
.dogyutto-footer {
    padding: 28px var(--side-padding);
    text-align: center;
    color: var(--color-white);
    background: var(--color-footer);
}
.dogyutto-footer small {
    font-size: 12px;
    letter-spacing: .04em;
}


/*スマホ・iPad ここから*/
@media (max-width: 767px) {
	.pc-br{
		display: none;
	}
	
    .sp-br {
        display: inline;
    }	
	
	.kv-slider__picture img {
		aspect-ratio: 781 / 1146;
		object-fit: cover;
	}
	
    .kv-slider {
        padding-bottom: 18px;
    }

    .about {
        padding-top: 52px;
    }

    .kv-slider__controls {
        margin-top: 12px;
        gap: 12px;
    }

    .kv-slider__button {
        width: 38px;
        height: 38px;
    }

    .kv-slider__logo {
        top: 8%;
        width: 72%;
    }
	
	.lineup-lead{
	text-align: left;
	}
	
	.lineup-spec__item {
		display: block;
	}

	.lineup-spec__item + .lineup-spec__item {
		margin-top: 6px;
	}	
	
    .lineup-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
	
    .photo-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .about__text {
        text-align: left;
    }
	
    .photo-modal {
        padding: 20px;
    }

    .photo-modal__dialog {
        width: 100%;
        max-height: 90vh;
    }

    .photo-modal__image {
        max-height: calc(100vh - 80px);
    }

	.photo-modal__close {
		top: 8px;
		right: 8px;
		width: 42px;
		height: 42px;
	}

	.photo-modal__close::before {
		font-size: 26px;
	}
	
}
/*スマホ・iPad ここまで*/

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
    *, *::before, *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}