@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&family=Noto+Sans+JP:wght@300;400;500;700&family=DM+Mono:wght@400;500&display=swap');

:root {
  --black:      #000;
  --black-rich: #0d0d0d;
  --black-card: #111;
  --black-soft: #181818;
  --gray-dark:  #222;
  --gray-mid:   #2e2e2e;
  --gray-light: #555;
  --gray-muted: #888;
  --white:      #fff;
  --white-soft: #f4f1ec;
  --white-dim:  #c6c0b8;
  --gold:       #2a9b7a;
  --gold-light: #4db896;
  --gold-bright:#7dd4b8;
  --gold-dim:   rgba(42,155,122,.1);
  --gold-border:rgba(42,155,122,.25);
  --gold-glow:  rgba(42,155,122,.05);

  /* Coral (sub accent) */
  --yellow:        #e8c53a;
  --yellow-light:  #f0d456;
  --yellow-dim:    rgba(232,197,58,.12);
  --yellow-border: rgba(232,197,58,.3);

  --bg:         #0d0d0d;
  --surface:    #111;
  --border:     #242424;
  --text:       #f4f1ec;
  --text-sub:   #c6c0b8;
  --text-muted: #888;
  --font-serif: 'Cormorant Garamond','Hiragino Mincho ProN',serif;
  --font-sans:  'Noto Sans JP','Hiragino Sans',sans-serif;
  --font-mono:  'DM Mono',monospace;
  --max:        1080px;
  --r:          2px;
  --r-md:       4px;
  --t:          .18s ease;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased}
body{overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none;transition:color var(--t)}
button{cursor:pointer;font-family:inherit;border:none;background:none}
ul,ol{list-style:none}

/* ── Buttons ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-sans);font-size:12px;font-weight:500;letter-spacing:.14em;padding:.75rem 2rem;cursor:pointer;white-space:nowrap;transition:all var(--t)}
.btn-gold{background:#2a9b7a;color:#fff;border:none;box-shadow:none}
.btn-gold:hover{background:#23856a;color:#fff;transform:translateY(-1px)}
.btn-outline{background:transparent;color:var(--gold);border:1px solid var(--gold-border)}
.btn-outline:hover{background:var(--gold-dim);border-color:var(--gold)}
.btn-ghost{background:transparent;color:var(--text-sub);border:1px solid var(--border)}
.btn-ghost:hover{border-color:rgba(255,255,255,.3);color:var(--white-soft)}
.btn-lg{font-size:13px;padding:.9rem 2.5rem;letter-spacing:.16em}
.btn-full{width:100%}

/* ── Top bar ── */
.g-topbar{background:#000;border-bottom:1px solid var(--border);padding:.4rem 1.5rem;text-align:center}
.g-topbar__text{font-family:var(--font-mono);font-size:10px;letter-spacing:.2em;color:#e8c53a;text-transform:uppercase}

/* ── Header ── */
.g-header{position:sticky;top:0;z-index:200;background:rgba(0,0,0,.97);backdrop-filter:blur(16px);border-bottom:1px solid var(--border)}
.g-header__main{max-width:var(--max);margin:0 auto;padding:0 1.5rem;height:64px;display:flex;align-items:center;justify-content:space-between}
.g-header__logo{font-family:var(--font-sans);font-size:28px;font-weight:400;letter-spacing:.18em;color:var(--gold);display:flex;flex-direction:column;line-height:1}
.g-header__logo-sub{font-family:var(--font-mono);font-size:7px;letter-spacing:.3em;color:var(--gray-muted);margin-top:4px;text-transform:uppercase}
.g-header__right{display:flex;align-items:center;gap:1rem}
.g-header__nav{display:flex;gap:1.75rem;align-items:center}
.g-header__nav a{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;color:var(--text-muted);text-transform:uppercase;position:relative;padding-bottom:2px}
.g-header__nav a::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--gold);transform:scaleX(0);transition:transform var(--t)}
.g-header__nav a:hover{color:var(--white-soft)}
.g-header__nav a:hover::after{transform:scaleX(1)}

/* ── Navbar（topspa風 2段メニュー） ── */
.g-navbar{background:#000;border-bottom:1px solid var(--border);overflow-x:auto;-webkit-overflow-scrolling:touch}
.g-navbar::-webkit-scrollbar{height:2px}
.g-navbar::-webkit-scrollbar-track{background:var(--border)}
.g-navbar::-webkit-scrollbar-thumb{background:var(--gold)}
.g-navbar__inner{max-width:var(--max);margin:0 auto;display:flex;align-items:stretch}
.g-navbar__item{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.625rem 1.25rem;border-right:1px solid var(--border);min-width:90px;transition:all var(--t);white-space:nowrap;position:relative}
.g-navbar__item::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--gold);transform:scaleX(0);transition:transform var(--t)}
.g-navbar__item:hover{background:var(--gold-glow)}
.g-navbar__item:hover::after{transform:scaleX(1)}
.g-navbar__item--active{background:var(--gold-dim)}
.g-navbar__item--active::after{transform:scaleX(1)}
.g-navbar__item-ja{font-size:11px;letter-spacing:.06em;color:var(--text-sub)}
.g-navbar__item-en{font-family:var(--font-mono);font-size:8px;letter-spacing:.2em;color:var(--gold);margin-top:3px;text-transform:uppercase}
.g-navbar__item:hover .g-navbar__item-ja{color:var(--white-soft)}

/* ── Hero ── */
.g-hero{position:relative;min-height:88vh;display:flex;align-items:center;background:#000;overflow:hidden}
.g-hero__bg{position:absolute;inset:0;background:radial-gradient(ellipse at 25% 60%,rgba(42,155,122,.05) 0%,transparent 55%)}
.g-hero__grid{position:absolute;inset:0;background-image:linear-gradient(rgba(42,155,122,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(42,155,122,.025) 1px,transparent 1px);background-size:72px 72px}
.g-hero__content{position:relative;z-index:1;max-width:var(--max);margin:0 auto;padding:5rem 1.5rem;display:grid;grid-template-columns:1fr 400px;gap:5rem;align-items:center}
.g-hero__eyebrow{font-family:var(--font-mono);font-size:10px;letter-spacing:.25em;color:var(--gold);text-transform:uppercase;margin-bottom:1.5rem;display:flex;align-items:center;gap:.75rem}
.g-hero__eyebrow::before{content:'';display:block;width:32px;height:1px;background:var(--gold)}
.g-hero__title{font-family:var(--font-sans);font-size:clamp(42px,5vw,72px);font-weight:300;line-height:1.1;letter-spacing:.03em;color:var(--white-soft);margin-bottom:1.5rem}
.g-hero__title em{font-style:italic;color:var(--gold)}
.g-hero__desc{font-size:14px;color:var(--text-sub);line-height:2;margin-bottom:2.5rem;max-width:420px}
.g-hero__btns{display:flex;gap:1rem;flex-wrap:wrap}
.g-hero__stats{display:flex;gap:2.5rem;margin-top:3.5rem;padding-top:2rem;border-top:1px solid var(--border)}
.g-hero__stat-num{font-family:var(--font-sans);font-size:38px;font-weight:400;color:var(--gold);line-height:1}
.g-hero__stat-label{font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;color:var(--text-muted);margin-top:5px;text-transform:uppercase}
.g-hero__visual{position:relative}
.g-hero__frame{border:1px solid var(--gold-border);padding:.5rem;position:relative}
.g-hero__frame::before{content:'';position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border:1px solid var(--border)}
.g-hero__img{aspect-ratio:3/4;background:linear-gradient(160deg,var(--black-soft) 0%,var(--black-rich) 100%);display:flex;align-items:center;justify-content:center;font-size:80px;opacity:.06}

/* ── Section ── */
.g-section{padding:5rem 0}
.g-section--dark{background:#000}
.g-section--surface{background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.g-inner{max-width:var(--max);margin:0 auto;padding:0 1.5rem}
.g-section__head{text-align:center;margin-bottom:3rem}
.g-section__head--left{text-align:left}
.g-section__eyebrow{font-family:var(--font-mono);font-size:9px;letter-spacing:.25em;color:var(--gold);text-transform:uppercase;margin-bottom:.75rem}
.g-section__title{font-family:var(--font-sans);font-size:clamp(28px,3vw,42px);font-weight:300;letter-spacing:.06em;color:var(--white-soft)}
.g-section__desc{font-size:14px;color:var(--text-sub);margin-top:.75rem}
.g-divider{width:60px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:.875rem auto}
.g-divider--left{margin-left:0}

/* ── News bar ── */
.g-news{background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.g-news__inner{max-width:var(--max);margin:0 auto;padding:1.25rem 1.5rem;display:flex;gap:2rem;align-items:flex-start}
.g-news__label{font-family:var(--font-mono);font-size:9px;letter-spacing:.2em;color:var(--gold);text-transform:uppercase;flex-shrink:0;padding-top:.125rem}
.g-news__list{flex:1}
.g-news__item{display:flex;gap:1.25rem;align-items:baseline;padding:.3rem 0;border-bottom:1px solid rgba(255,255,255,.04)}
.g-news__item:last-child{border-bottom:none}
.g-news__date{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);flex-shrink:0}
.g-news__link{font-size:13px;color:var(--text-sub)}
.g-news__link:hover{color:var(--gold)}

/* ── Prefecture map ── */
.g-map__regions{display:flex;flex-direction:column;gap:1.25rem}
.g-map__region-name{font-family:var(--font-mono);font-size:9px;letter-spacing:.22em;color:var(--gold);text-transform:uppercase;margin-bottom:.5rem;display:flex;align-items:center;gap:.75rem}
.g-map__region-name::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,var(--gold-border),transparent)}
.g-map__prefs{display:flex;flex-wrap:wrap;gap:.375rem}
.g-map__pref{background:var(--black-card);border:1px solid var(--border);padding:.375rem .875rem;font-size:12px;color:var(--text-muted);transition:all var(--t);position:relative;overflow:hidden}
.g-map__pref::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,var(--gold-glow),transparent);opacity:0;transition:opacity var(--t)}
.g-map__pref:hover{border-color:var(--gold-border);color:var(--white-soft)}
.g-map__pref:hover::before{opacity:1}
.g-map__pref.has-therapist{border-color:rgba(42,155,122,.2);color:var(--white-dim)}
.g-map__pref.has-therapist:hover{border-color:var(--gold);color:var(--gold)}
.g-map__count{display:inline-flex;align-items:center;justify-content:center;background:var(--gold);color:#000;font-size:8px;font-weight:700;font-family:var(--font-mono);min-width:15px;height:15px;border-radius:8px;padding:0 4px;margin-left:4px;line-height:1}

/* ── Therapist Grid（topspa風） ── */
.g-therapist-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);border:1px solid var(--border)}
.g-therapist-card{background:var(--black-card);display:block;position:relative;transition:background var(--t)}
.g-therapist-card:hover{background:var(--black-soft)}
.g-therapist-card__photo{position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--black-soft)}
.g-therapist-card__photo img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .4s ease}
.g-therapist-card:hover .g-therapist-card__photo img{transform:scale(1.04)}
.g-therapist-card__no-photo{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:60px;opacity:.05}
.g-therapist-card__overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.65) 0%,transparent 50%)}
.g-badge{position:absolute;top:.625rem;left:.625rem;background:var(--gold);color:#000;font-size:8px;font-weight:700;font-family:var(--font-mono);letter-spacing:.1em;padding:3px 7px}
.g-therapist-card__info{padding:.875rem 1rem;border-top:1px solid var(--border)}
.g-therapist-card__name{font-family:var(--font-sans);font-size:18px;font-weight:400;letter-spacing:.06em;color:var(--white-soft);margin-bottom:.25rem}
.g-therapist-card__meta{font-size:11px;color:var(--text-muted);line-height:1.6}
.g-therapist-card__rating{font-size:11px;color:var(--text-muted);display:flex;align-items:center;gap:3px;margin-top:.2rem}
.g-therapist-card__rating .star{color:var(--gold);font-size:12px}
.g-therapist-card__new{position:absolute;top:.625rem;right:.625rem;background:#000;border:1px solid var(--gold-border);color:var(--gold);font-size:8px;font-family:var(--font-mono);letter-spacing:.1em;padding:2px 6px}

/* ── CTA ── */
.g-cta{background:#000;padding:7rem 0;text-align:center;position:relative;overflow:hidden;border-top:1px solid var(--border)}
.g-cta::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:700px;height:700px;background:radial-gradient(circle,rgba(42,155,122,.04) 0%,transparent 65%);pointer-events:none}
.g-cta__inner{position:relative;z-index:1;max-width:560px;margin:0 auto;padding:0 1.5rem}
.g-cta__eyebrow{font-family:var(--font-mono);font-size:9px;letter-spacing:.25em;color:var(--gold);text-transform:uppercase;margin-bottom:1.25rem}
.g-cta__title{font-family:var(--font-sans);font-size:clamp(32px,4vw,52px);font-weight:300;letter-spacing:.06em;color:var(--white-soft);margin-bottom:1rem}
.g-cta__fee{font-family:var(--font-sans);font-size:48px;font-weight:300;color:var(--gold);line-height:1;display:block;margin-bottom:.25rem}
.g-cta__fee-note{font-size:11px;color:var(--text-muted);letter-spacing:.1em;margin-bottom:.75rem}
.g-cta__desc{font-size:14px;color:var(--text-sub);line-height:1.9;margin-bottom:2.5rem}
.g-cta__btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}

/* ── Footer ── */
.g-footer{background:#000;border-top:1px solid var(--border)}
.g-footer__top{max-width:var(--max);margin:0 auto;padding:3.5rem 1.5rem;display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:3rem;border-bottom:1px solid var(--border)}
.g-footer__logo{font-family:var(--font-sans);font-size:30px;font-weight:400;letter-spacing:.15em;color:var(--gold);margin-bottom:.375rem}
.g-footer__tagline{font-size:11px;letter-spacing:.1em;color:var(--text-muted);margin-bottom:1.5rem}
.g-footer__col-title{font-family:var(--font-mono);font-size:8px;letter-spacing:.22em;color:var(--gold);text-transform:uppercase;margin-bottom:.875rem}
.g-footer__nav{display:flex;flex-direction:column;gap:.5rem}
.g-footer__nav a{font-size:12px;color:var(--text-muted)}
.g-footer__nav a:hover{color:var(--white-soft)}
.g-footer__bottom{max-width:var(--max);margin:0 auto;padding:1.25rem 1.5rem;display:flex;align-items:center;justify-content:space-between}
.g-footer__copy{font-family:var(--font-mono);font-size:10px;color:var(--text-muted);letter-spacing:.1em}
.g-footer__legal{display:flex;gap:1.5rem}
.g-footer__legal a{font-size:11px;color:var(--text-muted)}
.g-footer__legal a:hover{color:var(--white-soft)}

/* ── Forms ── */
.g-form-wrap{min-height:calc(100vh - 64px);display:flex;align-items:center;justify-content:center;padding:3rem 1.5rem;background:#000}
.g-form{width:100%;max-width:440px}
.g-form__header{text-align:center;margin-bottom:2.5rem}
.g-form__eyebrow{font-family:var(--font-mono);font-size:9px;letter-spacing:.22em;color:var(--gold);text-transform:uppercase;margin-bottom:.75rem}
.g-form__title{font-family:var(--font-sans);font-size:36px;font-weight:300;letter-spacing:.06em;color:var(--white-soft)}
.g-form__group{margin-bottom:1.25rem}
.g-form__label{display:block;font-family:var(--font-mono);font-size:9px;letter-spacing:.14em;color:var(--text-muted);text-transform:uppercase;margin-bottom:.5rem}
.g-form__input{width:100%;background:var(--black-rich);border:1px solid var(--border);border-bottom-color:var(--gray-mid);padding:.75rem 1rem;font-size:14px;color:var(--text);font-family:var(--font-sans);transition:border-color var(--t),background var(--t)}
.g-form__input:focus{outline:none;border-color:var(--gold-border);background:var(--black-soft)}
.g-form__input::placeholder{color:var(--gray-light)}
.g-form__hint{font-size:11px;color:var(--text-muted);margin-top:.375rem}
.g-form__actions{margin-top:2rem}
.g-form__link{text-align:center;margin-top:1.25rem;font-size:13px;color:var(--text-muted)}
.g-form__link a{color:var(--gold)}
.g-alert{padding:.75rem 1rem;font-size:13px;margin-bottom:1rem;border-left:2px solid}
.g-alert--error{background:rgba(200,50,50,.1);border-color:#e05c5c;color:#e08080}
.g-alert--success{background:rgba(100,180,120,.1);border-color:#6db887;color:#8dd4a0}
.g-alert--warning{background:var(--gold-dim);border-color:var(--gold);color:var(--gold)}

/* ── Status badges ── */
.s-badge{display:inline-flex;align-items:center;font-size:9px;font-family:var(--font-mono);letter-spacing:.1em;padding:2px 8px;border:1px solid}
.s-badge--pending  {background:rgba(100,150,220,.1);color:#79c0ff;border-color:rgba(100,150,220,.2)}
.s-badge--approved {background:rgba(80,180,100,.1);color:#56d364;border-color:rgba(80,180,100,.2)}
.s-badge--confirmed{background:var(--gold-dim);color:var(--gold);border-color:var(--gold-border)}
.s-badge--paid     {background:rgba(80,180,100,.1);color:#56d364;border-color:rgba(80,180,100,.2)}
.s-badge--cancelled{background:rgba(200,80,80,.1);color:#e88080;border-color:rgba(200,80,80,.2)}
.s-badge--failed   {background:rgba(80,80,80,.15);color:#888;border-color:rgba(80,80,80,.3)}
.s-badge--suspended{background:var(--gold-dim);color:var(--gold);border-color:var(--gold-border)}
.s-badge--withdrawn{background:rgba(80,80,80,.15);color:#888;border-color:rgba(80,80,80,.3)}
.s-badge--banned   {background:rgba(200,80,80,.1);color:#e88080;border-color:rgba(200,80,80,.2)}
.s-badge--rejected {background:rgba(200,80,80,.1);color:#e88080;border-color:rgba(200,80,80,.2)}

/* ── Page layout ── */
.g-page{max-width:var(--max);margin:0 auto;padding:3rem 1.5rem}
.g-page__eyebrow{font-family:var(--font-mono);font-size:9px;letter-spacing:.2em;color:var(--gold);text-transform:uppercase;margin-bottom:.625rem}
.g-page__title{font-family:var(--font-sans);font-size:36px;font-weight:300;letter-spacing:.05em;color:var(--white-soft);margin-bottom:2rem}
.g-card{background:var(--black-card);border:1px solid var(--border);padding:1.5rem}
.g-card--gold{border-color:var(--gold-border);background:var(--gold-dim)}
.g-table{width:100%;border-collapse:collapse;font-size:13px}
.g-table th{font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;color:var(--gold);text-transform:uppercase;text-align:left;padding:.625rem 1rem;border-bottom:1px solid var(--gold-border);background:#000}
.g-table td{padding:.75rem 1rem;border-bottom:1px solid var(--border);color:var(--text-sub);vertical-align:top}
.g-table tr:last-child td{border-bottom:none}
.g-table tr:hover td{background:var(--gold-glow)}

/* ── Sticky bar ── */
.g-sticky{position:fixed;bottom:0;left:0;right:0;background:rgba(0,0,0,.97);backdrop-filter:blur(16px);border-top:1px solid var(--gold-border);padding:.875rem 1.5rem;display:flex;align-items:center;justify-content:space-between;z-index:100;box-shadow:0 -4px 24px rgba(0,0,0,.7)}
.g-sticky__name{font-family:var(--font-sans);font-size:22px;font-weight:400;letter-spacing:.06em;color:var(--white-soft)}
.g-sticky__price{font-size:12px;color:var(--text-muted);margin-top:2px}
.g-sticky__btns{display:flex;gap:.75rem}


/* ── Light sections (白背景) ── */
.g-section--light {
  background: #f0f7f5;
  border-top: 1px solid #e8e8e8;
  border-bottom: 1px solid #e8e8e8;
}
.g-section--light .g-section__eyebrow { color: #1a7a5e; }
.g-section--light .g-section__title   { color: #1a2e28; }
.g-section--light .g-section__desc    { color: #4a6860; }
.g-section--light .g-divider {
  background: linear-gradient(90deg, transparent, #2a9b7a, transparent);
}

/* News light */
.g-news--light {
  background: #f0f7f5;
  border-top: 1px solid #e8e8e8;
  border-bottom: 1px solid #e8e8e8;
}
.g-news--light .g-news__label { color: #1a7a5e; }
.g-news--light .g-news__date  { color: #999; }
.g-news--light .g-news__link  { color: #2a3e38; }
.g-news--light .g-news__link:hover { color: #2a9b7a; }
.g-news--light .g-news__item  { border-bottom-color: #f0f0f0; }

/* Map light */
.g-section--light .g-map__region-name { color: #1a7a5e; }
.g-section--light .g-map__region-name::after {
  background: linear-gradient(90deg, rgba(42,155,122,.3), transparent);
}
.g-section--light .g-map__pref {
  background: #e8f4f0;
  border-color: #c8e0d8;
  color: #555;
}
.g-section--light .g-map__pref:hover {
  border-color: #2a9b7a;
  color: #111;
  background: #dff0ea;
}
.g-section--light .g-map__pref::before {
  background: linear-gradient(135deg, rgba(42,155,122,.06), transparent);
}
.g-section--light .g-map__pref.has-therapist {
  border-color: rgba(42,155,122,.4);
  color: #1a3028;
}
.g-section--light .g-map__pref.has-therapist:hover {
  border-color: #2a9b7a;
  color: #2a9b7a;
}

/* CTA light */
.g-cta--light {
  background: #f0f7f5;
  border-top: 1px solid #d4ebe5;
}
.g-cta--light::before {
  background: radial-gradient(circle, rgba(42,155,122,.06) 0%, transparent 65%);
}
.g-cta--light .g-cta__eyebrow { color: #1a7a5e; }
.g-cta--light .g-cta__title   { color: #1a2e28; }
.g-cta--light .g-cta__fee     { color: #2a9b7a; }
.g-cta--light .g-cta__fee-note{ color: #888; }
.g-cta--light .g-cta__desc    { color: #4a6860; }
.g-cta--light .g-divider {
  background: linear-gradient(90deg, transparent, #2a9b7a, transparent);
}


/* ── Coral accent ── */
.btn-yellow {
  background: linear-gradient(135deg, #e8c53a 0%, #f0d456 50%, #e8c53a 100%);
  color: #000;
  border: none;
  box-shadow: 0 2px 12px rgba(232,197,58,.35);
  font-weight: 600;
}
.btn-yellow:hover {
  background: linear-gradient(135deg, #f0d456 0%, #f8e070 50%, #f0d456 100%);
  box-shadow: 0 4px 20px rgba(232,197,58,.55);
  transform: translateY(-1px);
  color: #000;
}

/* NEW バッジ → コーラル */
.g-therapist-card__new {
  position: absolute; top: .625rem; right: .625rem;
  background: var(--yellow);
  color: #fff;
  font-size: 8px; font-family: var(--font-mono);
  letter-spacing: .1em; padding: 2px 7px;
  border: none;
}

/* ランキング上位マーク */
.g-rank-1 { color: var(--yellow); }
.g-rank-2 { color: #c0c0c0; }
.g-rank-3 { color: #cd7f32; }

/* お気に入りボタン */
.g-favorite-btn {
  color: var(--yellow-border);
  font-size: 18px;
  transition: color var(--t), transform var(--t);
  background: none; border: none; cursor: pointer;
}
.g-favorite-btn:hover,
.g-favorite-btn.active { color: var(--yellow); transform: scale(1.2); }

/* 黄色バッジ */
.g-badge-yellow {
  background: var(--yellow);
  color: #fff;
  font-size: 8px; font-weight: 700;
  font-family: var(--font-mono); letter-spacing: .1em;
  padding: 3px 7px;
}

/* CTAのサブボタン（コーラル） */
.g-cta .btn-yellow { min-width: 200px; }

/* ライトセクションでのコーラルアクセント */
.g-section--light .g-badge-yellow,
.g-news--light .g-badge-yellow { opacity: .9; }

/* ランキングカード上位ボーダー */
.g-therapist-card--rank-1 { border-top: 2px solid var(--yellow); }

/* ── Responsive ── */
@media(max-width:900px){
  .g-hero__content{grid-template-columns:1fr}
  .g-hero__visual{display:none}
  .g-therapist-grid{grid-template-columns:repeat(3,1fr)}
  .g-footer__top{grid-template-columns:1fr 1fr}
  .g-header__nav{display:none}
}
@media(max-width:640px){
  .g-therapist-grid{grid-template-columns:repeat(2,1fr)}
  .g-footer__top{grid-template-columns:1fr}
  .g-footer__bottom{flex-direction:column;gap:.75rem;text-align:center}
  .g-sticky{flex-direction:column;gap:.75rem}
  .g-sticky__btns{width:100%}
  .g-sticky__btns .btn{flex:1}
}
