/* ---- theme/base.css ---- */
/* Codex: Canvas Soft. Existing content, photography and interaction layers retained. */
body.association-soft {
  --soft-paper:#fffdf9; --soft-cream:#fff8ec; --soft-ink:#302d29; --soft-muted:#70665d;
  --soft-white:#fff; --soft-yellow:#fff5cf; --soft-orange:#fff0e3; --soft-blue:#eaf7fb; --soft-green:#eef7e8;
  --soft-coral:#bb4d3d; --soft-rose:#b64752; --soft-edge:#ecdcc8;
  --soft-radius:34px; --soft-radius-small:20px; --soft-shadow:0 18px 50px rgba(126,93,53,.055);
  --soft-font:"Zen Maru Gothic","Noto Sans JP",sans-serif; --soft-ease:cubic-bezier(.22,1,.36,1);
  --font-base:var(--soft-font); --sans:var(--soft-font);
  font-family:var(--soft-font); color:var(--soft-ink); background-color:var(--soft-paper); line-height:1.9;
}
body.association-soft :where(button,input,select,textarea) { font-family:var(--soft-font); }
body.association-soft :where(a,button,input,textarea,select,summary):focus-visible { outline:3px solid #a36c3f; outline-offset:4px; }
body.association-soft :where(h1,h2,h3,h4) { font-weight:700; }
body.association-soft.soft-core :where(h1,h2,h3,h4),
body.association-soft.soft-home :where(h2,h3,h4) { font-family:var(--soft-font); }

/* Shared association navigation — keep positioning and menu-open behavior. */
body.association-soft :is(.header) { background:rgba(255,253,249,.97); border-bottom-color:var(--soft-edge); box-shadow:0 5px 22px rgba(126,93,53,.035); }
body.association-soft .header .nav a { color:var(--soft-ink); font-family:var(--soft-font); font-weight:700; }
body.association-soft .header .nav a:hover { color:var(--soft-coral); }
body.association-soft .header .nav a.site-nav-contact { color:#fff; background:linear-gradient(105deg,var(--soft-coral),var(--soft-rose)); border-radius:999px; }
body.association-soft .header .nav a[aria-current="page"] { text-decoration-color:#e6b480; text-underline-offset:8px; }
body.association-soft .hamburger span { background-color:var(--soft-ink); }
body.association-soft .site-skip-link { color:var(--soft-ink); background:var(--soft-cream); border-radius:14px; }
body.association-soft .site-return { color:var(--soft-muted); background:var(--soft-cream); }
body.association-soft .footer { color:var(--soft-muted); background:var(--soft-paper); border-top:1px solid var(--soft-edge); }
body.association-soft .footer :is(.footer-menu a,.footer-links a,.footer-company,.footer-copy,.footer-address,.footer-related-title,.footer-related-item) { color:var(--soft-muted); font-family:var(--soft-font); }
body.association-soft .footer a:hover { color:var(--soft-coral); }
body.association-soft .footer .sns-circle { color:var(--soft-ink); border-color:var(--soft-edge); background:#fff; }

/* Ordinary association CTAs only; brand buttons, status buttons and studio tools excluded. */
body.association-soft :is(.rh-button,.canvas-cta),
body.association-soft.soft-core :is(.btn-primary,.info-button:not(.info-button--outline),.cta-button) {
  color:#fff; background:linear-gradient(105deg,var(--soft-coral),var(--soft-rose));
  border-color:transparent; border-radius:999px; box-shadow:0 12px 30px rgba(164,75,60,.13);
  font-family:var(--soft-font); font-weight:700;
  transition:box-shadow .25s var(--soft-ease),transform .25s var(--soft-ease),background .25s var(--soft-ease);
}
body.association-soft :is(.rh-button,.canvas-cta):hover,
body.association-soft.soft-core :is(.btn-primary,.info-button:not(.info-button--outline),.cta-button):hover { color:#fff; box-shadow:0 16px 35px rgba(164,75,60,.19); }
body.association-soft.soft-core :is(.btn-primary,.info-button,.cta-button) {
  display:inline-flex; align-items:center; justify-content:center; max-width:100%; min-height:50px;
  padding:14px 24px; box-sizing:border-box; font-size:14px; line-height:1.6; text-align:center; text-decoration:none;
}
body.association-soft.soft-core .info-button--outline { background:#fff; box-shadow:none; border-radius:999px; }
body.association-soft .rh-button>span { background:rgba(255,255,255,.16); }
/* Old home light-button text used !important. The new coral surface needs white. */
body.association-soft.soft-home .rh-button-light { color:#fff!important; }

/* Home: generous, warm paper surfaces and the same four gentle color families. */
body.association-soft.soft-home {
  --rh-ink:var(--soft-ink); --rh-muted:var(--soft-muted); --rh-paper:var(--soft-paper);
  --rh-sage:var(--soft-green); --rh-accent:var(--soft-coral);
  background:radial-gradient(ellipse at 0 20%,rgba(255,238,202,.3),transparent 32%),var(--soft-paper);
}
body.association-soft.soft-home .rh-main { color:var(--soft-ink); font-family:var(--soft-font); }
body.association-soft.soft-home .rh-eyebrow { color:#94765d; font-weight:700; }
body.association-soft.soft-home .rh-intro-details>p,
body.association-soft.soft-home .rh-section-head>p { color:var(--soft-muted); line-height:1.95; }
body.association-soft.soft-home .rh-text-link { color:#765441; }
body.association-soft.soft-home .rh-stories { background:linear-gradient(180deg,#fffaf1,var(--soft-paper)); }
body.association-soft.soft-home .rh-story { overflow:hidden; border:1px solid #f0e5d7; border-radius:var(--soft-radius); background:#fff; box-shadow:var(--soft-shadow); }
body.association-soft.soft-home .rh-story-photo { margin:10px 10px 0; border-radius:25px; }
body.association-soft.soft-home .rh-story-body { padding:22px 24px 28px; }
body.association-soft.soft-home .rh-story-body p,
body.association-soft.soft-home .rh-pillar p { color:var(--soft-muted); }
body.association-soft.soft-home .rh-story-body .rh-category { color:#9a5846; }
body.association-soft.soft-home .rh-link-label { color:#80563c; border-color:var(--soft-edge); }
body.association-soft.soft-home .rh-pillar { padding:26px 22px; border:1px solid #efe3d2; border-radius:28px; background:#fff; box-shadow:var(--soft-shadow); }
body.association-soft.soft-home .rh-pillar.rh-yellow { background:linear-gradient(120deg,var(--soft-yellow),#fffdf8 72%); }
body.association-soft.soft-home .rh-pillar.rh-orange { background:linear-gradient(120deg,var(--soft-orange),#fffdf8 72%); }
body.association-soft.soft-home .rh-pillar.rh-blue { background:linear-gradient(120deg,var(--soft-blue),#fffdf8 72%); }
body.association-soft.soft-home .rh-pillar.rh-green { background:linear-gradient(120deg,var(--soft-green),#fffdf8 72%); }
body.association-soft.soft-home .rh-number { color:#88765f; }
body.association-soft.soft-home .rh-join { background:radial-gradient(ellipse at 0 0,rgba(255,238,202,.6),transparent 48%),radial-gradient(ellipse at 100% 100%,rgba(213,247,240,.5),transparent 45%),#fffaf1; }
body.association-soft.soft-home .rh-audience { background:rgba(255,255,255,.94); border:1px solid #f0e5d7; border-radius:var(--soft-radius); box-shadow:var(--soft-shadow); }
body.association-soft.soft-home .rh-audience-index { color:#917157; }
body.association-soft.soft-home .rh-audience>p { color:var(--soft-muted); }
body.association-soft.soft-home .rh-audience li { border-color:var(--soft-edge); }
body.association-soft.soft-home .rh-audience li a { color:var(--soft-ink); }
body.association-soft.soft-home .rh-opportunity { background:#fff; border:1px solid var(--soft-edge); border-radius:var(--soft-radius); outline:0; box-shadow:var(--soft-shadow); }
body.association-soft.soft-home .rh-status { background:var(--soft-orange); color:#8c5141; border-radius:999px; }
body.association-soft.soft-home .rh-about-ikigai { background:linear-gradient(120deg,var(--soft-blue),#fffaf0 75%); }
body.association-soft.soft-home .rh-definition { color:var(--soft-ink); }
body.association-soft.soft-home .rh-about-ikigai .rh-text-link { color:#765441; }
body.association-soft.soft-home .rh-publication { border-color:var(--soft-edge); }
body.association-soft.soft-home .rh-contact { color:var(--soft-ink); background:radial-gradient(ellipse at 0 0,rgba(255,224,192,.4),transparent 55%),#fff5e9; border-block:1px solid var(--soft-edge); }
body.association-soft.soft-home .rh-contact .rh-eyebrow { color:#94765d; }
body.association-soft.soft-home .rh-contact :is(h2,p) { color:var(--soft-ink); }
body.association-soft.soft-home .rh-contact .rh-text-link { color:#765441; }
body.association-soft.soft-home .rh-photo-caption { font-family:var(--soft-font); }

/* Reference retains its approved art, crayon SVG labels and intentional serif title. */
body.association-soft.soft-reference { background:#fffdf9; }
body.association-soft.soft-reference .canvas-page { --canvas-ink:var(--soft-ink); }

@media(max-width:768px) {
  body.association-soft .header .nav { background:var(--soft-paper); border-color:var(--soft-edge); }
  body.association-soft.soft-home :is(.rh-story,.rh-audience,.rh-opportunity) { border-radius:24px; }
  body.association-soft.soft-home .rh-story-photo { border-radius:18px; }
  body.association-soft.soft-home .rh-story>a { grid-template-columns:1fr; gap:0; }
  body.association-soft.soft-home .rh-story-photo img { aspect-ratio:1.6; }
  body.association-soft.soft-home .rh-pillar-list { gap:12px; }
  body.association-soft.soft-home .rh-pillar { padding:24px 18px; border-radius:24px; }
  body.association-soft.soft-home .rh-story-body { padding:20px 20px 24px; }
}
@media(prefers-reduced-motion:reduce) {
  body.association-soft :is(.rh-button,.canvas-cta,.btn-primary,.info-button,.cta-button) { transition:none; }
}


/* ---- theme/core.css ---- */
/* Canvas Soft: the nine standard pages. Content, geometry and integrations stay owned by the original pages. */
body.association-soft.soft-core {
  --soft-core-link: #805a42;
  --info-ink: var(--soft-ink);
  --info-muted: var(--soft-muted);
  --info-line: var(--soft-edge);
  --info-accent: var(--soft-core-link);
  --info-paper: var(--soft-cream);
}

/* Warm opening bands and secondary section surfaces. */
body.association-soft.soft-core :is(.page-hero, .partner-hero) {
  background:
    radial-gradient(ellipse at 6% 12%, rgba(255, 235, 196, .48), transparent 52%),
    radial-gradient(ellipse at 94% 88%, rgba(226, 244, 238, .42), transparent 45%),
    var(--soft-paper);
  color: var(--soft-ink);
}
body.association-soft.soft-core :is(.contact-page, .whitepaper-page, .partner-lp-wrapper, .flow-section) {
  background: var(--soft-paper);
}
body.association-soft.soft-core :is(.about-section-alt, .mvv-section, .info-section--soft, .pr-guide, .activities-section) {
  background: var(--soft-cream);
}
body.association-soft.soft-core :is(.ikigai-section, .social-value-section, .vision-section, .schedule-section) {
  background: var(--soft-paper);
}
body.association-soft.soft-core :is(.seven-days-section, .recruit-section) {
  background:
    radial-gradient(ellipse at 8% 20%, rgba(255, 236, 212, .46), transparent 48%),
    linear-gradient(180deg, var(--soft-paper), var(--soft-cream));
}

/* Explicit text targets remove the legacy cyan and heavy 900-weight treatment without touching icon fonts. */
body.association-soft.soft-core :is(
  .partner-hero h1,
  .program-category-header h2,
  .program-content h3,
  .mvv-jp,
  .flow-title,
  .ikigai-section-title,
  .seven-days-title,
  .social-value-card h3,
  .point-card h4,
  .vision-item-title,
  .activity-content-section h3,
  .hiroba-card h3,
  .partner-plan-name,
  .recruit-catch,
  .info-form-help h2,
  .info-form-help h3,
  .privacy-content h2,
  .law-section h1
) {
  color: var(--soft-ink);
  font-family: var(--soft-font);
  font-weight: 700;
}
body.association-soft.soft-core :is(
  .program-category-nav-item,
  .program-category-number,
  .program-category-kicker,
  .program-category-tag,
  .mvv-en,
  .price-tag,
  .price-sub,
  .social-value-badge
) {
  font-family: var(--soft-font);
  font-weight: 700;
}
body.association-soft.soft-core :is(
  .section-subtitle,
  .program-category-description,
  .program-content p,
  .workshop-content,
  .social-value-lead,
  .social-value-card p,
  .vision-item-desc,
  .schedule-desc,
  .info-copy,
  .info-definition dd,
  .privacy-date,
  .whitepaper-info-block,
  .whitepaper-ribbon-caption
) {
  color: var(--soft-muted);
}
body.association-soft.soft-core .social-value-card p { font-weight: 500; }
body.association-soft.soft-core :is(.social-value-card span, .program-category-number, .program-category-kicker) {
  color: var(--soft-muted);
}
body.association-soft.soft-core :is(.mvv-en, .info-kicker, .program-way-eyebrow, .pr-eyebrow) {
  color: var(--soft-core-link);
}
body.association-soft.soft-core .whitepaper-main-title {
  background: transparent;
  color: var(--soft-ink);
  text-shadow: none;
}

/* Main panels: only named surfaces receive the shared radius and paper shadow. */
body.association-soft.soft-core :is(
  .program-item,
  .program-wayfinder,
  .workshop-overview,
  .seven-days-content,
  .form-container,
  .form-wrapper,
  .whitepaper-hero-box,
  .privacy-content,
  .hiroba-card,
  .ikigai-section > .container
) {
  background: var(--soft-white);
  border-color: var(--soft-edge);
  border-radius: var(--soft-radius);
  box-shadow: var(--soft-shadow);
}
body.association-soft.soft-core :is(
  .mvv-block,
  .info-pillar-list a,
  .info-purpose-list li,
  .info-form-help,
  .program-facts,
  .workshop-note,
  .flow-step,
  .declaration-item,
  .social-value-card,
  .point-card,
  .pr-confirm,
  .pr-payment,
  .privacy-intro,
  .privacy-contact,
  .law-note,
  .whitepaper-attention
) {
  border-color: var(--soft-edge);
  border-radius: var(--soft-radius-small);
  box-shadow: var(--soft-shadow);
}
body.association-soft.soft-core :is(.mvv-block, .flow-step, .declaration-item, .social-value-card, .point-card, .pr-payment) {
  background: var(--soft-white);
  border-width: 1px;
  border-style: solid;
}
body.association-soft.soft-core :is(.info-form-help, .program-facts, .workshop-overview, .privacy-intro, .privacy-contact, .law-note, .whitepaper-attention) {
  background: var(--soft-cream);
  color: var(--soft-ink);
}
body.association-soft.soft-core :is(.workshop-note, .pr-confirm) {
  background: var(--soft-orange);
  color: var(--soft-ink);
}
body.association-soft.soft-core :is(.info-form-help, .info-purpose-list li, .info-pillar-list a) {
  border-width: 1px;
  border-style: solid;
}
body.association-soft.soft-core .info-pillar-list li:nth-child(1) a { background: var(--soft-yellow); }
body.association-soft.soft-core .info-pillar-list li:nth-child(2) a { background: var(--soft-orange); }
body.association-soft.soft-core .info-pillar-list li:nth-child(3) a { background: var(--soft-green); }
body.association-soft.soft-core .info-pillar-list li:nth-child(4) a { background: var(--soft-blue); }
body.association-soft.soft-core .info-purpose-list li:nth-child(1) { background: var(--soft-yellow); }
body.association-soft.soft-core .info-purpose-list li:nth-child(2) { background: var(--soft-orange); }
body.association-soft.soft-core .info-purpose-list li:nth-child(3) { background: var(--soft-blue); }
body.association-soft.soft-core :is(.info-pillar-list h3, .info-purpose-list strong, .info-definition dt, .program-facts dt) {
  color: var(--soft-ink);
}
body.association-soft.soft-core :is(.info-pillar-list p, .info-quickfacts dt, .info-pillar-list span, .program-facts dd) {
  color: var(--soft-muted);
}
body.association-soft.soft-core :is(.info-quickfacts, .info-definition, .info-definition > div, .workshop-overview dl > div) {
  border-color: var(--soft-edge);
}
body.association-soft.soft-core .info-case img { border-radius: var(--soft-radius-small); }

/* Keep the four category hues; soften their bands instead of merging their meaning. */
body.association-soft.soft-core :is(.program-category-nav-item, .program-category-header) {
  border-color: color-mix(in srgb, var(--category-color) 62%, var(--soft-white));
  border-radius: var(--soft-radius-small);
  color: var(--soft-ink);
}
body.association-soft.soft-core .program-category-nav-item {
  background: color-mix(in srgb, var(--category-color) 16%, var(--soft-paper));
}
body.association-soft.soft-core .program-category-nav-item:is(:hover, :focus-visible) {
  background: color-mix(in srgb, var(--category-color) 24%, var(--soft-paper));
}
body.association-soft.soft-core .program-category-header {
  background: linear-gradient(110deg, color-mix(in srgb, var(--category-color) 19%, var(--soft-paper)), var(--soft-white) 70%);
}
body.association-soft.soft-core .program-item-featured {
  border-color: #e8c0a9;
  box-shadow: 0 18px 50px rgba(164, 100, 65, .08);
}
body.association-soft.soft-core .program-img-wrapper {
  background: var(--soft-paper);
  border-bottom-color: var(--soft-edge);
}
body.association-soft.soft-core .program-item-featured .program-img-wrapper {
  background: radial-gradient(ellipse at 80% 10%, var(--soft-orange), transparent 62%), var(--soft-paper);
}
body.association-soft.soft-core .program-content .program-category-tag {
  background: color-mix(in srgb, var(--category-color) 24%, var(--soft-white));
  color: var(--soft-ink);
}
/* The old featured label declares its color important. */
body.association-soft.soft-core .program-label { color: var(--soft-coral) !important; }
body.association-soft.soft-core .program-way-grid > div { border-left-color: var(--soft-edge); }

/* Participation and reflection details, without recoloring LINE, status chips or icon fonts. */
body.association-soft.soft-core .flow-num {
  background: var(--soft-orange);
  color: var(--soft-coral);
}
body.association-soft.soft-core .partner-hero-sub {
  color: var(--soft-core-link);
  border-bottom-color: #f2d59b;
}
body.association-soft.soft-core .social-value-badge {
  background: var(--soft-yellow);
  border-color: var(--soft-edge);
  color: var(--soft-core-link);
}
body.association-soft.soft-core .social-value-grid .social-value-card:nth-child(1) { background: var(--soft-yellow); }
body.association-soft.soft-core .social-value-grid .social-value-card:nth-child(2) { background: var(--soft-orange); }
body.association-soft.soft-core .social-value-grid .social-value-card:nth-child(3) { background: var(--soft-blue); }
body.association-soft.soft-core .social-value-grid .social-value-card:nth-child(4) { background: var(--soft-green); }
body.association-soft.soft-core .ikigai-section-header h2::after { background: var(--soft-coral); }
body.association-soft.soft-core .point-card:hover {
  border-color: #e7baa4;
  box-shadow: var(--soft-shadow);
}
body.association-soft.soft-core .schedule-flow::before { background: var(--soft-edge); }
body.association-soft.soft-core .schedule-icon-container {
  background: var(--soft-white);
  box-shadow: var(--soft-shadow);
}
body.association-soft.soft-core .pr-facts > div { box-shadow: inset 0 1px var(--soft-edge); }
body.association-soft.soft-core .pr-facts dt { color: var(--soft-core-link); }
body.association-soft.soft-core .price-tag {
  background: var(--soft-yellow);
  border-color: var(--soft-white);
  border-radius: var(--soft-radius-small);
  box-shadow: var(--soft-shadow);
  color: var(--soft-ink);
}
body.association-soft.soft-core .price-sub {
  background: var(--soft-white);
  color: var(--soft-core-link);
}

/* Paper-like legal and operating tables; preserve their markup, wording and mobile stacking. */
body.association-soft.soft-core :is(.profile-table, .law-table) {
  background: var(--soft-white);
  border-color: var(--soft-edge);
  border-radius: var(--soft-radius-small);
  box-shadow: var(--soft-shadow);
}
body.association-soft.soft-core :is(.profile-table th, .law-table th) {
  background: var(--soft-cream);
  border-color: var(--soft-edge);
  color: var(--soft-core-link);
  font-weight: 700;
}
body.association-soft.soft-core :is(.profile-table td, .law-table td) {
  border-color: var(--soft-edge);
  color: var(--soft-ink);
}
body.association-soft.soft-core :is(.privacy-intro, .privacy-content, .privacy-content p, .privacy-content ul, .privacy-content li, .law-note) {
  color: var(--soft-ink);
}
body.association-soft.soft-core .privacy-content h2 { border-bottom-color: var(--soft-edge); }
body.association-soft.soft-core .privacy-date { border-top-color: var(--soft-edge); }
body.association-soft.soft-core .law-note { border-left-color: #e2b88f; }
body.association-soft.soft-core .whitepaper-hero-box {
  border-left-color: var(--soft-edge);
  border-right-color: var(--soft-edge);
}
body.association-soft.soft-core .whitepaper-ribbon {
  background: var(--soft-yellow);
  color: var(--soft-core-link);
  box-shadow: none;
  border-radius: 999px;
}

/* Secondary links complement the shared coral CTA rules from base.css. */
body.association-soft.soft-core :is(
  .program-link,
  .program-way-grid a,
  .workshop-content a:not(.btn),
  .pr-links a,
  .pr-confirm a,
  .pr-inline-link,
  .info-links a:not(.info-button),
  .info-text-link,
  .text-link-primary,
  .text-link-arrow,
  .privacy-content a,
  .hiroba-card-category,
  .hiroba-card-link
) {
  color: var(--soft-core-link);
}
body.association-soft.soft-core .program-link:is(:hover, :focus-visible) { color: var(--soft-coral); }
/* The existing outline text color is important; keep it an outline, not a second primary CTA. */
body.association-soft.soft-core .info-button--outline {
  background: transparent;
  border-color: #d8b9a6;
  border-radius: 999px;
  box-shadow: none;
  color: var(--soft-core-link) !important;
}

@media (max-width: 700px) {
  body.association-soft.soft-core :is(
    .program-item,
    .program-wayfinder,
    .workshop-overview,
    .seven-days-content,
    .form-container,
    .form-wrapper,
    .whitepaper-hero-box,
    .privacy-content,
    .hiroba-card,
    .ikigai-section > .container
  ) {
    border-radius: 24px;
  }
}

/* Keep short Japanese titles balanced on narrow screens without changing their wording or explicit breaks. */
body.association-soft.soft-core :is(
  .privacy-section h1,
  .law-section h1,
  .workshop-page .page-hero h1,
  .workshop-content h2,
  .workshop-steps h3,
  .whitepaper-main-title,
  #whitepaper-request-title
) {
  text-wrap: balance;
}

@media (max-width: 600px) {
  body.association-soft.soft-core .privacy-section h1 {
    font-size: clamp(26px, 7vw, 29px);
  }
  body.association-soft.soft-core .law-section h1 {
    font-size: clamp(23px, 6vw, 26px);
  }
  body.association-soft.soft-core .workshop-page .page-hero h1 {
    font-size: clamp(28px, 7.3vw, 29px);
  }
}


/* ---- theme/programs.css ---- */
/* Canvas Soft / program-specific surfaces — Codex, 2026-11-01.
   Requires body.association-soft.soft-program and exactly one of:
   soft-kumalab, soft-yatsugatake, soft-facilitator, soft-canvas,
   soft-sangakukan. Canvas detail pages reuse soft-canvas; the course
   thank-you page reuses soft-facilitator. No content or behavior changes.
   Deliberately do not assign --accent / --accent-soft, touch icon fonts,
   set display/position/transform, or restyle the avatar iframe contents. */

body.association-soft.soft-program {
  --ink: var(--soft-ink);
  --muted: var(--soft-muted);
  --paper: var(--soft-paper);
  --line: var(--soft-edge);
  color: var(--soft-ink);
  background-color: var(--soft-paper);
}

body.association-soft.soft-program :is(.eyebrow, .section-index, .pr-eyebrow) {
  color: var(--soft-muted);
}

/* KUMALAB — blue institutional surfaces become a warm, four-color lab. */
body.association-soft.soft-program.soft-kumalab {
  --color-bg-body: var(--soft-paper);
  --color-bg-light: var(--soft-cream);
  --color-text-main: var(--soft-ink);
  --color-text-sub: var(--soft-muted);
  --color-text-light: var(--soft-muted);
  --color-primary: #a85b49;
  --color-primary-dark: #824939;
  --color-primary-light: var(--soft-blue);
  --radius-base: var(--soft-radius-small);
  --radius-lg: var(--soft-radius);
}

body.association-soft.soft-program.soft-kumalab :is(.hero-title, .section-title, .organizer-name, .join-title) {
  color: var(--soft-ink);
  font-family: var(--soft-font);
  font-weight: 700;
  line-height: 1.6;
}

body.association-soft.soft-program.soft-kumalab .hero {
  background: linear-gradient(180deg, var(--soft-paper), var(--soft-blue));
}

body.association-soft.soft-program.soft-kumalab :is(.bg-light, .pr-guide) {
  background-color: var(--soft-cream);
}

body.association-soft.soft-program.soft-kumalab .section-title::after {
  background-color: #dfb48d;
  border-radius: 999px;
}

body.association-soft.soft-program.soft-kumalab :is(.point-card, .feature-card, .feature-option, .voice-card, .join-box, .step-card, .pr-report) {
  color: var(--soft-ink);
  background: var(--soft-white);
  border: 1px solid var(--soft-edge);
  border-radius: var(--soft-radius);
  box-shadow: var(--soft-shadow);
}

body.association-soft.soft-program.soft-kumalab :is(.point-card, .feature-card, .voice-card):hover {
  box-shadow: 0 16px 38px rgba(126, 93, 53, .085);
}

body.association-soft.soft-program.soft-kumalab :is(.feature-article-link, .join-benefits) {
  color: var(--soft-ink);
  background: var(--soft-cream);
  border-color: var(--soft-edge);
  border-radius: var(--soft-radius-small);
}

body.association-soft.soft-program.soft-kumalab .feature-img {
  background-color: var(--soft-blue);
}

body.association-soft.soft-program.soft-kumalab :is(.feature-num, .step-num) {
  background: var(--soft-yellow);
  color: #795d3d;
  box-shadow: 0 5px 14px rgba(126, 93, 53, .07);
}

body.association-soft.soft-program.soft-kumalab .tag-blue {
  background-color: var(--soft-blue);
  color: #50646a;
}

body.association-soft.soft-program.soft-kumalab .organizer {
  background: linear-gradient(135deg, var(--soft-orange), var(--soft-yellow));
  color: var(--soft-ink);
}

body.association-soft.soft-program.soft-kumalab .organizer-box {
  background: var(--soft-white);
  border-color: var(--soft-edge);
  color: var(--soft-ink);
  box-shadow: var(--soft-shadow);
}

body.association-soft.soft-program.soft-kumalab .organizer-info :is(h2, h3, p, strong),
body.association-soft.soft-program.soft-kumalab .organizer-info a {
  color: var(--soft-ink);
}

body.association-soft.soft-program.soft-kumalab .organizer-title {
  color: #76553c;
  border-color: var(--soft-edge);
  background: var(--soft-cream);
}

body.association-soft.soft-program.soft-kumalab :is(.btn-primary, .btn-sm):not([href*="line.me"]):not([href*="lin.ee"]) {
  color: #fff;
  background: linear-gradient(135deg, var(--soft-coral), var(--soft-rose));
  border-color: transparent;
  border-radius: 999px;
  box-shadow: 0 8px 22px rgba(187, 77, 61, .13);
}

/* YATSUGATAKE — photographs, training status and application links remain. */
body.association-soft.soft-program.soft-yatsugatake {
  --green-light: var(--soft-green);
  --soft: var(--soft-cream);
}

body.association-soft.soft-program.soft-yatsugatake :is(.hero-tagline, .hero-quote, .section-heading h2, .day-title) {
  font-family: var(--soft-font);
  font-weight: 700;
  color: var(--soft-ink);
  line-height: 1.65;
}

body.association-soft.soft-program.soft-yatsugatake .hero-content {
  background: linear-gradient(180deg, var(--soft-green), var(--soft-paper) 85%);
}

body.association-soft.soft-program.soft-yatsugatake :is(.section-soft, .application-box) {
  background-color: var(--soft-cream);
}

body.association-soft.soft-program.soft-yatsugatake .section-green {
  background-color: var(--soft-green);
}

body.association-soft.soft-program.soft-yatsugatake :is(.card, .timeline-item, .partner-plan) {
  color: var(--soft-ink);
  background-color: var(--soft-white);
  border: 1px solid var(--soft-edge);
  border-radius: var(--soft-radius);
  box-shadow: var(--soft-shadow);
}

body.association-soft.soft-program.soft-yatsugatake :is(.training-image, .voice-image) {
  border-radius: var(--soft-radius-small);
  box-shadow: 0 12px 30px rgba(126, 93, 53, .07);
}

body.association-soft.soft-program.soft-yatsugatake .timeline-icon {
  background-color: var(--soft-yellow);
  color: #78583e;
}

body.association-soft.soft-program.soft-yatsugatake :is(.cta-button, .nav-cta, .training-link):not([href*="line.me"]):not([href*="lin.ee"]) {
  background: linear-gradient(135deg, var(--soft-coral), var(--soft-rose));
  color: #fff;
  border-color: transparent;
  border-radius: 999px;
  box-shadow: 0 8px 22px rgba(187, 77, 61, .13);
}

body.association-soft.soft-program.soft-yatsugatake .blue-button {
  color: #80553e;
  background: var(--soft-orange);
  border: 1px solid var(--soft-edge);
  box-shadow: none;
}

/* FACILITATOR — keep native disclosures, modal, form and hidden honeypot. */
body.association-soft.soft-program.soft-facilitator,
body.association-soft.soft-program.soft-canvas {
  --serif: var(--soft-font);
  --sans: var(--soft-font);
}

body.association-soft.soft-program.soft-facilitator :is(.hero h1, h2, .chapter-title h3, .audience-grid h3, .rule-list h3, .practice-steps h3, .learning-strip strong, .thanks h1) {
  font-family: var(--soft-font);
  font-weight: 700;
  color: var(--soft-ink);
}

body.association-soft.soft-program.soft-facilitator :is(.chapter-number, .audience-no, .rule-list li > span, .practice-steps > div > span) {
  font-family: var(--soft-font);
  color: #a46a4b;
  font-style: normal;
}

body.association-soft.soft-program.soft-facilitator :is(.button, .header nav .nav-cta) {
  border-radius: 999px;
}

body.association-soft.soft-program.soft-facilitator :is(.button.primary, .header nav .nav-cta) {
  background: linear-gradient(135deg, var(--soft-coral), var(--soft-rose));
  color: #fff;
  border-color: transparent;
  box-shadow: 0 8px 22px rgba(187, 77, 61, .13);
}

body.association-soft.soft-program.soft-facilitator .button.outline {
  color: #80553e;
  border-color: #cdb49b;
  background: var(--soft-white);
}

body.association-soft.soft-program.soft-facilitator :is(.canvas-paper, .information-box, .practice-paper, .audience-grid article, .chapter, dialog) {
  background-color: var(--soft-white);
  border: 1px solid var(--soft-edge);
  border-radius: var(--soft-radius);
  color: var(--soft-ink);
  box-shadow: var(--soft-shadow);
}

body.association-soft.soft-program.soft-facilitator .audience-grid article {
  padding: 26px;
}

body.association-soft.soft-program.soft-facilitator .chapter {
  margin-block: 14px;
  padding-inline: 24px;
}

body.association-soft.soft-program.soft-facilitator .chapter-title small {
  color: var(--soft-muted);
}

body.association-soft.soft-program.soft-facilitator :is(.curriculum, .course-at-a-glance) {
  background-color: var(--soft-cream);
}

body.association-soft.soft-program.soft-facilitator .information {
  background-color: var(--soft-blue);
}

body.association-soft.soft-program.soft-facilitator .rules {
  background: linear-gradient(135deg, var(--soft-blue), var(--soft-green));
  color: var(--soft-ink);
}

body.association-soft.soft-program.soft-facilitator .rules :is(h2, h3, .rules-lead, .rules-caption, .eyebrow, .rule-list p, .boundary) {
  color: var(--soft-ink);
}

body.association-soft.soft-program.soft-facilitator .rules :is(h2 span, .rule-list li > span, .boundary > span) {
  color: #985b43;
}

body.association-soft.soft-program.soft-facilitator .rules :is(.rule-list li, .boundary) {
  border-color: #d8dfce;
}

body.association-soft.soft-program.soft-facilitator .form-field :is(input, textarea) {
  font-family: var(--soft-font);
  color: var(--soft-ink);
  border-color: var(--soft-edge);
  background: var(--soft-white);
  border-radius: var(--soft-radius-small);
}

body.association-soft.soft-program.soft-facilitator :is(.guide-close, .learning-strip, .course-at-a-glance, .course-at-a-glance dl > div) {
  border-color: var(--soft-edge);
}

/* CANVAS — activity home, music, book, and avatar-maker OUTER surfaces.
   Dynamic --accent / --accent-soft, records, cover art, masks, photographs,
   swatch buttons, status colors, iframe and in-app workspace are untouched. */
body.association-soft.soft-program.soft-canvas :is(.hero h1, h2, .door h3, .work-copy h3, .music-hero h1, .track-title, .maker-heading h1, .maker-origin h2, .maker-personal > h3) {
  font-family: var(--soft-font);
  font-weight: 700;
  color: var(--soft-ink);
}

body.association-soft.soft-program.soft-canvas :is(.button, .site-header nav .nav-my, .mask-gold) {
  border-radius: 999px;
}

body.association-soft.soft-program.soft-canvas :is(.button.primary, .site-header nav .nav-my, .mask-gold):not([href*="line.me"]):not([href*="lin.ee"]) {
  background: linear-gradient(135deg, var(--soft-coral), var(--soft-rose));
  color: #fff;
  border-color: transparent;
  box-shadow: 0 8px 22px rgba(187, 77, 61, .13);
}

body.association-soft.soft-program.soft-canvas :is(.button.outline, .button.light) {
  border-color: #cdb49b;
  color: #80553e;
  background: var(--soft-white);
}

body.association-soft.soft-program.soft-canvas :is(.door, .work-panel, .hero-paper, .experience-item, .tool-details, .mask-cards article) {
  border: 1px solid var(--soft-edge);
  border-radius: var(--soft-radius);
  background-color: var(--soft-white);
  color: var(--soft-ink);
  box-shadow: var(--soft-shadow);
}

body.association-soft.soft-program.soft-canvas .door-blue { background-color: var(--soft-blue); }
body.association-soft.soft-program.soft-canvas .door-orange { background-color: var(--soft-orange); }
body.association-soft.soft-program.soft-canvas .door-green { background-color: var(--soft-green); }
body.association-soft.soft-program.soft-canvas .door-pink { background-color: var(--soft-yellow); }

body.association-soft.soft-program.soft-canvas .experience-item {
  padding: 24px;
}

body.association-soft.soft-program.soft-canvas :is(.experience-visual, .music-hero-art, .book-hero-quote) {
  border-radius: var(--soft-radius-small);
}

body.association-soft.soft-program.soft-canvas .my-section {
  color: var(--soft-ink);
  background: linear-gradient(135deg, var(--soft-green), var(--soft-blue));
}

body.association-soft.soft-program.soft-canvas .my-section :is(h2, h2 span, p, small, .eyebrow, .light-link) {
  color: var(--soft-ink);
}

body.association-soft.soft-program.soft-canvas .music-hero-art {
  background-color: var(--soft-orange);
}

body.association-soft.soft-program.soft-canvas .track-row {
  background: var(--soft-white);
  border: 1px solid var(--soft-edge);
  border-radius: var(--soft-radius-small);
  padding-inline: 18px;
  margin-block: 12px;
}

body.association-soft.soft-program.soft-canvas .track-number {
  font-family: var(--soft-font);
  font-style: normal;
  color: #98694a;
}

body.association-soft.soft-program.soft-canvas :is(.mask-concerns, .book-exit, .maker-sample) {
  background-color: var(--soft-cream);
}

body.association-soft.soft-program.soft-canvas .maker-next {
  background-color: var(--soft-green);
}

body.association-soft.soft-program.soft-canvas :is(.maker-frame, .mask-design dialog) {
  border-color: var(--soft-edge);
  border-radius: var(--soft-radius-small);
  box-shadow: var(--soft-shadow);
}

body.association-soft.soft-program.soft-canvas .mask-cards article {
  overflow: hidden;
}

/* The book's host-invitation is a text surface, not a photo overlay. */
body.association-soft.soft-program.soft-canvas .book-host {
  background: linear-gradient(135deg, var(--soft-green), var(--soft-cream));
  color: var(--soft-ink);
}

body.association-soft.soft-program.soft-canvas .book-host :is(h2, h3, p, dt, dd) {
  color: var(--soft-ink);
}

body.association-soft.soft-program.soft-canvas .book-host .host-contact .host-form-note {
  /* The original component has an important white-note declaration. */
  color: var(--soft-muted) !important;
}

body.association-soft.soft-program.soft-canvas .book-host :is(dl, dl > div) {
  border-color: var(--soft-edge);
}

/* Give only this long introduction heading more room; keep the rest of
   the page's grid and all authored line breaks untouched. */
body.association-soft.soft-program.soft-canvas .intro-grid h2 {
  font-size: clamp(30px, 3.2vw, 44px);
  text-wrap: pretty;
}

@media (min-width: 801px) {
  body.association-soft.soft-program.soft-canvas .intro-grid {
    grid-template-columns: 1.15fr 1fr;
  }
}

@media (min-width: 621px) and (max-width: 800px) {
  body.association-soft.soft-program.soft-canvas .intro-grid {
    grid-template-columns: 1fr;
  }
}

/* Preserve the supplied book's wordmark / vertical decorative lettering. */
body.association-soft.soft-program.soft-canvas :is(.mask-vertical, .mask-handwriting, .mask-wordmark, .mask-seal) {
  font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
}

/* SANGAKUKAN — all selectors stay outside React state and image backgrounds. */
body.association-soft.soft-program.soft-sangakukan {
  --ink-soft: var(--soft-muted);
  --font-serif: var(--soft-font);
  --font-sans: var(--soft-font);
  --font-zen-kaku: var(--soft-font);
}

body.association-soft.soft-program.soft-sangakukan :is(.section-heading h2, .business-thesis h2, .why-section h2, .case-story-title h2, .symbol-heading h2, .contact-section h2, .consultation-entry h2, .mobile-hero-headline) {
  font-family: var(--soft-font);
  font-weight: 700;
  color: var(--soft-ink);
}

body.association-soft.soft-program.soft-sangakukan :is(.hero-photo-credits, .photo-story-heading > p:last-child, .mobile-hero-lead, .photo-story-images figcaption, .photo-stories-credit, .case-image-note, .moment-source) {
  font-family: var(--soft-font);
  color: var(--soft-muted);
}

body.association-soft.soft-program.soft-sangakukan :is(.consultation-entry, .hero-photo-credits, .mobile-photo-hero) {
  background-color: var(--soft-paper);
}

body.association-soft.soft-program.soft-sangakukan .photo-stories-section {
  background-color: var(--soft-green);
}

body.association-soft.soft-program.soft-sangakukan :is(.proof-card, .business-reason-card, .possibility-card, .moment-card, .faq-item, .consultation-audiences > a) {
  border: 1px solid var(--soft-edge);
  border-radius: var(--soft-radius);
  box-shadow: var(--soft-shadow);
  color: var(--soft-ink);
  background: var(--soft-white);
}

body.association-soft.soft-program.soft-sangakukan .business-reason-card:nth-child(1),
body.association-soft.soft-program.soft-sangakukan .moment-card:nth-child(1) { background: var(--soft-yellow); }
body.association-soft.soft-program.soft-sangakukan .business-reason-card:nth-child(2),
body.association-soft.soft-program.soft-sangakukan .moment-card:nth-child(3) { background: var(--soft-blue); }
body.association-soft.soft-program.soft-sangakukan .business-reason-card:nth-child(3) { background: var(--soft-green); }
body.association-soft.soft-program.soft-sangakukan .business-reason-card:nth-child(4),
body.association-soft.soft-program.soft-sangakukan .moment-card:nth-child(5) { background: var(--soft-orange); }

body.association-soft.soft-program.soft-sangakukan :is(.business-reason-card, .possibility-card, .moment-card) :is(h3, p, span) {
  color: var(--soft-ink);
}

body.association-soft.soft-program.soft-sangakukan .photo-story-frame {
  border-radius: var(--soft-radius-small);
  box-shadow: var(--soft-shadow);
}

body.association-soft.soft-program.soft-sangakukan .consultation-audiences > a:nth-child(1) { background: var(--soft-green); }
body.association-soft.soft-program.soft-sangakukan .consultation-audiences > a:nth-child(2) { background: var(--soft-blue); }
body.association-soft.soft-program.soft-sangakukan .consultation-audiences > a:nth-child(3) { background: var(--soft-yellow); }

body.association-soft.soft-program.soft-sangakukan :is(.why-section, .case-mid-cta) {
  background: var(--soft-orange);
  color: var(--soft-ink);
}

body.association-soft.soft-program.soft-sangakukan :is(.why-section, .case-mid-cta) :is(h2, p, li, .section-index) {
  color: var(--soft-ink);
}

body.association-soft.soft-program.soft-sangakukan :is(.contact-section, .more-co-creation) {
  background-color: var(--soft-green);
  color: var(--soft-ink);
}

body.association-soft.soft-program.soft-sangakukan .contact-section :is(p, h2, .section-index) {
  color: var(--soft-ink);
}

body.association-soft.soft-program.soft-sangakukan :is(.contact-button, .primary-button, .mobile-hero-cta, .top-visual-contact, .case-mid-cta a) {
  background: linear-gradient(135deg, var(--soft-coral), var(--soft-rose));
  color: #fff;
  border-color: transparent;
  border-radius: 999px;
  font-family: var(--soft-font);
  box-shadow: 0 8px 22px rgba(187, 77, 61, .13);
}

body.association-soft.soft-program.soft-sangakukan .year-tabs button {
  color: var(--soft-ink);
  border-color: var(--soft-edge);
  border-radius: 999px;
}

body.association-soft.soft-program.soft-sangakukan .year-tabs button.selected,
body.association-soft.soft-program.soft-sangakukan .year-tabs button:hover {
  color: var(--soft-ink);
  background: var(--soft-orange);
}

body.association-soft.soft-program.soft-sangakukan .year-content {
  color: var(--soft-ink);
  background-color: var(--soft-white);
}

body.association-soft.soft-program.soft-sangakukan .mobile-hero-headline em {
  background: linear-gradient(transparent 78%, var(--soft-yellow) 78%);
}

/* A single long title needs the available section width instead of a
   narrow column beside its note. Other section-heading layouts stay. */
body.association-soft.soft-program.soft-sangakukan .possibilities-section > .section-heading {
  flex-direction: column;
  align-items: flex-start;
  gap: 22px;
}

body.association-soft.soft-program.soft-sangakukan .possibilities-section > .section-heading h2 {
  font-size: clamp(32px, 3.4vw, 48px);
  line-height: 1.5;
  text-wrap: balance;
}

body.association-soft.soft-program.soft-sangakukan .possibilities-section > .section-heading > p {
  max-width: 64ch;
}

/* Deliberately leave .year-identity background-image and its white photo
   labels, .top-full-image, collage overlays and all year-tab state intact. */

/* LP-specific chrome is not named .header/.footer on every page.
   Limit these additions to actual navigation/footer surfaces, never photo
   labels, the book's .paper-footer, or the .year-identity overlay. */
body.association-soft.soft-program.soft-canvas .site-header,
body.association-soft.soft-program.soft-yatsugatake .site-header {
  background: rgba(255, 253, 249, .97);
  color: var(--soft-ink);
  border-bottom-color: var(--soft-edge);
  box-shadow: 0 5px 22px rgba(126, 93, 53, .035);
}

body.association-soft.soft-program.soft-canvas .site-header nav a,
body.association-soft.soft-program.soft-yatsugatake .site-header .nav-link {
  font-family: var(--soft-font);
}

body.association-soft.soft-program.soft-canvas .site-header nav a:not(.nav-my):not(.nav-cta),
body.association-soft.soft-program.soft-yatsugatake .site-header .nav-link:not(.nav-cta),
body.association-soft.soft-program.soft-yatsugatake .mobile-menu-btn {
  color: var(--soft-ink);
}

body.association-soft.soft-program.soft-canvas .site-header nav a:not(.nav-my):not(.nav-cta):hover,
body.association-soft.soft-program.soft-yatsugatake .site-header .nav-link:not(.nav-cta):hover {
  color: var(--soft-coral);
}

body.association-soft.soft-program.soft-yatsugatake .site-header .nav-link:not(.nav-cta):hover {
  background-color: var(--soft-orange);
}

body.association-soft.soft-program.soft-canvas .site-footer,
body.association-soft.soft-program.soft-sangakukan .site-footer,
body.association-soft.soft-program.soft-yatsugatake .footer {
  color: var(--soft-ink);
  background: var(--soft-paper);
  border-top-color: var(--soft-edge);
}

body.association-soft.soft-program.soft-canvas .site-footer :is(.footer-main p, .footer-bottom, .footer-bottom span),
body.association-soft.soft-program.soft-yatsugatake .footer :is(.footer-logo-item span, small),
body.association-soft.soft-program.soft-sangakukan .site-footer :is(.footer-related p, .footer-related a span, .footer-bottom, .footer-bottom p) {
  color: var(--soft-ink);
  font-family: var(--soft-font);
}

body.association-soft.soft-program.soft-canvas .site-footer a:not(.button):not(.btn),
body.association-soft.soft-program.soft-yatsugatake .footer a:not(.button):not(.btn):not(.cta-button),
body.association-soft.soft-program.soft-sangakukan .site-footer a:not(.contact-button):not(.primary-button) {
  color: var(--soft-ink);
  font-family: var(--soft-font);
}

body.association-soft.soft-program.soft-canvas .site-footer a:not(.button):not(.btn):hover,
body.association-soft.soft-program.soft-yatsugatake .footer a:not(.button):not(.btn):not(.cta-button):hover,
body.association-soft.soft-program.soft-sangakukan .site-footer a:not(.contact-button):not(.primary-button):hover {
  color: var(--soft-coral);
}

body.association-soft.soft-program.soft-canvas .site-footer .footer-bottom,
body.association-soft.soft-program.soft-sangakukan .site-footer .footer-bottom {
  border-top-color: var(--soft-edge);
}

body.association-soft.soft-program.soft-sangakukan .site-footer .footer-brand {
  background-color: var(--soft-white);
  border-radius: var(--soft-radius-small);
}

@media (max-width: 900px) {
  body.association-soft.soft-program.soft-yatsugatake .site-header .nav-menu {
    background-color: var(--soft-paper);
    border-color: var(--soft-edge);
    box-shadow: 0 12px 30px rgba(126, 93, 53, .07);
  }
}

@media (max-width: 800px) {
  body.association-soft.soft-program.soft-canvas .site-header nav {
    background-color: var(--soft-paper);
    border-color: var(--soft-edge);
    box-shadow: 0 12px 30px rgba(126, 93, 53, .07);
  }
}

@media (max-width: 760px) {
  body.association-soft.soft-program.soft-kumalab :is(.point-card, .feature-card, .feature-option, .voice-card, .join-box, .step-card, .pr-report),
  body.association-soft.soft-program.soft-yatsugatake :is(.card, .timeline-item, .partner-plan),
  body.association-soft.soft-program.soft-facilitator :is(.canvas-paper, .information-box, .practice-paper, .audience-grid article, .chapter, dialog),
  body.association-soft.soft-program.soft-canvas :is(.door, .work-panel, .hero-paper, .experience-item, .tool-details, .mask-cards article),
  body.association-soft.soft-program.soft-sangakukan :is(.proof-card, .business-reason-card, .possibility-card, .moment-card, .faq-item, .consultation-audiences > a) {
    border-radius: 24px;
  }

  body.association-soft.soft-program.soft-facilitator .audience-grid article {
    padding: 22px;
  }

  body.association-soft.soft-program.soft-facilitator .chapter {
    padding-inline: 16px;
  }

  body.association-soft.soft-program.soft-canvas .experience-item {
    padding: 20px;
  }
}


/* ---- theme/events.css ---- */
/*
 * Canvas Soft / event pages — Codex, 2026-11-01.
 * The two namespaces also cover the older Bon Odori copies under /expo-2026/.
 * Only named, non-interactive panels are restyled. Artwork layers, venue scenes,
 * avatar/canvas previews, swatches, dialogs/backdrops, active and disabled states
 * retain their original CSS. In particular, --page-accent, --action-color,
 * --accent, --accent-soft, --swatch and venue variables are not overwritten.
 */

body.association-soft:is(.soft-expo, .soft-dance) {
  background-color: var(--soft-paper);
}

body.association-soft.soft-expo.governance-page {
  --gov-ink: var(--soft-ink);
  --gov-paper: var(--soft-paper);
  --gov-line: var(--soft-edge);
}

/* Bon Odori declares its own font/paper variables on body, not on :root. */
body.association-soft:is(.soft-expo, .soft-dance).bon-site {
  --bon-ink: var(--soft-ink);
  --bon-cream: var(--soft-paper);
  --bon-red: var(--soft-coral);
  --sans: var(--soft-font);
  --serif: var(--soft-font);
  --en: var(--soft-font);
  color: var(--soft-ink);
  font-family: var(--soft-font);
}

/* Named type rules also override font shorthands in the original leaf LPs. */
body.association-soft:is(.soft-expo, .soft-dance) :is(
  .audience-hero h1,
  .audience-section h2,
  .audience-card h3,
  .home-event h3,
  .home-story h3,
  .detail-name,
  .detail-hero h1,
  .co-hub-hero h1,
  .co-team-hero h1,
  .co-card h3,
  .governance-hero h1,
  .gov-document h1,
  .gov-document h2,
  .bon-hero h1,
  .bon-site h2,
  .bon-site h3,
  .bon-about-page-grid h1,
  .bon-host-hero h1,
  .caravan-directory-hero h1,
  .caravan-local-hero h1,
  .local-event-hero h1,
  .local-event-catch,
  .studio-introduction h1,
  .studio-existing h2,
  .association-account h1,
  .association-account h2
) {
  font-family: var(--soft-font);
  font-weight: 700;
}

body.association-soft:is(.soft-expo, .soft-dance) :is(
  .audience-kicker,
  .bon-eyebrow,
  .detail-eyebrow,
  .section-marker,
  .studio-eyebrow
) {
  font-family: var(--soft-font);
}

body.association-soft:is(.soft-expo, .soft-dance) :is(
  .bon-about-page-grid h1,
  .bon-host-hero h1,
  .caravan-directory-hero h1,
  .caravan-local-hero h1
) {
  white-space: normal;
  text-wrap: balance;
}

/* The illustrated Expo hero keeps its complete art and shade layers. */
body.association-soft.soft-expo.audience-index .hero .hero-copy {
  background: var(--soft-white);
  border-color: var(--soft-edge);
  border-radius: var(--soft-radius);
  box-shadow: var(--soft-shadow);
  color: var(--soft-ink);
}

body.association-soft.soft-expo.audience-index .hero-copy :is(
  h1,
  .hero-name,
  .hero-description,
  .hero-eyebrow,
  .hero-kicker
) {
  color: var(--soft-ink);
  font-family: var(--soft-font);
}

body.association-soft.soft-expo.audience-index .hero-copy h1 span {
  color: var(--soft-coral);
}

body.association-soft.soft-expo.audience-index .hero-copy .hero-eyebrow span:last-child {
  background: var(--soft-yellow);
  border-color: var(--soft-edge);
  border-radius: 999px;
  color: var(--soft-ink);
}

/* These labels remain over the illustration's dark lower shade. */
body.association-soft.soft-expo.audience-index .hero :is(.hero-bottom, .hero-side) {
  color: #fff;
}

body.association-soft.soft-expo.audience-index .hero-bottom .date-dash {
  color: var(--soft-yellow);
}

body.association-soft.soft-expo.audience-index .hero .hero-venue-link {
  background: var(--soft-white);
  color: var(--soft-ink);
  border-radius: 999px;
}

/* Page introductions and alternating chapter bands. */
body.association-soft:is(.soft-expo, .soft-dance) :is(
  .audience-hero,
  .detail-hero,
  .governance-hero,
  .co-team-hero,
  .bon-hero,
  .bon-about-page-hero,
  .bon-host-hero,
  .caravan-directory-hero,
  .caravan-local-hero
) {
  background: var(--soft-cream);
  border-color: var(--soft-edge);
  color: var(--soft-ink);
}

body.association-soft:is(.soft-expo, .soft-dance) :is(
  .audience-university .audience-hero,
  .home-next,
  .co-hub-hero,
  .bon-avatar-section,
  .local-event-program
) {
  background: var(--soft-blue);
  border-color: var(--soft-edge);
}

body.association-soft:is(.soft-expo, .soft-dance) :is(
  .audience-guide .audience-hero,
  .home-about,
  .co-purpose,
  .co-learning,
  .co-related,
  .gov-organization,
  .gov-join,
  .bon-alliance
) {
  background: var(--soft-green);
  border-color: var(--soft-edge);
}

body.association-soft:is(.soft-expo, .soft-dance) :is(
  .co-pattern,
  .gov-documents,
  .caravan-update-section
) {
  background: var(--soft-yellow);
  border-color: var(--soft-edge);
}

body.association-soft:is(.soft-expo, .soft-dance) :is(.detail-join, .ab-ways) {
  background: var(--soft-orange);
  border-color: var(--soft-edge);
}

/* Concrete white panels; no generic section/div/figure or form-UI rule. */
body.association-soft:is(.soft-expo, .soft-dance) :is(
  .audience-card,
  .home-event,
  .home-story,
  .action-card,
  .action-link,
  .co-card,
  .co-team-card,
  .audience-program-card,
  .audience-callout,
  .gov-document,
  .gov-doc-link,
  .caravan-event-card,
  .caravan-home-links > a,
  .bon-local-feature,
  .studio-account,
  .studio-existing,
  .association-account .account-card
) {
  border-radius: var(--soft-radius);
  box-shadow: var(--soft-shadow);
}

body.association-soft:is(.soft-expo, .soft-dance) :is(
  .audience-card,
  .home-event,
  .home-story,
  .action-card,
  .co-card,
  .co-team-card,
  .audience-program-card,
  .audience-callout,
  .caravan-event-card,
  .caravan-home-links > a,
  .association-account .account-card
) {
  background: var(--soft-white);
}

body.association-soft:is(.soft-expo, .soft-dance) :is(
  .home-event,
  .co-card,
  .co-team-card,
  .caravan-event-card,
  .caravan-home-links > a
) {
  border-color: var(--soft-edge);
}

body.association-soft.soft-expo .expo-first-step {
  background: var(--soft-yellow);
  border: 1px solid var(--soft-edge);
  border-radius: var(--soft-radius);
  padding: clamp(24px, 3vw, 38px);
  box-shadow: var(--soft-shadow);
}

/* Small entrance cards use their original semantic colors and image positions.
   Their grids already have 11–28px gaps; keep those responsive rules intact. */
body.association-soft:is(.soft-expo, .soft-dance) .action-chip {
  border-radius: 20px;
  box-shadow: var(--soft-shadow);
  transition: box-shadow .25s var(--soft-ease);
}

body.association-soft:is(.soft-expo, .soft-dance) :is(
  .entrance-card,
  .bon-participation-choices > article
) {
  border-radius: 24px;
  box-shadow: var(--soft-shadow);
  transition: box-shadow .25s var(--soft-ease);
}

body.association-soft:is(.soft-expo, .soft-dance) :is(.action-chip, .entrance-card):hover {
  box-shadow: 0 20px 44px rgba(126, 93, 53, .095);
}

body.association-soft:is(.soft-expo, .soft-dance) :is(
  .audience-card p,
  .home-event p,
  .home-story p,
  .co-card p,
  .co-note,
  .association-account footer
) {
  color: var(--soft-muted);
}

/* Former dark editorial panels: surface and their explicit white copy change
   together. Buttons get their own contrasted rule below. */
body.association-soft:is(.soft-expo, .soft-dance) :is(
  .audience-cta,
  .ab-impact,
  .co-local-feature,
  .co-team-next,
  .gov-cooperation-members,
  .bon-about-places,
  .caravan-next-region,
  .dance-program
) {
  background: var(--soft-blue);
  color: var(--soft-ink);
  border-color: var(--soft-edge);
}

body.association-soft:is(.soft-expo, .soft-dance) :is(
  .audience-cta,
  .ab-impact,
  .co-local-feature,
  .co-team-next,
  .gov-cooperation-members,
  .bon-about-places,
  .caravan-next-region,
  .dance-program
) :is(h2, h3, p, .audience-lead, .co-note, .bon-section-head > p) {
  color: var(--soft-ink);
}

body.association-soft:is(.soft-expo, .soft-dance) :is(
  .audience-cta,
  .ab-impact,
  .co-local-feature,
  .co-team-next,
  .bon-about-places,
  .caravan-next-region
) :is(.audience-kicker, .detail-eyebrow, .bon-eyebrow) {
  color: var(--soft-coral);
}

body.association-soft:is(.soft-expo, .soft-dance) :is(
  .audience-cta,
  .ab-impact,
  .co-local-feature,
  .co-team-next,
  .bon-about-places,
  .caravan-next-region
) :is(.text-link, .bon-text-link) {
  color: #805a3f;
}

body.association-soft.soft-expo .gov-cooperation-members > b {
  color: #805a3f;
}

body.association-soft.soft-expo .gov-cooperation-members > strong {
  border-color: var(--soft-edge);
}

body.association-soft:is(.soft-expo, .soft-dance) .bon-about-place-grid article {
  background: var(--soft-white);
  border: 1px solid var(--soft-edge);
  border-radius: var(--soft-radius-small);
  box-shadow: var(--soft-shadow);
  padding: 25px;
}

body.association-soft:is(.soft-expo, .soft-dance) .bon-about-place-grid article > span {
  color: #805a3f;
}

/* Bon Odori: keep the illustrated/photo half untouched. */
body.association-soft:is(.soft-expo, .soft-dance) .bon-hero-copy {
  color: var(--soft-ink);
}

body.association-soft:is(.soft-expo, .soft-dance) .bon-next-strip {
  background: var(--soft-orange);
  color: var(--soft-ink);
}

body.association-soft:is(.soft-expo, .soft-dance) .bon-next-strip :is(strong, span:nth-child(3)) {
  color: var(--soft-ink);
}

body.association-soft:is(.soft-expo, .soft-dance) .bon-next-strip .bon-next-label {
  color: var(--soft-muted);
  border-color: var(--soft-edge);
}

body.association-soft:is(.soft-expo, .soft-dance) .dance-program :is(
  .dance-program-label,
  .dance-program-numbers,
  details b
) {
  color: var(--soft-ink);
}

body.association-soft:is(.soft-expo, .soft-dance) .dance-program details small {
  color: var(--soft-muted);
}

body.association-soft:is(.soft-expo, .soft-dance) .bon-local-feature .bon-flyer {
  background: var(--soft-yellow);
  border-radius: var(--soft-radius) 0 0 var(--soft-radius);
}

body.association-soft:is(.soft-expo, .soft-dance) .bon-local-feature .bon-local-copy {
  background: var(--soft-white);
  border-radius: 0 var(--soft-radius) var(--soft-radius) 0;
}

body.association-soft:is(.soft-expo, .soft-dance) .caravan-event-visual {
  border-radius: var(--soft-radius) var(--soft-radius) 0 0;
}

body.association-soft:is(.soft-expo, .soft-dance) .bon-finale {
  background: radial-gradient(ellipse at top right, var(--soft-yellow), transparent 62%), var(--soft-cream);
  color: var(--soft-ink);
}

body.association-soft:is(.soft-expo, .soft-dance) .bon-alliance-label {
  border-color: var(--soft-edge);
}

/* Local event mastheads have adjacent copy, not text over the flyer/photo. */
body.association-soft:is(.soft-expo, .soft-dance).bon-site .local-event-hero {
  background: var(--soft-cream);
  color: var(--soft-ink);
}

body.association-soft:is(.soft-expo, .soft-dance).bon-site .local-event-hero :is(
  h1,
  .breadcrumb,
  .local-event-label,
  .local-event-label span,
  .local-event-catch,
  .local-event-nav a,
  .local-event-share,
  .bon-event-share,
  .bon-share-status,
  .text-link,
  small,
  figcaption
) {
  color: var(--soft-ink);
  border-color: var(--soft-edge);
}

body.association-soft:is(.soft-expo, .soft-dance).bon-site .local-event-nav a:hover,
body.association-soft:is(.soft-expo, .soft-dance).bon-site .local-event-nav a:focus-visible {
  background: var(--soft-green);
  color: var(--soft-ink);
}

/* Header-specific controls need dark strokes after the shared header skin. */
body.association-soft:is(.soft-expo, .soft-dance) :is(.audience-header, .bon-header) {
  background: rgba(255, 253, 249, .97);
  color: var(--soft-ink);
  border-color: var(--soft-edge);
}

body.association-soft:is(.soft-expo, .soft-dance) :is(.audience-mobile, .bon-mobile-nav) {
  background: var(--soft-paper);
  color: var(--soft-ink);
  border-color: var(--soft-edge);
  box-shadow: var(--soft-shadow);
}

body.association-soft:is(.soft-expo, .soft-dance) :is(.menu-toggle, .bon-menu-toggle) span {
  background: var(--soft-ink);
}

/* Expo uses a literal menu glyph; only Bon Odori has empty CSS stroke spans. */
body.association-soft:is(.soft-expo, .soft-dance) .audience-header .menu-toggle span {
  background: transparent;
  color: var(--soft-ink);
}

body.association-soft:is(.soft-expo, .soft-dance) :is(.audience-footer, .bon-footer) {
  background: var(--soft-cream);
  color: var(--soft-ink);
  border-top: 1px solid var(--soft-edge);
}

body.association-soft:is(.soft-expo, .soft-dance) :is(.audience-footer, .bon-footer) :is(
  a,
  p,
  small,
  span,
  .audience-footer-bottom,
  .bon-footer-bottom
) {
  color: var(--soft-muted);
  border-color: var(--soft-edge);
  font-family: var(--soft-font);
}

body.association-soft:is(.soft-expo, .soft-dance) :is(
  .audience-footer-name,
  .bon-footer-top > div > p
) {
  color: var(--soft-ink);
  font-family: var(--soft-font);
  font-weight: 700;
}

body.association-soft:is(.soft-expo, .soft-dance) :is(.audience-footer, .bon-footer) a:hover {
  color: var(--soft-coral);
}

/* Primary calls to action only. Quiet links, filters, form states, and destructive
   dialog actions are deliberately outside this list. */
body.association-soft:is(.soft-expo, .soft-dance) :is(
  .button:not(.button-outline):not(.button-glass),
  .detail-button,
  .bon-button,
  .audience-mypage
) {
  background: linear-gradient(125deg, var(--soft-coral), var(--soft-rose));
  color: var(--soft-white);
  border-color: transparent;
  border-radius: 999px;
  box-shadow: 0 8px 22px rgba(156, 75, 59, .13);
}

body.association-soft:is(.soft-expo, .soft-dance) :is(
  .button:not(.button-outline):not(.button-glass),
  .detail-button,
  .bon-button,
  .audience-mypage
):hover {
  background: linear-gradient(125deg, #aa4538, #a3404a);
  color: var(--soft-white);
}

/* The original my-page entry was a left-padded text link. A pill needs padding
   on both sides, otherwise its final white letter falls on the rounded edge. */
body.association-soft:is(.soft-expo, .soft-dance) .audience-mypage {
  padding: 9px 20px;
  border-left: 0;
  text-align: center;
  white-space: nowrap;
  line-height: 1.45;
  font-family: var(--soft-font);
}

body.association-soft:is(.soft-expo, .soft-dance) .audience-mypage span {
  margin-top: 3px;
  color: rgba(255, 255, 255, .9);
  font-family: var(--soft-font);
}

body.association-soft:is(.soft-expo, .soft-dance) .button-outline {
  background: var(--soft-white);
  color: #805a3f;
  border-color: var(--soft-edge);
  border-radius: 999px;
  box-shadow: none;
}

body.association-soft:is(.soft-expo, .soft-dance) .button-outline:hover {
  background: var(--soft-orange);
  color: #805a3f;
  border-color: var(--soft-edge);
}

/* Standalone account/studio introductions: restyle the shell, not the tools. */
body.association-soft.soft-expo .association-account {
  background: var(--soft-paper);
  color: var(--soft-ink);
  font-family: var(--soft-font);
}

body.association-soft.soft-expo .association-account :is(nav a, footer a) {
  color: #805a3f;
  border-color: var(--soft-edge);
  border-radius: 999px;
}

body.association-soft:is(.soft-expo, .soft-dance) .association-migration-note {
  background: var(--soft-yellow);
  color: var(--soft-ink);
  border-radius: var(--soft-radius-small);
  font-family: var(--soft-font);
}

body.association-soft.soft-expo.canvas-studio-page :is(.studio-account, .studio-existing) {
  border-radius: var(--soft-radius-small);
  box-shadow: var(--soft-shadow);
}

@media (max-width: 680px) {
  body.association-soft:is(.soft-expo, .soft-dance) .audience-mypage {
    padding: 9px 12px;
    font-size: 12px;
  }

  body.association-soft:is(.soft-expo, .soft-dance) :is(
    .hero .hero-copy,
    .audience-card,
    .home-event,
    .home-story,
    .action-card,
    .action-link,
    .co-card,
    .co-team-card,
    .audience-program-card,
    .audience-callout,
    .gov-document,
    .gov-doc-link,
    .caravan-event-card,
    .caravan-home-links > a,
    .bon-local-feature,
    .association-account .account-card,
    .expo-first-step
  ) {
    border-radius: 24px;
  }

  body.association-soft:is(.soft-expo, .soft-dance) .bon-local-feature .bon-flyer {
    border-radius: 24px 24px 0 0;
  }

  body.association-soft:is(.soft-expo, .soft-dance) .bon-local-feature .bon-local-copy {
    border-radius: 0 0 24px 24px;
  }

  body.association-soft:is(.soft-expo, .soft-dance) .caravan-event-visual {
    border-radius: 24px 24px 0 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.association-soft:is(.soft-expo, .soft-dance) :is(
    .action-chip,
    .entrance-card,
    .bon-participation-choices > article
  ) {
    transition: none;
  }
}


/* ---- theme/polish.css ---- */
/* Art direction: warm editorial / paper layers. User's canvas identity takes
   precedence over generic glass UI, new icon systems or heavy entrance motion. */
body.association-soft.soft-home .rh-section { padding-block:clamp(72px,7.2vw,112px); }
body.association-soft.soft-home .rh-intro { padding-block:clamp(66px,7vw,108px); }
body.association-soft.soft-home .rh-intro h2 { font-size:clamp(30px,3.05vw,44px); line-height:1.65; letter-spacing:.045em; }
body.association-soft.soft-home .rh-section-head h2 { font-size:clamp(27px,2.55vw,36px); line-height:1.65; letter-spacing:.035em; text-wrap:balance; }
body.association-soft.soft-home :is(.rh-eyebrow,.rh-audience-index) { letter-spacing:.17em; }
body.association-soft.soft-home .rh-section-head .rh-eyebrow { display:inline-flex; padding:5px 12px; border-radius:999px; background:#f4ecdf; color:#80634b; }
body.association-soft.soft-home .rh-story-grid { gap:clamp(22px,2.4vw,34px); }
body.association-soft.soft-home .rh-story { border-color:rgba(212,186,154,.32); box-shadow:inset 0 1px 0 #fff,0 14px 45px rgba(115,87,58,.055); }
body.association-soft.soft-home .rh-story-photo { box-shadow:0 0 0 1px rgba(122,91,57,.045); }
body.association-soft.soft-home .rh-story h3 { line-height:1.7; letter-spacing:.025em; }
body.association-soft.soft-home .rh-story-body>p:not(.rh-category) { font-size:13px; line-height:1.95; }
body.association-soft.soft-home :is(.rh-audience,.rh-opportunity) { box-shadow:inset 0 1px 0 #fff,0 20px 55px rgba(115,87,58,.045); }
body.association-soft.soft-home .rh-publication { border-radius:0 24px 24px 0; }
body.association-soft.soft-home .rh-contact { padding-block:clamp(64px,7vw,104px); }
body.association-soft.soft-home .rh-button>span { transition:transform .32s var(--soft-ease),background .32s var(--soft-ease); }
body.association-soft.soft-home .rh-button:hover>span { transform:translate(2px,-1px); background:rgba(255,255,255,.25); }
body.association-soft.soft-home .rh-button:active { transform:scale(.98); }
body.association-soft.soft-core :is(.page-hero h1,.partner-hero h1) { letter-spacing:.045em; text-wrap:balance; }
body.association-soft.soft-core :is(.program-item,.whitepaper-hero-box,.form-container,.mvv-block) { box-shadow:inset 0 1px 0 #fff,var(--soft-shadow); }
body.association-soft.soft-core .workshop-cta { margin-top:56px; padding:clamp(26px,4vw,44px); border-radius:var(--soft-radius); background:linear-gradient(120deg,var(--soft-orange),#fffaf1 65%); }
body.association-soft.soft-core .workshop-cta p { line-height:1.9; }
body.association-soft.soft-core .hiroba-label { color:#52775b; }
body.association-soft:is(.soft-expo,.soft-dance) .dance-document-links a { color:#805a3f; border-color:#bea687; }
body.association-soft.soft-expo :is(.co-hub-hero h1,.governance-hero h1,.gov-intro h2) { text-wrap:balance; }
body.association-soft.soft-expo :is(.gov-campus-path>.text-link,.gov-intro .text-link,.gov-status) { max-width:100%; white-space:normal; overflow-wrap:anywhere; }
body.association-soft.soft-expo .gov-manifesto { background:linear-gradient(135deg,var(--soft-green),var(--soft-cream)); color:var(--soft-ink); border-color:#e0c496; border-radius:var(--soft-radius); box-shadow:var(--soft-shadow); }
body.association-soft.soft-expo .gov-manifesto>span { color:var(--soft-muted); }
body.association-soft.soft-expo .gov-manifesto>p { font-family:var(--soft-font); color:var(--soft-ink); font-size:clamp(28px,3.2vw,42px); }
body.association-soft.soft-expo .gov-manifesto>div { color:var(--soft-ink); border-color:var(--soft-edge); }
body.association-soft.soft-expo .gov-manifesto>a { color:#805a3f; border-color:var(--soft-edge); }
body.association-soft:is(.soft-expo,.soft-dance) .dance-business { background:var(--soft-green); color:var(--soft-ink); }
body.association-soft:is(.soft-expo,.soft-dance) .dance-business :is(h2,h3,.dance-business-intro>div>p:last-child,.dance-values p) { color:var(--soft-ink); }
body.association-soft:is(.soft-expo,.soft-dance) .dance-business :is(.section-marker,.dance-kicker,.dance-values span) { color:#805a3f; }
body.association-soft:is(.soft-expo,.soft-dance) .dance-business li { border-color:var(--soft-edge); }
body.association-soft:is(.soft-expo,.soft-dance) .dance-business .dance-zebra { border-color:var(--soft-edge); }
body.association-soft:is(.soft-expo,.soft-dance) .dance-business .dance-zebra>span { color:var(--soft-muted); }
body.association-soft:is(.soft-expo,.soft-dance) .dance-business .dance-zebra p { color:var(--soft-ink); }
body.association-soft:is(.soft-expo,.soft-dance) .local-event-hero .local-host-name { color:var(--soft-muted); }
body.association-soft.soft-canvas .maker-origin h2 { text-wrap:balance; }
@media(max-width:600px) {
  body.association-soft.soft-expo .co-committee-grid { grid-template-columns:minmax(0,1fr); gap:20px; }
  body.association-soft.soft-expo .co-committee-grid .co-card { padding:26px; }
  body.association-soft.soft-expo .gov-intro h2 { font-size:clamp(29px,7.7vw,36px); }
}
@media(max-width:360px) {
  body.association-soft.soft-core .workshop-page .page-hero h1 { font-size:26px; letter-spacing:.02em; }
}
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
  body.association-soft.soft-home .rh-story { transition:transform .5s var(--soft-ease),box-shadow .5s var(--soft-ease); }
  body.association-soft.soft-home .rh-story:hover { transform:translateY(-4px); box-shadow:0 24px 60px rgba(115,87,58,.09); }
}
@media(max-width:768px) {
  body.association-soft.soft-home :is(.rh-section,.rh-intro) { padding-block:64px; }
  body.association-soft.soft-home .rh-intro h2 { font-size:clamp(29px,7.4vw,36px); }
  body.association-soft.soft-home .rh-section-head h2 { font-size:27px; }
  body.association-soft.soft-home .rh-story-body { padding:22px 24px 28px; }
  body.association-soft.soft-home .rh-story h3 { font-size:22px; }
  body.association-soft.soft-home .rh-story-grid { gap:24px; }
  body.association-soft.soft-home .rh-publication { border-radius:24px; background:var(--soft-green); }
  body.association-soft.soft-core .workshop-cta { padding:28px 18px; border-radius:24px; }
}
@media(prefers-reduced-motion:reduce) {
  body.association-soft.soft-home .rh-button>span { transition:none; }
}
