/*
Theme Name: Utopia Hakata
Theme URI: https://utopia-hakata.com/
Author: ZERO
Description: 博多高級出張メンズエステ ゆーとぴあ専用のクラシックWordPressテーマ。
Version: 7.4.40
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.0
Text Domain: utopia-hakata
*/

:root{
  --bg:#08080b;
  --bg2:#111019;
  --card:#14131b;
  --text:#fffafc;
  --muted:#cfc7cd;
  --rose:#f0a7bd;
  --rose2:#d9799b;
  --gold:#e8c27a;
  --line:rgba(240,167,189,.28);
  --shadow:0 18px 50px rgba(0,0,0,.38);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:radial-gradient(circle at 20% 0%,#1b1220 0,transparent 30%),linear-gradient(180deg,var(--bg),#0b0a10 60%,#07070a);color:var(--text);font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;line-height:1.75}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
.container{width:min(1180px,92%);margin-inline:auto}
.site-header{position:sticky;top:0;z-index:50;background:rgba(8,8,11,.86);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.06)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:76px}
.brand{display:flex;align-items:center;gap:12px;font-family:Georgia,serif;letter-spacing:.08em}
.brand-mark{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--rose);color:var(--rose);font-size:24px;box-shadow:0 0 28px rgba(240,167,189,.18)}
.brand-copy small{display:block;font-size:10px;color:var(--muted);letter-spacing:.16em}
.brand-copy strong{display:block;font-size:20px;font-weight:500}
.site-nav ul{display:flex;gap:18px;list-style:none;margin:0;padding:0;font-size:14px}
.site-nav a{color:#eee6eb}
.site-nav a:hover{color:var(--rose)}
.hero{min-height:78vh;display:grid;place-items:center;text-align:center;position:relative;overflow:hidden;border-bottom:1px solid rgba(255,255,255,.05)}
.hero:before{content:"";position:absolute;inset:-20%;background:radial-gradient(circle at 50% 45%,rgba(240,167,189,.20),transparent 25%),radial-gradient(circle at 72% 32%,rgba(232,194,122,.10),transparent 16%),radial-gradient(circle at 20% 70%,rgba(240,167,189,.08),transparent 18%);filter:blur(10px)}
.hero-inner{position:relative;z-index:2;padding:72px 0}
.hero-logo{width:min(440px,80vw);margin:0 auto 18px;filter:drop-shadow(0 12px 26px rgba(0,0,0,.55))}
.hero-kicker{color:var(--gold);letter-spacing:.22em;font-size:12px;text-transform:uppercase}
.hero h1{font-family:Georgia,"Yu Mincho",serif;font-weight:500;font-size:clamp(34px,5vw,70px);line-height:1.2;margin:14px 0 16px}
.hero p{margin:0 auto 28px;max-width:680px;color:#eadfe5;font-size:clamp(16px,2vw,21px)}
.cta-row{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 24px;border-radius:999px;border:1px solid var(--rose);transition:.2s ease;font-weight:700}
.btn.primary{background:linear-gradient(135deg,var(--rose2),#f4bfd0);color:#170b11;border:none;box-shadow:0 10px 30px rgba(217,121,155,.30)}
.btn:hover{transform:translateY(-2px)}
.section{padding:86px 0}
.section.alt{background:linear-gradient(180deg,rgba(255,255,255,.02),rgba(255,255,255,.005))}
.section-head{text-align:center;margin-bottom:38px}
.eyebrow{color:var(--rose);font-family:Georgia,serif;letter-spacing:.24em;font-size:12px}
.section-head h2{font-family:Georgia,"Yu Mincho",serif;font-weight:500;font-size:clamp(28px,4vw,44px);margin:8px 0 10px}
.section-head p{max-width:680px;margin:auto;color:var(--muted)}
.grid{display:grid;gap:22px}
.therapist-grid{grid-template-columns:repeat(4,1fr)}
.card{background:linear-gradient(180deg,#17151e,#100f15);border:1px solid rgba(255,255,255,.08);border-radius:20px;overflow:hidden;box-shadow:var(--shadow)}
.card-image{aspect-ratio:4/5;background:linear-gradient(135deg,#251727,#100f16);overflow:hidden}
.card-image img{width:100%;height:100%;object-fit:cover}
.card-body{padding:18px}
.card h3{margin:0 0 6px;font-size:20px;font-weight:600}
.meta{color:var(--muted);font-size:13px}
.concept{max-width:860px;margin:auto;text-align:center;padding:36px;border:1px solid var(--line);border-radius:24px;background:rgba(255,255,255,.02)}
.price-grid{grid-template-columns:repeat(4,1fr)}
.price{padding:26px;text-align:center}
.price strong{display:block;font-family:Georgia,serif;font-size:34px;color:var(--gold)}
.price span{color:var(--muted)}
.area-grid{grid-template-columns:repeat(3,1fr)}
.area-card{padding:28px;min-height:180px;display:flex;flex-direction:column;justify-content:end;background:radial-gradient(circle at 20% 0%,rgba(240,167,189,.18),transparent 45%),#121019}
.latest-grid{grid-template-columns:repeat(3,1fr)}
.latest-item{padding:22px}
.latest-item time{color:var(--rose);font-size:12px}
.cta-band{padding:58px 0;text-align:center;background:linear-gradient(90deg,rgba(217,121,155,.12),rgba(232,194,122,.08),rgba(217,121,155,.12));border-block:1px solid var(--line)}
.site-footer{padding:42px 0;color:#bdb3ba;font-size:13px;text-align:center}
.content-wrap{width:min(920px,92%);margin:60px auto;background:#111016;border:1px solid rgba(255,255,255,.07);padding:34px;border-radius:18px}
.mobile-bar{display:none}
@media(max-width:900px){
  .site-nav{display:none}
  .therapist-grid,.price-grid{grid-template-columns:repeat(2,1fr)}
  .area-grid,.latest-grid{grid-template-columns:1fr}
  .hero{min-height:68vh}
  .mobile-bar{position:fixed;z-index:80;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(3,1fr);background:rgba(10,9,13,.96);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
  .mobile-bar a{padding:12px 6px;text-align:center;font-size:12px}
  body{padding-bottom:54px}
}
@media(max-width:560px){
  .header-inner{min-height:64px}
  .brand-copy small{font-size:8px}.brand-copy strong{font-size:17px}
  .therapist-grid,.price-grid{grid-template-columns:1fr 1fr}
  .section{padding:66px 0}
  .card-body{padding:14px}
}

/* Therapist profile v1.1 */
.therapist-card{position:relative;transition:transform .22s ease,border-color .22s ease}
.therapist-card:hover{transform:translateY(-5px);border-color:rgba(240,167,189,.4)}
.today-badge{position:absolute;left:12px;bottom:12px;background:rgba(8,8,11,.86);border:1px solid var(--rose);color:#ffd8e4;padding:7px 10px;border-radius:999px;font-size:11px;letter-spacing:.06em;backdrop-filter:blur(8px)}
.therapist-specs{font-family:Georgia,"Yu Mincho",serif;color:#f7dde5;font-size:14px;letter-spacing:.03em;margin-bottom:3px}
.therapist-catch{font-size:13px;color:var(--muted);margin:10px 0 0;border-top:1px solid rgba(255,255,255,.06);padding-top:10px}
.section-more{text-align:center;margin-top:30px}
.therapist-profile{display:grid;grid-template-columns:minmax(0,480px) 1fr;gap:56px;align-items:start}
.therapist-main-photo{border-radius:24px;overflow:hidden;background:#15131b;border:1px solid rgba(255,255,255,.08);box-shadow:var(--shadow)}
.therapist-main-photo img{width:100%;aspect-ratio:4/5;object-fit:cover}
.therapist-info h1{font-family:Georgia,"Yu Mincho",serif;font-size:clamp(38px,5vw,64px);font-weight:500;margin:8px 0 8px}
.profile-catch{color:#f0c8d4;font-size:18px;margin:0 0 24px}
.profile-table{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:24px 0}
.profile-table>div{padding:14px 16px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(255,255,255,.025)}
.profile-table>div.wide{grid-column:1/-1;border-color:var(--line)}
.profile-table span{display:block;color:var(--rose);font-size:10px;letter-spacing:.16em}
.profile-table strong{font-size:15px;font-weight:600}
.profile-content{color:#e2d9df;margin:28px 0}
.profile-content p{margin:0 0 1.25em}
.profile-cta{justify-content:flex-start}
@media(max-width:800px){.therapist-profile{grid-template-columns:1fr;gap:28px}.therapist-photo-wrap{max-width:520px;margin:auto}.profile-cta{justify-content:center}}


/* Therapist detail v1.2 */
.therapist-main-photo img{transition:opacity .18s ease}
.therapist-thumbs{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin-top:12px}
.therapist-thumb{appearance:none;border:1px solid rgba(255,255,255,.09);padding:0;border-radius:12px;overflow:hidden;background:#15131b;cursor:pointer;opacity:.62;transition:.2s ease}
.therapist-thumb:hover,.therapist-thumb.is-active{opacity:1;border-color:var(--rose);transform:translateY(-2px)}
.therapist-thumb img{width:100%;aspect-ratio:1/1;object-fit:cover}
.today-profile{background:linear-gradient(90deg,rgba(217,121,155,.12),rgba(232,194,122,.07))!important}
.profile-schedule-section{padding-top:70px}
.section-head.compact{margin-bottom:24px}
.weekly-schedule{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}
.schedule-day{min-height:108px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#17151e,#100f15);border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:13px 8px;box-shadow:0 12px 30px rgba(0,0,0,.18)}
.schedule-day span{color:var(--rose);font-family:Georgia,"Yu Mincho",serif;font-size:14px;margin-bottom:7px}
.schedule-day strong{font-size:13px;font-weight:600;line-height:1.45;color:#f5edf1}
@media(max-width:900px){.weekly-schedule{grid-template-columns:repeat(4,1fr)}}
@media(max-width:560px){.therapist-thumbs{grid-template-columns:repeat(4,1fr)}.weekly-schedule{grid-template-columns:repeat(2,1fr)}.schedule-day{min-height:88px}}


/* Schedule v1.3 */
.schedule-day strong .instant{color:var(--rose)}


/* Public schedule page v1.5 */
.schedule-public-page{padding-top:64px}
.schedule-title-head h1{font-family:Georgia,"Yu Mincho",serif;font-weight:500;font-size:clamp(36px,5vw,58px);margin:8px 0 10px}
.schedule-date-tabs{display:grid;grid-template-columns:repeat(7,1fr);gap:9px;margin:0 0 34px;position:sticky;top:86px;z-index:35;padding:10px;background:rgba(8,8,11,.90);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.06);border-radius:18px}
.schedule-date-tab{appearance:none;border:1px solid rgba(255,255,255,.09);background:#141219;color:#ddd2d9;border-radius:13px;padding:12px 6px;cursor:pointer;transition:.2s ease;font-family:inherit}
.schedule-date-tab small{display:block;color:var(--muted);font-size:10px;letter-spacing:.08em;margin-bottom:2px}
.schedule-date-tab strong{display:block;font-size:13px}
.schedule-date-tab:hover,.schedule-date-tab.is-active{border-color:var(--rose);background:linear-gradient(180deg,rgba(217,121,155,.20),rgba(217,121,155,.06));box-shadow:0 8px 24px rgba(217,121,155,.13)}
.schedule-date-tab.is-active small,.schedule-date-tab.is-active strong{color:#ffd9e5}
.schedule-day-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:0 0 22px;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:14px}
.schedule-day-heading h2{font-family:Georgia,"Yu Mincho",serif;font-weight:500;font-size:28px;margin:0}
.schedule-day-heading span{color:var(--rose);font-size:13px}
.schedule-therapist-grid{grid-template-columns:repeat(4,1fr)}
.schedule-therapist-card{position:relative;transition:.22s ease}
.schedule-therapist-card:hover{transform:translateY(-5px);border-color:rgba(240,167,189,.38)}
.schedule-card-image{position:relative}
.instant-badge{position:absolute;left:12px;top:12px;z-index:2;padding:7px 11px;border-radius:999px;background:linear-gradient(135deg,#f5b7c9,#df7fa0);color:#250d16;font-weight:800;font-size:11px;box-shadow:0 8px 22px rgba(217,121,155,.35)}
.schedule-name-row{display:flex;align-items:baseline;gap:8px}
.schedule-name-row h3{margin:0}
.schedule-name-row span{font-size:12px;color:var(--muted)}
.schedule-time-box{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid rgba(240,167,189,.22);background:rgba(217,121,155,.06);border-radius:12px;padding:10px 12px;margin-top:12px}
.schedule-time-box span{font-size:10px;letter-spacing:.12em;color:var(--rose)}
.schedule-time-box strong{font-size:14px;color:#fff5f8}
.schedule-reception{font-size:11px;color:var(--muted);text-align:right;margin-top:5px}
.schedule-profile-button{display:block;margin-top:14px;color:#efc2d0;font-size:12px;text-align:right}
.schedule-empty{text-align:center;border:1px dashed rgba(255,255,255,.14);border-radius:20px;padding:60px 20px;color:var(--muted)}
.schedule-empty-mark{font-size:30px;color:var(--rose);margin-bottom:8px}
.schedule-empty h3{color:#f0e8ed;margin:0 0 5px}
.schedule-empty p{margin:0}
@media(max-width:900px){.schedule-therapist-grid{grid-template-columns:repeat(2,1fr)}.schedule-date-tabs{top:74px;overflow-x:auto;display:flex;scrollbar-width:none}.schedule-date-tabs::-webkit-scrollbar{display:none}.schedule-date-tab{min-width:86px;flex:0 0 86px}}
@media(max-width:560px){.schedule-public-page{padding-top:42px}.schedule-date-tabs{margin-inline:-4%;border-radius:0;border-inline:0;padding-inline:4%}.schedule-therapist-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.schedule-therapist-card .card-body{padding:12px}.schedule-name-row{display:block}.schedule-name-row h3{font-size:18px}.schedule-name-row span{font-size:11px}.schedule-time-box{display:block;padding:8px 9px}.schedule-time-box span{display:block}.schedule-time-box strong{font-size:12px}.schedule-card-image{aspect-ratio:4/5}.instant-badge{left:8px;top:8px;font-size:10px;padding:5px 8px}.schedule-day-heading h2{font-size:23px}}

/* v1.6 LINE reservation */
.utopia-line-btn{white-space:nowrap}

/* Pricing manager v1.7 */
.dynamic-price{position:relative;padding-top:30px}.dynamic-price small{display:block;color:var(--muted);font-size:11px;letter-spacing:.08em;margin-bottom:5px}.dynamic-price p{font-size:12px;color:var(--muted);margin:12px 0 0}.dynamic-price.is-recommended{border-color:rgba(240,167,189,.5);box-shadow:0 16px 42px rgba(217,121,155,.12)}.price-label{position:absolute;top:10px;right:10px;background:linear-gradient(135deg,#f4c4d2,#d9799b);color:#2b111a;font-style:normal;font-size:10px;font-weight:800;padding:5px 9px;border-radius:999px}.system-full-grid{margin-bottom:40px}.price-extras{margin-top:48px;padding:28px;border:1px solid rgba(255,255,255,.08);border-radius:20px;background:rgba(255,255,255,.025)}.price-extras h2{font-family:Georgia,"Yu Mincho",serif;font-weight:500}.price-extra-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.price-extra-grid>div{padding:16px;border:1px solid rgba(255,255,255,.07);border-radius:14px}.price-extra-grid span{display:block;color:var(--rose);font-size:11px;margin-bottom:5px}.price-note{color:var(--muted);margin:20px 0 0}@media(max-width:700px){.price-extra-grid{grid-template-columns:1fr}}

/* v1.8 Design & unified therapist photos */
:root{--therapist-photo-ratio:3/4;--therapist-photo-position:center top}
.card-image,.schedule-card-image{aspect-ratio:var(--therapist-photo-ratio)!important;overflow:hidden}
.card-image img,.schedule-card-image img{width:100%;height:100%!important;object-fit:cover!important;object-position:var(--therapist-photo-position)!important}
.therapist-main-photo{aspect-ratio:var(--therapist-photo-ratio);position:relative}
.therapist-main-photo img{width:100%;height:100%!important;aspect-ratio:auto!important;object-fit:cover!important;object-position:var(--therapist-photo-position)!important}
.therapist-thumb{aspect-ratio:var(--therapist-photo-ratio)}
.therapist-thumb img{width:100%;height:100%!important;aspect-ratio:auto!important;object-fit:cover!important;object-position:var(--therapist-photo-position)!important}
.hero{min-height:86vh;background:linear-gradient(180deg,rgba(5,4,8,.2),rgba(5,4,8,.75))}
.hero:after{content:"✦  ✧  ✦";position:absolute;inset:auto 0 7%;text-align:center;color:rgba(240,167,189,.32);letter-spacing:3.5em;font-size:16px;pointer-events:none}
.hero-logo{width:min(520px,82vw);filter:drop-shadow(0 20px 44px rgba(0,0,0,.65)) drop-shadow(0 0 22px rgba(240,167,189,.16))}
.section-head h2{letter-spacing:.06em}.therapist-card{background:linear-gradient(160deg,#19141d,#0c0b10);box-shadow:0 24px 70px rgba(0,0,0,.42)}
.therapist-card .card-image{position:relative}.therapist-card .card-image:after{content:"";position:absolute;inset:auto 0 0;height:28%;background:linear-gradient(transparent,rgba(7,6,9,.75));pointer-events:none}
.today-badge{z-index:2}.dynamic-price.is-recommended{border-color:rgba(232,194,122,.55);box-shadow:0 20px 60px rgba(232,194,122,.08)}
@media(max-width:560px){.hero{min-height:74vh}.hero-logo{width:min(390px,88vw)}.therapist-grid{gap:12px}.therapist-card h3{font-size:17px}.therapist-specs{font-size:12px}}

/* v1.9 TOP image / header logo / banners / mood finder */
.brand-image{display:flex;align-items:center;flex:0 0 auto;max-width:220px}
.brand-image img{width:auto;height:54px;max-width:220px;object-fit:contain;object-position:left center;filter:drop-shadow(0 3px 12px rgba(240,167,189,.16))}
.nav-toggle{display:none;width:44px;height:44px;border:1px solid rgba(240,167,189,.28);border-radius:50%;background:rgba(255,255,255,.02);padding:11px;cursor:pointer}
.nav-toggle span{display:block;height:1px;background:#f6d8e1;margin:5px 0}
.hero.has-hero-image{background-image:var(--hero-bg);background-size:cover;background-position:center;isolation:isolate}
.hero.has-hero-image:before{background:radial-gradient(circle at 50% 42%,rgba(240,167,189,.15),transparent 30%)}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,4,8,.80),rgba(5,4,8,.40) 45%,rgba(5,4,8,.62)),linear-gradient(0deg,rgba(5,4,8,.86),transparent 55%);z-index:1}
.hero:not(.has-hero-image) .hero-shade{background:linear-gradient(180deg,rgba(5,4,8,.05),rgba(5,4,8,.60))}
.hero-inner{z-index:3}
.hero-emblem{width:min(300px,58vw);max-height:180px;object-fit:contain;margin:14px auto 22px;filter:drop-shadow(0 12px 30px rgba(0,0,0,.65))}
.hero.has-hero-image .hero-emblem{width:min(270px,55vw);max-height:150px}
.hero h1{text-shadow:0 4px 24px rgba(0,0,0,.7)}
.hero p{text-shadow:0 2px 15px rgba(0,0,0,.8)}
.banner-section{padding:30px 0 4px;background:linear-gradient(180deg,#08080b,rgba(17,16,25,.45))}
.banner-grid{display:grid;gap:16px}.banner-count-1{grid-template-columns:minmax(0,1fr)}.banner-count-2{grid-template-columns:repeat(2,1fr)}.banner-count-3{grid-template-columns:repeat(3,1fr)}
.site-banner{overflow:hidden;border-radius:18px;border:1px solid rgba(240,167,189,.18);background:#121019;box-shadow:0 14px 36px rgba(0,0,0,.28)}
.site-banner a{display:block}.site-banner img{width:100%;aspect-ratio:16/5;object-fit:cover;transition:transform .28s ease}.site-banner:hover img{transform:scale(1.018)}
.mood-section{overflow:hidden}.mood-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;max-width:980px;margin:0 auto 30px}
.mood-button{appearance:none;min-height:82px;border:1px solid rgba(240,167,189,.24);border-radius:18px;background:linear-gradient(145deg,rgba(35,24,35,.88),rgba(13,12,18,.96));color:#f8edf2;padding:16px;cursor:pointer;font-family:inherit;font-size:14px;line-height:1.45;transition:.2s ease;box-shadow:0 12px 32px rgba(0,0,0,.2)}
.mood-button span{display:block;color:var(--rose);font-family:Georgia,serif;font-size:22px;line-height:1;margin-bottom:8px}.mood-button:hover,.mood-button.is-active{transform:translateY(-3px);border-color:rgba(240,167,189,.72);background:linear-gradient(145deg,rgba(217,121,155,.18),rgba(22,16,24,.97));box-shadow:0 14px 38px rgba(217,121,155,.12)}
.mood-result{max-width:980px;margin:0 auto}.mood-placeholder{text-align:center;padding:36px 20px;border:1px dashed rgba(240,167,189,.26);border-radius:20px;color:var(--muted)}.mood-placeholder span{display:block;color:var(--rose);font-size:26px}.mood-placeholder strong{display:block;color:#f7eef2;font-family:Georgia,"Yu Mincho",serif;font-size:20px;margin:6px 0}.mood-placeholder p{margin:0}.mood-therapist-grid{grid-template-columns:repeat(3,1fr)}
.mood-therapist-card h3 small{font-size:12px;color:var(--muted);font-weight:400}.mood-admin-note{text-align:center;color:var(--muted);font-size:12px;margin-top:12px}
.service-area-note{max-width:980px;margin:36px auto 0;padding:22px 26px;border-top:1px solid rgba(232,194,122,.24);border-bottom:1px solid rgba(232,194,122,.14);text-align:center}.service-area-note span{display:block;color:var(--gold);font-family:Georgia,serif;font-size:10px;letter-spacing:.22em}.service-area-note strong{display:block;font-family:Georgia,"Yu Mincho",serif;font-size:20px;font-weight:500;margin:6px 0}.service-area-note p{margin:0;color:var(--muted);font-size:13px}
@media(min-width:901px){.therapist-grid:has(> :only-child){grid-template-columns:minmax(260px,320px);justify-content:center}.latest-grid:has(> :only-child){grid-template-columns:minmax(320px,520px);justify-content:center}}
@media(max-width:900px){
  .brand-image img{height:46px;max-width:180px}.nav-toggle{display:block;margin-left:auto}.site-nav{display:none;position:absolute;left:4%;right:4%;top:70px;background:rgba(10,9,14,.98);border:1px solid rgba(240,167,189,.18);border-radius:18px;padding:14px;box-shadow:0 20px 50px rgba(0,0,0,.55)}.site-nav.is-open{display:block}.site-nav ul{display:grid;grid-template-columns:repeat(2,1fr);gap:0}.site-nav a{display:block;padding:12px;border-bottom:1px solid rgba(255,255,255,.05)}
  .mood-buttons{grid-template-columns:repeat(2,1fr)}.mood-therapist-grid{grid-template-columns:repeat(2,1fr)}.banner-count-3{grid-template-columns:1fr 1fr}.banner-count-3 .site-banner:last-child{grid-column:1/-1}
}
@media(max-width:560px){
  .brand-image{max-width:155px}.brand-image img{height:40px;max-width:155px}.hero{min-height:72vh}.hero-inner{padding:62px 0 54px}.hero-emblem{width:min(230px,60vw);max-height:125px}.hero h1{font-size:clamp(30px,9vw,43px);letter-spacing:.02em}.hero p{font-size:14px;max-width:92%}
  .banner-section{padding-top:18px}.banner-grid,.banner-count-2,.banner-count-3{grid-template-columns:1fr}.banner-count-3 .site-banner:last-child{grid-column:auto}.site-banner{border-radius:13px}.site-banner img{aspect-ratio:16/6}
  .mood-buttons{grid-template-columns:1fr 1fr;gap:9px}.mood-button{min-height:88px;padding:12px 9px;font-size:12px}.mood-button span{font-size:19px}.mood-therapist-grid{grid-template-columns:1fr 1fr;gap:12px}.service-area-note{padding-inline:10px}.service-area-note strong{font-size:17px}
}


/* v2.0 TOP finishing */
.brand-image{flex:0 0 auto;max-width:245px}.brand-image img{height:54px;width:auto;max-width:245px;object-fit:contain}
.banner-slider{scroll-snap-type:x mandatory}.site-banner{scroll-snap-align:start}
.featured-section{background:radial-gradient(circle at 50% 0%,rgba(240,167,189,.07),transparent 35%)}
.diary-card .diary-thumb{display:block;aspect-ratio:16/10;overflow:hidden;background:#15131b}.diary-card .diary-thumb img{width:100%;height:100%;object-fit:cover}.diary-card time{color:var(--rose);font-size:11px}.diary-card h3{font-size:17px}
@media(min-width:901px){.hero-inner{max-width:900px}.banner-count-1 .site-banner{max-width:980px;margin:auto}}
@media(max-width:900px){.banner-slider{display:flex!important;overflow-x:auto;gap:12px;padding-bottom:8px;scrollbar-width:none}.banner-slider::-webkit-scrollbar{display:none}.banner-slider .site-banner{flex:0 0 82%;}.featured-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.brand-image{max-width:190px}.brand-image img{height:46px;max-width:190px}.hero.has-hero-image{background-position:center center}.hero-inner{padding:48px 0}.hero.has-hero-image .hero-emblem{width:min(200px,54vw);max-height:110px}.hero h1{font-size:clamp(28px,8.5vw,39px);line-height:1.3}.hero p{font-size:13px}.banner-slider .site-banner{flex-basis:88%}.section-head{margin-bottom:28px}.section-head h2{font-size:28px}.featured-grid{gap:12px}}


/* v2.1 PC/SP hero, independent logos, centered card counts, mobile action bar */
.hero{background-image:var(--hero-bg,none)}
.hero.has-hero-image{background-image:var(--hero-bg);background-size:cover;background-position:center center}
.brand-image{min-width:0}.brand-image img{display:block;height:60px;max-width:280px;width:auto}
.hero-emblem{width:min(380px,66vw);max-height:210px}

/* Count-aware therapist layout without relying only on :has support */
.therapist-grid{grid-template-columns:repeat(4,minmax(0,1fr));justify-content:center}
.therapist-grid:has(> :only-child){grid-template-columns:minmax(250px,320px)}
.therapist-grid:has(> :nth-child(2):last-child){grid-template-columns:repeat(2,minmax(250px,320px))}
.therapist-grid:has(> :nth-child(3):last-child){grid-template-columns:repeat(3,minmax(230px,300px))}
.mood-therapist-grid:has(> :only-child){grid-template-columns:minmax(250px,320px);justify-content:center}
.mood-therapist-grid:has(> :nth-child(2):last-child){grid-template-columns:repeat(2,minmax(240px,320px));justify-content:center}

.banner-count-1{display:block}.banner-count-1 .site-banner{max-width:1000px;margin:0 auto}
.banner-count-1 .site-banner img{aspect-ratio:16/5}

.mobile-bar{display:none}
@media(max-width:900px){
  .brand-image img{height:50px;max-width:230px}
  .therapist-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .therapist-grid:has(> :only-child){grid-template-columns:minmax(220px,300px)}
  .therapist-grid:has(> :nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
  .banner-count-1{display:block!important;overflow:visible}.banner-count-1 .site-banner{max-width:none}.banner-count-1 .site-banner img{aspect-ratio:16/6}
  .mobile-bar{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;z-index:80;left:0;right:0;bottom:0;background:rgba(8,7,11,.96);border-top:1px solid rgba(240,167,189,.2);backdrop-filter:blur(16px);padding:max(7px,env(safe-area-inset-bottom)) 8px 7px;box-shadow:0 -8px 32px rgba(0,0,0,.38)}
  .mobile-bar a{display:flex;min-height:48px;align-items:center;justify-content:center;flex-direction:column;gap:2px;color:#f8eaf0;text-decoration:none;font-size:11px;letter-spacing:.05em;border-right:1px solid rgba(255,255,255,.06)}.mobile-bar a:last-child{border-right:0}.mobile-bar a span{color:var(--rose);font-size:15px;line-height:1}.mobile-bar .mobile-line{background:linear-gradient(180deg,rgba(217,121,155,.22),rgba(217,121,155,.08));border-radius:10px}
  body{padding-bottom:66px}
}
@media(max-width:560px){
  .brand-image{max-width:220px}.brand-image img{height:48px;max-width:220px}
  .hero.has-hero-image{background-image:var(--hero-bg-mobile,var(--hero-bg));background-position:center center;min-height:70vh}
  .hero-emblem{width:min(270px,72vw);max-height:150px}
  .therapist-grid:has(> :only-child){grid-template-columns:minmax(210px,280px)}
  .banner-count-1 .site-banner img{aspect-ratio:16/7}
}


/* v2.2 hero clarity + mobile reservation bar */
.hero.has-hero-image:before{display:none!important}
.hero.has-hero-image .hero-shade{
  background:rgba(5,4,8,var(--hero-overlay,.0))!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.mobile-bar .mobile-action-disabled{
  display:flex;min-height:48px;align-items:center;justify-content:center;flex-direction:column;gap:2px;
  color:rgba(248,234,240,.5);font-size:11px;letter-spacing:.05em;border-right:1px solid rgba(255,255,255,.06);
  cursor:not-allowed;user-select:none;
}
.mobile-bar .mobile-action-disabled span{color:rgba(240,167,189,.48);font-size:15px;line-height:1}
.mobile-bar .mobile-phone{background:linear-gradient(180deg,rgba(232,194,122,.17),rgba(232,194,122,.05));border-radius:10px}
@media(max-width:900px){
  .mobile-bar{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:unset;grid-auto-columns:unset}
  .mobile-bar>a,.mobile-bar>.mobile-action-disabled{border-right:1px solid rgba(255,255,255,.06)}
  .mobile-bar>*:last-child{border-right:0}
}


/* v2.3 hero true-image rendering + mobile action bar fixes */
.hero.has-hero-image{
  background-image:none!important;
  background:none!important;
}
.hero-media{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
  pointer-events:none;
}
.hero-media picture,
.hero-media img{
  display:block;
  width:100%;
  height:100%;
}
.hero-media img{
  object-fit:cover;
  object-position:center center;
  filter:none!important;
  opacity:1!important;
  transform:none!important;
  image-rendering:auto;
}
.hero.has-hero-image:before,
.hero.has-hero-image:after{display:none!important}
.hero.has-hero-image .hero-shade{
  z-index:1;
  background:rgba(5,4,8,var(--hero-overlay,0))!important;
  filter:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  mix-blend-mode:normal!important;
}
.hero.has-hero-image .hero-inner{z-index:2}
@media(max-width:900px){
  .mobile-bar,
  .mobile-bar a,
  .mobile-bar .mobile-line,
  .mobile-bar .mobile-phone,
  .mobile-bar .mobile-action-disabled{
    background:#0b0a0f!important;
    background-image:none!important;
    color:#fff5f8!important;
    border-radius:0!important;
    box-shadow:none!important;
  }
  .mobile-bar{border-top:1px solid rgba(240,167,189,.28)!important}
  .mobile-bar a span,.mobile-bar .mobile-action-disabled span{color:var(--rose)!important}
  .mobile-bar .mobile-action-disabled{color:rgba(255,245,248,.55)!important}
}

/* v2.4 luxury dense redesign */
:root{--v24-rose:#e8a0ae;--v24-gold:#c99161;--v24-line:rgba(232,160,174,.38);--v24-panel:rgba(20,12,16,.92)}
body{background:#050407;background-image:radial-gradient(circle at 15% 20%,rgba(118,38,67,.12),transparent 28%),radial-gradient(circle at 85% 55%,rgba(130,72,38,.08),transparent 30%)}
.site-header{background:rgba(5,4,7,.96);border-bottom:1px solid var(--v24-line);backdrop-filter:blur(12px)}
.header-inner{max-width:1380px}.site-logo img{max-height:62px;width:auto}.site-nav a{letter-spacing:.08em}.site-nav a:hover{color:var(--v24-rose)}
.hero{border-bottom:1px solid var(--v24-line)}.hero-media img{filter:none!important;opacity:1!important}.hero-shade{background:linear-gradient(90deg,rgba(0,0,0,.08),transparent 58%)!important;opacity:1!important;backdrop-filter:none!important}.hero-inner{min-height:min(720px,72vw);max-width:1380px}
.section{padding:58px 0;border-bottom:1px solid rgba(232,160,174,.16)}.section.alt{background:linear-gradient(180deg,rgba(21,12,18,.62),rgba(5,4,7,.2))}.container{max-width:1320px}.section-head{margin-bottom:30px}.section-head h2{font-size:clamp(28px,3vw,42px);letter-spacing:.08em}.eyebrow{color:var(--v24-rose);letter-spacing:.22em}.section-head:after{content:'✦';display:block;color:var(--v24-rose);margin-top:12px}
.card,.concept,.mood-result,.service-area-note{background:linear-gradient(145deg,rgba(26,15,22,.96),rgba(9,7,11,.96));border:1px solid var(--v24-line);box-shadow:inset 0 0 0 1px rgba(201,145,97,.06),0 14px 38px rgba(0,0,0,.28)}
.therapist-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;justify-content:center}.therapist-grid:has(> :only-child){grid-template-columns:minmax(230px,290px)}.therapist-grid:has(> :nth-child(2):last-child){grid-template-columns:repeat(2,minmax(230px,290px))}.therapist-grid:has(> :nth-child(3):last-child){grid-template-columns:repeat(3,minmax(220px,280px))}.card-image{border-bottom:1px solid var(--v24-line)}.card-body h3{font-size:20px}.today-badge{background:rgba(196,94,119,.92);border:1px solid #f0b3c0}
.price-grid{grid-template-columns:repeat(4,1fr);gap:12px}.price-grid .card{border-color:rgba(201,145,97,.58);background:linear-gradient(180deg,rgba(18,11,14,.98),rgba(7,6,8,.98));text-align:center}.price-grid .price{color:#f0c09b;text-shadow:0 0 18px rgba(232,160,174,.18)}
.mood-section .container{display:grid;grid-template-columns:1fr 1fr;gap:28px}.mood-section .section-head,.mood-section .service-area-note{grid-column:1/-1}.mood-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.mood-button{border:1px solid var(--v24-line);background:linear-gradient(145deg,rgba(29,16,23,.95),rgba(12,9,13,.95));min-height:76px}.mood-button:hover,.mood-button.is-active{border-color:#e8a0ae;box-shadow:0 0 22px rgba(232,160,174,.15)}.mood-result{margin:0;min-height:100%}.service-area-note{padding:20px 28px;text-align:center}
.concept{max-width:900px;margin:auto;padding:34px;font-size:16px;line-height:2}.latest-grid{grid-template-columns:repeat(3,1fr);gap:16px}.diary-card .diary-thumb img{aspect-ratio:16/9;object-fit:cover;width:100%}
.btn{border-color:rgba(232,160,174,.55);background:linear-gradient(180deg,rgba(35,18,25,.9),rgba(12,9,13,.9))}.btn:hover{background:rgba(143,66,89,.28);border-color:#e8a0ae}
.site-footer{border-top:1px solid var(--v24-line);background:#030304}
@media(max-width:820px){.site-logo img{max-height:44px;max-width:190px}.hero-inner{min-height:0}.section{padding:42px 0}.container{width:min(100% - 24px,1320px)}.therapist-grid,.featured-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}.therapist-grid:has(> :only-child){grid-template-columns:minmax(0,240px)!important}.price-grid{grid-template-columns:repeat(2,1fr);gap:9px}.mood-section .container{display:block}.mood-buttons{grid-template-columns:repeat(2,1fr);gap:8px}.mood-result{margin-top:12px}.service-area-note{margin-top:18px}.latest-grid{grid-template-columns:1fr}.section-head h2{font-size:27px}.card-body{padding:13px}.card-body h3{font-size:16px}.mobile-bottom-nav{background:rgba(7,5,8,.97)!important;border-top:1px solid var(--v24-line)!important}.mobile-bottom-nav a{background:transparent!important;color:#fff!important;border-right:1px solid rgba(232,160,174,.16)}.mobile-bottom-nav a:nth-child(2){color:#f0a9b8!important}}

/* v2.5 full homepage structural redesign */
.home-v25{background:#050406;color:#fff8fa}
.v25-header{background:rgba(3,3,5,.98);border-bottom:1px solid rgba(228,154,169,.34)}
.v25-header .header-inner{max-width:1460px;min-height:84px;gap:22px}.v25-header .brand-image img{height:64px;max-width:280px}.v25-header .site-nav{margin-left:auto}.v25-header .site-nav ul{gap:22px}.v25-header .site-nav a{font-family:Georgia,"Yu Mincho",serif;font-size:13px;color:#fff;letter-spacing:.09em}
.header-contact{display:flex;align-items:center;gap:12px}.header-phone{display:flex;flex-direction:column;line-height:1.1;text-align:right}.header-phone small{font-size:9px;color:#bcaeb4;letter-spacing:.06em}.header-phone strong{font-family:Georgia,serif;font-size:16px;color:#f2d3a7;font-weight:500;margin-top:5px}.header-line{padding:12px 18px;border:1px solid rgba(240,167,189,.55);background:linear-gradient(135deg,#b95f7f,#d991a7);color:#fff!important;font-size:12px!important;min-width:116px;text-align:center}
.hero-v25{min-height:690px;place-items:stretch;text-align:left}.hero-v25 .hero-media img{object-position:center}.hero-v25 .hero-shade{background:linear-gradient(90deg,rgba(0,0,0,.58) 0%,rgba(0,0,0,.25) 35%,rgba(0,0,0,.02) 72%)!important}.hero-v25-inner{min-height:690px;display:flex;align-items:center;justify-content:flex-start;max-width:1420px}.hero-copy-panel{width:min(620px,48vw);padding:36px 0}.hero-v25 .hero-emblem{width:min(430px,42vw);max-height:220px;margin:0 0 24px}.hero-v25 h1{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(36px,4vw,64px);line-height:1.35;margin:0 0 18px;text-shadow:0 2px 14px rgba(0,0,0,.72)}.hero-v25 p{max-width:560px;color:#f2e9ed;font-size:14px;letter-spacing:.06em}
.v25-section{padding:54px 0;border-bottom:1px solid rgba(225,147,165,.25)}.ornament-title{text-align:center;margin-bottom:28px;position:relative}.ornament-title span{display:block;color:#e5a3b2;font-family:Georgia,serif;font-size:12px;letter-spacing:.24em}.ornament-title h2{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:34px;letter-spacing:.08em;margin:6px 0 14px;font-weight:500}.ornament-title i{display:block;width:180px;height:1px;margin:auto;background:linear-gradient(90deg,transparent,#c99161,#e7a4b4,#c99161,transparent);position:relative}.ornament-title i:after{content:'✦';position:absolute;left:50%;top:50%;transform:translate(-50%,-52%);padding:0 8px;background:#050406;color:#e7a4b4;font-style:normal;font-size:11px}
.v25-therapists{background:radial-gradient(circle at 50% 0%,rgba(122,49,76,.10),transparent 34%),#050406}.v25-therapist-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;align-items:stretch}.v25-therapist-grid .card{border:1px solid rgba(216,138,155,.42);border-radius:2px;background:#0b090c}.v25-therapist-grid .card-image{border-radius:0}.v25-therapist-grid .card-body{padding:12px 13px 14px}.v25-therapist-grid .card-body h3{font-family:"Yu Mincho",serif;font-size:18px}.v25-therapist-grid .meta{font-size:11px}
.v25-concept{background:linear-gradient(180deg,#080609,#050406)}.concept-split{display:grid;grid-template-columns:1.08fr 1fr;gap:0;max-width:1240px}.concept-visual{min-height:440px;background-size:cover;background-position:center;position:relative;border:1px solid rgba(201,145,97,.34)}.concept-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,4,6,.08),rgba(5,4,6,.64))}.concept-lotus{position:absolute;z-index:2;left:34px;bottom:32px;color:#f0c4cf;font-size:28px;text-shadow:0 0 22px rgba(231,164,180,.35)}.concept-lotus span{display:block;font-family:Georgia,serif;font-size:13px;letter-spacing:.3em;color:#e2bb93;margin-top:6px}.concept-copy{padding:42px 42px 36px;background:linear-gradient(145deg,rgba(24,13,18,.96),rgba(8,6,9,.98));border:1px solid rgba(201,145,97,.34);border-left:0}.concept-copy h2{font-family:"Yu Mincho",serif;font-weight:500;font-size:34px;line-height:1.55;margin:8px 0 18px}.concept-copy>p{color:#d7ccd1;font-size:14px;line-height:2}.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:24px}.feature-grid>div{min-height:108px;padding:16px;border:1px solid rgba(216,138,155,.32);background:rgba(6,5,7,.55);text-align:center}.feature-grid b{display:block;color:#e5a3b2;font-size:18px}.feature-grid strong{display:block;font-family:"Yu Mincho",serif;font-size:15px;color:#f6e4e9;margin:6px 0 3px}.feature-grid small{color:#a99ba1;font-size:10px}
.v25-mood{background:radial-gradient(circle at 75% 30%,rgba(117,42,65,.14),transparent 32%),#080609}.mood-luxe-wrap{display:grid;grid-template-columns:.72fr 1.28fr;gap:32px;align-items:stretch;max-width:1240px}.mood-copy{padding:38px 18px 38px 0;display:flex;flex-direction:column;justify-content:center}.mood-copy h2{font-family:"Yu Mincho",serif;font-size:40px;font-weight:500;line-height:1.4;margin:8px 0 16px}.mood-copy p{color:#cfc1c7;font-size:14px}.mood-panel{border:1px solid rgba(216,138,155,.38);background:linear-gradient(145deg,rgba(28,15,21,.96),rgba(7,6,8,.98));padding:22px;box-shadow:0 20px 55px rgba(0,0,0,.28)}.mood-panel .mood-buttons{grid-template-columns:repeat(3,1fr)}.mood-panel .mood-button{min-height:82px;border-radius:2px}.mood-panel .mood-result{margin-top:14px;border-radius:2px;min-height:190px}
.v25-system{background:#050406}.v25-price-grid{grid-template-columns:repeat(4,1fr);gap:10px}.v25-price-grid .card{border-radius:1px;border:1px solid rgba(201,145,97,.65);background:linear-gradient(180deg,#110a0d,#070608);box-shadow:inset 0 0 25px rgba(174,94,112,.06)}.v25-price-grid .card-body{padding:20px 16px}.v25-price-grid .price{font-family:Georgia,serif;color:#f0c59b;font-size:30px}
.v25-pickup{background:linear-gradient(180deg,#080609,#050406)}.v25-pickup-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;max-width:1040px;margin:auto}.v25-pickup-grid .card{border-radius:2px}
.v25-hub{background:#060507;padding-top:42px;padding-bottom:42px}.hub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.hub-card{min-height:280px;position:relative;overflow:hidden;border:1px solid rgba(216,138,155,.42);background:linear-gradient(145deg,#1c1015,#090709)}.hub-bg{position:absolute;inset:0}.hub-bg img{width:100%;height:100%;object-fit:cover;opacity:.42;filter:saturate(.7)}.hub-card:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,4,6,.16),rgba(5,4,6,.86))}.hub-content{position:relative;z-index:2;height:100%;min-height:280px;padding:30px;display:flex;flex-direction:column;justify-content:flex-end}.hub-content span{color:#e8a0ae;font-family:Georgia,serif;font-size:11px;letter-spacing:.22em}.hub-content h3{font-family:"Yu Mincho",serif;font-size:28px;font-weight:500;margin:4px 0 8px}.hub-content p{font-size:12px;color:#d8ccd1;min-height:42px}.hub-content .btn{align-self:flex-start;margin-top:8px}
.v25-cta{padding:42px 0;background:linear-gradient(90deg,#120b0f,#1b0e13,#0b080a);border-top:1px solid rgba(216,138,155,.38)}.v25-cta-inner{display:grid;grid-template-columns:1fr 1.2fr;gap:40px;align-items:center}.footer-brand img{max-width:360px;max-height:110px;width:auto}.footer-contact{text-align:left}.footer-contact h2{font-family:"Yu Mincho",serif;font-size:28px;margin:5px 0}.footer-contact p{font-size:12px;color:#cdbfc4}.footer-contact .cta-row{justify-content:flex-start}.v25-footer-inner{padding:24px 0;text-align:center}.v25-footer-inner nav{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;font-size:11px;margin-bottom:12px}.v25-footer-inner small{color:#83777c;font-size:10px}
@media(max-width:1180px){.v25-header .site-nav ul{gap:12px}.v25-header .site-nav a{font-size:11px}.header-contact{display:none}.v25-therapist-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.mood-luxe-wrap{grid-template-columns:1fr}.mood-copy{padding:0;text-align:center}.mood-copy p{max-width:680px;margin:auto}}
@media(max-width:820px){.v25-header .header-inner{min-height:58px}.v25-header .brand-image img{height:42px;max-width:200px}.hero-v25{min-height:0}.hero-v25-inner{min-height:0;padding-top:0;padding-bottom:0}.hero-v25 .hero-media{position:relative;inset:auto;aspect-ratio:9/16}.hero-v25 .hero-media picture,.hero-v25 .hero-media img{height:100%}.hero-v25 .hero-shade{display:none!important}.hero-copy-panel{display:none}.v25-section{padding:38px 0}.ornament-title h2{font-size:27px}.v25-therapist-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.v25-therapist-grid:has(> :only-child){grid-template-columns:minmax(0,230px)}.concept-split{grid-template-columns:1fr}.concept-visual{min-height:260px}.concept-copy{border-left:1px solid rgba(201,145,97,.34);padding:28px 22px}.concept-copy h2{font-size:27px}.feature-grid{gap:8px}.feature-grid>div{min-height:96px;padding:12px 8px}.mood-panel{padding:12px}.mood-panel .mood-buttons{grid-template-columns:repeat(2,1fr);gap:7px}.mood-panel .mood-button{min-height:68px;font-size:11px}.v25-price-grid{grid-template-columns:repeat(2,1fr);gap:8px}.v25-pickup-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hub-grid{grid-template-columns:1fr}.hub-card,.hub-content{min-height:220px}.v25-cta-inner{grid-template-columns:1fr;text-align:center}.footer-brand img{margin:auto;max-width:280px}.footer-contact{text-align:center}.footer-contact .cta-row{justify-content:center}.v25-footer-inner nav{gap:12px}.mobile-bar{z-index:100}.home-v25{padding-bottom:0}}
@media(max-width:500px){.concept-copy{padding:24px 16px}.feature-grid strong{font-size:13px}.mood-copy h2{font-size:31px}.v25-price-grid .price{font-size:24px}.hub-content{padding:22px}.hub-content h3{font-size:24px}}


/* =========================================================
   v2.6 finishing pass
   ========================================================= */
/* One reservation bar only; fixed to the actual viewport bottom on phones. */
#utopia-mobile-reservation-bar{display:none}
@media(max-width:820px){
  #utopia-mobile-reservation-bar{
    display:grid!important;
    position:fixed!important;
    left:0!important;right:0!important;bottom:0!important;top:auto!important;
    width:100%!important;margin:0!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    transform:none!important;
    z-index:2147480000!important;
    padding:0 0 env(safe-area-inset-bottom)!important;
    background:#070609!important;
    border-top:1px solid rgba(232,160,174,.42)!important;
    box-shadow:0 -8px 26px rgba(0,0,0,.5)!important;
    backdrop-filter:none!important;
  }
  #utopia-mobile-reservation-bar>a,
  #utopia-mobile-reservation-bar>.mobile-action-disabled{
    min-height:58px!important;padding:8px 4px!important;margin:0!important;
    display:flex!important;align-items:center!important;justify-content:center!important;
    flex-direction:column!important;gap:2px!important;
    background:#0a080c!important;color:#fff!important;border-radius:0!important;
    border-right:1px solid rgba(232,160,174,.18)!important;
    font-size:11px!important;font-weight:600!important;line-height:1.2!important;
  }
  #utopia-mobile-reservation-bar>*:last-child{border-right:0!important}
  #utopia-mobile-reservation-bar .mobile-line,
  #utopia-mobile-reservation-bar .mobile-phone{background:#0a080c!important;color:#fff!important}
  #utopia-mobile-reservation-bar span span,
  #utopia-mobile-reservation-bar>a>span{color:#e9a2b2!important}
  body{padding-bottom:calc(58px + env(safe-area-inset-bottom))!important}

  /* Bigger, centered single therapist card. */
  .v25-therapist-grid:has(> :only-child),
  .v25-pickup-grid:has(> :only-child){
    grid-template-columns:minmax(0,300px)!important;
    justify-content:center!important;
  }
  .v25-therapist-grid:has(> :only-child) .card,
  .v25-pickup-grid:has(> :only-child) .card{width:100%;margin-inline:auto}

  /* Slightly tighter but more polished mobile rhythm. */
  .v25-section{padding:34px 0!important}
  .ornament-title{margin-bottom:22px!important}
  .ornament-title h2{margin-bottom:11px!important}
  .concept-visual{min-height:300px!important;background-position:center center!important}
  .concept-copy{padding:26px 18px!important}
  .feature-grid>div{background:linear-gradient(145deg,rgba(30,15,21,.76),rgba(7,6,8,.92))!important}
}

/* More visible rose-gold ornamentation without making the page busy. */
.v25-section{position:relative;overflow:hidden}
.v25-section:before{content:"";position:absolute;left:50%;top:0;transform:translateX(-50%);width:min(94%,1320px);height:1px;background:linear-gradient(90deg,transparent,rgba(198,137,91,.22),rgba(232,160,174,.42),rgba(198,137,91,.22),transparent);pointer-events:none}
.ornament-title:before,.ornament-title:after{content:"✦";position:absolute;top:28px;color:rgba(232,160,174,.42);font-size:9px;text-shadow:0 0 12px rgba(232,160,174,.38)}
.ornament-title:before{left:calc(50% - 118px)}.ornament-title:after{right:calc(50% - 118px)}
.concept-visual{background-position:center;background-repeat:no-repeat}
.concept-visual:before{content:"";position:absolute;inset:14px;border:1px solid rgba(230,164,177,.20);z-index:1;pointer-events:none}


/* v2.7 — PC hero clarity fix
   The configured hero image must remain pixel-clean. No fixed gradient,
   blur, opacity or blend layer is applied. The admin "TOP画像の暗さ"
   setting is the only optional overlay. */
.hero.hero-v25.has-hero-image{
  background:none!important;
  isolation:isolate;
}
.hero.hero-v25.has-hero-image::before,
.hero.hero-v25.has-hero-image::after{
  content:none!important;
  display:none!important;
  background:none!important;
  filter:none!important;
}
.hero.hero-v25 .hero-media{
  z-index:0!important;
  background:transparent!important;
  filter:none!important;
  opacity:1!important;
  transform:none!important;
}
.hero.hero-v25 .hero-media picture,
.hero.hero-v25 .hero-media img{
  filter:none!important;
  -webkit-filter:none!important;
  opacity:1!important;
  transform:none!important;
  mix-blend-mode:normal!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.hero.hero-v25 .hero-shade{
  z-index:1!important;
  background:rgba(0,0,0,var(--hero-overlay,0))!important;
  background-image:none!important;
  filter:none!important;
  -webkit-filter:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  mix-blend-mode:normal!important;
  box-shadow:none!important;
}
.hero.hero-v25 .hero-inner{z-index:2!important}
@media(min-width:821px){
  .hero.hero-v25 .hero-media img{
    object-fit:cover!important;
    object-position:center center!important;
  }
}
@media(max-width:820px){
  .hero.hero-v25 .hero-shade{display:none!important}
}


/* v2.8 — hero rendering reset + cache-safe CSS
   Desktop and mobile hero images are rendered as ordinary <img> elements
   at their natural aspect ratio. No cover-scaling, blur, opacity, pseudo
   overlays or blend effects are applied unless the admin explicitly sets
   TOP画像の暗さ above 0%. */
.hero.hero-v25{
  min-height:0!important;
  display:block!important;
  position:relative!important;
  overflow:hidden!important;
  background:none!important;
  border-bottom:1px solid rgba(225,147,165,.25)!important;
  isolation:auto!important;
}
.hero.hero-v25::before,
.hero.hero-v25::after{content:none!important;display:none!important}
.hero.hero-v25 .hero-media{
  position:relative!important;
  inset:auto!important;
  width:100%!important;
  height:auto!important;
  overflow:visible!important;
  background:transparent!important;
  filter:none!important;
  opacity:1!important;
  transform:none!important;
}
.hero.hero-v25 .hero-media picture{display:block!important;width:100%!important;height:auto!important}
.hero.hero-v25 .hero-media img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-width:none!important;
  object-fit:fill!important;
  object-position:initial!important;
  filter:none!important;
  -webkit-filter:none!important;
  opacity:1!important;
  transform:none!important;
  mix-blend-mode:normal!important;
  image-rendering:auto!important;
}
.hero.hero-v25 .hero-shade{
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  background:rgba(0,0,0,var(--hero-overlay,0))!important;
  background-image:none!important;
  filter:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  mix-blend-mode:normal!important;
  pointer-events:none!important;
}
.hero.hero-v25 .hero-v25-inner{
  position:absolute!important;
  inset:0!important;
  z-index:2!important;
  min-height:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  padding-top:0!important;
  padding-bottom:0!important;
}
@media(max-width:820px){
  .hero.hero-v25 .hero-v25-inner{display:none!important}
  .hero.hero-v25 .hero-shade{display:none!important}
  .hero.hero-v25 .hero-media{aspect-ratio:auto!important}
  .hero.hero-v25 .hero-media picture,
  .hero.hero-v25 .hero-media img{height:auto!important}
}


/* =========================================================
   v2.9 - desktop polish / mood panel / media hub / footer
   ========================================================= */
@media (min-width:1181px){
  .v25-header{position:sticky;top:0;z-index:120;background:rgba(4,3,5,.965);backdrop-filter:blur(10px);box-shadow:0 8px 28px rgba(0,0,0,.28)}
  .v25-header .header-inner{max-width:1480px;min-height:88px;padding-left:22px;padding-right:22px}
  .v25-header .brand-image{flex:0 0 auto}.v25-header .brand-image img{height:66px;max-width:300px;object-fit:contain}
  .v25-header .site-nav{margin-left:auto;margin-right:12px}.v25-header .site-nav ul{gap:24px;align-items:center}
  .v25-header .site-nav a{position:relative;padding:30px 0 27px;font-size:12px;letter-spacing:.1em;white-space:nowrap}
  .v25-header .site-nav a:after{content:'';position:absolute;left:50%;right:50%;bottom:19px;height:1px;background:linear-gradient(90deg,#c87c91,#f0c0aa);transition:.22s ease}
  .v25-header .site-nav a:hover:after{left:0;right:0}
  .header-contact{gap:10px}.header-phone{min-width:142px}.header-phone strong{font-size:17px}.header-line{padding:13px 20px;min-width:126px;border-radius:2px}

  .v25-mood{padding-top:72px;padding-bottom:72px}
  .mood-luxe-wrap{display:block;max-width:1180px}
  .mood-copy{padding:0 0 26px;text-align:center;display:block;max-width:850px;margin:0 auto}
  .mood-copy h2{font-size:38px;margin:8px 0 12px}.mood-copy p{max-width:780px;margin:0 auto;line-height:1.9}
  .mood-panel{padding:28px 30px 30px;background:linear-gradient(145deg,rgba(34,17,24,.97),rgba(8,6,9,.99));box-shadow:0 24px 70px rgba(0,0,0,.34),inset 0 0 60px rgba(175,80,108,.035)}
  .mood-panel .mood-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:1040px;margin:0 auto}
  .mood-panel .mood-button{min-height:76px;font-size:12px;transition:.22s ease}.mood-panel .mood-button:hover,.mood-panel .mood-button.is-active{transform:translateY(-2px);box-shadow:0 10px 22px rgba(0,0,0,.25);border-color:rgba(241,166,190,.72)}
  .mood-panel .mood-result{margin:18px auto 0;max-width:1040px;min-height:170px;padding:22px}
  .mood-therapist-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;justify-content:center}

  .v25-hub{padding-top:58px;padding-bottom:58px}.hub-grid{gap:18px}.hub-card,.hub-content{min-height:315px}
  .hub-content{padding:34px}.hub-content h3{font-size:30px}.hub-bg img{opacity:.56;filter:saturate(.82) contrast(1.02)}
  .hub-card:after{background:linear-gradient(180deg,rgba(5,4,6,.08),rgba(5,4,6,.88))}

  .v25-cta{padding:54px 0}.v25-cta-inner{grid-template-columns:1.05fr 1.45fr;max-width:1220px}
  .footer-brand img{max-width:430px;max-height:130px}.footer-contact{display:grid;grid-template-columns:1fr auto;column-gap:36px;align-items:center}
  .footer-contact .eyebrow,.footer-contact h2,.footer-contact p{grid-column:1}.footer-contact .cta-row{grid-column:2;grid-row:1 / span 3;flex-direction:column;min-width:190px;gap:10px}
  .footer-contact .cta-row .btn,.footer-contact .cta-row .line-btn{width:100%;min-width:190px;text-align:center;justify-content:center}
  .footer-contact h2{font-size:31px}.footer-contact p{font-size:13px}
  .v25-footer-inner{padding:28px 0 34px}.v25-footer-inner nav{gap:24px;font-size:11px}
}
@media (min-width:821px) and (max-width:1180px){
  .mood-luxe-wrap{display:block;max-width:920px}.mood-copy{text-align:center;padding:0 0 24px}.mood-copy p{max-width:720px}.mood-panel .mood-buttons{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:820px){
  .mood-copy{padding-bottom:18px}.mood-copy h2{font-size:28px}.mood-copy p{line-height:1.8}
  .hub-bg img{opacity:.52;filter:saturate(.85)}
}


/* =========================================================
   v3.0 - mood 6 / compact mobile concept / cleanup
   ========================================================= */
@media (min-width:821px){
  .mood-therapist-grid{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:12px!important;max-width:1320px!important}
  .mood-therapist-grid[data-count="1"]{grid-template-columns:minmax(220px,260px)!important;justify-content:center}
  .mood-therapist-grid[data-count="2"]{grid-template-columns:repeat(2,minmax(220px,260px))!important;justify-content:center}
  .mood-therapist-grid[data-count="3"]{grid-template-columns:repeat(3,minmax(210px,250px))!important;justify-content:center}
  .mood-therapist-grid[data-count="4"]{grid-template-columns:repeat(4,minmax(190px,230px))!important;justify-content:center}
  .mood-therapist-grid[data-count="5"]{grid-template-columns:repeat(5,minmax(170px,220px))!important;justify-content:center}
  .mood-therapist-grid[data-count="6"]{grid-template-columns:repeat(6,minmax(0,1fr))!important}
}
@media (max-width:820px){
  /* Concept copy lives on the image on mobile to reduce vertical length. */
  .v25-concept .concept-split{display:block!important}
  .v25-concept .concept-visual{position:relative!important;min-height:420px!important;border:1px solid rgba(201,145,97,.34)!important;overflow:hidden!important;background-position:center!important}
  .v25-concept .concept-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(4,3,6,.28) 48%,rgba(4,3,6,.94) 100%);pointer-events:none}
  .v25-concept .concept-copy{position:relative!important;margin-top:-210px!important;z-index:3!important;border:0!important;background:transparent!important;padding:24px 18px 18px!important}
  .v25-concept .concept-copy .eyebrow{color:#f1bdc9!important;text-shadow:0 2px 10px #000}
  .v25-concept .concept-copy h2{font-size:24px!important;line-height:1.45!important;margin:5px 0 9px!important;text-shadow:0 2px 12px #000}
  .v25-concept .concept-copy>p{font-size:12px!important;line-height:1.7!important;margin:0 0 14px!important;color:#f1e8ec!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .v25-concept .feature-grid{grid-template-columns:repeat(2,1fr)!important;gap:7px!important}
  .v25-concept .feature-grid>div{min-height:76px!important;padding:9px 6px!important;background:rgba(8,6,9,.68)!important;backdrop-filter:blur(3px)}
  .v25-concept .feature-grid small{font-size:9px!important}

  .mood-placeholder p{white-space:normal!important;word-break:keep-all!important;overflow-wrap:normal!important;line-height:1.6!important}
  .mood-therapist-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;max-width:100%!important}
  .mood-therapist-grid[data-count="1"]{grid-template-columns:minmax(0,240px)!important;justify-content:center!important}
  .mood-therapist-grid[data-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .mood-therapist-grid[data-count="3"] .mood-therapist-card:not([hidden]):last-child,
  .mood-therapist-grid[data-count="5"] .mood-therapist-card:not([hidden]):last-child{grid-column:1/-1!important;width:calc(50% - 5px)!important;justify-self:center!important}
}

/* =========================================================
   v3.1 - mobile concept: all copy inside image, features below
   ========================================================= */
.concept-mobile-copy{display:none}
@media (max-width:820px){
  .v25-concept .concept-split{display:block!important}
  .v25-concept .concept-visual{
    position:relative!important;
    min-height:0!important;
    aspect-ratio:4/5!important;
    overflow:hidden!important;
    background-size:cover!important;
    background-position:center center!important;
    border:1px solid rgba(201,145,97,.34)!important;
  }
  .v25-concept .concept-visual:after{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    background:linear-gradient(180deg,rgba(4,3,6,.04) 22%,rgba(4,3,6,.20) 48%,rgba(4,3,6,.90) 100%)!important;
    pointer-events:none!important;
    z-index:1!important;
  }
  .v25-concept .concept-lotus{display:none!important}
  .v25-concept .concept-mobile-copy{
    display:block!important;
    position:absolute!important;
    z-index:3!important;
    left:18px!important;
    right:18px!important;
    bottom:18px!important;
    color:#f7ebef!important;
    text-align:left!important;
    text-shadow:0 2px 12px rgba(0,0,0,.95)!important;
  }
  .v25-concept .concept-mobile-copy .eyebrow{
    color:#f1bdc9!important;
    font-size:10px!important;
    letter-spacing:.20em!important;
    margin-bottom:7px!important;
  }
  .v25-concept .concept-mobile-copy h2{
    margin:0 0 10px!important;
    font-family:"Yu Mincho",serif!important;
    font-size:24px!important;
    font-weight:500!important;
    line-height:1.45!important;
    color:#fff4f7!important;
  }
  .v25-concept .concept-mobile-copy p{
    margin:0!important;
    font-size:11px!important;
    line-height:1.75!important;
    color:#f2e9ec!important;
  }
  .v25-concept .concept-copy{
    position:static!important;
    margin-top:0!important;
    z-index:auto!important;
    border:1px solid rgba(201,145,97,.34)!important;
    border-top:0!important;
    background:linear-gradient(145deg,rgba(24,13,18,.96),rgba(8,6,9,.98))!important;
    padding:10px!important;
  }
  .v25-concept .concept-desktop-copy{display:none!important}
  .v25-concept .feature-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px!important;
    margin-top:0!important;
  }
  .v25-concept .feature-grid>div{
    min-height:82px!important;
    padding:10px 7px!important;
    background:rgba(8,6,9,.76)!important;
    backdrop-filter:none!important;
  }
  .v25-concept .feature-grid strong{font-size:13px!important}
  .v25-concept .feature-grid small{font-size:9px!important;line-height:1.45!important}
}
@media (max-width:420px){
  .v25-concept .concept-visual{aspect-ratio:4/5.2!important}
  .v25-concept .concept-mobile-copy{left:15px!important;right:15px!important;bottom:15px!important}
  .v25-concept .concept-mobile-copy h2{font-size:22px!important}
  .v25-concept .concept-mobile-copy p{font-size:10.5px!important;line-height:1.7!important}
}

/* =========================================================
   v3.2 - mobile concept compact correction
   ========================================================= */
@media (max-width:820px){
  .v25-concept{padding-top:28px!important;padding-bottom:30px!important}
  .v25-concept .concept-split{display:block!important}
  .v25-concept .concept-visual{
    position:relative!important;
    width:100%!important;
    min-height:0!important;
    height:auto!important;
    aspect-ratio:4/3!important;
    overflow:hidden!important;
    background-size:cover!important;
    background-position:center center!important;
    border:1px solid rgba(201,145,97,.34)!important;
  }
  .v25-concept .concept-visual:before{
    inset:9px!important;
  }
  .v25-concept .concept-visual:after{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:1!important;
    background:linear-gradient(180deg,rgba(3,2,4,.02) 0%,rgba(3,2,4,.12) 38%,rgba(3,2,4,.72) 72%,rgba(3,2,4,.92) 100%)!important;
    pointer-events:none!important;
  }
  .v25-concept .concept-mobile-copy{
    display:block!important;
    position:absolute!important;
    left:18px!important;
    right:18px!important;
    bottom:16px!important;
    z-index:3!important;
    padding:0!important;
    margin:0!important;
    text-align:left!important;
  }
  .v25-concept .concept-mobile-copy .eyebrow{
    font-size:9px!important;
    letter-spacing:.22em!important;
    margin:0 0 5px!important;
    color:#f0b6c4!important;
  }
  .v25-concept .concept-mobile-copy h2{
    font-size:20px!important;
    line-height:1.45!important;
    margin:0 0 7px!important;
    color:#fff!important;
    text-shadow:0 2px 10px rgba(0,0,0,.9)!important;
  }
  .v25-concept .concept-mobile-copy p{
    display:block!important;
    font-size:10px!important;
    line-height:1.65!important;
    margin:0!important;
    color:#f0e7eb!important;
    text-shadow:0 1px 8px rgba(0,0,0,.95)!important;
    overflow:visible!important;
    -webkit-line-clamp:unset!important;
    -webkit-box-orient:unset!important;
  }
  .v25-concept .concept-copy{
    position:static!important;
    margin:0!important;
    padding:10px 0 0!important;
    border:0!important;
    background:transparent!important;
  }
  .v25-concept .concept-desktop-copy{display:none!important}
  .v25-concept .feature-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    margin-top:0!important;
  }
  .v25-concept .feature-grid>div{
    min-height:70px!important;
    padding:9px 6px!important;
    background:linear-gradient(145deg,rgba(22,12,17,.96),rgba(8,6,9,.98))!important;
    border:1px solid rgba(216,138,155,.28)!important;
    backdrop-filter:none!important;
  }
  .v25-concept .feature-grid b{font-size:14px!important;line-height:1!important}
  .v25-concept .feature-grid strong{font-size:12px!important;margin:4px 0 2px!important}
  .v25-concept .feature-grid small{font-size:8.5px!important;line-height:1.35!important}
}
@media (max-width:430px){
  .v25-concept .concept-visual{aspect-ratio:1/1!important}
  .v25-concept .concept-mobile-copy{left:14px!important;right:14px!important;bottom:13px!important}
  .v25-concept .concept-mobile-copy h2{font-size:18px!important}
  .v25-concept .concept-mobile-copy p{font-size:9.3px!important;line-height:1.55!important}
}

/* =========================================================
   v3.3 - desktop concept split / preserve v3.2 mobile concept
   ========================================================= */
@media (min-width:821px){
  .v25-concept .concept-split{
    display:grid!important;
    grid-template-columns:1.08fr 1fr!important;
    max-width:1240px!important;
    align-items:stretch!important;
  }
  .v25-concept .concept-visual{
    position:relative!important;
    min-height:440px!important;
    height:auto!important;
    aspect-ratio:auto!important;
    background-size:cover!important;
    background-position:center center!important;
    overflow:hidden!important;
    border:1px solid rgba(201,145,97,.34)!important;
  }
  /* PC image stays image-only: no copy or dark text overlay on top. */
  .v25-concept .concept-mobile-copy{display:none!important}
  .v25-concept .concept-visual:after{display:none!important;content:none!important}
  .v25-concept .concept-lotus{display:block!important}
  .v25-concept .concept-copy{
    position:static!important;
    margin:0!important;
    padding:42px 42px 36px!important;
    background:linear-gradient(145deg,rgba(24,13,18,.96),rgba(8,6,9,.98))!important;
    border:1px solid rgba(201,145,97,.34)!important;
    border-left:0!important;
  }
  .v25-concept .concept-desktop-copy{display:block!important}
  .v25-concept .concept-copy h2.concept-desktop-copy{
    font-family:"Yu Mincho",serif!important;
    font-weight:500!important;
    font-size:34px!important;
    line-height:1.55!important;
    margin:8px 0 18px!important;
  }
  .v25-concept .concept-copy p.concept-desktop-copy{
    color:#d7ccd1!important;
    font-size:14px!important;
    line-height:2!important;
    margin:0!important;
  }
  .v25-concept .feature-grid{
    display:grid!important;
    grid-template-columns:repeat(2,1fr)!important;
    gap:10px!important;
    margin-top:24px!important;
  }
}


/* =========================================================
   v3.4 Therapist archive / profile finish
   ========================================================= */
.therapist-archive-v34{padding:58px 0 92px;background:radial-gradient(circle at 50% 0%,rgba(121,45,70,.12),transparent 28%)}
.therapist-archive-v34 .archive-hero{text-align:center;padding:22px 0 38px;position:relative}
.therapist-archive-v34 .archive-hero:after{content:"✦";display:block;color:#d59a70;font-size:14px;margin:20px auto 0;width:220px;border-bottom:1px solid rgba(213,154,112,.42);line-height:1px}
.therapist-archive-v34 .archive-hero h1{font-family:Georgia,"Yu Mincho",serif;font-size:clamp(32px,4vw,50px);font-weight:500;letter-spacing:.08em;margin:7px 0 8px}
.therapist-archive-v34 .archive-hero p{color:#cfc4ca;margin:0}
.therapist-archive-v34 .therapist-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.therapist-archive-v34 .therapist-card{border-radius:3px;border-color:rgba(215,151,116,.38);background:linear-gradient(180deg,#100c10,#080709);box-shadow:0 20px 55px rgba(0,0,0,.34)}
.therapist-archive-v34 .therapist-card:hover{border-color:rgba(240,177,190,.72);box-shadow:0 25px 70px rgba(0,0,0,.46),0 0 26px rgba(188,89,115,.08)}
.therapist-archive-v34 .therapist-card .card-body{padding:14px 15px 17px}
.therapist-archive-v34 .therapist-card h3{font-family:"Yu Mincho",serif;font-size:21px;letter-spacing:.04em}
.therapist-archive-v34 .therapist-card .today-badge{left:10px;bottom:10px;border-radius:2px;background:rgba(123,43,68,.92);border-color:rgba(244,187,200,.72)}

.therapist-single-v34{padding:54px 0 90px;background:radial-gradient(circle at 18% 8%,rgba(111,43,67,.12),transparent 26%)}
.therapist-single-v34 .profile-shell{display:grid;grid-template-columns:minmax(360px,520px) minmax(0,1fr);gap:58px;align-items:start}
.therapist-single-v34 .therapist-main-photo{border-radius:3px;border:1px solid rgba(215,151,116,.46);box-shadow:0 28px 80px rgba(0,0,0,.48)}
.therapist-single-v34 .therapist-thumbs{gap:8px;margin-top:10px}
.therapist-single-v34 .therapist-thumb{border-radius:2px;border-color:rgba(215,151,116,.22);background:#090709}
.therapist-single-v34 .therapist-thumb.is-active{border-color:#e2a4b3;box-shadow:0 0 0 1px rgba(226,164,179,.22)}
.therapist-single-v34 .profile-kicker{color:#d89aaa;font-family:Georgia,serif;letter-spacing:.24em;font-size:11px}
.therapist-single-v34 .therapist-info h1{font-family:"Yu Mincho",Georgia,serif;font-size:clamp(38px,5vw,62px);letter-spacing:.08em;margin:5px 0 4px}
.therapist-single-v34 .profile-catch{color:#e6bdc7;border-bottom:1px solid rgba(215,151,116,.28);padding-bottom:20px;margin-bottom:20px}
.therapist-single-v34 .profile-table{gap:8px}
.therapist-single-v34 .profile-table>div{border-radius:2px;border-color:rgba(215,151,116,.26);background:linear-gradient(135deg,rgba(102,45,62,.12),rgba(255,255,255,.018))}
.therapist-single-v34 .profile-table span{color:#d9a07d}
.therapist-single-v34 .profile-content{padding:24px 0;border-top:1px solid rgba(255,255,255,.055);border-bottom:1px solid rgba(255,255,255,.055)}
.therapist-single-v34 .profile-cta{margin-top:24px}
.therapist-single-v34 .profile-cta .btn{border-radius:2px;min-width:210px}
.therapist-single-v34 .profile-schedule-section{padding-top:66px}
.therapist-single-v34 .profile-schedule-section .section-head{margin-bottom:24px}
.therapist-single-v34 .weekly-schedule{gap:8px}
.therapist-single-v34 .schedule-day{border-radius:2px;border-color:rgba(215,151,116,.28);background:linear-gradient(180deg,#100d11,#09080a);min-height:112px}
.therapist-single-v34 .schedule-day span{color:#dca5b1}
.therapist-single-v34 .schedule-day strong{font-size:12px}

@media(max-width:1050px){.therapist-archive-v34 .therapist-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.therapist-single-v34 .profile-shell{grid-template-columns:minmax(320px,440px) 1fr;gap:34px}}
@media(max-width:820px){
 .therapist-archive-v34{padding:34px 0 70px}.therapist-archive-v34 .archive-hero{padding:8px 0 28px}.therapist-archive-v34 .therapist-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .therapist-archive-v34 .therapist-card .card-body{padding:11px}.therapist-archive-v34 .therapist-card h3{font-size:17px}.therapist-archive-v34 .therapist-specs{font-size:11px}.therapist-archive-v34 .therapist-catch{font-size:11px;margin-top:7px;padding-top:7px}
 .therapist-single-v34{padding:28px 0 70px}.therapist-single-v34 .profile-shell{grid-template-columns:1fr;gap:26px}.therapist-single-v34 .therapist-photo-wrap{width:min(100%,560px)}.therapist-single-v34 .therapist-info h1{font-size:38px}.therapist-single-v34 .profile-catch{font-size:15px}.therapist-single-v34 .profile-cta{justify-content:stretch}.therapist-single-v34 .profile-cta .btn{flex:1;min-width:0}.therapist-single-v34 .weekly-schedule{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:480px){.therapist-archive-v34 .archive-hero p{font-size:12px}.therapist-single-v34 .profile-table{grid-template-columns:repeat(2,minmax(0,1fr))}.therapist-single-v34 .profile-table>div{padding:11px}.therapist-single-v34 .therapist-thumbs{grid-template-columns:repeat(5,1fr)}.therapist-single-v34 .profile-cta{display:grid;grid-template-columns:1fr}.therapist-single-v34 .schedule-day{min-height:82px}}

/* === v3.5 Therapist profile rebuild === */
.therapist-single-v35{background:radial-gradient(circle at 78% 5%,rgba(138,61,84,.13),transparent 27%),#080708;padding-bottom:90px}
.v35-profile-hero{padding:54px 0 72px;border-bottom:1px solid rgba(214,154,120,.15)}
.v35-profile-grid{display:grid;grid-template-columns:minmax(420px,540px) minmax(0,1fr);gap:70px;align-items:start}
.v35-gallery{position:sticky;top:92px}.v35-main-photo{aspect-ratio:3/4;overflow:hidden;border:1px solid rgba(225,164,179,.5);background:#0c090b;box-shadow:0 25px 80px rgba(0,0,0,.52)}
.v35-main-photo img{width:100%;height:100%;object-fit:cover;object-position:var(--therapist-photo-position,center 20%);display:block;transition:opacity .16s ease}
.v35-thumbs{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:10px}.v35-thumb{padding:0;border:1px solid rgba(215,151,116,.22);background:#090709;aspect-ratio:3/4;overflow:hidden;cursor:pointer}.v35-thumb img{width:100%;height:100%;object-fit:cover}.v35-thumb.is-active{border-color:#e6a6b6;box-shadow:0 0 0 1px rgba(230,166,182,.28)}
.v35-info{padding-top:18px}.v35-kicker,.v35-subtitle,.v35-section-title span{font-family:Georgia,serif;color:#dba0ae;letter-spacing:.25em;font-size:11px}.v35-info h1{font-family:"Yu Mincho",Georgia,serif;font-size:clamp(44px,5vw,68px);font-weight:400;letter-spacing:.1em;margin:8px 0 5px;color:#fff}.v35-catch{font-family:"Yu Mincho",serif;font-size:17px;color:#e6c1c9;margin:0 0 26px;padding-bottom:24px;border-bottom:1px solid rgba(215,151,116,.24)}
.v35-today{display:flex;align-items:center;gap:16px;padding:16px 18px;margin:0 0 18px;border:1px solid rgba(222,159,174,.5);background:linear-gradient(90deg,rgba(113,40,61,.28),rgba(25,15,19,.65))}.v35-today span{font-family:Georgia,serif;color:#e4a8b7;letter-spacing:.18em;font-size:11px}.v35-today strong{font-size:19px;color:#fff}.v35-today em{margin-left:auto;font-style:normal;font-size:11px;color:#160b0e;background:#e7a7b7;padding:5px 9px}
.v35-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 28px}.v35-stats>div{min-height:78px;padding:15px 16px;border:1px solid rgba(215,151,116,.23);background:linear-gradient(145deg,rgba(100,43,59,.13),rgba(255,255,255,.015));display:flex;flex-direction:column;justify-content:center}.v35-stats .v35-size{grid-column:1/-1}.v35-stats small{color:#d39b7b;font-family:Georgia,serif;letter-spacing:.14em;font-size:10px;margin-bottom:5px}.v35-stats b{font-weight:500;color:#f4eef0;font-size:15px}
.v35-message{padding:27px 0;border-top:1px solid rgba(255,255,255,.055);border-bottom:1px solid rgba(255,255,255,.055);color:#d4cdd0;line-height:2}.v35-message .v35-subtitle{margin-bottom:13px}.v35-message p:first-of-type{margin-top:0}.v35-message p:last-child{margin-bottom:0}.v35-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}.v35-actions .btn{min-width:220px;text-align:center}.v35-outline{background:transparent!important;border:1px solid rgba(215,151,116,.45)!important;color:#e8c4cc!important}
.v35-week-wrap{padding:66px 0 0}.v35-section-title{text-align:center;margin-bottom:25px}.v35-section-title h2{font-family:"Yu Mincho",serif;font-size:30px;font-weight:400;letter-spacing:.1em;margin:7px 0;color:#fff}.v35-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.v35-day{min-height:118px;padding:17px 8px;border:1px solid rgba(215,151,116,.2);background:#0c0a0d;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px}.v35-day.is-work{background:linear-gradient(180deg,rgba(95,38,56,.2),#0b090b);border-color:rgba(225,164,179,.42)}.v35-day span{color:#dfa8b5;font-size:12px}.v35-day small{color:#8e8588;font-size:10px}.v35-day strong{color:#f0e8eb;font-size:12px;font-weight:500}
@media(max-width:1000px){.v35-profile-grid{grid-template-columns:minmax(330px,430px) 1fr;gap:34px}.v35-week{grid-template-columns:repeat(4,1fr)}}
@media(max-width:760px){.v35-profile-hero{padding:24px 0 42px}.v35-profile-grid{grid-template-columns:1fr;gap:24px}.v35-gallery{position:static;width:min(100%,560px);margin:auto}.v35-info{padding-top:0}.v35-info h1{font-size:40px}.v35-stats{grid-template-columns:repeat(2,1fr)}.v35-stats .v35-size{grid-column:1/-1}.v35-actions{display:grid;grid-template-columns:1fr}.v35-actions .btn{min-width:0;width:100%}.v35-week-wrap{padding-top:46px}.v35-week{grid-template-columns:repeat(2,1fr)}.v35-day{min-height:88px}.v35-section-title h2{font-size:25px}}


/* =========================================================
   v3.6 豪華フレーム + セラピスト表記統一
   ========================================================= */
.ornate-therapist-card{
  border:1px solid rgba(226,167,124,.54)!important;
  box-shadow:0 18px 55px rgba(0,0,0,.48),0 0 0 1px rgba(255,211,170,.05) inset!important;
  overflow:visible!important;
  background:linear-gradient(155deg,#171017 0%,#0c090e 72%)!important;
}
.ornate-photo-frame,.v35-main-photo{
  position:relative;
  border:1px solid rgba(239,185,139,.72)!important;
  outline:1px solid rgba(157,83,92,.58);
  outline-offset:-6px;
  box-shadow:0 0 0 3px #0b080c,0 0 0 4px rgba(225,158,120,.48),0 14px 38px rgba(0,0,0,.48),inset 0 0 28px rgba(116,43,62,.13);
}
.ornate-photo-frame:before,.ornate-photo-frame:after,.v35-main-photo:before,.v35-main-photo:after{
  content:"✦";position:absolute;z-index:5;width:28px;height:28px;display:grid;place-items:center;
  color:#e8b47f;background:#130c12;border:1px solid rgba(232,180,127,.78);border-radius:50%;
  font-size:11px;line-height:1;box-shadow:0 0 16px rgba(206,123,119,.3);pointer-events:none
}
.ornate-photo-frame:before,.v35-main-photo:before{left:8px;top:8px}
.ornate-photo-frame:after,.v35-main-photo:after{right:8px;bottom:8px}
.therapist-display-name{font-family:"Yu Mincho","Hiragino Mincho ProN",serif!important;letter-spacing:.03em;color:#fff7f3!important}
.therapist-size-line{margin-top:5px;color:#efc5b1!important;letter-spacing:.055em;font-size:13px!important}
.v35-main-photo{overflow:hidden}
.v35-thumb{border:1px solid rgba(226,167,124,.5)!important;box-shadow:0 0 0 2px #0b080c,0 0 0 3px rgba(157,83,92,.36)!important}
.v35-thumb.is-active{border-color:#f0b783!important;box-shadow:0 0 0 2px #0b080c,0 0 0 3px #c78479!important}
@media(max-width:820px){
  .therapist-display-name{font-size:15px!important;white-space:normal}
  .therapist-size-line{font-size:11px!important;letter-spacing:.02em}
  .ornate-photo-frame{outline-offset:-4px;box-shadow:0 0 0 2px #0b080c,0 0 0 3px rgba(225,158,120,.46),0 10px 26px rgba(0,0,0,.42)}
  .ornate-photo-frame:before,.ornate-photo-frame:after{width:22px;height:22px;font-size:9px;left:6px;top:6px}
  .ornate-photo-frame:after{left:auto;top:auto;right:6px;bottom:6px}
}

/* =========================================================
   v3.7 唐草ゴールドフレーム + 名前表示バランス調整
   参考：ユーザー提供の四隅唐草フレーム
   ========================================================= */
/* v3.6の丸い星飾りを廃止。細線＋四隅の唐草だけを写真上に重ねる。 */
.ornate-therapist-card{
  border:1px solid rgba(205,145,92,.28)!important;
  box-shadow:0 18px 54px rgba(0,0,0,.46),0 0 18px rgba(180,92,89,.045)!important;
  background:linear-gradient(155deg,#130e13 0%,#09080b 76%)!important;
}
.ornate-photo-frame,.v35-main-photo{
  position:relative!important;
  border:1px solid rgba(225,174,92,.58)!important;
  outline:none!important;
  box-shadow:0 11px 34px rgba(0,0,0,.48),inset 0 0 20px rgba(128,51,68,.055)!important;
  overflow:hidden!important;
}
.ornate-photo-frame:before,.v35-main-photo:before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:6!important;
  width:auto!important;height:auto!important;
  border:0!important;border-radius:0!important;
  background-color:transparent!important;
  background-image:url('assets/images/ornate-frame-3x4.png')!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:100% 100%!important;
  box-shadow:none!important;
  pointer-events:none!important;
  opacity:.88!important;
}
/* 既存の星アイコンを消し、カード画像の下部グラデーションだけを穏やかに残す */
.ornate-photo-frame:after,.v35-main-photo:after{
  content:""!important;
  position:absolute!important;
  inset:auto 0 0!important;
  width:auto!important;height:22%!important;
  z-index:4!important;
  border:0!important;border-radius:0!important;
  background:linear-gradient(180deg,transparent,rgba(5,4,6,.42))!important;
  box-shadow:none!important;
  pointer-events:none!important;
}
/* 名前・年齢・カップを1つのまとまりとして中央へ。括弧同士の間隔は文字列そのまま。 */
.ornate-therapist-card .card-body{
  text-align:center!important;
  padding-left:10px!important;
  padding-right:10px!important;
}
.therapist-display-name{
  display:block!important;
  width:100%!important;
  margin:0 auto!important;
  text-align:center!important;
  letter-spacing:.01em!important;
  line-height:1.45!important;
  word-spacing:0!important;
  white-space:nowrap!important;
  font-kerning:normal!important;
}
.therapist-size-line{
  text-align:center!important;
  margin:4px auto 0!important;
  letter-spacing:.025em!important;
  white-space:nowrap!important;
}
.ornate-therapist-card .meta,.ornate-therapist-card .therapist-catch{text-align:center!important}

/* 診断結果も同じプロフィール表記・同じフレームへ統一 */
.mood-therapist-card .therapist-display-name{font-size:16px!important}
.mood-therapist-card .therapist-size-line{font-size:11px!important}

/* 詳細ページのサムネイルは過剰装飾を避け、細いゴールド線に統一 */
.v35-thumb{border:1px solid rgba(224,170,90,.5)!important;box-shadow:0 0 0 1px rgba(117,54,65,.32)!important}
.v35-thumb.is-active{border-color:#e5b05f!important;box-shadow:0 0 0 1px rgba(229,176,95,.58),0 0 16px rgba(185,104,96,.12)!important}

@media(max-width:820px){
  .ornate-photo-frame:before,.v35-main-photo:before{opacity:.82!important}
  .therapist-display-name{font-size:14px!important;white-space:nowrap!important;letter-spacing:0!important}
  .therapist-size-line{font-size:10px!important;letter-spacing:0!important}
  .ornate-therapist-card .card-body{padding-left:5px!important;padding-right:5px!important}
}

/* =========================================================
   v3.8 額縁強化版 - アンティークホテル調の立体ゴールドフレーム
   ========================================================= */
.ornate-therapist-card{
  border:1px solid rgba(202,137,75,.42)!important;
  background:linear-gradient(155deg,#160f14 0%,#080709 78%)!important;
  box-shadow:0 22px 62px rgba(0,0,0,.58),0 0 24px rgba(183,102,79,.08)!important;
}
.ornate-photo-frame,.v35-main-photo{
  position:relative!important;
  overflow:hidden!important;
  border:5px solid #6d431d!important;
  outline:1px solid rgba(255,218,133,.88)!important;
  outline-offset:-3px!important;
  background:#080608!important;
  box-shadow:
    0 0 0 1px #1b0e08,
    0 0 0 3px #b9792d,
    0 0 0 5px #3d2412,
    0 0 0 6px rgba(247,201,105,.82),
    0 0 0 8px #170d09,
    0 16px 38px rgba(0,0,0,.66),
    0 0 22px rgba(216,143,74,.13),
    inset 0 0 0 2px rgba(255,225,150,.55),
    inset 0 0 16px rgba(75,27,15,.58)!important;
}
/* 金属額縁の立体的な内縁 */
.ornate-photo-frame img,.v35-main-photo img{
  position:relative;z-index:1;
  width:100%;height:100%;display:block;
}
.ornate-photo-frame:before,.v35-main-photo:before{
  content:""!important;position:absolute!important;inset:-1px!important;z-index:7!important;
  width:auto!important;height:auto!important;border:0!important;border-radius:0!important;
  background-color:transparent!important;
  background-image:url('assets/images/ornate-frame-3x4.png')!important;
  background-repeat:no-repeat!important;background-position:center!important;background-size:100% 100%!important;
  filter:drop-shadow(0 1px 0 #fff0a3) drop-shadow(0 2px 2px rgba(59,25,5,.8))!important;
  opacity:1!important;pointer-events:none!important;box-shadow:none!important;
}
/* 写真内側の細い金縁と陰影。唐草の下に重ねる */
.ornate-photo-frame:after,.v35-main-photo:after{
  content:""!important;position:absolute!important;inset:10px!important;z-index:5!important;
  width:auto!important;height:auto!important;border-radius:0!important;
  border:1px solid rgba(255,221,137,.78)!important;
  background:linear-gradient(180deg,rgba(255,224,145,.08),transparent 12%,transparent 78%,rgba(28,9,9,.28))!important;
  box-shadow:inset 0 0 0 1px rgba(95,48,22,.72),inset 0 0 18px rgba(0,0,0,.25)!important;
  pointer-events:none!important;
}
/* カード本文は額縁より静かにして写真を主役に */
.ornate-therapist-card .card-body{padding-top:16px!important;border-top:1px solid rgba(217,154,87,.22)!important}
.therapist-display-name{font-size:17px!important;color:#fff6ed!important;text-shadow:0 1px 8px rgba(201,123,83,.12)!important}
.therapist-size-line{color:#e9c69e!important}
.v35-thumb{border:2px solid #8e5b2c!important;outline:1px solid rgba(237,190,103,.52)!important;outline-offset:-3px!important;box-shadow:0 0 0 1px #24130c,0 5px 14px rgba(0,0,0,.45)!important}
.v35-thumb.is-active{border-color:#d39a48!important;box-shadow:0 0 0 1px #2a160b,0 0 0 2px rgba(246,203,117,.52),0 0 18px rgba(203,125,74,.18)!important}
@media(max-width:820px){
  .ornate-photo-frame,.v35-main-photo{
    border-width:3px!important;
    box-shadow:0 0 0 1px #1b0e08,0 0 0 2px #a96d2b,0 0 0 4px #321d10,0 0 0 5px rgba(239,191,95,.78),0 10px 25px rgba(0,0,0,.58),inset 0 0 0 1px rgba(255,225,150,.48)!important;
  }
  .ornate-photo-frame:after,.v35-main-photo:after{inset:7px!important}
  .ornate-therapist-card .card-body{padding-top:12px!important}
  .therapist-display-name{font-size:14px!important}
}


/* =========================================================
   v3.9 外付けアンティーク額縁
   写真の上に装飾を重ねず、写真の外側に額縁を確保する。
   ========================================================= */
.ornate-therapist-card{
  overflow:visible!important;
  border:1px solid rgba(204,142,83,.24)!important;
  background:linear-gradient(160deg,#120d11 0%,#070608 78%)!important;
  box-shadow:0 22px 62px rgba(0,0,0,.52)!important;
}

/* 外枠そのもの。背景の唐草PNGは写真の背面に置き、padding部分だけ見せる */
.ornate-photo-frame,
.v35-main-photo{
  position:relative!important;
  overflow:visible!important;
  aspect-ratio:auto!important;
  padding:25px!important;
  border:0!important;
  outline:0!important;
  background-color:#090609!important;
  background-image:
    url('assets/images/ornate-frame-3x4.png'),
    linear-gradient(135deg,#2d170d 0%,#8d5a25 12%,#e5b862 24%,#6d3f1d 42%,#d89e44 62%,#4d2b16 82%,#aa6e2b 100%)!important;
  background-repeat:no-repeat,no-repeat!important;
  background-position:center,center!important;
  background-size:100% 100%,100% 100%!important;
  box-shadow:
    0 0 0 1px rgba(255,225,151,.72),
    0 0 0 3px #24140c,
    0 0 0 4px rgba(207,145,63,.78),
    0 16px 42px rgba(0,0,0,.62),
    0 0 24px rgba(219,151,72,.10)!important;
}

/* v3.8までの写真上オーバーレイは完全に無効化 */
.ornate-photo-frame:before,
.ornate-photo-frame:after,
.v35-main-photo:before,
.v35-main-photo:after{
  content:none!important;
  display:none!important;
  background:none!important;
  border:0!important;
  box-shadow:none!important;
}

/* 写真は額縁の内側に独立して配置 */
.ornate-photo-frame > img,
.v35-main-photo > img{
  position:relative!important;
  z-index:2!important;
  display:block!important;
  width:100%!important;
  height:auto!important;
  aspect-ratio:var(--therapist-photo-ratio,3/4)!important;
  object-fit:cover!important;
  object-position:var(--therapist-photo-position,center 20%)!important;
  border:2px solid #d6a34f!important;
  outline:1px solid rgba(255,229,163,.62)!important;
  outline-offset:-5px!important;
  background:#090709!important;
  box-shadow:
    0 0 0 3px #1d1009,
    0 0 0 5px #8b5726,
    0 8px 24px rgba(0,0,0,.56),
    inset 0 0 16px rgba(0,0,0,.20)!important;
}
.v35-main-photo > img{aspect-ratio:3/4!important}

/* 出勤バッジは写真の内側へ。額縁には被せない */
.ornate-photo-frame .today-badge{
  left:34px!important;
  bottom:34px!important;
  z-index:4!important;
}

/* 額縁と名前欄を少し離し、本物の肖像額っぽく見せる */
.ornate-therapist-card .card-body{
  margin-top:7px!important;
  padding:13px 8px 15px!important;
  border-top:0!important;
  text-align:center!important;
}
.therapist-display-name{
  text-align:center!important;
  letter-spacing:0!important;
  word-spacing:0!important;
  margin-inline:auto!important;
}
.therapist-size-line{
  text-align:center!important;
  letter-spacing:.015em!important;
  margin-top:3px!important;
}

@media(max-width:820px){
  .ornate-photo-frame,
  .v35-main-photo{
    padding:15px!important;
    box-shadow:
      0 0 0 1px rgba(255,225,151,.66),
      0 0 0 2px #24140c,
      0 0 0 3px rgba(207,145,63,.72),
      0 10px 26px rgba(0,0,0,.58)!important;
  }
  .ornate-photo-frame > img,
  .v35-main-photo > img{
    border-width:1px!important;
    outline-offset:-3px!important;
    box-shadow:0 0 0 2px #1d1009,0 0 0 3px #8b5726,0 6px 18px rgba(0,0,0,.5)!important;
  }
  .ornate-photo-frame .today-badge{
    left:22px!important;
    bottom:22px!important;
  }
  .ornate-therapist-card .card-body{margin-top:4px!important;padding-top:10px!important}
}


/* =========================================================
   v4.0 かわいい × 高級感 フレーム
   v3.9の重厚な額縁を、細いピンクゴールドと柔らかな唐草へ。
   ========================================================= */
.ornate-therapist-card{
  overflow:visible!important;
  border:1px solid rgba(240,167,189,.28)!important;
  background:linear-gradient(180deg,rgba(24,15,21,.96),rgba(8,7,10,.98))!important;
  box-shadow:0 15px 42px rgba(0,0,0,.42),0 0 20px rgba(240,167,189,.035)!important;
}
.ornate-photo-frame,
.v35-main-photo{
  position:relative!important;
  overflow:visible!important;
  padding:10px!important;
  border:1px solid rgba(255,205,180,.78)!important;
  outline:1px solid rgba(240,167,189,.36)!important;
  outline-offset:-5px!important;
  background:linear-gradient(145deg,#2a151d 0%,#a76166 18%,#f4c2a5 40%,#cf8791 62%,#f1bd91 82%,#5c2935 100%)!important;
  box-shadow:0 8px 24px rgba(0,0,0,.42),0 0 14px rgba(240,167,189,.10)!important;
}
.ornate-photo-frame:before,
.v35-main-photo:before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  z-index:5!important;
  inset:-12px!important;
  pointer-events:none!important;
  background-image:url('assets/images/ornate-frame-3x4.png')!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:100% 100%!important;
  opacity:.72!important;
  filter:sepia(.15) saturate(.72) hue-rotate(305deg) brightness(1.22)!important;
  border:0!important;
  box-shadow:none!important;
}
.ornate-photo-frame:after,
.v35-main-photo:after{
  content:"✦"!important;
  display:block!important;
  position:absolute!important;
  z-index:6!important;
  right:3px!important;
  top:2px!important;
  left:auto!important;
  bottom:auto!important;
  color:#ffd8cf!important;
  font-size:10px!important;
  line-height:1!important;
  text-shadow:0 0 7px rgba(255,190,205,.85)!important;
  background:none!important;
  border:0!important;
  box-shadow:none!important;
  pointer-events:none!important;
}
.ornate-photo-frame > img,
.v35-main-photo > img{
  position:relative!important;
  z-index:2!important;
  width:100%!important;
  display:block!important;
  height:auto!important;
  aspect-ratio:var(--therapist-photo-ratio,3/4)!important;
  object-fit:cover!important;
  object-position:var(--therapist-photo-position,center 20%)!important;
  border:1px solid rgba(255,222,207,.88)!important;
  outline:1px solid rgba(240,167,189,.38)!important;
  outline-offset:-4px!important;
  box-shadow:0 5px 15px rgba(0,0,0,.38)!important;
}
.v35-main-photo > img{aspect-ratio:3/4!important}
.ornate-photo-frame .today-badge{left:17px!important;bottom:17px!important;z-index:7!important}
.ornate-therapist-card .card-body{
  margin-top:3px!important;
  padding:12px 6px 14px!important;
  text-align:center!important;
  border-top:0!important;
}
.therapist-display-name{
  display:flex!important;
  justify-content:center!important;
  align-items:baseline!important;
  gap:2px!important;
  width:100%!important;
  text-align:center!important;
  margin:0 auto!important;
  letter-spacing:.01em!important;
  color:#f4b0c3!important;
}
.therapist-display-name *{margin-left:0!important;margin-right:0!important}
.therapist-size-line{
  width:100%!important;
  text-align:center!important;
  margin-top:4px!important;
  letter-spacing:.02em!important;
  color:#e8c9c2!important;
}
@media(max-width:820px){
  .ornate-photo-frame,.v35-main-photo{padding:7px!important;outline-offset:-4px!important}
  .ornate-photo-frame:before,.v35-main-photo:before{inset:-8px!important;opacity:.68!important}
  .ornate-photo-frame:after,.v35-main-photo:after{font-size:8px!important}
  .ornate-photo-frame .today-badge{left:12px!important;bottom:12px!important}
  .ornate-therapist-card .card-body{padding:9px 3px 11px!important}
  .therapist-display-name{gap:1px!important;font-size:14px!important}
  .therapist-size-line{font-size:10px!important;white-space:nowrap!important}
}


/* =========================================================
   v4.2 NEWS / 自動出勤速報
   /schedule/ と同じ一括出勤データを、お知らせでも写真付き表示
   ========================================================= */
.news-archive-page,.news-single-page{padding-top:72px;padding-bottom:88px}
.news-title-head{text-align:center;margin-bottom:34px}
.news-title-head>span{display:block;color:var(--rose);letter-spacing:.22em;font-size:11px}
.news-title-head h1{font-family:serif;font-weight:500;font-size:clamp(32px,4vw,48px);margin:6px 0}
.news-title-head p{color:var(--muted);margin:0}
.news-archive-list{display:grid;gap:26px;max-width:1040px;margin:0 auto}
.news-archive-card,.news-single-card{background:linear-gradient(145deg,rgba(24,20,28,.96),rgba(10,9,13,.98));border:1px solid rgba(232,194,122,.24);box-shadow:var(--shadow);padding:clamp(22px,3vw,38px)}
.news-archive-meta{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;letter-spacing:.08em;margin-bottom:8px}
.news-archive-meta span{display:inline-flex;padding:3px 9px;border:1px solid rgba(240,167,189,.42);border-radius:999px;color:var(--rose);font-size:10px}
.news-archive-card>h2,.news-single-card>h1{font-family:serif;font-weight:600;line-height:1.45;margin:0 0 20px}
.news-archive-card>h2{font-size:clamp(23px,3vw,32px)}
.news-single-card>h1{font-size:clamp(27px,4vw,42px)}
.news-single-container{max-width:1040px}
.utopia-auto-lead{margin:0 0 18px;color:#f7eef2}
.utopia-auto-attendance-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.utopia-auto-attendance-item{min-width:0;background:#0d0b10;border:1px solid rgba(240,167,189,.22);padding:8px;box-shadow:0 12px 34px rgba(0,0,0,.3)}
.utopia-auto-photo{display:block;aspect-ratio:3/4;overflow:hidden;background:linear-gradient(145deg,#281b2d,#121018)}
.utopia-auto-photo img{width:100%;height:100%;object-fit:cover;object-position:center top}
.utopia-auto-photo-empty{height:100%;display:grid;place-items:center;color:rgba(255,255,255,.22);letter-spacing:.2em}
.utopia-auto-info{padding:12px 7px 8px;text-align:center}
.utopia-auto-info h3{font-size:16px;margin:0 0 5px;color:#fff}
.utopia-auto-spec{font-size:11px;color:var(--muted);margin:0 0 10px}
.utopia-auto-time{display:flex;justify-content:space-between;gap:8px;align-items:center;border-top:1px solid rgba(240,167,189,.16);border-bottom:1px solid rgba(240,167,189,.16);padding:8px 2px;margin:0 0 9px;font-size:11px}
.utopia-auto-time span{color:var(--rose)}
.utopia-auto-time strong{font-size:12px;color:#fff}
.utopia-auto-instant{display:inline-block;background:linear-gradient(90deg,#d67495,#f0a7bd);color:#150b10;padding:3px 9px;border-radius:999px;font-size:10px;font-weight:700;margin-bottom:8px}
.utopia-auto-profile{display:block;font-size:11px;color:var(--rose);padding-top:3px}
.utopia-auto-schedule-link{text-align:center;margin:22px 0 0}
.utopia-auto-schedule-link a,.news-readmore{display:inline-flex;border:1px solid rgba(240,167,189,.5);border-radius:999px;padding:8px 18px;color:#fff}
.utopia-auto-empty{padding:18px;border:1px solid rgba(240,167,189,.16);text-align:center;color:var(--muted)}
.news-manual-excerpt{color:var(--muted);margin-bottom:16px}
@media(max-width:900px){.utopia-auto-attendance-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){
  .news-archive-page,.news-single-page{padding-top:42px;padding-bottom:110px}
  .news-archive-card,.news-single-card{padding:18px 14px}
  .news-archive-card>h2{font-size:21px}
  .utopia-auto-attendance-list{gap:10px}
  .utopia-auto-info{padding:9px 4px 6px}
  .utopia-auto-info h3{font-size:14px}
  .utopia-auto-spec{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .utopia-auto-time{display:block;text-align:center}
  .utopia-auto-time span{display:block;margin-bottom:2px}
}

/* =========================================================
   v4.3 出勤情報 / お知らせ パネル額縁統一
   ========================================================= */
:root{
  --ut-panel-gold:#e8bf78;
  --ut-panel-pink:#f0a7bd;
  --ut-panel-deep:#1d1017;
}

/* 共通：ゆーとぴあ装飾パネル */
.news-archive-card,
.news-single-card,
.schedule-date-panel{
  position:relative;
  isolation:isolate;
  border:1px solid rgba(232,191,120,.62)!important;
  outline:1px solid rgba(240,167,189,.20);
  outline-offset:-7px;
  background:
    radial-gradient(circle at 0 0,rgba(240,167,189,.08),transparent 26%),
    radial-gradient(circle at 100% 100%,rgba(232,191,120,.07),transparent 24%),
    linear-gradient(145deg,rgba(26,15,21,.97),rgba(8,7,10,.99))!important;
  box-shadow:
    0 18px 55px rgba(0,0,0,.42),
    inset 0 0 0 1px rgba(255,226,195,.04),
    0 0 22px rgba(240,167,189,.035)!important;
}
.news-archive-card:before,
.news-single-card:before,
.schedule-date-panel:before{
  content:"❦";
  position:absolute;
  z-index:3;
  left:8px;
  top:2px;
  color:var(--ut-panel-gold);
  font-size:28px;
  line-height:1;
  font-family:Georgia,serif;
  text-shadow:0 0 8px rgba(240,167,189,.38);
  transform:rotate(-18deg);
  pointer-events:none;
}
.news-archive-card:after,
.news-single-card:after,
.schedule-date-panel:after{
  content:"❦";
  position:absolute;
  z-index:3;
  right:8px;
  bottom:2px;
  color:#e7a5b5;
  font-size:28px;
  line-height:1;
  font-family:Georgia,serif;
  text-shadow:0 0 8px rgba(232,191,120,.32);
  transform:rotate(162deg);
  pointer-events:none;
}

/* 出勤情報：日付ごとの大枠 */
.schedule-date-panel{
  padding:28px 28px 34px;
  margin-top:10px;
}
.schedule-day-heading{
  border-bottom:1px solid rgba(232,191,120,.30)!important;
  position:relative;
}
.schedule-day-heading:after{
  content:"✦";
  position:absolute;
  left:50%;
  bottom:-7px;
  transform:translateX(-50%);
  color:var(--ut-panel-pink);
  background:#0b080c;
  padding:0 8px;
  font-size:10px;
}

/* 日付タブもゴールド/ローズで統一 */
.schedule-date-tabs{
  border:1px solid rgba(232,191,120,.32)!important;
  background:rgba(8,6,9,.94)!important;
  box-shadow:0 12px 35px rgba(0,0,0,.30),inset 0 0 26px rgba(240,167,189,.025);
}
.schedule-date-tab{
  border-color:rgba(232,191,120,.24)!important;
  background:linear-gradient(180deg,rgba(29,18,24,.96),rgba(12,10,14,.98))!important;
}
.schedule-date-tab:hover,
.schedule-date-tab.is-active{
  border-color:rgba(240,167,189,.78)!important;
  background:linear-gradient(180deg,rgba(119,51,72,.42),rgba(28,14,21,.98))!important;
  box-shadow:inset 0 0 0 1px rgba(232,191,120,.20),0 0 18px rgba(240,167,189,.14)!important;
}
.schedule-date-tab.is-active:after{
  content:"✦";
  display:block;
  color:var(--ut-panel-gold);
  margin-top:4px;
  font-size:8px;
}

/* 出勤カード：v4.0のかわいい額縁を明示的に適用 */
.schedule-therapist-card{
  overflow:visible!important;
  border-color:rgba(240,167,189,.28)!important;
  background:linear-gradient(180deg,rgba(24,15,21,.96),rgba(8,7,10,.98))!important;
}
.schedule-card-image.ornate-photo-frame{
  aspect-ratio:auto!important;
  overflow:visible!important;
}
.schedule-card-image.ornate-photo-frame > img{
  aspect-ratio:var(--therapist-photo-ratio,3/4)!important;
}
.schedule-name-row{
  display:block!important;
  text-align:center!important;
}
.schedule-name-row .therapist-display-name{
  justify-content:center!important;
  font-size:16px!important;
  color:#f4b0c3!important;
}
.schedule-therapist-card .therapist-size-line{
  margin:4px 0 8px!important;
  color:#e8c9c2!important;
}
.schedule-time-box{
  border:1px solid rgba(232,191,120,.28)!important;
  background:linear-gradient(90deg,rgba(95,38,57,.18),rgba(232,191,120,.05))!important;
  border-radius:3px!important;
}

/* お知らせ外側パネル */
.news-archive-card,
.news-single-card{
  padding:clamp(26px,3vw,42px)!important;
}
.news-archive-card.is-auto-attendance{
  border-color:rgba(240,167,189,.58)!important;
}
.news-archive-meta span{
  border-radius:3px!important;
  border-color:rgba(232,191,120,.42)!important;
  background:rgba(240,167,189,.07);
}

/* 自動出勤速報内のセラピストカードにも同じ額縁 */
.utopia-auto-attendance-item.ornate-therapist-card{
  overflow:visible!important;
  padding:0!important;
  border:1px solid rgba(240,167,189,.27)!important;
  background:linear-gradient(180deg,rgba(22,13,19,.97),rgba(7,6,9,.99))!important;
}
.utopia-auto-photo.ornate-photo-frame{
  display:block!important;
  aspect-ratio:auto!important;
  overflow:visible!important;
  margin:8px 8px 0!important;
}
.utopia-auto-photo.ornate-photo-frame img{
  aspect-ratio:var(--therapist-photo-ratio,3/4)!important;
  width:100%!important;
  height:auto!important;
  object-fit:cover!important;
  object-position:var(--therapist-photo-position,center 20%)!important;
}
.utopia-auto-info{
  padding:14px 10px 12px!important;
}
.utopia-auto-info h3{
  color:#f4b0c3!important;
  text-align:center!important;
  letter-spacing:.01em;
}
.utopia-auto-spec{
  color:#e8c9c2!important;
  text-align:center!important;
}
.utopia-auto-time{
  border-color:rgba(232,191,120,.22)!important;
}
.utopia-auto-profile{
  color:#efb5c6!important;
}

/* 通常イベントお知らせも少し華やかに */
.news-manual-excerpt{
  border-top:1px solid rgba(232,191,120,.16);
  padding-top:14px;
}
.news-readmore,
.utopia-auto-schedule-link a{
  border-radius:3px!important;
  border-color:rgba(232,191,120,.52)!important;
  background:linear-gradient(90deg,rgba(240,167,189,.07),rgba(232,191,120,.04));
}

@media(max-width:900px){
  .schedule-date-panel{padding:22px 18px 28px}
}
@media(max-width:560px){
  .schedule-date-panel{
    padding:18px 10px 24px;
    margin-inline:-1px;
  }
  .news-archive-card,.news-single-card{
    padding:22px 14px!important;
    outline-offset:-5px;
  }
  .news-archive-card:before,.news-single-card:before,.schedule-date-panel:before,
  .news-archive-card:after,.news-single-card:after,.schedule-date-panel:after{
    font-size:21px;
  }
  .schedule-therapist-card .card-body{padding:10px 5px 12px!important}
  .schedule-name-row .therapist-display-name{font-size:14px!important}
  .schedule-therapist-card .therapist-size-line{font-size:10px!important;white-space:nowrap!important}
  .utopia-auto-photo.ornate-photo-frame{margin:5px 5px 0!important}
  .utopia-auto-info{padding:10px 5px 9px!important}
}

/* v4.4 求人LP */
.recruit-lp-page{background:#050505;min-height:60vh;padding:0 0 60px}
.recruit-lp-picture{display:block;width:min(1400px,100%);margin:0 auto;line-height:0}
.recruit-lp-picture img{display:block;width:100%;height:auto;max-width:none;filter:none!important;opacity:1!important}
.recruit-contact{padding-top:28px;display:flex;justify-content:center}
.recruit-empty{padding:90px 20px;text-align:center}
@media(max-width:767px){.recruit-lp-page{padding-bottom:88px}.recruit-lp-picture{width:100%}.recruit-contact{padding:20px 16px 0}}


/* =========================================================
   v4.5 料金グループ + お知らせ出勤速報フレーム確実適用
   ========================================================= */
.price-course-group{margin:0 0 34px}
.price-course-group-head{text-align:center;margin:0 0 18px}
.price-course-group-head>span{font-family:serif;letter-spacing:.18em;color:var(--gold);font-size:clamp(20px,2.4vw,30px)}
.price-course-group-head>p{margin:7px 0 0;color:var(--muted);font-size:13px}
.price-group-grid{margin-top:0}

/* 自動出勤速報の写真はTOP/一覧と同じ額縁を強制的に使用 */
.utopia-auto-attendance-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:22px}
.utopia-auto-attendance-item.ornate-therapist-card{display:block!important;background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;min-width:0}
.utopia-auto-photo.ornate-photo-frame{
  position:relative!important;display:block!important;width:100%!important;aspect-ratio:3/4!important;
  padding:8px!important;margin:0!important;overflow:visible!important;border-radius:4px!important;
  background:linear-gradient(135deg,#fff3df 0%,#dfab73 18%,#f8d5b4 38%,#b97b52 61%,#f2cda2 82%,#fff4df 100%)!important;
  border:1px solid rgba(255,237,211,.9)!important;
  box-shadow:0 0 0 2px rgba(90,48,34,.72),0 0 0 4px rgba(235,178,137,.68),0 14px 30px rgba(0,0,0,.42)!important;
}
.utopia-auto-photo.ornate-photo-frame:before{
  content:""!important;position:absolute!important;inset:-12px!important;z-index:5!important;pointer-events:none!important;
  background:url('assets/images/ornate-frame-3x4.png') center/100% 100% no-repeat!important;
  opacity:.74!important;filter:sepia(.18) saturate(.86) hue-rotate(330deg) brightness(1.08)!important;
}
.utopia-auto-photo.ornate-photo-frame:after{
  content:"✦"!important;position:absolute!important;right:-5px!important;top:12%!important;z-index:6!important;color:#ffe5d0!important;
  font-size:11px!important;text-shadow:0 0 9px rgba(255,196,184,.85)!important;border:0!important;box-shadow:none!important;
}
.utopia-auto-photo.ornate-photo-frame img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;border:1px solid rgba(255,229,209,.72)!important;position:relative!important;z-index:2!important}
.utopia-auto-info{text-align:center!important;padding:15px 4px 4px!important}
.utopia-auto-info h3{margin:0 0 5px!important;font-family:serif!important;font-size:18px!important;color:#fff!important}
.utopia-auto-info h3 a{color:inherit!important}
.utopia-auto-spec{margin:0 0 10px!important;color:#e5ced4!important;font-size:12px!important;white-space:nowrap!important}
.utopia-auto-time{display:flex!important;justify-content:center!important;gap:9px!important;align-items:center!important;margin:8px 0!important}
.utopia-auto-time span{color:var(--rose)!important;font-size:11px!important}.utopia-auto-time strong{color:#fff!important}
.utopia-auto-instant{display:inline-flex!important;margin:2px auto 8px!important;padding:3px 10px!important;border:1px solid rgba(240,167,189,.55)!important;border-radius:999px!important;color:var(--rose)!important;font-size:10px!important}
.utopia-auto-profile{display:block!important;margin-top:7px!important;color:var(--gold)!important;font-size:11px!important}
@media(max-width:760px){
  .utopia-auto-attendance-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px}
  .utopia-auto-photo.ornate-photo-frame{padding:6px!important}.utopia-auto-photo.ornate-photo-frame:before{inset:-8px!important}
  .utopia-auto-info h3{font-size:14px!important}.utopia-auto-spec{font-size:10px!important}
}


/* =========================================================
   v4.6 NEWS出勤速報カードをTOPと完全共通化
   保存済みの古い投稿HTMLに依存せず、現在の出勤データから再描画。
   ========================================================= */
.news-auto-content .utopia-auto-attendance-list,
.news-single-content .utopia-auto-attendance-list{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:22px!important;
  align-items:start!important;
  margin:24px auto 0!important;
}
.news-auto-content .utopia-auto-attendance-list.auto-count-1,
.news-single-content .utopia-auto-attendance-list.auto-count-1{
  grid-template-columns:minmax(230px,300px)!important;
  justify-content:center!important;
}
.news-auto-content .utopia-auto-attendance-list.auto-count-2,
.news-single-content .utopia-auto-attendance-list.auto-count-2{
  grid-template-columns:repeat(2,minmax(230px,300px))!important;
  justify-content:center!important;
}
.news-auto-content .utopia-auto-attendance-list.auto-count-3,
.news-single-content .utopia-auto-attendance-list.auto-count-3{
  grid-template-columns:repeat(3,minmax(210px,280px))!important;
  justify-content:center!important;
}
.news-auto-content .utopia-auto-attendance-item,
.news-single-content .utopia-auto-attendance-item{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
}
.news-auto-content .utopia-auto-card-link,
.news-single-content .utopia-auto-card-link{
  display:block!important;
  color:inherit!important;
  text-decoration:none!important;
}
/* v4.0の額縁指定をNEWS内でもそのまま優先 */
.news-auto-content .utopia-auto-photo.ornate-photo-frame,
.news-single-content .utopia-auto-photo.ornate-photo-frame{
  position:relative!important;
  overflow:visible!important;
  padding:10px!important;
  margin:0!important;
  aspect-ratio:auto!important;
  border:1px solid rgba(255,205,180,.78)!important;
  outline:1px solid rgba(240,167,189,.36)!important;
  outline-offset:-5px!important;
  background:linear-gradient(145deg,#2a151d 0%,#a76166 18%,#f4c2a5 40%,#cf8791 62%,#f1bd91 82%,#5c2935 100%)!important;
  box-shadow:0 8px 24px rgba(0,0,0,.42),0 0 14px rgba(240,167,189,.10)!important;
}
.news-auto-content .utopia-auto-photo.ornate-photo-frame:before,
.news-single-content .utopia-auto-photo.ornate-photo-frame:before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  z-index:5!important;
  inset:-12px!important;
  pointer-events:none!important;
  background:url('assets/images/ornate-frame-3x4.png') center/100% 100% no-repeat!important;
  opacity:.72!important;
  filter:sepia(.15) saturate(.72) hue-rotate(305deg) brightness(1.22)!important;
  border:0!important;
  box-shadow:none!important;
}
.news-auto-content .utopia-auto-photo.ornate-photo-frame:after,
.news-single-content .utopia-auto-photo.ornate-photo-frame:after{
  content:"✦"!important;
  position:absolute!important;
  z-index:6!important;
  right:3px!important;
  top:2px!important;
  left:auto!important;
  bottom:auto!important;
  color:#ffd8cf!important;
  font-size:10px!important;
  line-height:1!important;
  text-shadow:0 0 7px rgba(255,190,205,.85)!important;
  background:none!important;
  border:0!important;
  box-shadow:none!important;
  pointer-events:none!important;
}
.news-auto-content .utopia-auto-photo.ornate-photo-frame>img,
.news-single-content .utopia-auto-photo.ornate-photo-frame>img{
  position:relative!important;
  z-index:2!important;
  display:block!important;
  width:100%!important;
  height:auto!important;
  aspect-ratio:var(--therapist-photo-ratio,3/4)!important;
  object-fit:cover!important;
  object-position:var(--therapist-photo-position,center 20%)!important;
  border:1px solid rgba(255,222,207,.88)!important;
  outline:1px solid rgba(240,167,189,.38)!important;
  outline-offset:-4px!important;
  box-shadow:0 5px 15px rgba(0,0,0,.38)!important;
}
.news-auto-content .utopia-auto-info,
.news-single-content .utopia-auto-info{
  padding:13px 7px 8px!important;
  text-align:center!important;
}
.news-auto-content .utopia-auto-info .therapist-display-name,
.news-single-content .utopia-auto-info .therapist-display-name{
  margin:0!important;
  text-align:center!important;
  color:#fff7f3!important;
  font-size:17px!important;
}
.news-auto-content .utopia-auto-info .therapist-size-line,
.news-single-content .utopia-auto-info .therapist-size-line{
  text-align:center!important;
  color:#efc5b1!important;
  margin:4px 0 9px!important;
  font-size:11px!important;
}
.news-auto-content .utopia-auto-time,
.news-single-content .utopia-auto-time{
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
  gap:9px!important;
  margin:8px 0 5px!important;
  padding:7px 3px!important;
  border-top:1px solid rgba(240,167,189,.16)!important;
  border-bottom:1px solid rgba(240,167,189,.16)!important;
}
.news-auto-content .utopia-auto-profile,
.news-single-content .utopia-auto-profile{
  display:block!important;
  color:var(--gold)!important;
  font-size:11px!important;
  padding-top:5px!important;
}
@media(max-width:900px){
  .news-auto-content .utopia-auto-attendance-list,
  .news-single-content .utopia-auto-attendance-list{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:18px 12px!important;
  }
  .news-auto-content .utopia-auto-attendance-list.auto-count-1,
  .news-single-content .utopia-auto-attendance-list.auto-count-1{
    grid-template-columns:minmax(180px,260px)!important;
  }
  .news-auto-content .utopia-auto-attendance-list.auto-count-2,
  .news-single-content .utopia-auto-attendance-list.auto-count-2{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .news-auto-content .utopia-auto-attendance-list.auto-count-3 .utopia-auto-attendance-item:last-child,
  .news-single-content .utopia-auto-attendance-list.auto-count-3 .utopia-auto-attendance-item:last-child,
  .news-auto-content .utopia-auto-attendance-list.auto-count-5 .utopia-auto-attendance-item:last-child,
  .news-single-content .utopia-auto-attendance-list.auto-count-5 .utopia-auto-attendance-item:last-child{
    grid-column:1/-1!important;
    width:min(100%,260px)!important;
    justify-self:center!important;
  }
  .news-auto-content .utopia-auto-photo.ornate-photo-frame,
  .news-single-content .utopia-auto-photo.ornate-photo-frame{padding:7px!important}
  .news-auto-content .utopia-auto-photo.ornate-photo-frame:before,
  .news-single-content .utopia-auto-photo.ornate-photo-frame:before{inset:-8px!important}
  .news-auto-content .utopia-auto-info .therapist-display-name,
  .news-single-content .utopia-auto-info .therapist-display-name{font-size:14px!important}
  .news-auto-content .utopia-auto-info .therapist-size-line,
  .news-single-content .utopia-auto-info .therapist-size-line{font-size:10px!important}
}

/* =========================================================
   v4.8 スマホ料金システム表示修正
   ========================================================= */
@media (max-width: 820px){
  .price-course-group{width:100%;max-width:100%;overflow:hidden;margin-bottom:28px}
  .price-course-group-head{padding:0 10px;margin-bottom:14px}
  .price-course-group-head>span{
    display:block;
    font-size:clamp(22px,7vw,30px);
    line-height:1.25;
    letter-spacing:.10em;
    overflow-wrap:normal;
    word-break:keep-all;
  }
  .price-course-group-head>p{font-size:12px;line-height:1.7}

  .system-full-grid,
  .price-group-grid,
  .price-grid,
  .v25-price-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
  }

  .price-group-grid .dynamic-price,
  .system-full-grid .dynamic-price,
  .price-grid .dynamic-price{
    min-width:0!important;
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box!important;
    padding:22px 8px 18px!important;
    overflow:hidden!important;
    border-radius:4px!important;
  }

  .dynamic-price small{
    display:block!important;
    width:100%!important;
    margin:0 auto 8px!important;
    font-size:11px!important;
    line-height:1.35!important;
    letter-spacing:.04em!important;
    white-space:normal!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
    text-align:center!important;
  }

  .dynamic-price>span{
    display:block!important;
    font-size:17px!important;
    line-height:1.15!important;
    white-space:nowrap!important;
    word-break:normal!important;
    text-align:center!important;
  }

  .dynamic-price>strong{
    display:block!important;
    max-width:100%!important;
    margin-top:10px!important;
    font-size:clamp(24px,8.2vw,36px)!important;
    line-height:1.05!important;
    letter-spacing:0!important;
    white-space:nowrap!important;
    overflow:visible!important;
    text-align:center!important;
  }

  .dynamic-price>p{
    margin:10px 0 0!important;
    font-size:10px!important;
    line-height:1.55!important;
    word-break:normal!important;
    overflow-wrap:anywhere!important;
  }

  .price-label{
    top:8px!important;
    right:8px!important;
    max-width:calc(100% - 16px)!important;
    padding:5px 9px!important;
    font-size:10px!important;
    line-height:1.1!important;
    white-space:nowrap!important;
  }

  .price-extras{margin-top:28px;padding:20px 14px}
  .price-extra-grid{grid-template-columns:1fr!important}
}

@media (max-width: 390px){
  .system-full-grid,.price-group-grid,.price-grid,.v25-price-grid{gap:8px!important}
  .price-group-grid .dynamic-price,.system-full-grid .dynamic-price,.price-grid .dynamic-price{padding-left:6px!important;padding-right:6px!important}
  .dynamic-price>strong{font-size:clamp(22px,8vw,31px)!important}
  .dynamic-price>span{font-size:15px!important}
}


/* =========================================================
   v4.8 TOP料金は従来のコンパクト4コース表示 / 詳細ページは全コース
   ========================================================= */
.home .v25-price-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:10px!important;
  width:100%!important;
}
.home .v25-price-grid .top-price-card{
  min-width:0!important;
  padding:18px 10px!important;
  text-align:center!important;
  overflow:visible!important;
}
.home .v25-price-grid .top-price-card small{
  display:block!important;
  margin:0 0 6px!important;
  font-size:11px!important;
  line-height:1.35!important;
  white-space:nowrap!important;
}
.home .v25-price-grid .top-price-card>span{
  display:block!important;
  font-size:16px!important;
  line-height:1.2!important;
  white-space:nowrap!important;
}
.home .v25-price-grid .top-price-card>strong{
  display:block!important;
  margin-top:8px!important;
  font-size:clamp(22px,2.5vw,34px)!important;
  line-height:1.05!important;
  letter-spacing:0!important;
  white-space:nowrap!important;
  overflow:visible!important;
}
@media(max-width:820px){
  .home .v25-price-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
  .home .v25-price-grid .top-price-card{padding:16px 5px!important;min-height:126px!important}
  .home .v25-price-grid .top-price-card small{font-size:10px!important}
  .home .v25-price-grid .top-price-card>span{font-size:14px!important}
  .home .v25-price-grid .top-price-card>strong{font-size:clamp(22px,7vw,30px)!important}
  .home .v25-price-grid .price-label{font-size:9px!important;padding:4px 7px!important;top:6px!important;right:6px!important}
}

/* =========================================================
   v5.0 独立料金ページ - TOP料金と完全分離
   ========================================================= */
.system-page{background:#050406;overflow:hidden}
.system-page-container{max-width:1180px}
.system-page-head{margin-bottom:52px}
.system-head-ornament{display:flex;align-items:center;justify-content:center;gap:12px;margin:24px auto 0;max-width:360px;color:#efa3b6}
.system-head-ornament span{height:1px;flex:1;background:linear-gradient(90deg,transparent,#c99768)}
.system-head-ornament span:last-child{background:linear-gradient(90deg,#c99768,transparent)}
.system-groups{display:flex;flex-direction:column;gap:64px}
.system-group{width:100%}
.system-group-head{text-align:center;margin-bottom:24px}
.system-group-head h2{margin:0;color:#efc082;font-family:Georgia,"Times New Roman","Yu Mincho",serif;font-size:clamp(28px,3.2vw,44px);font-weight:400;letter-spacing:.13em;line-height:1.25}
.system-group-head p{margin:10px 0 0;color:#c7bbc0;font-size:14px;line-height:1.7}
.system-course-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.system-course-card{position:relative;min-width:0;padding:28px 18px 24px;border:1px solid rgba(210,158,106,.7);background:linear-gradient(180deg,rgba(24,13,17,.96),rgba(8,6,8,.98));box-shadow:inset 0 0 28px rgba(224,130,157,.055);text-align:center;overflow:hidden}
.system-course-card.is-recommended{border-color:#eba0b7;box-shadow:0 0 28px rgba(224,130,157,.09),inset 0 0 28px rgba(224,130,157,.07)}
.system-course-label{position:absolute;top:10px;right:10px;padding:5px 10px;border-radius:999px;background:#efa2b8;color:#35151e;font-size:11px;font-weight:800;line-height:1}
.system-course-name{min-height:22px;margin-bottom:15px;color:#d7cdd0;font-size:13px;letter-spacing:.05em}
.system-course-main{display:flex;flex-direction:column;align-items:center;gap:12px}
.system-course-minutes{color:#fff;font-family:Georgia,"Yu Mincho",serif;font-size:28px;font-weight:400;line-height:1;white-space:nowrap}
.system-course-minutes small{font-size:.55em;font-weight:400;letter-spacing:.05em}
.system-course-price{max-width:100%;color:#efc46e;font-family:Georgia,"Times New Roman",serif;font-size:clamp(28px,3vw,42px);font-weight:700;line-height:1;white-space:nowrap}
.system-course-desc{margin:16px 0 0;color:#a99ba0;font-size:12px;line-height:1.65}
.system-extras{margin-top:70px;padding:32px;border:1px solid rgba(210,158,106,.3);background:rgba(26,14,18,.45)}
.system-extras>h2{text-align:center;margin:0 0 22px;font-family:Georgia,"Yu Mincho",serif;font-weight:400}
.system-extras-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.system-extras-grid>div{padding:17px;border:1px solid rgba(210,158,106,.26);text-align:center}
.system-extras-grid span{display:block;margin-bottom:7px;color:#e9a1b4;font-size:11px;letter-spacing:.1em}
.system-extras-grid strong{font-size:16px}
.system-extras-note{margin:20px 0 0;color:#b7aaaf;text-align:center;line-height:1.8}

@media(max-width:820px){
  .system-page{padding-top:36px!important;padding-bottom:110px!important}
  .system-page-container{width:calc(100% - 28px)!important;max-width:none!important}
  .system-page-head{margin-bottom:38px}
  .system-page-head h1{font-size:34px!important}
  .system-groups{gap:50px}
  .system-group-head{margin-bottom:18px;padding:0 4px}
  .system-group-head h2{font-size:30px;letter-spacing:.08em;word-break:keep-all;overflow-wrap:normal}
  .system-group-head p{font-size:13px}
  .system-course-grid{display:flex!important;flex-direction:column!important;gap:11px!important;width:100%!important}
  .system-course-card{display:grid!important;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name main" "desc desc";align-items:center;width:100%!important;min-height:88px!important;padding:18px 16px!important;text-align:left!important;overflow:visible!important}
  .system-course-name{grid-area:name;min-height:0;margin:0;padding-right:12px;font-size:14px;line-height:1.45;word-break:keep-all}
  .system-course-main{grid-area:main;display:flex!important;flex-direction:row!important;align-items:baseline!important;justify-content:flex-end!important;gap:14px!important;min-width:0}
  .system-course-minutes{font-size:19px!important;white-space:nowrap!important}
  .system-course-price{font-size:clamp(24px,7.2vw,32px)!important;white-space:nowrap!important;overflow:visible!important}
  .system-course-desc{grid-area:desc;margin:11px 0 0!important;padding-top:10px;border-top:1px solid rgba(210,158,106,.13);font-size:11px!important;text-align:left!important}
  .system-course-label{top:-8px!important;right:10px!important;font-size:10px!important;padding:5px 9px!important}
  .system-extras{margin-top:48px;padding:22px 14px}
  .system-extras-grid{grid-template-columns:1fr!important}
}
@media(max-width:390px){
  .system-course-card{padding:17px 12px!important}
  .system-course-main{gap:9px!important}
  .system-course-minutes{font-size:17px!important}
  .system-course-price{font-size:clamp(22px,7vw,29px)!important}
}

/* v5.3 HOW TO USE */
.howto-page{background:#050507;color:#f7eef2;overflow:hidden}.howto-hero{width:100%;background:#080608}.howto-hero picture,.howto-hero img{display:block;width:100%}.howto-hero img{max-height:680px;object-fit:cover}.howto-hero-placeholder{min-height:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:radial-gradient(circle at 70% 35%,rgba(120,55,75,.28),transparent 35%),linear-gradient(135deg,#080608,#120910 60%,#050506);border-bottom:1px solid rgba(217,151,169,.25)}.howto-hero-placeholder span,.howto-page .section-title span,.howto-first-title span{letter-spacing:.28em;color:#dc93aa;font-size:12px}.howto-hero-placeholder h1{font-family:serif;font-size:clamp(42px,6vw,76px);font-weight:400;margin:14px 0;color:#f5e4d1}.howto-hero-placeholder p{font-size:15px;color:#d9cbd0}.howto-flow{padding:78px 20px 68px}.howto-page .section-title{text-align:center;margin-bottom:42px}.howto-page .section-title h1,.howto-page .section-title h2{font-family:serif;font-weight:400;font-size:38px;margin:10px 0;color:#f5e8df}.howto-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.howto-step{position:relative;text-align:center;padding:54px 18px 30px;min-height:340px;background:linear-gradient(180deg,rgba(30,17,24,.96),rgba(10,8,11,.98));border:1px solid rgba(210,157,109,.72);box-shadow:inset 0 0 0 3px #09070a,inset 0 0 0 4px rgba(216,145,165,.25);border-radius:4px}.howto-step:before,.howto-step:after{content:'✦';position:absolute;color:#d99aaf;font-size:10px}.howto-step:before{left:9px;top:9px}.howto-step:after{right:9px;bottom:9px}.howto-step-no{position:absolute;top:-27px;left:50%;transform:translateX(-50%);width:62px;height:62px;border-radius:50%;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(#e783a4,#b84d72);border:2px solid #e7b98a;box-shadow:0 0 22px rgba(218,105,145,.35);font-family:serif;font-size:22px}.howto-step-no small{font-size:9px;letter-spacing:.12em}.howto-step-icon{height:62px;display:flex;align-items:center;justify-content:center;font-size:38px;color:#ed8eae}.howto-step h2{font-family:serif;font-size:20px;color:#f3ddc9;margin:12px 0 16px}.howto-step p{font-size:13px;line-height:2;color:#d7c9cf}.howto-first{display:grid;grid-template-columns:260px 1fr;gap:34px;align-items:center;margin-bottom:70px;padding:36px 44px;background:linear-gradient(90deg,#f7e8e8,#fff4f1);color:#4a3339;border:1px solid #d6a675;box-shadow:inset 0 0 0 5px #f7ece7,inset 0 0 0 6px rgba(187,128,87,.35)}.howto-first-title h2{font-family:serif;font-size:32px;color:#b95878;margin:8px 0}.howto-first-copy p{margin:5px 0;line-height:1.9}.howto-contact{padding:0 20px 80px}.howto-contact-buttons{display:flex;justify-content:center;gap:18px}.howto-contact-buttons .btn{min-width:280px;text-align:center;padding:17px 28px}.howto-phone{border-color:#cda26e!important;color:#f4e2cd!important}
@media(max-width:900px){.howto-grid{grid-template-columns:repeat(2,1fr);gap:38px 12px}.howto-step:last-child{grid-column:1/-1;width:calc(50% - 6px);justify-self:center}}
@media(max-width:767px){.howto-hero img{max-height:none;object-fit:contain}.howto-hero-placeholder{min-height:300px;padding:50px 22px}.howto-hero-placeholder h1{font-size:42px}.howto-flow{padding:64px 14px 48px}.howto-page .section-title h1,.howto-page .section-title h2{font-size:30px}.howto-grid{grid-template-columns:1fr;gap:42px}.howto-step,.howto-step:last-child{width:100%;grid-column:auto;min-height:0;padding:48px 22px 26px}.howto-first{grid-template-columns:1fr;gap:12px;margin:0 14px 55px;padding:28px 24px;text-align:center}.howto-first-title h2{font-size:28px}.howto-contact{padding-bottom:60px}.howto-contact-buttons{flex-direction:column}.howto-contact-buttons .btn{min-width:0;width:100%}}


/* =========================================================
   v5.4 - How-to mobile first-time copy: natural Japanese wrapping
   ========================================================= */
.howto-mobile-line{display:inline}
@media(max-width:767px){
  .howto-first-copy{width:100%;max-width:100%;padding:0 2px}
  .howto-first-copy p{
    width:100%;
    max-width:100%;
    margin:8px auto!important;
    line-height:1.85!important;
    font-size:14px!important;
    letter-spacing:.01em;
    word-break:normal!important;
    overflow-wrap:normal!important;
    line-break:strict;
  }
  .howto-first-copy .howto-mobile-line{
    display:block;
    white-space:nowrap;
  }
}
@media(max-width:360px){
  .howto-first-copy p{font-size:13px!important}
}


/* =========================================================
   v5.8 - HOW TO USE complete responsive review
   ========================================================= */
.howto-page-v56{
  overflow:clip;
  padding-bottom:0;
}
.howto-page-v56 .howto-hero img{
  width:100%;
  height:auto;
  max-height:none;
  object-fit:contain;
  filter:none;
  opacity:1;
}
.howto-page-v56 .howto-flow{
  padding-top:68px;
  padding-bottom:60px;
}
.howto-page-v56 .section-title{
  margin-bottom:44px;
}
.howto-page-v56 .howto-grid{
  align-items:stretch;
}
.howto-page-v56 .howto-step{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
}
.howto-page-v56 .howto-step p,
.howto-page-v56 .howto-first-copy p{
  word-break:normal;
  overflow-wrap:break-word;
  line-break:strict;
  text-wrap:pretty;
}
.howto-page-v56 .howto-first{
  margin-top:0;
}

@media (min-width: 901px){
  .howto-page-v56 .howto-grid{
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:14px;
  }
  .howto-page-v56 .howto-step{
    min-height:330px;
    padding:54px 16px 26px;
  }
  .howto-page-v56 .howto-step h2{
    font-size:19px;
    line-height:1.55;
  }
  .howto-page-v56 .howto-step p{
    font-size:13px;
    line-height:1.9;
  }
}

@media (max-width: 900px){
  .howto-page-v56 .howto-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:34px 12px;
  }
  .howto-page-v56 .howto-step:last-child{
    grid-column:1 / -1;
    width:calc(50% - 6px);
    justify-self:center;
  }
}

@media (max-width: 767px){
  .howto-page-v56{
    padding-bottom:84px;
  }
  .howto-page-v56 .howto-hero{
    border-bottom:1px solid rgba(240,167,189,.22);
  }
  .howto-page-v56 .howto-hero picture,
  .howto-page-v56 .howto-hero img{
    width:100%;
  }
  .howto-page-v56 .howto-flow{
    width:min(100% - 24px,680px);
    padding:46px 0 40px;
  }
  .howto-page-v56 .section-title{
    margin-bottom:34px;
  }
  .howto-page-v56 .section-title span{
    font-size:10px;
    letter-spacing:.24em;
  }
  .howto-page-v56 .section-title h1,
  .howto-page-v56 .section-title h2{
    margin-top:7px;
    font-size:clamp(26px,7vw,31px);
    line-height:1.35;
  }
  .howto-page-v56 .howto-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:30px 10px;
  }
  .howto-page-v56 .howto-step,
  .howto-page-v56 .howto-step:last-child{
    width:100%;
    min-width:0;
    min-height:250px;
    padding:38px 11px 18px;
    border-radius:3px;
  }
  .howto-page-v56 .howto-step:last-child{
    grid-column:1 / -1;
    width:calc(50% - 5px);
    justify-self:center;
  }
  .howto-page-v56 .howto-step-no{
    top:-22px;
    width:50px;
    height:50px;
    font-size:17px;
    border-width:1px;
  }
  .howto-page-v56 .howto-step-no small{
    font-size:7px;
  }
  .howto-page-v56 .howto-step-icon{
    height:42px;
    font-size:26px;
    margin-bottom:3px;
  }
  .howto-page-v56 .howto-step:nth-child(2) .howto-step-icon{
    font-size:18px;
    letter-spacing:.02em;
  }
  .howto-page-v56 .howto-step h2{
    font-size:clamp(14px,3.9vw,17px);
    line-height:1.55;
    margin:8px 0 10px;
    white-space:normal;
  }
  .howto-page-v56 .howto-step p{
    margin:0;
    font-size:clamp(10.5px,2.85vw,12.5px);
    line-height:1.8;
    letter-spacing:0;
    text-align:left;
  }
  .howto-page-v56 .howto-first{
    width:calc(100% - 28px);
    margin:8px auto 42px;
    padding:24px 18px 22px;
    gap:10px;
    grid-template-columns:1fr;
    text-align:center;
  }
  .howto-page-v56 .howto-first-title span{
    font-size:9px;
    letter-spacing:.24em;
  }
  .howto-page-v56 .howto-first-title h2{
    font-size:clamp(24px,6.4vw,29px);
    margin:5px 0 8px;
  }
  .howto-page-v56 .howto-first-copy{
    width:100%;
    max-width:520px;
    margin:0 auto;
    padding:0;
  }
  .howto-page-v56 .howto-first-copy p{
    width:100%;
    max-width:none;
    margin:9px 0!important;
    padding:0!important;
    font-size:clamp(12px,3.3vw,14px)!important;
    line-height:1.85!important;
    letter-spacing:0!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:break-word!important;
    text-align:left;
  }
  .howto-page-v56 .howto-contact{
    width:calc(100% - 28px);
    padding:0 0 44px;
  }
  .howto-page-v56 .howto-contact .section-title{
    margin-bottom:24px;
  }
  .howto-page-v56 .howto-contact-buttons{
    gap:10px;
  }
  .howto-page-v56 .howto-contact-buttons .btn{
    width:100%;
    min-width:0;
    padding:14px 16px;
    font-size:14px;
  }
}

@media (max-width: 390px){
  .howto-page-v56 .howto-flow{
    width:calc(100% - 18px);
  }
  .howto-page-v56 .howto-grid{
    gap:28px 8px;
  }
  .howto-page-v56 .howto-step,
  .howto-page-v56 .howto-step:last-child{
    padding-left:9px;
    padding-right:9px;
  }
  .howto-page-v56 .howto-step p{
    font-size:10.5px;
  }
  .howto-page-v56 .howto-first{
    width:calc(100% - 20px);
    padding-left:15px;
    padding-right:15px;
  }
  .howto-page-v56 .howto-first-copy p{
    font-size:12.5px!important;
  }
}

/* =========================================================
   v5.8 HOW TO USE - mobile Japanese line-break final pass
   ========================================================= */
.howto-page-v56 .howto-step h2,
.howto-page-v56 .howto-step p,
.howto-page-v56 .howto-first-copy p{
  word-break:auto-phrase;
  overflow-wrap:normal;
  line-break:strict;
}

@media (max-width:767px){
  .howto-page-v56 .howto-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:30px 10px;
  }
  .howto-page-v56 .howto-step,
  .howto-page-v56 .howto-step:last-child{
    min-width:0;
    min-height:238px;
    padding:38px 12px 18px;
  }
  /* The final step has the longest title: keep the 2+2+1 layout,
     but give the last card enough width for natural Japanese lines. */
  .howto-page-v56 .howto-step:last-child{
    grid-column:1 / -1;
    width:min(100%,360px);
    justify-self:center;
  }
  .howto-page-v56 .howto-step h2{
    width:100%;
    margin:8px 0 10px;
    font-size:clamp(13px,3.55vw,16px);
    line-height:1.45;
    letter-spacing:-.02em;
    white-space:nowrap;
    word-break:keep-all;
    overflow-wrap:normal;
  }
  .howto-page-v56 .howto-step p{
    width:100%;
    font-size:clamp(11px,2.9vw,12.5px);
    line-height:1.75;
    text-align:center;
    word-break:auto-phrase;
    overflow-wrap:normal;
    line-break:strict;
  }
  .howto-page-v56 .howto-first-copy p{
    word-break:auto-phrase!important;
    overflow-wrap:normal!important;
    line-break:strict!important;
  }
}

@media (max-width:390px){
  .howto-page-v56 .howto-step h2{
    font-size:13px;
    letter-spacing:-.035em;
  }
  .howto-page-v56 .howto-step p{
    font-size:11px;
  }
  .howto-page-v56 .howto-step:last-child{
    width:min(100%,330px);
  }
}

/* v5.8 How-to copy/icon final adjustments */
.howto-page-v56 .howto-step-icon{font-family:Arial,"Noto Sans JP",sans-serif;line-height:1}
.howto-page-v56 .howto-step:nth-child(2) .howto-step-icon,
.howto-page-v56 .howto-step:nth-child(4) .howto-step-icon{font-size:34px;letter-spacing:0}
@media(max-width:767px){
  .howto-page-v56 .howto-step p br{display:block}
  .howto-page-v56 .howto-step:nth-child(2) .howto-step-icon,
  .howto-page-v56 .howto-step:nth-child(4) .howto-step-icon{font-size:30px}
}

/* v5.8 HOW TO - exact requested mobile line break */
.howto-page-v56 .howto-no-break{white-space:nowrap;}
@media (max-width:767px){
  .howto-page-v56 .howto-first-copy{font-size:0;}
  .howto-page-v56 .howto-first-copy p{font-size:12px!important;letter-spacing:-.035em;}
  .howto-page-v56 .howto-no-break{white-space:nowrap;display:inline-block;max-width:100%;}
}


/* =========================================================
   v6.2 公開前共通化 / CONCEPT本文をDOM上1セットに統一
   ========================================================= */
.concept-text{position:relative;z-index:3}
@media (min-width:821px){
  .concept-copy .concept-text{display:block}
}
@media (max-width:820px){
  .concept-split{display:block!important;position:relative}
  .concept-visual{position:relative;min-height:360px!important}
  .concept-copy{border-left:1px solid rgba(201,145,97,.34)!important;padding:0!important;background:transparent!important}
  .concept-copy .concept-text{position:absolute;left:18px;right:18px;top:120px;z-index:5;padding:18px 16px;background:linear-gradient(180deg,rgba(7,5,7,.10),rgba(7,5,7,.72));text-align:center;border-radius:2px;text-shadow:0 1px 8px rgba(0,0,0,.8)}
  .concept-copy .concept-text .eyebrow{font-size:10px;letter-spacing:.22em}
  .concept-copy .concept-text h2{font-size:24px;line-height:1.45;margin:5px 0 8px}
  .concept-copy .concept-text p{font-size:11px;line-height:1.9;margin:0;color:#eee3e7}
  .concept-copy .feature-grid{margin-top:0;padding-top:12px}
}

/* v6.2 concept copy line breaks */
.concept-br-sp{display:none;}
.concept-br-all{display:block;}
@media (max-width: 767px){
  .concept-br-sp{display:block;}
  .concept-br-all{display:block;}
}


/* v6.3 CONCEPT - PC/SP共通の指定4行。日本語途中折返しを防止 */
.v25-concept .concept-fixed-lines span{display:block;white-space:nowrap;}
@media (max-width:820px){
  .v25-concept .concept-copy .concept-text p.concept-fixed-lines{font-size:10.5px!important;line-height:1.85!important;letter-spacing:-.025em!important;}
}
@media (max-width:360px){
  .v25-concept .concept-copy .concept-text p.concept-fixed-lines{font-size:9.7px!important;letter-spacing:-.04em!important;}
}

/* v6.5 博多 出張メンズエステ SEO補助セクション */
.utopia-local-seo{padding-top:34px;padding-bottom:34px}
.utopia-local-seo-inner{max-width:980px;text-align:center}
.utopia-local-seo h2{margin:.35em 0 .65em;font-size:clamp(24px,3vw,36px);letter-spacing:.04em}
.utopia-local-seo p{max-width:860px;margin:0 auto;line-height:2;color:var(--muted,#c9c2c5)}
.utopia-local-seo-links{display:flex;justify-content:center;flex-wrap:wrap;gap:10px 18px;margin-top:22px}
.utopia-local-seo-links a{text-decoration:none;border-bottom:1px solid rgba(214,169,126,.55);padding:4px 2px}
@media(max-width:700px){.utopia-local-seo{padding-top:26px;padding-bottom:28px}.utopia-local-seo h2{font-size:22px;line-height:1.55}.utopia-local-seo p{font-size:14px;line-height:1.9;text-align:left}.utopia-local-seo-links{display:grid;grid-template-columns:1fr 1fr;gap:10px}.utopia-local-seo-links a{padding:10px 6px;border:1px solid rgba(214,169,126,.35);border-radius:4px}}

/* v6.7 — TOP hub banners: keep DIARY / NEWS / RECRUIT images crisp.
   Text is placed in its own panel instead of darkening/fogging the image. */
.v25-hub .hub-card{
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  background:#0b090c!important;
}
.v25-hub .hub-bg{
  position:relative!important;
  inset:auto!important;
  width:100%!important;
  aspect-ratio:3/2!important;
  overflow:hidden!important;
  background:#0b090c!important;
}
.v25-hub .hub-bg img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
  opacity:1!important;
  filter:none!important;
  -webkit-filter:none!important;
  mix-blend-mode:normal!important;
  transform:none!important;
}
.v25-hub .hub-card::before,
.v25-hub .hub-card::after,
.v25-hub .hub-bg::before,
.v25-hub .hub-bg::after{
  content:none!important;
  display:none!important;
}
.v25-hub .hub-content{
  position:relative!important;
  z-index:2!important;
  min-height:190px!important;
  height:auto!important;
  padding:22px 24px 24px!important;
  justify-content:flex-start!important;
  background:linear-gradient(180deg,#110d11,#090709)!important;
}
.v25-hub .hub-content p{min-height:42px!important}
.v25-hub .hub-content .btn{margin-top:auto!important}
@media(max-width:820px){
  .v25-hub .hub-bg{aspect-ratio:3/2!important}
  .v25-hub .hub-content{min-height:175px!important}
}

/* v6.8 — TOP hub banner images are clickable */
.v25-hub .hub-image-link{display:block!important;text-decoration:none!important;cursor:pointer!important}
.v25-hub .hub-image-link img{transition:transform .25s ease!important}
.v25-hub .hub-image-link:hover img{transform:scale(1.015)!important}


/* v6.9: TOP hub cards are image-only, fully clickable banners */
.v25-hub .hub-card{padding:0!important;overflow:hidden!important;}
.v25-hub .hub-image-link{display:block!important;position:relative!important;inset:auto!important;width:100%!important;height:auto!important;text-decoration:none!important;}
.v25-hub .hub-image-link img{display:block!important;width:100%!important;height:auto!important;aspect-ratio:3/2;object-fit:cover!important;opacity:1!important;filter:none!important;}
.v25-hub .hub-image-link::before,.v25-hub .hub-image-link::after,.v25-hub .hub-card::before,.v25-hub .hub-card::after{display:none!important;content:none!important;}
.v25-hub .hub-fallback{display:flex;aspect-ratio:3/2;align-items:center;justify-content:center;color:#fff;font-size:1.4rem;}


/* v7.0-gallery: therapist photo black fade transition */
.v35-main-photo .utopia-gallery-blackout{
  position:absolute!important;
  inset:10px!important;
  z-index:20!important;
  background:#000!important;
  opacity:0!important;
  pointer-events:none!important;
  transition:opacity .60s ease-in-out!important;
}
.v35-main-photo .utopia-gallery-blackout.is-dark{opacity:1!important;}
@media(max-width:820px){.v35-main-photo .utopia-gallery-blackout{inset:10px!important;}}

/* v7.1-static-mood: safe static mood page test (no query / no JS / no auto page creation) */
.mood-static-page{background:#08070a;color:#f7eef2;min-height:70vh}
.mood-static-hero{text-align:center;padding:72px 20px 48px;background:radial-gradient(circle at 50% 0,rgba(217,121,155,.14),transparent 48%)}
.mood-static-en{margin:0;color:#e2adbc;font-family:Georgia,serif;font-size:12px;letter-spacing:.3em}
.mood-static-hero h1{font-family:"Yu Mincho",Georgia,serif;font-size:clamp(32px,5vw,50px);font-weight:400;margin:10px 0 18px;color:#fff}
.mood-static-lead{margin:0 auto;max-width:720px;color:#d8cbd0;line-height:2}
.mood-static-body{padding:20px 0 80px}.mood-static-inner{max-width:980px}
.mood-static-step{margin:28px 0 46px;text-align:center}.mood-static-step>span{color:#dc93aa;font-family:Georgia,serif;font-size:11px;letter-spacing:.25em}
.mood-static-step h2{font-family:"Yu Mincho",Georgia,serif;font-weight:400;font-size:clamp(24px,3.5vw,34px);margin:7px 0 22px}
.mood-static-options{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.mood-static-options div{padding:18px 12px;border:1px solid rgba(232,194,122,.42);background:linear-gradient(180deg,#171219,#0d0a0e);border-radius:8px;color:#f3e8ec;box-shadow:inset 0 0 0 1px rgba(240,167,189,.05)}
.mood-static-note{text-align:center;color:#9d9196;font-size:12px;margin-top:54px}
@media(max-width:700px){.mood-static-hero{padding-top:54px}.mood-static-lead br{display:none}.mood-static-options{grid-template-columns:repeat(2,1fr)}.mood-static-options div{padding:15px 8px;font-size:13px}}


/* v7.2 mood wizard: one question at a time with full black transition */
.mood-wizard-page{background:#08070a;color:#f7eef2;min-height:70vh}
.mood-wizard-hero{text-align:center;padding:72px 20px 40px;background:radial-gradient(circle at 50% 0,rgba(217,121,155,.14),transparent 48%)}
.mood-wizard-en{margin:0;color:#e2adbc;font-family:Georgia,serif;font-size:12px;letter-spacing:.3em}
.mood-wizard-hero h1{font-family:"Yu Mincho",Georgia,serif;font-size:clamp(32px,5vw,50px);font-weight:400;margin:10px 0 18px;color:#fff}
.mood-wizard-lead{margin:0 auto;max-width:720px;color:#d8cbd0;line-height:2}
.mood-wizard-body{padding:22px 0 90px}.mood-wizard-inner{max-width:900px}
.mood-progress{display:flex;align-items:center;justify-content:center;gap:12px;margin:4px auto 28px;color:#746a6e;font-family:Georgia,serif;letter-spacing:.12em}
.mood-progress i{display:block;width:44px;height:1px;background:#4b4145}.mood-progress span{transition:.25s}.mood-progress span.is-active{color:#f0b4c7}.mood-progress span.is-done{color:#b98998}
.mood-stage{position:relative;overflow:hidden;min-height:390px;border:1px solid rgba(232,194,122,.22);background:linear-gradient(180deg,#110d12,#09070a);border-radius:14px;padding:48px 38px;box-shadow:0 20px 70px rgba(0,0,0,.28)}
.mood-blackout{position:absolute;inset:0;z-index:50;background:#000;opacity:0;pointer-events:none;transition:opacity .65s ease-in-out}.mood-blackout.is-dark{opacity:1}
.mood-panel{text-align:center}.mood-panel[hidden]{display:none!important}.mood-step-label{margin:0;color:#dc93aa;font-family:Georgia,serif;font-size:11px;letter-spacing:.25em}.mood-panel h2{font-family:"Yu Mincho",Georgia,serif;font-weight:400;font-size:clamp(25px,3.6vw,36px);margin:8px 0 28px;color:#fff}
.mood-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:720px;margin:0 auto}.mood-options button{appearance:none;border:1px solid rgba(232,194,122,.44);background:linear-gradient(180deg,#1a141b,#0d0a0e);color:#f5e9ed;border-radius:8px;padding:19px 14px;font:inherit;cursor:pointer;transition:transform .2s,border-color .2s,background .2s}.mood-options button:hover{transform:translateY(-2px);border-color:rgba(240,167,189,.78);background:#1d151b}.mood-options button:active{transform:translateY(0)}
.mood-back,.mood-restart{margin-top:28px;border:0;background:none;color:#b9aeb2;text-decoration:underline;text-underline-offset:4px;cursor:pointer;font:inherit}.mood-restart{color:#e2adbc}.mood-result>p:not(.mood-step-label){color:#d8cbd0}.mood-result-placeholder{max-width:560px;margin:28px auto 0;padding:34px 20px;border:1px solid rgba(232,194,122,.28);border-radius:10px;color:#d6c7cc;background:#0d0a0e}
@media(max-width:700px){.mood-wizard-hero{padding:52px 18px 34px}.mood-wizard-lead br{display:none}.mood-stage{padding:38px 18px;min-height:430px;border-radius:10px}.mood-options{grid-template-columns:1fr;gap:11px}.mood-options button{padding:16px 10px}.mood-progress{margin-bottom:20px}}
/* v7.3 mood recommendation results */
.mood-result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:28px 0 34px;text-align:left}.mood-result-grid .therapist-card{height:100%;position:relative}.mood-match-badge{position:absolute;z-index:4;top:12px;left:12px;padding:6px 10px;border-radius:999px;background:rgba(0,0,0,.78);color:#f5c8d8;border:1px solid rgba(245,200,216,.45);font-size:11px;letter-spacing:.12em}.mood-result-grid .today-badge{top:auto;bottom:12px}@media(max-width:760px){.mood-result-grid{grid-template-columns:1fr 1fr;gap:12px}}@media(max-width:480px){.mood-result-grid{grid-template-columns:1fr}}


/* v7.4.1 - TOP mood concierge CTA */
.mood-concierge-cta {
  max-width: 760px;
  margin: 28px auto 2px;
  padding: 28px 24px 4px;
  text-align: center;
  border-top: 1px solid rgba(232,194,122,.22);
}
.mood-concierge-kicker {
  margin: 0 0 7px;
  color: #fff5f8;
  font-family: "Yu Mincho", Georgia, serif;
  font-size: 18px;
  line-height: 1.65;
  letter-spacing: .03em;
  text-wrap: balance;
}
.mood-concierge-text {
  max-width: 680px;
  margin: 0 auto 20px;
  color: #cfc2c7;
  font-size: 13px;
  line-height: 1.85;
  text-wrap: balance;
}
.mood-concierge-btn {
  display: flex;
  width: min(360px, 100%);
  min-height: 58px;
  margin: 0 auto;
  padding: 10px 28px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 2px;
  border: 1px solid rgba(232,194,122,.62);
  border-radius: 999px;
  background: linear-gradient(180deg,rgba(45,24,32,.95),rgba(17,10,14,.98));
  color: #fff7fa;
  text-decoration: none;
  box-sizing: border-box;
  box-shadow: 0 12px 32px rgba(0,0,0,.3), inset 0 0 24px rgba(240,167,189,.04);
  transition: transform .22s ease,border-color .22s ease,box-shadow .22s ease;
}
.mood-concierge-btn span {
  display: block;
  color: #e6b8c6;
  font-family: Georgia, serif;
  font-size: 9px;
  line-height: 1.3;
  letter-spacing: .28em;
  margin-left: .28em;
}
.mood-concierge-btn:hover {
  transform: translateY(-2px);
  border-color: rgba(240,167,189,.9);
  box-shadow: 0 15px 36px rgba(0,0,0,.38),0 0 22px rgba(217,121,155,.10);
}
@media (max-width:700px) {
  .mood-concierge-cta {
    margin-top: 22px;
    padding: 23px 14px 0;
  }
  .mood-concierge-kicker {
    font-size: clamp(14px,4vw,16px);
    line-height: 1.7;
  }
  .mood-concierge-text {
    max-width: none;
    font-size: clamp(11px,3.15vw,12px);
    line-height: 1.8;
    margin-bottom: 17px;
    word-break: keep-all;
    overflow-wrap: normal;
  }
  .mood-concierge-btn {
    width: min(340px,100%);
    min-height: 56px;
  }
}


/* =========================================================
   v7.4.2 - mobile mood / concierge overflow fix
   ========================================================= */
@media (max-width: 820px) {
  .v25-mood,
  .v25-mood .container,
  .v25-mood .mood-luxe-wrap,
  .v25-mood .mood-copy,
  .v25-mood .mood-panel,
  .v25-mood .mood-result,
  .v25-mood .mood-therapist-grid,
  .v25-mood .mood-concierge-cta {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .v25-mood {
    overflow-x: clip !important;
  }

  .v25-mood .container {
    width: calc(100% - 24px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .v25-mood .mood-panel {
    padding: 14px !important;
    overflow: hidden !important;
  }

  .v25-mood .mood-buttons {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  /* v7.4.3: restore the original mobile therapist-result layout.
     Keep only the outer overflow safeguards; do not alter card columns/sizing. */

  .v25-mood .mood-concierge-cta {
    margin: 24px 0 0 !important;
    padding: 22px 4px 2px !important;
    overflow: hidden !important;
  }

  .v25-mood .mood-concierge-kicker {
    margin: 0 auto 8px !important;
    max-width: 100% !important;
    font-size: clamp(13px, 3.55vw, 15px) !important;
    line-height: 1.7 !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    text-wrap: nowrap !important;
  }

  .v25-mood .mood-concierge-text {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto 18px !important;
    padding: 0 2px !important;
    font-size: clamp(11px, 3.05vw, 12px) !important;
    line-height: 1.9 !important;
    letter-spacing: 0 !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    text-wrap: pretty !important;
  }

  .v25-mood .mood-concierge-btn {
    display: flex !important;
    width: min(100%, 310px) !important;
    max-width: 310px !important;
    min-width: 0 !important;
    margin: 0 auto !important;
    padding: 10px 18px !important;
    box-sizing: border-box !important;
  }
}

@media (max-width: 360px) {
  .v25-mood .mood-concierge-kicker {
    font-size: 12px !important;
  }
  .v25-mood .mood-concierge-text {
    font-size: 10.5px !important;
  }
}

@media (max-width:820px){.v25-mood .mood-concierge-text span{display:block!important;max-width:100%!important}}


/* v7.4.4: mobile local SEO heading + mood result time badge */
@media (max-width: 820px){
  .utopia-local-seo #utopia-local-seo-title{
    word-break:keep-all;
    overflow-wrap:normal;
  }
  .utopia-local-seo-inner > p{
    word-break:normal;
    overflow-wrap:anywhere;
  }
  .v25-mood .mood-therapist-card .today-badge{
    left:9px !important;
    bottom:9px !important;
    padding:5px 8px !important;
    font-size:9px !important;
    letter-spacing:.025em !important;
    white-space:nowrap;
  }
}


/* v7.4.5 — compact TODAY badge on TOP mood result cards only */
@media (max-width:820px){
  .v25-mood .mood-therapist-card .ornate-photo-frame .today-badge,
  .v25-mood .mood-therapist-card .today-badge{
    left:8px!important;
    bottom:8px!important;
    top:auto!important;
    width:auto!important;
    min-width:0!important;
    max-width:calc(100% - 16px)!important;
    height:auto!important;
    padding:3px 7px!important;
    border-radius:999px!important;
    font-size:8.5px!important;
    line-height:1.25!important;
    letter-spacing:.01em!important;
    white-space:nowrap!important;
  }
}

/* v7.4.8 出勤情報：出勤時間をスマートな1行バーに */
.schedule-time-box{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  width:fit-content!important;
  max-width:100%!important;
  min-height:0!important;
  margin:8px auto 0!important;
  padding:4px 10px!important;
  line-height:1.15!important;
  border-radius:3px!important;
}
.schedule-time-box span,
.schedule-time-box strong{
  display:inline!important;
  margin:0!important;
  line-height:1.15!important;
  white-space:nowrap!important;
}
.schedule-time-box span{
  font-size:9px!important;
  letter-spacing:.08em!important;
}
.schedule-time-box strong{
  font-size:11px!important;
  font-weight:600!important;
}
@media(max-width:560px){
  .schedule-time-box{
    display:flex!important;
    width:fit-content!important;
    padding:3px 8px!important;
    gap:6px!important;
    margin-top:6px!important;
  }
  .schedule-time-box span{display:inline!important;font-size:8px!important;}
  .schedule-time-box strong{font-size:10px!important;}
}

/* =========================================================
   v7.4.10 NEWS smartphone overflow fix
   Keep desktop untouched; make auto attendance cards fit 2 columns.
   ========================================================= */
@media (max-width: 600px){
  html, body{max-width:100%;overflow-x:hidden!important}
  .news-archive-page,
  .news-single-page,
  .news-archive-page .container,
  .news-single-page .container,
  .news-archive-list,
  .news-single-container,
  .news-archive-card,
  .news-single-card,
  .news-auto-content,
  .news-single-content,
  .utopia-auto-attendance{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  .news-archive-page .container,
  .news-single-page .container{width:calc(100% - 24px)!important;margin-left:auto!important;margin-right:auto!important}
  .news-archive-card,
  .news-single-card{padding:16px 12px!important;overflow:hidden!important}
  .news-archive-card>h2,
  .news-single-card>h1,
  .utopia-auto-lead{
    max-width:100%!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
  }
  .news-auto-content .utopia-auto-attendance-list,
  .news-single-content .utopia-auto-attendance-list,
  .news-auto-content .utopia-auto-attendance-list.auto-count-2,
  .news-single-content .utopia-auto-attendance-list.auto-count-2,
  .news-auto-content .utopia-auto-attendance-list.auto-count-3,
  .news-single-content .utopia-auto-attendance-list.auto-count-3{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:16px 10px!important;
    justify-content:stretch!important;
    margin:20px 0 0!important;
  }
  .news-auto-content .utopia-auto-attendance-list.auto-count-1,
  .news-single-content .utopia-auto-attendance-list.auto-count-1{
    width:min(100%,230px)!important;
    grid-template-columns:minmax(0,1fr)!important;
    margin:20px auto 0!important;
  }
  .news-auto-content .utopia-auto-attendance-item,
  .news-single-content .utopia-auto-attendance-item{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    justify-self:stretch!important;
    grid-column:auto!important;
  }
  .news-auto-content .utopia-auto-attendance-list.auto-count-3 .utopia-auto-attendance-item:last-child,
  .news-single-content .utopia-auto-attendance-list.auto-count-3 .utopia-auto-attendance-item:last-child,
  .news-auto-content .utopia-auto-attendance-list.auto-count-5 .utopia-auto-attendance-item:last-child,
  .news-single-content .utopia-auto-attendance-list.auto-count-5 .utopia-auto-attendance-item:last-child{
    grid-column:1/-1!important;
    width:min(100%,calc((100% - 10px)/2))!important;
    justify-self:center!important;
  }
  .news-auto-content .utopia-auto-photo.ornate-photo-frame,
  .news-single-content .utopia-auto-photo.ornate-photo-frame{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    padding:5px!important;
  }
  .news-auto-content .utopia-auto-photo.ornate-photo-frame:before,
  .news-single-content .utopia-auto-photo.ornate-photo-frame:before{inset:-6px!important}
  .news-auto-content .utopia-auto-info,
  .news-single-content .utopia-auto-info{min-width:0!important;padding:9px 2px 5px!important}
  .news-auto-content .utopia-auto-info .therapist-display-name,
  .news-single-content .utopia-auto-info .therapist-display-name{font-size:13px!important;white-space:normal!important}
  .news-auto-content .utopia-auto-info .therapist-size-line,
  .news-single-content .utopia-auto-info .therapist-size-line{font-size:9px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .news-auto-content .utopia-auto-time,
  .news-single-content .utopia-auto-time{display:flex!important;flex-wrap:wrap!important;gap:3px 6px!important;padding:5px 1px!important;margin:5px 0 3px!important;font-size:9px!important}
  .news-auto-content .utopia-auto-time span,
  .news-single-content .utopia-auto-time span{display:inline!important;margin:0!important;font-size:9px!important}
  .news-auto-content .utopia-auto-time strong,
  .news-single-content .utopia-auto-time strong{font-size:10px!important;white-space:nowrap!important}
  .news-auto-content .utopia-auto-profile,
  .news-single-content .utopia-auto-profile{font-size:9px!important;white-space:nowrap!important}
  .utopia-auto-schedule-link a{max-width:100%;white-space:normal;text-align:center}
}


/* =========================================================
   v7.4.11 NEWS archive — compact panel cards
   The archive is a scannable list like the weekly schedule;
   full attendance details remain on each news detail page.
   ========================================================= */
.news-archive-page .news-panel-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin-top:30px;
}
.news-archive-page .news-panel-card{
  position:relative;
  min-width:0;
  border:1px solid rgba(240,167,189,.42);
  outline:1px solid rgba(232,194,122,.12);
  outline-offset:-6px;
  background:
    radial-gradient(circle at 100% 0,rgba(240,167,189,.08),transparent 34%),
    linear-gradient(145deg,rgba(24,13,19,.98),rgba(7,6,9,.99));
  box-shadow:inset 0 0 28px rgba(240,167,189,.025),0 12px 30px rgba(0,0,0,.22);
  overflow:hidden;
  transition:border-color .25s ease,transform .25s ease,box-shadow .25s ease;
}
.news-archive-page .news-panel-card::before,
.news-archive-page .news-panel-card::after{
  position:absolute;
  z-index:1;
  color:rgba(240,167,189,.75);
  line-height:1;
  pointer-events:none;
}
.news-archive-page .news-panel-card::before{content:"✦";left:12px;top:10px;font-size:9px}
.news-archive-page .news-panel-card::after{content:"✧";right:12px;bottom:10px;font-size:9px}
.news-archive-page .news-panel-card:hover{
  transform:translateY(-2px);
  border-color:rgba(240,167,189,.72);
  box-shadow:0 14px 34px rgba(0,0,0,.30),0 0 22px rgba(240,167,189,.055);
}
.news-archive-page .news-panel-link{
  position:relative;
  z-index:2;
  display:block;
  min-height:100%;
  padding:22px 24px 20px;
  color:inherit;
  text-decoration:none;
}
.news-archive-page .news-panel-topline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:13px;
}
.news-archive-page .news-panel-meta{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  min-width:0;
  color:#c9b8bf;
  font-family:Georgia,serif;
  font-size:11px;
  letter-spacing:.08em;
}
.news-archive-page .news-panel-badge{
  display:inline-flex;
  align-items:center;
  min-height:23px;
  padding:3px 9px;
  border:1px solid rgba(232,194,122,.42);
  border-radius:3px;
  color:#f1b3c5;
  background:rgba(240,167,189,.07);
  font-family:inherit;
  font-size:10px;
  letter-spacing:.08em;
}
.news-archive-page .news-panel-badge.is-news{color:#e8c27a;background:rgba(232,194,122,.04)}
.news-archive-page .news-panel-arrow{
  flex:0 0 auto;
  color:#e8c27a;
  font-size:18px;
  transition:transform .25s ease;
}
.news-archive-page .news-panel-card:hover .news-panel-arrow{transform:translateX(4px)}
.news-archive-page .news-panel-card h2{
  margin:0;
  color:#fffafc;
  font-family:"Yu Mincho","Hiragino Mincho ProN",Georgia,serif;
  font-weight:500;
  font-size:clamp(18px,2vw,24px);
  line-height:1.55;
  letter-spacing:.025em;
  overflow-wrap:anywhere;
}
.news-archive-page .news-panel-summary{
  margin:13px 0 0;
  color:#d2c5ca;
  font-size:13px;
  line-height:1.9;
  overflow-wrap:anywhere;
}
.news-archive-page .news-panel-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:18px;
  padding-top:13px;
  border-top:1px solid rgba(240,167,189,.15);
  color:#e9bac7;
  font-size:11px;
}
.news-archive-page .news-panel-footer b{
  color:#b89568;
  font-family:Georgia,serif;
  font-size:9px;
  font-weight:400;
  letter-spacing:.18em;
}
.news-archive-page .news-panel-card.is-auto-attendance{
  border-color:rgba(240,167,189,.52);
}
@media(max-width:760px){
  .news-archive-page .news-panel-grid{
    grid-template-columns:1fr;
    gap:12px;
    margin-top:22px;
  }
  .news-archive-page .news-panel-link{
    padding:17px 16px 15px;
  }
  .news-archive-page .news-panel-topline{margin-bottom:9px}
  .news-archive-page .news-panel-meta{font-size:10px;gap:7px}
  .news-archive-page .news-panel-badge{min-height:21px;padding:2px 7px;font-size:9px}
  .news-archive-page .news-panel-card h2{
    font-size:16px;
    line-height:1.55;
  }
  .news-archive-page .news-panel-summary{
    margin-top:8px;
    font-size:11px;
    line-height:1.75;
  }
  .news-archive-page .news-panel-footer{
    margin-top:11px;
    padding-top:10px;
    font-size:10px;
  }
}

/* =========================================================
   v7.4.12 NEWS HUB - event first / today's attendance panel
   ========================================================= */
.news-hub-page .news-title-head p{max-width:760px;margin-inline:auto;text-wrap:balance}
.news-hub-panel{position:relative;isolation:isolate;margin:0 auto 34px;padding:30px;border:1px solid rgba(232,191,120,.62);outline:1px solid rgba(240,167,189,.20);outline-offset:-8px;background:radial-gradient(circle at 0 0,rgba(240,167,189,.08),transparent 28%),radial-gradient(circle at 100% 100%,rgba(232,191,120,.07),transparent 26%),linear-gradient(145deg,rgba(26,15,21,.98),rgba(8,7,10,.99));box-shadow:0 18px 55px rgba(0,0,0,.42),0 0 24px rgba(240,167,189,.04)}
.news-hub-panel:before,.news-hub-panel:after{content:"❦";position:absolute;z-index:2;color:#e8bf78;font:28px/1 Georgia,serif;text-shadow:0 0 8px rgba(240,167,189,.35);pointer-events:none}.news-hub-panel:before{left:9px;top:5px;transform:rotate(-18deg)}.news-hub-panel:after{right:9px;bottom:5px;color:#e7a5b5;transform:rotate(162deg)}
.news-hub-panel-head{text-align:center;padding:2px 0 20px;border-bottom:1px solid rgba(232,191,120,.30)}.news-hub-panel-head span{display:block;color:var(--rose);font-size:11px;letter-spacing:.16em}.news-hub-panel-head h2{font-family:serif;font-weight:500;font-size:clamp(25px,3.4vw,38px);margin:6px 0 0}
.news-event-list{display:grid;gap:18px;padding-top:24px}.news-event-item{border:1px solid rgba(240,167,189,.18);background:rgba(8,7,10,.48)}.news-event-link{display:grid;grid-template-columns:minmax(180px,34%) 1fr;gap:24px;padding:14px;color:inherit}.news-event-thumb{aspect-ratio:4/3;overflow:hidden}.news-event-thumb img{width:100%;height:100%;object-fit:cover}.news-event-copy{align-self:center;min-width:0}.news-event-meta{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:11px}.news-event-meta span{border:1px solid rgba(240,167,189,.42);padding:3px 9px;color:var(--rose)}.news-event-copy h3{font-family:serif;font-size:clamp(20px,2.4vw,29px);margin:10px 0}.news-event-copy p{color:var(--muted);line-height:1.9;margin:0 0 12px}.news-event-copy b{color:var(--rose);font-size:12px;font-weight:500}
.news-today-date-row{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:22px 4px 8px}.news-today-date-row h3{font-family:serif;font-size:clamp(25px,3.2vw,36px);font-weight:500;margin:0}.news-today-date-row p{color:var(--rose);margin:0;font-size:15px}.news-hub-divider{height:26px;display:flex;align-items:center;gap:10px}.news-hub-divider:before,.news-hub-divider:after{content:"";height:1px;background:rgba(232,191,120,.30);flex:1}.news-hub-divider span{color:var(--rose);font-size:11px}.news-today-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:8px}.news-today-notes{text-align:center;color:var(--muted);font-size:12px;margin:24px 0 0}.news-today-notes p{margin:4px 0}.news-hub-empty{text-align:center;color:var(--muted);padding:28px 12px;margin:0}
@media(max-width:900px){.news-today-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){
 .news-hub-page .container{width:min(100% - 24px,1180px)}
 .news-hub-page .news-title-head p{font-size:12px;white-space:nowrap;letter-spacing:-.02em}
 .news-hub-panel{padding:20px 12px 24px;margin-bottom:24px;outline-offset:-6px}
 .news-hub-panel-head{padding-bottom:15px}.news-hub-panel-head h2{font-size:24px}
 .news-event-list{padding-top:16px;gap:12px}.news-event-link{grid-template-columns:1fr;gap:12px;padding:10px}.news-event-thumb{aspect-ratio:16/9}.news-event-copy h3{font-size:19px}.news-event-copy p{font-size:12px;line-height:1.75}
 .news-today-date-row{padding:17px 2px 6px;align-items:center}.news-today-date-row h3{font-size:22px}.news-today-date-row p{font-size:12px;white-space:nowrap}
 .news-today-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.news-today-grid .utopia-auto-attendance-item{padding:5px}.news-today-grid .utopia-auto-info{padding:8px 3px 5px}.news-today-grid .utopia-auto-time{display:flex;justify-content:center;gap:5px;padding:5px 1px}.news-today-grid .utopia-auto-time span{display:inline;margin:0}.news-today-grid .utopia-auto-time strong{font-size:10px}.news-today-grid .utopia-auto-profile{font-size:10px}
 .news-today-notes{font-size:11px;margin-top:18px}
}

/* ============================================================
 * v7.4.13 NEWS: 自動投稿された出勤速報を投稿単位の大型パネルで表示
 * ============================================================ */
.news-auto-posts-section{margin:0 auto}
.news-auto-section-head{margin:8px 0 18px;padding:18px 0;border-top:1px solid rgba(232,191,120,.20);border-bottom:0}
.news-auto-posts-list{display:grid;gap:28px}
.news-attendance-post-panel{margin-bottom:0}
.news-attendance-post-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:2px 4px 8px}
.news-attendance-post-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:11px;letter-spacing:.05em;margin-bottom:8px}
.news-attendance-post-meta span{display:inline-flex;align-items:center;min-height:23px;padding:2px 8px;border:1px solid rgba(240,167,189,.36);color:var(--rose);font-size:10px}
.news-attendance-post-heading h3{font-family:serif;font-size:clamp(23px,3vw,34px);font-weight:500;line-height:1.45;margin:0}
.news-attendance-detail-link{flex:0 0 auto;color:var(--rose);font-size:12px;white-space:nowrap;padding-bottom:4px}
.news-attendance-snapshot .utopia-auto-lead{font-family:serif;font-size:clamp(18px,2vw,24px);text-align:left;margin:2px 0 18px;color:#fff}
.news-attendance-snapshot .utopia-auto-attendance-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.news-attendance-snapshot .utopia-auto-schedule-link{text-align:center;margin-top:22px}

@media(max-width:900px){
  .news-attendance-snapshot .utopia-auto-attendance-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
}
@media(max-width:600px){
  .news-hub-page .news-title-head p{white-space:normal!important;text-wrap:balance;max-width:340px;font-size:12px;line-height:1.7}
  .news-auto-section-head{margin:2px 0 14px;padding:14px 0}
  .news-auto-posts-list{gap:20px}
  .news-attendance-post-panel{padding:18px 10px 20px!important}
  .news-attendance-post-heading{display:block;padding:0 2px 5px}
  .news-attendance-post-meta{font-size:9px;gap:5px;margin-bottom:6px}
  .news-attendance-post-meta span{font-size:8px;min-height:19px;padding:1px 6px}
  .news-attendance-post-heading h3{font-size:20px;line-height:1.55}
  .news-attendance-detail-link{display:inline-flex;margin-top:8px;font-size:10px}
  .news-attendance-snapshot .utopia-auto-lead{font-size:14px;line-height:1.7;margin:0 1px 12px;text-align:left}
  .news-attendance-snapshot .utopia-auto-attendance-list{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;width:100%!important}
  .news-attendance-snapshot .utopia-auto-attendance-item{min-width:0!important;width:100%!important;padding:5px!important}
  .news-attendance-snapshot .utopia-auto-schedule-link{margin-top:15px}
}

/* v7.4.14 NEWS auto-post cards: tighter vertical spacing between therapist rows */
@media(max-width:700px){
  .news-attendance-snapshot .utopia-auto-attendance-list{
    row-gap:10px!important;
    column-gap:8px!important;
  }
  .news-attendance-snapshot .utopia-auto-attendance-item{
    margin-top:0!important;
    margin-bottom:0!important;
  }
}

/* v7.4.15: keep short Japanese news empty-state copy from breaking mid-word on mobile */
@media (max-width: 767px){
  .news-hub-empty{
    font-size:13px;
    line-height:1.8;
    padding-left:6px;
    padding-right:6px;
    word-break:keep-all;
    overflow-wrap:normal;
    white-space:normal;
  }
  .news-hub-empty .no-break{white-space:nowrap;}
}

/* ============================================================
 * v7.4.16: NEWS role separation / MOOD natural wrap / compact schedule hero
 * ============================================================ */
.news-list-section{margin:0 auto;}
.news-list-section-head{margin:4px 0 18px;padding:18px 0;border-top:1px solid rgba(232,191,120,.20);border-bottom:1px solid rgba(232,191,120,.20);}
.news-list-section .news-panel-grid{margin-top:0;}

@media(max-width:600px){
  /* 今日の気分: 手動brを使わず、日本語として自然な位置で折り返す */
  .mood-wizard-hero .mood-wizard-lead{
    width:min(100%,360px);
    margin-left:auto;
    margin-right:auto;
    font-size:13px;
    line-height:1.85;
    word-break:normal;
    overflow-wrap:break-word;
    line-break:strict;
  }

  /* 出勤情報: ファーストビューを圧縮し、最初の出勤パネルを早く見せる */
  .schedule-public-page.section{padding-top:22px;}
  .schedule-public-page .schedule-title-head{margin-bottom:12px;}
  .schedule-public-page .schedule-title-head .eyebrow{margin-bottom:4px;font-size:9px;letter-spacing:.15em;}
  .schedule-public-page .schedule-title-head h1{margin:2px 0 7px;font-size:28px;line-height:1.2;}
  .schedule-public-page .schedule-intro{margin:0 auto;font-size:11px;line-height:1.55;}
  .schedule-public-page .schedule-intro span{display:block;white-space:nowrap;}
  .schedule-public-page .schedule-date-tabs{margin-top:12px;margin-bottom:12px;}
  .schedule-public-page .schedule-day-heading{margin-bottom:10px;}

  /* お知らせ下段はニュースカードとしてコンパクト表示 */
  .news-list-section-head{margin:2px 0 12px;padding:13px 0;}
  .news-list-section-head h2{font-size:24px;}
}


/* =========================================================
   v7.4.17 NEWS — 自動出勤投稿はカード化せず本文を直接展開
   ========================================================= */
.news-information-stream{display:flex;flex-direction:column;gap:34px}
.news-auto-post-expanded{padding:0 0 30px;border-bottom:1px solid rgba(240,167,189,.20)}
.news-auto-post-heading{text-align:center;margin:0 0 10px}
.news-auto-post-heading time{display:block;margin-bottom:5px;color:#bcaeb3;font-size:11px;letter-spacing:.10em}
.news-auto-post-heading h2{margin:0;color:#fffafc;font-family:"Yu Mincho","Hiragino Mincho ProN",Georgia,serif;font-size:clamp(20px,2.4vw,28px);font-weight:500;line-height:1.5}
.news-auto-post-expanded .utopia-auto-attendance{margin-top:0}
.news-plain-item{padding:0 0 24px;border-bottom:1px solid rgba(240,167,189,.16)}
.news-plain-link{display:block;color:inherit;text-decoration:none}
.news-plain-meta{display:flex;align-items:center;gap:10px;color:#bcaeb3;font-size:11px;margin-bottom:8px}
.news-plain-meta span{color:#e8c27a}
.news-plain-item h2{margin:0;color:#fffafc;font-family:"Yu Mincho","Hiragino Mincho ProN",Georgia,serif;font-size:20px;font-weight:500;line-height:1.55}
.news-plain-item p{margin:8px 0 0;color:#d2c5ca;font-size:13px;line-height:1.85}
.news-plain-item b{display:inline-block;margin-top:10px;color:#e8c27a;font-size:11px;font-weight:400}
@media(max-width:760px){
 .news-information-stream{gap:24px}
 .news-auto-post-expanded{padding-bottom:20px}
 .news-auto-post-heading{margin-bottom:5px}
 .news-auto-post-heading h2{font-size:17px;line-height:1.55}
 .news-auto-post-heading time{font-size:9px}
 .news-auto-post-expanded .utopia-auto-lead{font-size:11px;line-height:1.65;margin:4px 0 10px}
 .news-auto-post-expanded .utopia-auto-attendance-list{margin-top:10px!important;gap:8px!important}
 .news-plain-item{padding-bottom:18px}
 .news-plain-item h2{font-size:16px}
 .news-plain-item p{font-size:11px;line-height:1.75}
}


/* =========================================================
   v7.4.18 TOP navigation / SEO background / mobile concierge
   ========================================================= */
/* TOP therapist action buttons: compact and side-by-side. */
.v25-therapists .section-more{margin-top:20px;margin-bottom:0}
.v25-therapists .section-more .cta-row{display:grid;grid-template-columns:repeat(2,minmax(0,220px));justify-content:center;gap:10px}
.v25-therapists .section-more .btn{width:100%;min-width:0;margin:0;padding:11px 12px;text-align:center}
.v25-therapists{padding-bottom:28px!important}
.v25-concept{padding-top:28px!important}

/* Optional background for the local SEO section. */
.utopia-local-seo.has-bg-image{position:relative;background-image:linear-gradient(rgba(5,4,6,.72),rgba(5,4,6,.82)),var(--local-seo-bg);background-size:cover;background-position:center;background-repeat:no-repeat}
.utopia-local-seo.has-bg-image .utopia-local-seo-inner{position:relative;z-index:1}

@media(max-width:820px){
  /* Sticky header stays visible; becomes slimmer after the first swipe. */
  .v25-header{position:sticky!important;top:0!important;z-index:2147479000!important;background:rgba(4,3,5,.94)!important;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:min-height .25s ease,background .25s ease,box-shadow .25s ease}
  .v25-header .header-inner{min-height:58px!important;transition:min-height .25s ease,padding .25s ease}
  .v25-header .brand-image img{height:42px!important;transition:height .25s ease,max-width .25s ease}
  .v25-header.is-scrolled{background:rgba(4,3,5,.975)!important;box-shadow:0 6px 22px rgba(0,0,0,.42)}
  .v25-header.is-scrolled .header-inner{min-height:48px!important}
  .v25-header.is-scrolled .brand-image img{height:34px!important;max-width:170px!important}
  .v25-header.is-scrolled .nav-toggle{transform:scale(.9)}

  .v25-therapists .section-more{margin-top:14px!important}
  .v25-therapists .section-more .cta-row{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;width:100%;margin:0!important}
  .v25-therapists .section-more .btn{font-size:10px!important;line-height:1.25!important;padding:10px 4px!important;white-space:nowrap!important}
  .v25-therapists{padding-bottom:18px!important}
  .v25-concept{padding-top:18px!important}

  #utopia-mobile-reservation-bar{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  #utopia-mobile-reservation-bar>a{font-size:10px!important;padding-left:2px!important;padding-right:2px!important}
  #utopia-mobile-reservation-bar .mobile-concierge{background:#0a080c!important;color:#fff!important}
}

/* =========================================================
   v7.4.19 mobile header follow fix
   Use fixed positioning instead of sticky so the header
   reliably follows the viewport on mobile browsers.
   ========================================================= */
@media(max-width:820px){
  html{scroll-padding-top:58px}
  body{padding-top:58px!important}
  .v25-header{
    position:fixed!important;
    top:0!important;
    left:0!important;
    right:0!important;
    width:100%!important;
    z-index:2147482000!important;
    margin:0!important;
    transform:none!important;
  }
  .v25-header .header-inner{width:min(100% - 24px,1320px)!important;margin:0 auto!important}
  .v25-header.is-scrolled .site-nav{top:52px!important}
  body.admin-bar .v25-header{top:46px!important}
  body.admin-bar{padding-top:104px!important}
}
@media(min-width:783px) and (max-width:820px){
  body.admin-bar .v25-header{top:32px!important}
  body.admin-bar{padding-top:90px!important}
}


/* v7.4.20 pricing / course compatibility */
.system-page.has-system-bg{
  background-image:linear-gradient(rgba(5,4,6,.84),rgba(5,4,6,.92)),var(--utopia-system-bg);
  background-size:cover;background-position:center top;background-repeat:no-repeat;
}
.system-group-head p,.system-course-desc{white-space:normal}
.system-course-price,
.v25-price-grid .price{
  font-family:"Bodoni 72","Didot","Baskerville","Times New Roman","Yu Mincho","Hiragino Mincho ProN",serif!important;
  font-weight:500!important;letter-spacing:.025em;font-variant-numeric:lining-nums tabular-nums;
}
.therapist-course-badges{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;margin:8px 0 5px}
.course-badge{display:inline-flex;align-items:center;justify-content:center;min-height:23px;padding:3px 9px;border-radius:5px;font-family:Georgia,"Yu Mincho",serif;font-size:10px;font-weight:700;letter-spacing:.04em;line-height:1;white-space:nowrap;box-sizing:border-box}
.course-badge-premium{color:#5c2c37;background:linear-gradient(180deg,#f7bdc8,#e89aae);border:1px solid #e8bc72;box-shadow:inset 0 0 0 1px rgba(255,255,255,.28),0 0 8px rgba(225,129,151,.16)}
.course-badge-vip{color:#f0c56f;background:linear-gradient(180deg,#171313,#060606);border:1px solid #c89a40;box-shadow:inset 0 0 0 1px rgba(246,203,115,.12),0 0 8px rgba(197,151,62,.15)}
@media(max-width:820px){
  .therapist-course-badges{gap:4px;margin:6px 0 4px}
  .course-badge{min-height:20px;padding:3px 6px;font-size:8.5px;border-radius:4px;letter-spacing:0}
  .system-page.has-system-bg{background-position:center top}
}

/* =========================================================
   v7.4.21 pricing header spacing
   Keep the SYSTEM intro compact so the first course starts
   immediately below the page heading.
   ========================================================= */
.system-page-head{margin-bottom:14px!important}
.system-page-head>p{margin-bottom:0!important}
.system-head-ornament{margin-top:10px!important}
@media(max-width:820px){
  .system-page-head{margin-bottom:10px!important}
  .system-head-ornament{margin-top:8px!important}
}

/* v7.4.23 — 料金背景 PC/SP 切替 */
@media (max-width: 767px){
  .system-page.has-system-bg{--utopia-system-bg:var(--utopia-system-bg-mobile) !important;}
}


/* =========================================================
   v7.4.26 mobile pricing split plate
   Smartphone: minutes + price only on one side, image on the other.
   Desktop keeps the existing card layout.
   ========================================================= */
.system-mobile-plate-image{display:none}
.system-mobile-price-list{display:contents}

@media(max-width:820px){
  .system-group{margin:0!important}
  .system-group-head{margin-bottom:12px!important}
  .system-course-grid{
    position:relative!important;
    display:block!important;
    width:100%!important;
    overflow:hidden!important;
    gap:0!important;
    padding:8px 10px!important;
    border:1px solid rgba(225,176,112,.7)!important;
    border-radius:8px!important;
    background:linear-gradient(180deg,rgba(15,8,11,.96),rgba(5,4,6,.98))!important;
    box-shadow:inset 0 0 0 1px rgba(255,209,145,.07),0 10px 30px rgba(0,0,0,.18)!important;
  }
  .system-course-grid.has-mobile-side-image{
    display:grid!important;
    grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr)!important;
    padding:0!important;
    min-height:250px!important;
    background:#080609!important;
  }
  .system-mobile-price-list{
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    min-width:0!important;
    padding:8px 9px!important;
    background:linear-gradient(180deg,rgba(18,9,13,.97),rgba(7,5,7,.99))!important;
  }
  .system-mobile-plate-image{
    display:block!important;
    min-width:0!important;
    min-height:100%!important;
    overflow:hidden!important;
    background:#0b080a!important;
  }
  .system-mobile-plate-image img{
    display:block!important;
    width:100%!important;
    height:100%!important;
    min-height:250px!important;
    object-fit:cover!important;
    object-position:center!important;
  }
  .system-course-grid.plate-image-left .system-mobile-plate-image{order:1!important}
  .system-course-grid.plate-image-left .system-mobile-price-list{order:2!important;border-left:1px solid rgba(225,176,112,.28)!important}
  .system-course-grid.plate-image-right .system-mobile-price-list{order:1!important;border-right:1px solid rgba(225,176,112,.28)!important}
  .system-course-grid.plate-image-right .system-mobile-plate-image{order:2!important}

  /* Mobile plate deliberately shows only minutes and price. */
  .system-course-card{
    display:block!important;
    width:100%!important;
    min-height:0!important;
    margin:0!important;
    padding:13px 3px!important;
    border:0!important;
    border-bottom:1px solid rgba(224,185,129,.23)!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    text-align:left!important;
    overflow:visible!important;
  }
  .system-course-card:last-child{border-bottom:0!important}
  .system-course-card.is-recommended{background:rgba(222,142,165,.04)!important;box-shadow:none!important}
  .system-course-name,.system-course-desc,.system-course-label{display:none!important}
  .system-course-main{
    display:flex!important;
    flex-direction:row!important;
    align-items:baseline!important;
    justify-content:space-between!important;
    gap:7px!important;
    width:100%!important;
    min-width:0!important;
  }
  .system-course-minutes{
    flex:0 0 auto!important;
    font-size:clamp(15px,4.4vw,18px)!important;
    color:#fff!important;
    white-space:nowrap!important;
  }
  .system-course-minutes small{font-size:.52em!important}
  .system-course-price{
    flex:0 1 auto!important;
    font-size:clamp(19px,5.7vw,26px)!important;
    color:#f2ca82!important;
    white-space:nowrap!important;
    text-align:right!important;
  }
}

@media(max-width:390px){
  .system-course-grid.has-mobile-side-image{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)!important}
  .system-mobile-price-list{padding:7px 7px!important}
  .system-course-card{padding:12px 2px!important}
  .system-course-minutes{font-size:14px!important}
  .system-course-price{font-size:clamp(18px,5.5vw,23px)!important}
}


/* =========================================================
   v7.4.28 mobile pricing 4:5 background + soft gradient plate
   ========================================================= */
@media(max-width:820px){
  .system-course-grid.has-mobile-bg{
    display:block!important;
    position:relative!important;
    min-height:270px!important;
    padding:0!important;
    overflow:hidden!important;
    isolation:isolate!important;
    background-color:#080609!important;
    background-image:var(--mobile-plate-bg)!important;
    background-size:cover!important;
    background-repeat:no-repeat!important;
  }
  .system-course-grid.has-mobile-bg.plate-image-right{background-position:78% center!important}
  .system-course-grid.has-mobile-bg.plate-image-center{background-position:center center!important}
  .system-course-grid.has-mobile-bg.plate-image-left{background-position:22% center!important}
  .system-course-grid.has-mobile-bg::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:0;
    pointer-events:none;
    background:linear-gradient(90deg,rgba(5,4,7,.99) 0%,rgba(7,5,8,.94) 36%,rgba(8,6,9,.55) 62%,rgba(8,6,9,.14) 100%);
  }
  .system-course-grid.has-mobile-bg.plate-image-left::before{
    background:linear-gradient(270deg,rgba(5,4,7,.99) 0%,rgba(7,5,8,.94) 36%,rgba(8,6,9,.55) 62%,rgba(8,6,9,.14) 100%);
  }
  .system-course-grid.has-mobile-bg.plate-image-center::before{
    background:linear-gradient(90deg,rgba(5,4,7,.96) 0%,rgba(7,5,8,.83) 42%,rgba(8,6,9,.38) 72%,rgba(8,6,9,.20) 100%);
  }
  .system-course-grid.has-mobile-bg .system-mobile-price-list{
    position:relative!important;
    z-index:1!important;
    display:flex!important;
    width:59%!important;
    min-height:270px!important;
    padding:16px 14px!important;
    background:transparent!important;
    justify-content:center!important;
  }
  .system-course-grid.has-mobile-bg.plate-image-left .system-mobile-price-list{
    margin-left:auto!important;
  }
  .system-course-grid.has-mobile-bg.plate-image-center .system-mobile-price-list{
    width:61%!important;
  }
  .system-course-grid.has-mobile-bg .system-course-card{
    background:transparent!important;
  }
  .system-mobile-plate-image{display:none!important}
}


/* =========================================================
   v7.4.29 mobile pricing: 4:5 side image + seamless gradient
   Image is kept on one side instead of being stretched over the full plate.
   ========================================================= */
@media(max-width:820px){
  .system-course-grid.has-mobile-bg{
    background-image:none!important;
    background-color:#080609!important;
    min-height:270px!important;
  }
  .system-course-grid.has-mobile-bg::after{
    content:"";
    position:absolute;
    top:0;
    bottom:0;
    width:52%;
    z-index:0;
    pointer-events:none;
    background-image:var(--mobile-plate-bg);
    background-repeat:no-repeat;
    background-size:cover;
    background-position:center center;
  }
  .system-course-grid.has-mobile-bg.plate-image-right::after{right:0;left:auto}
  .system-course-grid.has-mobile-bg.plate-image-left::after{left:0;right:auto}
  .system-course-grid.has-mobile-bg.plate-image-center::after{right:0;left:auto;width:54%}

  .system-course-grid.has-mobile-bg::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:linear-gradient(90deg,#070508 0%,rgba(7,5,8,.99) 38%,rgba(7,5,8,.86) 50%,rgba(7,5,8,.38) 68%,rgba(7,5,8,.06) 100%)!important;
  }
  .system-course-grid.has-mobile-bg.plate-image-left::before{
    background:linear-gradient(270deg,#070508 0%,rgba(7,5,8,.99) 38%,rgba(7,5,8,.86) 50%,rgba(7,5,8,.38) 68%,rgba(7,5,8,.06) 100%)!important;
  }
  .system-course-grid.has-mobile-bg.plate-image-center::before{
    background:linear-gradient(90deg,#070508 0%,rgba(7,5,8,.99) 38%,rgba(7,5,8,.82) 52%,rgba(7,5,8,.28) 72%,rgba(7,5,8,.05) 100%)!important;
  }
  .system-course-grid.has-mobile-bg .system-mobile-price-list{
    z-index:2!important;
    width:58%!important;
    min-height:270px!important;
  }
  .system-course-grid.has-mobile-bg.plate-image-left .system-mobile-price-list{
    margin-left:auto!important;
    margin-right:0!important;
  }
}

/* =========================================================
   v7.4.30 mobile pricing: remove image/price divider line
   ========================================================= */
@media(max-width:820px){
  .system-course-grid.has-mobile-bg .system-mobile-price-list,
  .system-course-grid.has-mobile-bg.plate-image-left .system-mobile-price-list,
  .system-course-grid.has-mobile-bg.plate-image-right .system-mobile-price-list,
  .system-course-grid.has-mobile-bg.plate-image-center .system-mobile-price-list{
    border-left:0!important;
    border-right:0!important;
  }
}


/* =========================================================
   v7.4.31 mobile recommended label + mood result 4 cards
   ========================================================= */
.system-mobile-recommended{display:none}
@media(max-width:820px){
  .system-course-card.is-recommended{position:relative!important;padding-top:28px!important}
  .system-mobile-recommended{
    display:inline-flex!important;
    position:absolute!important;
    top:5px!important;
    left:3px!important;
    z-index:4!important;
    align-items:center!important;
    justify-content:center!important;
    padding:3px 8px!important;
    border:1px solid rgba(239,196,110,.72)!important;
    border-radius:999px!important;
    background:rgba(8,6,9,.78)!important;
    color:#f2ca82!important;
    font-size:9px!important;
    font-weight:700!important;
    line-height:1.2!important;
    letter-spacing:.08em!important;
    white-space:nowrap!important;
  }
}
.mood-result-title span{display:block}
@media(max-width:760px){
  .mood-result-title{word-break:keep-all!important;overflow-wrap:normal!important;line-height:1.45!important}
  .mood-result-title span{display:block!important;white-space:nowrap!important}
  .mood-result-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:12px!important;
    width:100%!important;
  }
  .mood-result-grid[data-count="1"]{grid-template-columns:minmax(0,240px)!important;justify-content:center!important}
  .mood-result-grid[data-count="3"] .therapist-card:last-child{
    grid-column:1/-1!important;
    width:calc(50% - 6px)!important;
    justify-self:center!important;
  }
}
@media(max-width:390px){
  .mood-result-title{font-size:clamp(20px,6vw,26px)!important}
  .mood-result-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}
  .mood-result-grid[data-count="3"] .therapist-card:last-child{width:calc(50% - 4.5px)!important}
}

/* v7.4.32: auto attendance news noindex + sitemap exclusion */

/* =========================================================
   v7.4.34 - HOW TO rules + smartphone visibility/wrapping fix
   ========================================================= */
.howto-page-v56 .howto-first{align-items:start;}
.howto-page-v56 .howto-first-copy{font-size:14px!important;}
.howto-page-v56 .howto-first-intro p,
.howto-page-v56 .howto-usage-notes li{
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:anywhere!important;
  line-break:strict!important;
}
.howto-page-v56 .howto-usage-notes{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid rgba(185,88,120,.25);
}
.howto-page-v56 .howto-usage-notes h3{
  display:block!important;
  margin:0 0 12px;
  font-family:serif;
  font-size:20px!important;
  line-height:1.5;
  font-weight:500;
  color:#b95878;
}
.howto-page-v56 .howto-usage-notes ul{display:block!important;margin:0;padding:0;list-style:none;}
.howto-page-v56 .howto-usage-notes li{
  display:list-item!important;
  position:relative;
  margin:8px 0;
  padding-left:1.15em;
  line-height:1.8;
  font-size:13px!important;
  text-align:left;
}
.howto-page-v56 .howto-usage-notes li:before{content:'・';position:absolute;left:0;top:0;}
.howto-page-v56 .howto-usage-notes strong{font-size:inherit!important;font-weight:600;}
@media(max-width:767px){
  .howto-page-v56 .howto-first{padding-left:20px;padding-right:20px;}
  .howto-page-v56 .howto-first-copy{font-size:13px!important;}
  .howto-page-v56 .howto-first-intro p{
    display:block!important;
    margin:7px 0!important;
    font-size:13px!important;
    letter-spacing:0!important;
    line-height:1.85!important;
    text-align:left;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:anywhere!important;
  }
  .howto-page-v56 .howto-usage-notes{margin-top:20px;padding-top:17px;}
  .howto-page-v56 .howto-usage-notes h3{font-size:18px!important;text-align:center;}
  .howto-page-v56 .howto-usage-notes li{font-size:12.5px!important;line-height:1.75;margin:10px 0;padding-left:1em;}
}
@media(max-width:360px){
  .howto-page-v56 .howto-first{padding-left:16px;padding-right:16px;}
  .howto-page-v56 .howto-first-intro p{font-size:12.5px!important;}
  .howto-page-v56 .howto-usage-notes li{font-size:12px!important;}
}

/* v7.4.35 - requested mobile line breaks for usage notes */
.howto-mobile-br{display:none;}
@media(max-width:767px){
  .howto-page-v56 .howto-usage-notes .howto-mobile-br{display:block!important;}
  .howto-page-v56 .howto-usage-notes .howto-continuation{display:inline-block;padding-left:1em;}
}

/* v7.4.36 - prevent final punctuation from overflowing on narrow smartphones */
@media(max-width:767px){
  .howto-page-v56 .howto-usage-notes li{
    font-size:11.5px!important;
    letter-spacing:-0.02em!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }
  .howto-page-v56 .howto-usage-notes .howto-continuation{
    padding-left:.65em!important;
  }
}
@media(max-width:360px){
  .howto-page-v56 .howto-usage-notes li{font-size:11px!important;}
}
\n\n/* =========================================================\n   v7.4.38 - smartphone therapist-name hard fit\n   ========================================================= */\n@media(max-width:820px){\n  .mood-therapist-grid,\n  .mood-result-grid,\n  .schedule-therapist-grid{\n    min-width:0!important;\n  }\n  .mood-therapist-card,\n  .mood-result-grid .therapist-card,\n  .schedule-therapist-card,\n  .mood-therapist-card .card-body,\n  .mood-result-grid .therapist-card .card-body,\n  .schedule-therapist-card .card-body,\n  .schedule-name-row{\n    min-width:0!important;\n    max-width:100%!important;\n    box-sizing:border-box!important;\n  }\n  .v25-mood .mood-therapist-card .therapist-display-name,\n  .mood-result-grid .therapist-display-name,\n  .schedule-name-row .therapist-display-name{\n    display:block!important;\n    width:100%!important;\n    max-width:100%!important;\n    min-width:0!important;\n    margin-left:auto!important;\n    margin-right:auto!important;\n    padding:0!important;\n    box-sizing:border-box!important;\n    font-size:clamp(10px,3.15vw,13px)!important;\n    line-height:1.35!important;\n    letter-spacing:-.02em!important;\n    white-space:nowrap!important;\n    overflow:hidden!important;\n    text-overflow:ellipsis!important;\n    text-align:center!important;\n  }\n}\n@media(max-width:360px){\n  .v25-mood .mood-therapist-card .therapist-display-name,\n  .mood-result-grid .therapist-display-name,\n  .schedule-name-row .therapist-display-name{font-size:10px!important;}\n}\n

/* =========================================================
   v7.4.39 - compact therapist name / age / cup on smartphone
   ========================================================= */
@media(max-width:820px){
  .v25-mood .mood-therapist-card .therapist-display-name,
  .mood-result-grid .therapist-display-name,
  .schedule-name-row .therapist-display-name{
    font-size:clamp(11px,3.35vw,14px)!important;
    letter-spacing:-.055em!important;
    font-kerning:normal!important;
    font-feature-settings:"palt" 1!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:clip!important;
  }
}
@media(max-width:360px){
  .v25-mood .mood-therapist-card .therapist-display-name,
  .mood-result-grid .therapist-display-name,
  .schedule-name-row .therapist-display-name{
    font-size:10.5px!important;
    letter-spacing:-.07em!important;
  }
}

/* =========================================================
   v7.4.40 - compact mood result overlays on smartphone
   ========================================================= */
@media(max-width:820px){
  /* BEST MATCH / GOOD MATCH / RECOMMEND: keep the label elegant but much smaller */
  .mood-result-grid .mood-match-badge{
    top:7px!important;
    left:7px!important;
    padding:4px 7px!important;
    min-height:0!important;
    width:auto!important;
    max-width:calc(100% - 14px)!important;
    border-radius:999px!important;
    font-size:clamp(7px,2.15vw,9px)!important;
    line-height:1.15!important;
    letter-spacing:.09em!important;
    white-space:nowrap!important;
  }

  /* TODAY schedule: one slim line at the bottom of the photo */
  .mood-result-grid .therapist-card .ornate-photo-frame .today-badge,
  .mood-result-grid .therapist-card .today-badge{
    left:7px!important;
    right:auto!important;
    top:auto!important;
    bottom:7px!important;
    width:auto!important;
    max-width:calc(100% - 14px)!important;
    min-width:0!important;
    height:auto!important;
    padding:4px 7px!important;
    margin:0!important;
    border-radius:999px!important;
    font-size:clamp(7px,2.05vw,9px)!important;
    line-height:1.15!important;
    letter-spacing:.04em!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:clip!important;
    box-sizing:border-box!important;
  }
}
@media(max-width:360px){
  .mood-result-grid .mood-match-badge{font-size:7px!important;padding:3px 6px!important;}
  .mood-result-grid .therapist-card .ornate-photo-frame .today-badge,
  .mood-result-grid .therapist-card .today-badge{font-size:7px!important;padding:3px 6px!important;}
}
