@charset "utf-8";

/* ===================
main
==================== */
.hero {
  width: 100%;
  overflow: hidden;
  position: relative;
}

.heroBlur img {
    width: 100%;
    height: 100%;
    object-fit: cover;       /* 枠いっぱいに表示（必要に応じてトリミング） */
    object-position: center; /* 被写体中心を保つ */
    display: block;
    filter: blur(12px);
    transform: scale(1);        /* ← 中身だけ拡大 */
    transition: filter 1.3s ease, transform 1.3s ease;
}

.hero__logo {
    position: absolute;
    top: 50%;                /* 縦中央 */
    left: 50%;               /* 横中央 */
    text-align: center;
}

/* -- heroBlur -- */
.heroBlur img.animated {
    filter: blur(0);
    transform: scale(1.1);
    overflow: hidden;
}


/* -- logoBlur -- */
.logoBlur {
    opacity: 0;
    filter: blur(12px);
    transition:  1.4s;
    transform: translate(-50%, -50%) scale(1.1); /* 完全中央に配置 */
}

.logoBlur.animated {
    opacity: 1;
    filter: blur(0);
    transform: translate(-50%, -50%) scale(1);
}


/* === PC用（769px以上） === */
@media (min-width: 769px) {
    .hero {
    /* 高さを比率＋上限＋画面高でバランスよく制御 */
        height: min(66.36vw, 95svh, 1080px);
        min-height: 500px; /* 小さすぎ防止 */
    }

    .hero__logo img {
        width: clamp(140px, 40vw, 570px); /* 画面幅に応じてロゴの大きさを調整 */
        height: auto;
        display: block;
    }
}

/* === スマホ用（768px以下） === */
@media (max-width: 768px) {
    .hero {
        /* スマホ画像は縦長なので高さを制限しないと長すぎる */
        height: min(182.56vw, 95svh, 800px);
        min-height: 500px;
    }

    .hero__logo img {
        width: 70vw;
        display: block;
    }
}

/* ----
About Section
---- */
.section--about {
    padding: 40px 0 0; 
}

.about-contents {
    position: relative;
    width: min(100%, 1440px);
    margin: 0 auto;

}

/* === イラスト 擬似要素 === */
.dec {
    position: absolute;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    z-index: 0;
}

.dec--axoloti {
    background-image: url(../img/s-axoloti.png);
    left: 68.1%;
    top: 23.5%;
    width: min(31.8vw, 188px);
    height: auto;
    aspect-ratio: 128/191;
}

.dec--scissors {
    background-image: url(../img/s-scissors.png);
    left: 0;
    top: 60.4%;
    width: min(24.4vw, 112px);
    height: auto;
    aspect-ratio: 1/1;
}

.dec--mizukusa {
    background-image: url(../img/s-mizukusa.png);
    right: 0;
    bottom: 0;
    width: min(29.1vw, 144px);
    height: auto;
    aspect-ratio: 117/131;
}

@media (min-width: 769px) and (max-width: 1023px) {
    .dec--axoloti {
        top: 50%;
        left: 47.5%;
        width: min(16vw, 140px);
    }

    .dec--scissors {
        left: 0.9%;
    }

    .dec--mizukusa {
        width: min(14.1vw, 144px);
    }
}

@media (min-width: 1024px) {
    .dec--axoloti {
        top: 39.6%;
        left: 41.5%;
        width: min(18vw, 214px);
    }

    .dec--scissors {
        top: unset;
        bottom: 29.7%;
        left: 4.9%;
        width: min(8.7vw, 134px);
    }

    .dec--mizukusa {
        right: 0;
        bottom: 60px;
        width: min(13.1vw, 214px);
    }
}

/* === About コンテンツ === */
.about {
    padding: 0 8% 48px;
}

.concept {
    margin: 24px 0;
}

.concept__copy {
    display: flex;
    gap: 4%;
    align-items: flex-end;
    margin-bottom: 16px;
}

.concept img {
    width: clamp(100px, 31.3vw, 180px);
}

.concept__txt {
    color: var(--text-brown, #554242);
    font-weight: 500;
    line-height: 1.3; 
}

.exterior-sp {
    width: min(59.7vw, 400px);
    overflow: hidden;
}

.exterior-pc {
    display: none;
}

.interior {
    margin-top: 40px;
    overflow: hidden;
}

@media (min-width: 769px) {
    .section--about {
        padding: 0;
    }

    .about-contents {
        padding: 60px 0;
    }

    .about {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        width: min(90vw, 1200px);
        margin: 0 auto;
        padding: 0;
    }

    .about--1st {
        margin: 40px auto 100px;
    }

    .about--2nd {
        justify-content: flex-start;
    }

    .concept {
        margin: 0 0 65px;
    }

    .concept__copy {
        gap: min(1.7vw, 25px);
    }

    .concept img {
        width: clamp(100px, 14.5vw, 209px);
    }

    .exterior-sp {
        display: none;
    }

    .exterior-pc {
        display: block;
        width: clamp(200px, 33.1vw, 477px);
        aspect-ratio: 1/1;
        overflow: hidden;
        z-index: 1;
    }

    .interior {
        width: min(47.4vw, 683px);
        margin: 0;
    }

    .interior img {
        width: 100%;
        height: auto;
        display: block;
    }
}

.mainCaption {
    margin: 16px 0;
    max-width: 545px;
}

.mainCaption__title {
    color: #8B4848;
    font-weight: 500;
    line-height: 1.5;
    padding: 2px 0 2px 12px;
    border-left: 3px solid #8B4848;
    font-size: clamp(2.0rem, 5.5vw, rem);
    max-width: 545px;
}

.mainCaption__title--br {
    display: block;
}


.mainCaption__txt {
    width: 75.8vw;
    margin-top: 16px;
}

@media (max-width: 768px) { /* SPサイズ */
    .concept__txt { 
        font-size: clamp(2.0rem, 6vw, 3.4rem);
    }
    
    .mainCaption__title { 
        font-size: clamp(2.0rem, 5.5vw, 2.6rem);
    }

    .mainCaption__txt {
        font-size: clamp(1.4rem, 4vw, 1.6rem);
    }
}

@media (min-width: 769px) {/* PCサイズ */    
    .concept__txt {
        font-size: clamp(3.0rem, 2.5vw, 3.6rem);
    }

    /* .mainCaption, .mainCaption__title {
        width: min(47.4vw, 683px);
        margin: 0;
    } */

    .mainCaption__title {
        font-size: clamp(2.2rem, 2.5vw, 3.2rem);
        border-left: 7px solid #8B4848;
        padding: 2px 0 2px 20px;
    }

    .mainCaption__title--br {
        display: inline;
    }

    .mainCaption__txt {
        font-size: 1.6rem;
        width: clamp(400px, 33.1vw, 477px);
        margin-top: 20px;
    }

    .mainCaption--2nd {
        margin-left: 40px;
    }

    .mainCaption__title--2nd, .mainCaption__txt--2nd {
        width: clamp(300px, 33.1vw, 477px);
    }
}
/* -- fadeIn-fix -- */
.fadeIn-fix {
    opacity: 0;
    transition:  1.4s;
}

.fadeIn-fix.animated {
    opacity: 1;
}

/* -- blurIn -- */
.blurIn .blur-content{
    width: 100%; 
    height: 100%; 
    object-fit: contain; 
    filter: blur(10px);
    transform: scale(1.1); 
    transition: filter 1.2s ease, transform 1.2s ease;
}

.blurIn.animated {
    filter: blur(0);
    transform: scale(1);
}

/* -- reveal -- */
.reveal {
    position: relative;
    display: inline-block;                    /* テキスト幅にフィット（100%にしたければ block） */
    overflow: hidden;                         /* はみ出す覆いを隠す */
}

.reveal::after {
    content: "";
    position: absolute;
    inset: 0;
    background-color: #8B4848;
    transform: translateX(0%);                /* 初期：全面覆い */
    z-index: 2;
    transition: 1.2s
}

.reveal.animated::after {
    transform: translateX(-102%);
}

/* ----
Menu Section
---- */
.menuTop {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 38px;
    margin: 16px auto 32px;
    max-width: 768px;
}

.menuTop__item {
    display: flex;
    align-items: flex-end;
    margin: 0 16px;
}

.menuTop__rbn {
    width: 168px;
    z-index: 1;
}

.menuTop__price {
    color: var(--text-black, #262422);
    font-family: "EB Garamond";
    font-size: 4.8rem;
    font-weight: 500;
    line-height: normal;
    margin-left: -90px;
}

@media (min-width: 1025px) {
    .section--menuTop {
        padding: 100px 0 60px;
    }

    .menuTop {
        max-width: 1000px;
        margin: 25px auto 50px;
        gap: 70px;
    }
    

    .menuTop__rbn {
        width: 284px;
    }

    .menuTop__price {
        font-size: 7.3rem;
        margin-left: -160px;
    }
}

/* ----
Access Section
---- */
.access {
    padding: 0 4%;
}

.mapLink {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    width: min(100%, 476px);
    margin: 0 auto;
}

.map__img {
    display: block;
    width: min(100%, 477px);
    margin: 16px auto 0;
}

.mapLink__icon {
    width: 15px;
    height: 18px;
}

.mapLink__txt {
    color: var(--text-brown, #554242);
    font-weight: 400;
    line-height: normal;
    text-decoration-line: underline;
    text-decoration-style: solid;
    transition: color 0.3s;
}

.mapLink__txt:hover {
    color: rgb(134, 99, 99);
}

.access__table {
    display: grid;
    grid-template-columns: min(25.9vw, 104px) 1fr;
    margin: 32px auto 0;
    width: min(100%, 477px);
}

.access__table dt, .access__table dd {
    padding: 8px 0;
    border-bottom: 1px solid var(--text-brown, #554242); /* 横線だけ */
    margin: 0;
    line-height: normal;
}

.access__table dt {
    padding-left: 8px;
    color: var(--text-brown, #554242);
    font-weight: 400;
}

@media (max-width: 768px) { /* フォントサイズ設定 */
    .access__table dt, .access__table dd {
         font-size: clamp(1.4rem, 4vw, 1.6rem);
    }
}

@media (min-width: 769px) {
    .section--access {
        padding: 100px 0 60px;
    }

    .access {
        display: flex;
        flex-direction: row-reverse;
        justify-content: center;
        align-items: center;
        gap: 40px;
    }

    .map {
        width: 477px;
    }

    .map__img {
        margin: 0;
    }

    .mapLink {
        margin: 0;
    }

    .mapLink__icon {
        width: 18px;
        height: auto;
    }

    .mapLink__txt {
        font-size: clamp(1.6rem, 2.1vw, 2.0rem);
    }

    .access__table {
        margin: 0;
        grid-template-columns: 140px 1fr;
        width: 477px;
        padding-bottom: 50px;
    }

    .access__table dt, .access__table dd {
        padding: clamp(8px, 1.4vw, 20px) 0;
        font-size: clamp(1.6rem, 2.1vw, 2.0rem);
    }

    .access__table dt {
        padding-left: 20px;
    }
}

/* ----
Stylist Section
---- */

.stylist {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0 8%;
}

.stylist__content {
    width: min(100%, 477px);
    margin: 0 auto;
}

.stylist__img {
    margin: 16px auto 24px;
    width: clamp(193px, 48vw, 232px);
}

.stylist__info {
    border-bottom: 1px solid var(--text-brown, #554242);
    margin-bottom: 16px;
}

.stylist__tag {
    text-align: center;
    color: var(--text-brown, #554242);
    line-height: 1.2;
}

.stylist__name {
    text-align: center;
    color: var(--text-brown, #554242);
    font-size: 2.4rem;
    font-weight: 500;
}

@media (min-width: 769px) {
    .section--stylist {
        padding: 60px 0 120px;
    }

    .stylist {
        flex-direction: row;
        gap: min(3.5vw, 50px);
        padding: 0 4%;
        margin-top: 35px;
    }

    .stylist__img {
        margin: 0;
    }

    .stylist__content {
        margin: 0;
        width: min(100%, 705px);
    }

    .stylist__info {
        display: flex;
        justify-content: start;
        flex-direction: row-reverse;
        align-items: baseline;
        gap: 13px;
        margin-bottom: 20px;
    }

    .stylist__tag {
        font-size: 2.0rem;
        line-height: 1.8;
    }

    .stylist__name {
        font-size: 3.6rem;
        line-height: 1.8;
    }

    .stylist__txt {
        font-size: clamp(1.6rem, 2.1vw, 2.0rem);
    }
}
