/* Page-local styles extracted from index2.html. */

/* Source: index2.html - blanco-footer-enforce */
footer.footer--shared {
    display: block!important;
    visibility: visible!important;
    opacity: 1!important;
    background: #322829!important;
    color: #fff!important;
    position: relative!important;
    z-index: 2!important
}
footer.footer--shared .footer__inner {
    display: block!important;
    visibility: visible!important;
    opacity: 1!important;
    padding-top: 64px!important;
    padding-bottom: 42px!important
}
footer.footer--shared .footer__nav {
    display: flex!important;
    visibility: visible!important;
    opacity: 1!important;
    flex-wrap: wrap!important;
    gap: 12px 28px!important;
    margin: 26px 0!important
}
footer.footer--shared .footer__nav a {
    display: inline-block!important;
    visibility: visible!important;
    opacity: 1!important;
    color: #fff!important;
    text-decoration: none!important
}

@media(max-width:800px) {
footer.footer--shared .footer__inner {
    padding-top: 46px!important;
    padding-bottom: 32px!important
}
footer.footer--shared .footer__nav {
    display: grid!important;
    grid-template-columns: repeat(2, minmax(0, 1fr))!important;
    gap: 16px!important
}
}

/* Source: index2.html - blanco-global-chrome */
.site-header {
    display: block!important;
    position: fixed!important;
    inset: 0 0 auto!important;
    z-index: 10000!important;
    height: 72px!important;
    background: #fff!important;
    border-bottom: 1px solid #eee6e4!important;
    visibility: visible!important;
    opacity: 1!important
}
.site-header__inner {
    height: 72px!important;
    max-width: 1600px!important;
    margin: 0 auto!important;
    padding: 0 42px!important;
    display: flex!important;
    align-items: center!important;
    justify-content: space-between!important
}
.site-header__logo {
    display: block!important;
    width: 154px!important;
    line-height: 0!important
}
.site-header__logo img {
    display: block!important;
    width: 100%!important;
    height: auto!important
}
.site-header__nav ul, .site-footer__nav ul {
    margin: 0!important;
    padding: 0!important;
    list-style: none!important;
    display: flex!important;
    align-items: center!important;
    gap: 29px!important
}
.site-header__nav a {
    display: block!important;
    color: #3d3435!important;
    text-decoration: none!important;
    font: 400 16px/1.2 "Noto Serif JP", "Meiryo", "Hiragino Mincho ProN", "Yu Mincho", serif!important;
    letter-spacing: .12em!important
}
.site-header__nav a:hover {
    color: #ff669c!important
}
.site-header__toggle {
    display: none!important;
    border: 0!important;
    background: transparent!important;
    padding: 6px!important
}
.site-header__toggle span {
    display: block!important;
    width: 22px!important;
    height: 1px!important;
    background: #3d3435!important;
    margin: 5px 0!important
}
.site-footer {
    display: block!important;
    visibility: visible!important;
    opacity: 1!important;
    position: relative!important;
    z-index: 10!important;
    background: #332a2b!important;
    color: #fff!important
}
.site-footer__inner {
    max-width: 1600px!important;
    margin: 0 auto!important;
    padding: 56px 42px 34px!important
}
.site-footer__logo {
    display: block!important;
    width: 180px!important;
    line-height: 0!important
}
.site-footer__logo img {
    display: block!important;
    width: 100%!important;
    height: auto!important;
    filter: none!important
}
.site-footer__nav {
    margin: 28px 0!important
}
.site-footer__nav a {
    display: inline-block!important;
    color: #fff!important;
    text-decoration: none!important;
    font: 400 16px/1.2 "Noto Serif JP", "Meiryo", "Hiragino Mincho ProN", "Yu Mincho", serif!important;
    letter-spacing: .1em!important
}
.site-footer__inner>p {
    margin: 0!important;
    color: #cbbfc0!important;
    font-size: 16px!important;
    letter-spacing: .08em!important
}
.site-mobile-nav {
    display: none!important
}

@media(max-width:900px) {
.site-header, .site-header__inner {
    height: 64px!important
}
.site-header__inner {
    padding: 0 20px!important
}
.site-header__logo {
    width: 130px!important
}
.site-header__nav {
    display: none!important
}
.site-header__toggle {
    display: block!important
}
.site-mobile-nav.is-open {
    display: block!important;
    position: fixed!important;
    inset: 64px 0 0!important;
    z-index: 9999!important;
    background: #fffaf9!important
}
.site-mobile-nav__inner {
    padding: 42px 28px!important
}
.site-mobile-nav ul {
    margin: 0!important;
    padding: 0!important;
    list-style: none!important
}
.site-mobile-nav li {
    border-bottom: 1px solid #e9dddd!important
}
.site-mobile-nav a {
    display: block!important;
    padding: 18px 0!important;
    color: #322a2b!important;
    text-decoration: none!important;
    font: 400 17px/1 "Noto Serif JP", "Meiryo", "Hiragino Mincho ProN", "Yu Mincho", serif!important;
    letter-spacing: .1em!important
}
.site-footer__inner {
    padding: 46px 24px 30px!important
}
.site-footer__nav ul {
    display: grid!important;
    grid-template-columns: repeat(2, minmax(0, 1fr))!important;
    gap: 16px 20px!important
}
.site-footer__logo {
    width: 160px!important
}
}

/* v493: keep the existing photo position and size, shortening only the lower safe area. */
body:not(.detail-page) .hero {
    height: 740px!important;
    min-height: 740px!important;
    margin-top: 80px!important;
}

body:not(.detail-page) .hero__strip-wrap {
    inset: 0!important;
    /* Stage height and bottom padding shrink by the same 60px; photo geometry stays unchanged. */
    padding: 25px 0 145px!important;
}

@media(max-width:760px) {
    body:not(.detail-page) .hero {
        height: 540px!important;
        min-height: 540px!important;
        margin-top: 66px!important;
    }

    body:not(.detail-page) .hero__strip-wrap {
        /* Match the desktop relationship at phone widths. */
        padding: 0 0 114px!important;
    }
}

/* ===== 編集用｜HOMEキャンペーン：fair2のフライヤー画像のみ =====
   index2.html内の campaign-fair2-promo__image の src を差し替えると、
   HOMEキャンペーンカードの画像を更新できます。ポップアップは現在停止中です。
   現在は1件表示。複数件にするときはHTMLの campaign__grid--single を外します。
*/
.campaign__grid--single {
    grid-template-columns: minmax(0, 650px);
    justify-content: center;
}

/* 枠・背景・特典テキストを置かず、提供フライヤーだけを表示する。 */
.campaign__item--fair2 {
    display: block;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    line-height: 0;
}

.campaign__item--fair2::after {
    display: none;
}

.campaign-fair2-promo,
.campaign-fair2-promo__frame {
    display: block;
    width: 100%;
}

/* 650×657pxの提供画像をトリミングせず、元の縦横比で表示する。 */
.campaign-fair2-promo__frame {
    aspect-ratio: 650 / 657;
}

.campaign-fair2-promo__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: none!important;
}

/* v493: keep a safe gap below the ribbon cutouts without the former extra spacer. */
body:not(.detail-page) .campaign {
    padding-top: 72px!important;
}

@media(max-width:768px) {
    .campaign__grid--single {
        max-width: min(100%, 430px);
    }
}

/* ===== HOMEトップ直下｜NEWSリボン =====
   トップ写真の下の波形を置き換え、流れる文字と左右の人物切り抜きを常時表示します。
*/
body:not(.detail-page) .hero::after {
    display: none;
}

/* リボンは hero の子にせず、写真ストリップ直下の兄弟要素として置きます。
   既存の左右切り抜きがトップ写真とキャンペーン背景の境目を自然につなぎます。 */
body:not(.detail-page) .hero + .news-ribbon {
    position: relative;
    z-index: 4;
    margin-top: -1px;
}

/* リボンをトップへ移したため、NEWS直下の過剰な余白を抑えます。 */
body:not(.detail-page) .news {
    padding-bottom: clamp(76px, 7vw, 104px);
}

/* About上部の余白を、旧リボン配置と同じリズムで維持します。 */
body:not(.detail-page) #about {
    padding-top: clamp(76px, 6.5vw, 92px);
}

@media(max-width:768px) {
    body:not(.detail-page) .news {
        padding-bottom: 76px;
    }

    /* 極小幅でも文字スライドを遮らないよう、切り抜きは少し内側へ収めます。 */
    body:not(.detail-page) .hero + .news-ribbon .news-ribbon__figure--left {
        left: 8%;
    }

    body:not(.detail-page) .hero + .news-ribbon .news-ribbon__figure--right {
        right: 8%;
    }
}

@media(max-width:359px) {
    body:not(.detail-page) .hero + .news-ribbon .news-ribbon__figure--left {
        left: 4%;
        height: 124px;
    }

    body:not(.detail-page) .hero + .news-ribbon .news-ribbon__figure--right {
        right: 4%;
        height: 118px;
    }
}

/* ===== v481: HOME normal-scroll CONCEPT and menu-page-aligned grid =====
   CONCEPT is part of the normal document flow at every viewport. It no longer pins
   behind Menu / Shops / Contact, and the straight section edges are kept intact. */
body:not(.detail-page) .home-concept-pass-through-stage {
    position: relative;
}

body:not(.detail-page) #concept.concept {
    position: relative;
    top: auto;
    z-index: auto;
    min-height: 0;
}

body:not(.detail-page) #concept .concept__content.fade-in {
    opacity: 1;
    transform: none;
}

body:not(.detail-page) .menu-contact-flow {
    position: relative;
    z-index: auto;
    background-color: var(--color-off-white);
}

/* HOME MENU: use the same photo-first, two-column catalogue treatment as /menu.
   Existing HOME photography and destinations are intentionally retained. */
body:not(.detail-page) #menu .menu__grid {
    width: min(100%, 920px);
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: auto;
    gap: clamp(38px, 5vw, 68px) clamp(26px, 4.4vw, 60px);
}

body:not(.detail-page) #menu .menu__card {
    display: block;
    height: auto;
    min-height: 0;
    overflow: visible;
    background: transparent;
    box-shadow: none!important;
    color: #302b2b;
    text-decoration: none;
    transform: none!important;
    transition: none;
}

body:not(.detail-page) #menu .menu__card:focus-visible {
    outline: 2px solid #ff669c;
    outline-offset: 7px;
}

body:not(.detail-page) #menu .menu__card-image {
    display: block;
    width: 100%;
    aspect-ratio: 600 / 430;
    overflow: hidden;
    background: #eef0ef;
    box-shadow: 5px 4px 0 rgba(78, 78, 78, .17);
}

body:not(.detail-page) #menu .menu__card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: none!important;
    transition: none;
}

body:not(.detail-page) #menu .menu__card-content {
    display: block;
    min-height: 0;
    overflow: visible;
    padding: 12px 4px 0;
    background: transparent!important;
    box-shadow: none!important;
    text-align: center;
}

body:not(.detail-page) #menu .menu__card h3,
body:not(.detail-page) #menu .menu__card h3 small {
    display: block;
    margin: 0;
    color: #272222;
    font-family: "Noto Sans JP", "Meiryo", sans-serif;
    text-align: center;
    transition: color .18s ease;
}

body:not(.detail-page) #menu .menu__card h3 {
    font-size: clamp(10px, 1.1vw, 13px);
    font-weight: 800;
    letter-spacing: .025em;
    line-height: 1.16;
}

body:not(.detail-page) #menu .menu__card h3 small {
    margin-top: 2px;
    font-size: clamp(12px, 1.25vw, 15px);
    font-weight: 700;
    letter-spacing: .06em;
    line-height: 1.3;
}

body:not(.detail-page) #menu .menu__card-link {
    display: none;
}

body:not(.detail-page) #menu .menu__card:hover h3,
body:not(.detail-page) #menu .menu__card:hover h3 small,
body:not(.detail-page) #menu .menu__card:focus-visible h3,
body:not(.detail-page) #menu .menu__card:focus-visible h3 small {
    color: #ff669c;
}

@media (max-width: 600px) {
    body:not(.detail-page) #menu .menu__grid {
        gap: 34px 18px;
    }

    body:not(.detail-page) #menu .menu__card-content {
        padding-top: 10px;
    }

    body:not(.detail-page) #menu .menu__card h3 {
        font-size: clamp(8px, 2.5vw, 11px);
        letter-spacing: 0;
    }

    body:not(.detail-page) #menu .menu__card h3 small {
        margin-top: 2px;
        font-size: clamp(11px, 3vw, 13px);
        letter-spacing: .02em;
    }
}

@media (max-width: 300px) {
    body:not(.detail-page) #menu .menu__grid {
        gap: 28px 12px;
    }

    body:not(.detail-page) #menu .menu__card h3 {
        font-size: 8px;
    }

    body:not(.detail-page) #menu .menu__card h3 small {
        font-size: 10px;
    }
}

/* ===== v482: HOME loading label removal and centered stacked ABOUT =====
   At 960px and below, ABOUT changes from its desktop split layout to one centered
   reading column followed by the image. The existing copy, imagery, cutout, and link remain unchanged. */
@media (max-width: 960px) {
    body:not(.detail-page) #about .about__inner {
        grid-template-columns: minmax(0, 1fr);
        gap: 48px;
        justify-items: center;
    }

    body:not(.detail-page) #about .about__text-wrap {
        width: min(100%, 620px);
        max-width: 620px;
        padding: 4px 0 56px;
        text-align: center;
        opacity: 1;
        transform: none!important;
    }

    body:not(.detail-page) #about .section-label {
        justify-content: center;
    }

    body:not(.detail-page) #about .about__title,
    body:not(.detail-page) #about .about__text,
    body:not(.detail-page) #about .about__text--accent {
        text-align: center;
    }

    body:not(.detail-page) #about .about__more {
        display: flex;
        width: fit-content;
        margin-right: auto;
        margin-left: auto;
    }

    body:not(.detail-page) #about .about__cutout {
        top: auto;
        right: 4px;
        bottom: -58px;
        left: auto;
        width: min(31%, 118px);
    }

    body:not(.detail-page) #about .about__image-wrap {
        width: min(100%, 500px);
        margin: 0 auto;
        padding: 10px 0 16px;
        opacity: 1;
        transform: none!important;
    }
}

/* ===== v493: HOME news placement, relaxed text motion and compact spacing =====
   Only the two synchronized HOME entry pages load this file.
   Keep photos, body copy, links, ABOUT centering and the normal-scroll CONCEPT intact. */
body:not(.detail-page) .news-ribbon__wordmark-row {
    animation-duration: 21s;
}
body:not(.detail-page) .section-wordmark-rail__track {
    animation-duration: 73s;
}
body:not(.detail-page) .section {
    padding-top: 76px;
    padding-bottom: 76px;
}
body:not(.detail-page) #campaign {
    padding-bottom: 72px;
}
body:not(.detail-page) #about {
    padding-top: 64px;
    padding-bottom: 76px;
}
body:not(.detail-page) #concept {
    padding-top: 100px;
    padding-bottom: 100px;
}
body:not(.detail-page) #news {
    padding-top: 60px;
    padding-bottom: 60px;
}
body:not(.detail-page) .section-label {
    margin-bottom: 32px;
}
body:not(.detail-page) #about .section-label {
    margin-bottom: 28px;
}
body:not(.detail-page) #menu .menu__grid {
    row-gap: clamp(32px, 4vw, 52px);
}
@media (max-width: 768px) {
    body:not(.detail-page) .news-ribbon__wordmark-row {
        animation-duration: 18.2s;
    }
    body:not(.detail-page) .section {
        padding-top: 44px;
        padding-bottom: 44px;
    }
    body:not(.detail-page) #campaign {
        padding-top: 56px!important;
        padding-bottom: 44px;
    }
    body:not(.detail-page) #about {
        padding-top: 48px;
        padding-bottom: 44px;
    }
    body:not(.detail-page) #concept {
        padding-top: 76px;
        padding-bottom: 76px;
    }
    body:not(.detail-page) #news {
        padding-top: 44px;
        padding-bottom: 44px;
    }
    body:not(.detail-page) .section-label {
        margin-bottom: 26px;
    }
    body:not(.detail-page) #about .section-label {
        margin-bottom: 26px;
    }
    body:not(.detail-page) #menu .menu__grid {
        row-gap: 28px;
    }
}
/* Retain the existing accessibility preference even after the duration overrides. */
@media (prefers-reduced-motion: reduce) {
    body:not(.detail-page) .news-ribbon__wordmark-row,
    body:not(.detail-page) .section-wordmark-rail__track {
        animation: none;
    }
}

/* ===== v496: HOME News transparent content group =====
   Remove the former white panel while keeping the text layout and compact spacing.
   The Contact section label has been removed directly from the HOME HTML. */
body:not(.detail-page) #news {
    background: transparent;
    padding-top: 28px;
    padding-bottom: 28px;
}
body:not(.detail-page) #news .news__panel {
    padding: 32px;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
}
@media (max-width: 768px) {
    body:not(.detail-page) #news {
        padding-top: 24px;
        padding-bottom: 24px;
    }
    body:not(.detail-page) #news .news__panel {
        padding: 20px;
    }
}

/* ===== v495: HOME Shops gray background and inverted vertical wordmark =====
   Keep the common moving rail outside Shops pink. A synchronized white copy is
   clipped to Shops. The opaque gray section covers the original pink rail. */
body:not(.detail-page) #shops {
    position: relative;
    z-index: 3;
    background: #dedee0;
}
body:not(.detail-page) .menu-contact-flow > .section-wordmark-rail {
    z-index: 2;
}
body:not(.detail-page) #shops > .container {
    position: relative;
    z-index: 3;
}
body:not(.detail-page) .shops__wordmark-contrast {
    position: absolute;
    z-index: 2;
    inset: 0 auto 0 0;
    width: var(--vertical-wordmark-rail-width);
    overflow: hidden;
    pointer-events: none;
    visibility: hidden;
}
body:not(.detail-page) .shops__wordmark-contrast .section-wordmark-rail__track {
    margin-top: calc(-1 * var(--shops-rail-start, 0px));
}
body:not(.detail-page) .shops__wordmark-contrast .section-wordmark-rail__item img {
    filter: brightness(0) invert(1);
    opacity: 1;
}
body:not(.detail-page) .has-shops-wordmark-contrast .shops__wordmark-contrast {
    visibility: visible;
}

.top-h1 {
}
.top-h1 h1{
	/*color:#ff669c;*/
	text-align:center;
	font-weight:normal;
	color:#ff669c;
	background-color:#fff;
	font-size:20px;
	padding:0 20px;
}
.top-h1 h1 .span1{
	/*background-color:#ff669c;*/
	color:#ff669c;
	font-size:20px;
	border-bottom:solid 1px #ff669c;
	text-align:center;
}
.top-h1 h1 .span2{
	/*background-color:#ff669c;*/
	color:#ff669c;
	font-size:40px;
	border-bottom:solid 1px #ff669c;
}
.top-h1 h1 span{
	display:inline-block;
}
@media(max-width:480px){
.top-h1 h1{
	font-size:18px;
}	
}