:root{--bg:#090609;--panel:#151016;--panel2:#1f1720;--gold:#d9bd75;--gold2:#a9893c;--text:#f7efe1;--muted:#bcae9a;--line:rgba(217,189,117,.25);--shadow:0 20px 55px rgba(0,0,0,.45);--radius:22px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 20% 0%,#3a2130 0,#120b11 35%,#070507 100%);color:var(--text);font-family:'Noto Serif JP','Yu Mincho','Hiragino Mincho ProN',serif;letter-spacing:.04em;line-height:1.8}a{color:inherit;text-decoration:none}img{max-width:100%;display:block} .container{width:min(1120px,92vw);margin:auto}.topbar{position:sticky;top:0;z-index:50;background:rgba(9,6,9,.82);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.nav{height:74px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px}.brand img{width:128px;height:auto}.brand span{font-size:12px;color:var(--muted);letter-spacing:.18em}.menu{display:flex;gap:4px;align-items:center}.menu a{padding:9px 14px;border-radius:999px;color:#eadfca;font-size:13px;display:flex;flex-direction:column;align-items:center;line-height:1.25}.menu a .en{letter-spacing:.12em}.menu a .jp{font-size:11px;color:var(--muted);margin-top:2px}.menu a:hover,.menu a.active{background:linear-gradient(135deg,rgba(217,189,117,.22),rgba(255,255,255,.06));color:#fff}.hamb{display:none;background:none;border:1px solid var(--line);color:var(--gold);border-radius:12px;padding:8px 12px;font-size:24px}.hero{position:relative;min-height:680px;display:grid;align-items:center;overflow:hidden;border-bottom:1px solid var(--line)}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,6,9,.92),rgba(9,6,9,.58),rgba(9,6,9,.18)),url('../images/head.jpg') center/cover no-repeat;opacity:.9}.hero:after{content:"";position:absolute;inset:auto 0 0;height:220px;background:linear-gradient(transparent,var(--bg))}.hero-inner{position:relative;z-index:2;padding:92px 0}.eyebrow{color:var(--gold);font-size:13px;letter-spacing:.3em;text-transform:uppercase;margin-bottom:18px}.hero h1{font-size:clamp(34px,6vw,76px);line-height:1.15;margin:0 0 24px;text-shadow:0 8px 30px rgba(0,0,0,.5)}.lead{max-width:620px;color:#eadfca;font-size:clamp(15px,2vw,18px)}.cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:14px 24px;border:1px solid var(--line);background:rgba(255,255,255,.04);box-shadow:var(--shadow);font-weight:700}.btn.primary{background:linear-gradient(135deg,#e6c874,#8f692a);color:#160d10}.btn:hover{transform:translateY(-1px)}.section{padding:72px 0}.section-title{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px}.section-title h2{font-size:clamp(25px,4vw,42px);margin:0}.section-title p{margin:0;color:var(--muted)}.grid{display:grid;gap:24px}.grid.two{grid-template-columns:1fr 1fr}.grid.three{grid-template-columns:repeat(3,1fr)}.card{background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.025));border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.card.pad{padding:28px}.feature img{width:100%;height:260px;object-fit:cover}.feature .pad{padding:24px}.feature h3,.therapist h3{margin:0 0 8px;font-size:22px}.muted{color:var(--muted)}.therapist{position:relative}.therapist img{width:100%;aspect-ratio:345/505;object-fit:cover}.therapist .info{padding:18px 20px;background:linear-gradient(180deg,rgba(31,23,32,.65),var(--panel))}.badge{display:inline-block;color:var(--gold);border:1px solid var(--line);border-radius:999px;padding:4px 12px;font-size:12px;margin-bottom:8px}.price-list{display:grid;gap:12px}.price-row{display:flex;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}.price-row strong{color:var(--gold);font-size:20px}.visual-band{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}.visual-band img{width:100%;object-fit:cover}.map{width:100%;height:420px;border:0;border-radius:var(--radius);filter:saturate(.85) contrast(1.05)}.footer{padding:44px 0;background:#060406;border-top:1px solid var(--line);color:var(--muted);font-size:13px}.footer-links{display:flex;gap:18px;flex-wrap:wrap;margin:16px 0}.page-hero{padding:74px 0 34px;background:linear-gradient(180deg,rgba(217,189,117,.08),transparent)}.page-hero h1{font-size:clamp(32px,5vw,54px);margin:0}.image-stack{display:grid;gap:22px}.image-stack img{border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow)}.notice{background:rgba(217,189,117,.1);border:1px solid var(--line);padding:18px;border-radius:18px}.fixed-tel{position:fixed;right:18px;bottom:18px;z-index:60}.fixed-tel .btn{padding:14px 20px}.news-box{height:280px;overflow:auto;background:#fff;color:#222;border-radius:18px;padding:10px;border:1px solid var(--line)}.news-box iframe{width:100%;height:100%;border:0}@media(max-width:860px){.hamb{display:block}.nav{height:68px}.brand img{width:104px}.brand span{display:none}.menu{position:absolute;left:4vw;right:4vw;top:76px;display:none;flex-direction:column;background:rgba(13,9,13,.96);border:1px solid var(--line);border-radius:18px;padding:12px;box-shadow:var(--shadow)}.menu.open{display:flex}.menu a{width:100%;text-align:center}.hero{min-height:610px}.hero:before{background:linear-gradient(180deg,rgba(9,6,9,.62),rgba(9,6,9,.94)),url('../images/head.jpg') center/cover no-repeat}.section{padding:48px 0}.grid.two,.grid.three{grid-template-columns:1fr}.section-title{display:block}.feature img{height:auto}.map{height:340px}.fixed-tel{left:14px;right:14px}.fixed-tel .btn{width:100%}}@media(max-width:480px){.container{width:min(94vw,440px)}.hero-inner{padding:70px 0}.cta .btn{width:100%}.card.pad{padding:20px}.price-row{font-size:14px}.price-row strong{font-size:17px}}

.view-counter{margin-top:10px;font-size:13px;letter-spacing:.08em;color:rgba(255,255,255,.72)}
.view-counter span{font-variant-numeric:tabular-nums}


/* v8: Top page News moved directly below header */
.news-top{
  padding:26px 0 32px;
  background:linear-gradient(180deg,rgba(217,189,117,.10),rgba(9,6,9,.78));
  border-bottom:1px solid var(--line);
}
.news-top .section-title{
  margin-bottom:14px;
}
.news-top .section-title h2{
  color:var(--gold);
  font-size:clamp(22px,3vw,34px);
}
.news-top .news-box{
  height:210px;
  box-shadow:var(--shadow);
}
@media(max-width:860px){
  .news-top{padding:20px 0 26px;}
  .news-top .news-box{height:190px;}
}
@media(max-width:480px){
  .news-top{padding:16px 0 22px;}
  .news-top .news-box{height:170px;border-radius:14px;}
}


/* v8.3 mobile hero image fix: show full image on smartphone */
@media screen and (max-width: 768px) {
    .hero,
    .main-visual,
    .kv,
    .fv,
    .top-hero {
        background-size: contain !important;
        background-repeat: no-repeat !important;
        background-position: center top !important;
        min-height: auto !important;
        height: auto !important;
        aspect-ratio: 16 / 9;
    }

    .hero img,
    .main-visual img,
    .kv img,
    .fv img,
    .top-hero img {
        width: 100% !important;
        height: auto !important;
        object-fit: contain !important;
        object-position: center top !important;
        display: block !important;
    }

    .hero::before,
    .main-visual::before,
    .kv::before,
    .fv::before,
    .top-hero::before {
        background-size: contain !important;
        background-repeat: no-repeat !important;
        background-position: center top !important;
    }
}




/* v8.5 hero order fix: image first, text below image */
.hero {
    position: relative;
}

.hero .container,
.hero-content,
.hero-text,
.hero-copy,
.catch-copy {
    display: none !important;
}

.hero-message {
    padding: 34px 20px 26px;
    text-align: center;
    background: linear-gradient(180deg, #120d0b 0%, #1b1210 100%);
    color: #fff7e8;
}

.hero-message h1 {
    margin: 0 0 12px;
    font-size: clamp(24px, 4vw, 42px);
    line-height: 1.45;
    letter-spacing: 0.08em;
    color: #f3d08a;
}

.hero-message p {
    margin: 0 auto;
    max-width: 760px;
    font-size: clamp(14px, 2vw, 18px);
    line-height: 1.9;
    color: rgba(255, 247, 232, 0.88);
}

@media screen and (max-width: 768px) {
    .hero {
        margin-top: 0 !important;
        background-size: contain !important;
        background-repeat: no-repeat !important;
        background-position: center top !important;
    }

    .hero-message {
        padding: 20px 14px 18px;
    }

    .hero-message h1 {
        font-size: 20px;
        line-height: 1.55;
        letter-spacing: 0.04em;
    }

    .hero-message p {
        font-size: 13px;
        line-height: 1.8;
    }
}


/* v8.6 hero brightness and full top bar */
.hero{
    min-height:780px !important;
}
.hero:before{
    opacity:1 !important;
    background:
      linear-gradient(90deg,
      rgba(9,6,9,.55),
      rgba(9,6,9,.25),
      rgba(9,6,9,.05)),
      url('../images/head.jpg') center top/contain no-repeat !important;
    filter: brightness(1.18) contrast(1.05) saturate(1.08);
}
@media (max-width:768px){
 .hero:before{
    background:
      url('../images/head.jpg') center top/contain no-repeat !important;
    filter: brightness(1.12);
 }
}




/* v8.9 News direct responsive fix */
.news-box {
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 0 !important;
}

.news-box iframe {
    display: none !important;
}

.news-direct {
    width: 100%;
    overflow: hidden;
    border-radius: 16px;
    border: 1px solid rgba(218, 164, 80, 0.45);
    background: #fffaf3;
    box-shadow: 0 14px 35px rgba(0,0,0,.18);
}

.news-direct-title {
    padding: 14px 20px;
    background: #f2e8d8;
    color: #b84b02;
    font-size: 20px;
    line-height: 1.6;
    font-weight: 700;
}

.news-direct-body {
    padding: 22px 28px 26px;
    background: #fff;
    color: #2b2118;
}

.news-direct-date {
    margin-bottom: 14px;
    color: #8a4b07;
    font-size: 17px;
    line-height: 1.7;
}

.news-direct-body p {
    margin: 0 0 13px;
    font-size: 18px;
    line-height: 1.95;
    text-align: left;
}

.news-direct-closing {
    color: #b84b02;
    font-weight: 700;
}

@media screen and (max-width: 768px) {
    .news-box {
        width: 100%;
        padding: 0 10px !important;
    }

    .news-direct {
        border-radius: 12px;
        box-shadow: 0 8px 22px rgba(0,0,0,.14);
    }

    .news-direct-title {
        padding: 11px 13px;
        font-size: 16px;
        line-height: 1.55;
    }

    .news-direct-body {
        padding: 14px 13px 16px;
    }

    .news-direct-date {
        font-size: 14px;
        margin-bottom: 10px;
    }

    .news-direct-body p {
        font-size: 14px;
        line-height: 1.85;
        margin-bottom: 10px;
    }
}


/* v9.2 mobile width only fix */
@media screen and (max-width: 768px) {
    .container {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
        box-sizing: border-box !important;
    }

    .section .container,
    main .container {
        width: 100% !important;
        max-width: 100% !important;
    }

    .grid,
    .grid.three,
    .grid.two {
        width: 100% !important;
        max-width: 100% !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 18px !important;
    }

    .card,
    .news-box,
    .news-direct {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
}


/* v9.2 mobile top image full display fix */
@media screen and (max-width: 768px) {
    .hero,
    .main-visual,
    .top-hero,
    .fv,
    .kv {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        aspect-ratio: 830 / 382;
        background-size: contain !important;
        background-repeat: no-repeat !important;
        background-position: center top !important;
        overflow: visible !important;
    }

    .hero::before,
    .main-visual::before,
    .top-hero::before,
    .fv::before,
    .kv::before {
        background-size: contain !important;
        background-repeat: no-repeat !important;
        background-position: center top !important;
    }

    .hero img,
    .main-visual img,
    .top-hero img,
    .fv img,
    .kv img {
        width: 100% !important;
        height: auto !important;
        object-fit: contain !important;
        object-position: center top !important;
        display: block !important;
    }
}





/* v9.2 balanced top image brightness */
.hero::before{
    filter: brightness(1.12) contrast(1.08) saturate(1.05) !important;
}

.hero::after{
    background: rgba(0,0,0,0.12) !important;
    opacity: 1 !important;
}

@media screen and (max-width:768px){
    .hero::before{
        filter: brightness(1.12) contrast(1.08) saturate(1.05) !important;
    }

    .hero::after{
        background: rgba(0,0,0,0.08) !important;
        opacity: 1 !important;
    }
}


/* mobile only: place Event & Campaign above News without changing PC layout */
.campaign-mobile-only{display:none;}
@media screen and (max-width:768px){
    .campaign-mobile-only{display:block;}
    .campaign-original{display:none;}
}

.mobile-break{display:inline;}@media (max-width:768px){.mobile-break{display:block;}}

.mobile-line{display:inline;}@media (max-width:768px){.mobile-line{display:block;}}
