/* ===================================================================
   Secondary pages — bright navy theme
   Keeps the homepage rhythm: ivory and sky surfaces, navy anchors,
   and restrained warm-gold accents.
   =================================================================== */
:root {
  --c-bg:        #08172C;
  --c-navy-d:    #0A1B34;
  --c-navy:      #10294B;
  --c-navy-m:    #173B67;
  --c-navy-l:    #2D5FC4;
  --c-gold-d:    #9C7134;
  --c-gold:      #D5AA52;
  --c-gold-b:    #E8C56F;
  --c-gold-p:    #F8E4AC;
  --c-white:     #FFF9F1;
  --c-grey-l:    #D8E8F1;
  --c-grey:      #A9C3D3;
  --c-grey-d:    #718EA5;
  --c-sky:       #CDEAF4;
  --c-ivory:     #FFF9F1;
  --page-ink:    #10294B;
  --page-copy:   #3D5870;
  --page-muted:  #607A8E;
  --page-line:   rgba(16,41,75,.14);
  --page-card:   #FFFFFF;
  --page-sky:    #EAF4F8;
  --max:         1180px;
}

body {
  background: var(--c-ivory);
  color: var(--page-ink);
}

:focus-visible { outline: 2px solid var(--c-gold); outline-offset: 4px; }
.label { color: var(--c-gold-d); font-weight: 500; }
.ttl-jp { color: var(--page-ink); text-wrap: balance; }
.ruled { width: 82px; background: linear-gradient(90deg, var(--c-gold-b), var(--c-gold), transparent); }
.sh { margin-bottom: clamp(46px,6vw,72px); }
.sh .desc { color: var(--page-copy); }

/* Shared navigation stays dark to frame every page consistently. */
#nav,
#nav.stuck {
  background: rgba(8,23,44,.94);
  border-bottom: 1px solid rgba(205,234,244,.16);
  box-shadow: 0 12px 36px rgba(1,9,21,.14);
  backdrop-filter: blur(20px);
}
#nav { padding-top: 18px; padding-bottom: 18px; }
.nav-logo { color: var(--c-ivory); text-shadow: 0 0 24px rgba(227,182,92,.2); }
.nav-links a { color: rgba(255,249,241,.78); }
.nav-links a:hover,
.nav-ico:hover { color: var(--c-gold-b); }
.nav-ico { color: rgba(255,249,241,.76); }
.nav-btn { border-radius: 999px; background: linear-gradient(120deg, var(--c-gold-d), var(--c-gold-b)); color: var(--c-bg); }
.nav-btn-line { background: rgba(205,234,244,.1); border-color: rgba(205,234,244,.5); color: var(--c-ivory); }
.hamburger span { background: var(--c-ivory); }
#mob-menu { background: rgba(8,23,44,.985); }

.btn-g {
  border-radius: 999px;
  background: linear-gradient(120deg, var(--c-gold-d), var(--c-gold-b));
  color: var(--c-bg);
  box-shadow: 0 10px 30px rgba(156,113,52,.16);
}
.btn-o {
  border-radius: 999px;
  border-color: rgba(16,41,75,.38);
  background: transparent;
  color: var(--page-ink);
}
.btn-o:hover { background: rgba(45,95,196,.07); border-color: var(--c-navy-l); }

/* Page headers */
.back-section,
.legal-hero,
.news-hero,
.rv-hero,
.rank-hero {
  color: var(--page-ink);
  background:
    radial-gradient(circle at 12% 24%, rgba(45,95,196,.14), transparent 32%),
    linear-gradient(135deg, #E6F3F7, var(--c-ivory));
}
.back-section::before,
.legal-hero::before,
.news-hero::before,
.rv-hero::before,
.rank-hero::before {
  background: linear-gradient(90deg, var(--c-gold-d), var(--c-gold-b), var(--c-navy-l));
}
.rv-hero::after,
.rank-hero::after { color: rgba(16,41,75,.045); }
.back-link,
.rv-back,
.rank-back { color: #8A642B; }
.rv-hero-copy,
.rank-hero-copy { color: var(--page-copy); }

/* Therapist profiles */
#th-profile {
  color: var(--page-ink);
  background: linear-gradient(180deg, var(--c-ivory), #F6FBFC);
}
.gallery-main,
.gallery-thumb {
  background-color: var(--page-sky);
  border-color: var(--page-line);
}
.gallery-main { box-shadow: 0 22px 56px rgba(16,41,75,.12); }
.gallery-thumb.active,
.gallery-thumb.active::after { border-color: var(--c-gold); }
.th-name-lg { color: var(--page-ink); }
.th-age,
.th-height,
.th-quote-lg,
.instagram-dm-note { color: var(--page-copy); }
.stag { color: #7E5B2B; border-color: rgba(156,113,52,.3); background: rgba(255,255,255,.55); }
.voice-player {
  border-color: var(--page-line);
  background: linear-gradient(120deg, rgba(205,234,244,.64), rgba(255,255,255,.86));
  box-shadow: 0 14px 38px rgba(16,41,75,.07);
}
.voice-title { color: var(--page-ink); }
.voice-length,
.voice-time { color: var(--page-muted); }
.voice-range { color-scheme: light; }

#schedule {
  color: var(--page-ink);
  background: linear-gradient(135deg, #DFF1F7, var(--page-sky));
}
.sched-legend,
.sched-note { color: var(--page-copy); }
.sched-day {
  color: var(--page-copy);
  background: rgba(255,255,255,.72);
  border-color: var(--page-line);
}
button.sched-day:hover { background: #FFFFFF; border-color: var(--c-gold); }
.sched-wd { color: var(--page-muted); }
.sched-date { color: var(--page-ink); }
.sched-modal-overlay { background: rgba(4,15,30,.62); }
.sched-modal-panel { background: var(--c-ivory); color: var(--page-ink); border-color: rgba(156,113,52,.28); }
.sched-m-name,
.sched-slot .t { color: var(--page-ink); }
.sched-m-date,
.sched-m-hours { color: var(--page-copy); }
.sched-slot { border-color: var(--page-line); background: rgba(255,255,255,.72); }

#intro,
#qa,
#recommend { background: var(--c-ivory); color: var(--page-ink); }
.intro-text { color: var(--page-copy); }
.qa-item,
.recommend-panel {
  background: var(--page-card);
  border-color: var(--page-line);
  box-shadow: 0 16px 42px rgba(16,41,75,.06);
}
.qa-q,
.recommend-list h4 { color: #7A5A2A; }
.qa-a,
.recommend-list p { color: var(--page-copy); }

#appeal {
  color: var(--page-ink);
  background: var(--page-sky);
}
.appeal-item {
  background: rgba(255,255,255,.76);
  border-color: var(--page-line);
  box-shadow: 0 16px 42px rgba(16,41,75,.06);
}
.appeal-ico { border-color: rgba(156,113,52,.32); background: rgba(213,170,82,.08); }
.appeal-item h3 { color: #7A5A2A; }
.appeal-item p { color: var(--page-copy); }

#reviews {
  color: var(--page-ink);
  background: linear-gradient(135deg, #E6F3F7, var(--page-sky));
}
.review-card {
  background: rgba(255,255,255,.82);
  border-color: var(--page-line);
  box-shadow: 0 16px 42px rgba(16,41,75,.06);
}
.review-card::before { color: rgba(156,113,52,.09); }
.review-to { color: #8A642B; }
.review-to span,
.review-text,
.review-reply .reply-text { color: var(--page-copy); }
.review-meta { color: var(--page-muted); border-color: var(--page-line); }
.review-meta strong,
.review-reply .reply-from { color: #8A642B; }
.review-retry { color: var(--page-ink); border-color: rgba(16,41,75,.28); }

#book,
#recruit-book {
  color: var(--c-ivory);
  background:
    radial-gradient(circle at 75% 25%, rgba(213,170,82,.28), transparent 28%),
    linear-gradient(120deg, #2D5FC4, #173B67);
}
#book .ttl-jp,
#recruit-book .ttl-jp,
#book h2,
#recruit-book h2 { color: var(--c-ivory); }
#book p,
#recruit-book p { color: rgba(255,249,241,.84); }
#book .btn-o,
#recruit-book .btn-o { color: var(--c-ivory); border-color: rgba(255,249,241,.48); background: rgba(255,255,255,.06); }

/* Mission */
#mission-body {
  color: var(--page-ink);
  background:
    radial-gradient(circle at 16% 10%, rgba(45,95,196,.12), transparent 30%),
    var(--c-ivory);
}
.vision-block,
.mission-cta { border-color: var(--page-line); }
.mission-section-head { color: #8A642B; }
.mission-section-head span,
.value-no { color: var(--page-muted); }
.vision-text { color: var(--page-ink); }
.value-lead,
.value-item p,
.mission-cta p { color: var(--page-copy); }
.value-item {
  background: var(--page-card);
  border-color: var(--page-line);
  box-shadow: 0 16px 42px rgba(16,41,75,.055);
}
.value-item h3 { color: #7A5A2A; }

/* News */
#news-section { color: var(--page-ink); background: var(--c-ivory); }
.news-item {
  margin-bottom: 10px;
  background: rgba(255,255,255,.72);
  border: 1px solid var(--page-line);
  border-radius: 4px;
}
.news-item:first-child { border-top-color: var(--page-line); }
.news-item:hover,
.news-item:target { background: var(--page-card); }
.news-title,
.news-title a { color: var(--page-ink); }
.news-text { color: var(--page-copy); }
.news-date { color: var(--page-muted); }

/* Reviews list and form */
#reviews .rv-chip {
  color: var(--page-copy);
  background: rgba(255,255,255,.66);
  border-color: var(--page-line);
}
#reviews .rv-chip:hover { color: var(--page-ink); border-color: var(--c-navy-l); }
#reviews .rv-chip[aria-pressed='true'] { color: var(--c-ivory); background: var(--c-navy-m); }
.rv-count,
.rv-status { color: var(--page-muted); }
#rv-section { color: var(--page-ink); background: var(--c-ivory); }
.rv-form {
  padding: clamp(28px,5vw,52px);
  background: var(--page-card);
  border: 1px solid var(--page-line);
  box-shadow: 0 20px 54px rgba(16,41,75,.08);
}
.rv-intro { color: var(--page-copy); }
.rv-label { color: var(--page-ink); }
.rv-label .req { color: #8A642B; border-color: rgba(156,113,52,.34); }
.rv-input,
.rv-select,
.rv-textarea {
  color: var(--page-ink);
  background-color: #F8FBFC;
  border-color: rgba(16,41,75,.2);
}
.rv-input:focus,
.rv-select:focus,
.rv-textarea:focus { background-color: #FFFFFF; border-color: var(--c-navy-l); }
.rv-select option { background: #FFFFFF; color: var(--page-ink); }

/* Ranking */
#ranking { color: var(--page-ink); background: var(--c-ivory); }
.rank-period { color: #8A642B; }
.rank-tabs { border-color: var(--page-line); background: #FFFFFF; }
.rank-tab { color: var(--page-copy); }
.rank-tab + .rank-tab { border-color: var(--page-line); }
.rank-tab[aria-selected='true'] { color: var(--c-ivory); background: var(--c-navy-m); }
.rank-status { color: var(--page-muted); }
.rank-card {
  color: var(--page-ink);
  background: linear-gradient(180deg, #FFFFFF, var(--page-sky));
  border-color: var(--page-line);
  box-shadow: 0 18px 48px rgba(16,41,75,.08);
}
.rank-card[data-rank='1'] { border-color: rgba(156,113,52,.42); box-shadow: 0 22px 58px rgba(16,41,75,.12); }
.rank-card-number { color: rgba(156,113,52,.1); }
.rank-card-medal,
.rank-points,
.rank-points small { color: #8A642B; }
.rank-avatar { background: var(--page-sky); }
.rank-profile,
.rank-row-link { color: var(--page-copy); }
.rank-list { border-color: var(--page-line); }
.rank-row { border-color: var(--page-line); }
.rank-row:hover { background: rgba(205,234,244,.3); }
.rank-row-points { color: #8A642B; }

/* Legal and policy pages */
#legal-body { color: var(--page-ink); background: var(--c-ivory); }
.legal-lead,
.legal-sec p,
.legal-sec li,
.legal-note,
.legal-table th,
.legal-table td { color: var(--page-copy); }
.legal-sec h2 { color: var(--page-ink); border-color: var(--page-line); }
.legal-sec h3 { color: var(--page-ink); }
.legal-sec h2 .legal-no,
.legal-updated { color: #8A642B; }
.legal-sec a { color: #765326; }
.legal-sec p strong[style] { color: #765326 !important; }
.legal-note,
.legal-table th { background: var(--page-sky); border-color: var(--page-line); }
.legal-table th,
.legal-table td { border-color: var(--page-line); }

/* Recruitment */
#recruit-hero {
  background: linear-gradient(135deg, #08172C 0%, #0D2C55 56%, #173B67 100%);
}
#recruit-hero .btn-o {
  color: var(--c-ivory);
  border-color: rgba(255,249,241,.72);
  background: rgba(255,255,255,.1);
  box-shadow: 0 10px 30px rgba(1,9,21,.18);
}
#recruit-hero .btn-o:hover {
  color: #FFFFFF;
  border-color: var(--c-gold-b);
  background: rgba(255,255,255,.17);
}
#reasons,
#conditions,
#recruit-faq {
  color: var(--page-ink);
  background: var(--page-sky);
}
#work,
#recruit-flow { color: var(--page-ink); background: var(--c-ivory); }
.rc,
.work-col,
.cond-item {
  background: rgba(255,255,255,.8);
  border-color: var(--page-line);
  box-shadow: 0 16px 42px rgba(16,41,75,.055);
}
.rc h3,
.work-head,
.can .work-head,
.cond-item dt,
.rstep h3,
.faq-qt { color: var(--page-ink); }
.rc p,
.work-list li,
.cnt .work-list li,
.cond-item dd,
.rstep p,
.faq-ai { color: var(--page-copy); }
.faq-item { border-color: var(--page-line); }
#recruit-form {
  color: var(--page-ink);
  background: linear-gradient(135deg, #DFF1F7, var(--page-sky));
}
.form-wrap {
  background: rgba(255,255,255,.88);
  border-color: var(--page-line);
  box-shadow: 0 24px 60px rgba(16,41,75,.09);
}
.form-intro,
.field label .jp,
.hint,
.agree { color: var(--page-copy); }
.field label { color: var(--page-ink); }
#recruit-form .field input[type="text"],
#recruit-form .field input[type="tel"],
#recruit-form .field input[type="email"],
#recruit-form .field input[type="number"],
#recruit-form .field input[type="file"],
#recruit-form .field select,
#recruit-form .field textarea,
#recruit-form .check-row label {
  color: var(--page-ink);
  background-color: #F8FBFC;
  border-color: rgba(16,41,75,.2);
}
#recruit-form .field input:focus,
#recruit-form .field select:focus,
#recruit-form .field textarea:focus { background-color: #FFFFFF; border-color: var(--c-navy-l); }
#recruit-form .field input[type="file"]::file-selector-button {
  color: var(--page-ink); background: var(--page-sky); border-color: rgba(16,41,75,.25);
}
#recruit-form .photo-upload-grid {
  background: rgba(255,255,255,.55); border-color: var(--page-line);
}
#recruit-form .photo-upload-note { color: var(--page-copy); }
#recruit-form .check-row label:hover { color: var(--page-ink); border-color: var(--c-navy-l); }
#recruit-form .check-row label:has(input:checked) { color: var(--page-ink); background: rgba(205,234,244,.5); border-color: var(--c-navy-l); }
#recruit-form .check-row input:checked + span { color: var(--page-ink); }
#recruit-form .radio-row label { color: var(--page-copy); }

footer { background: #061326; border-top-color: rgba(205,234,244,.12); }
.ft-logo { color: var(--c-ivory); }
.ft-logo-sub,
.ft-g a { color: var(--c-grey); }

@media (max-width: 600px) {
  .rv-form { padding: 28px 20px; }
  .news-item { padding-left: 16px; padding-right: 16px; }
}

/* Therapist: time together */
#time-together { background: var(--c-ivory); color: var(--page-ink); }
.time-together-copy p { color: var(--page-copy); }

/* Alternate therapist sections, including an optional My Event section. */
body[data-th] > section:not(#book) {
  background: var(--c-ivory);
  border-top: 1px solid var(--page-line);
}
body[data-th] > section:not(#book):nth-of-type(even) {
  background: var(--page-sky);
}
body[data-th] > #th-profile { border-top: 0; }
