/* Limited additions to the supplied V31 design. Original page styles remain inline. */
[hidden] { display: none !important; }

.handoff-source {
  display: inline-block;
  margin-top: 12px;
  font-size: 12px;
  line-height: 1.8;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.handoff-film {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  align-items: center;
  gap: 36px;
  margin: 36px 0 48px;
  padding: 28px 0;
  border-top: 1px solid var(--line, #d9dfdf);
  border-bottom: 1px solid var(--line, #d9dfdf);
}

.handoff-film h3 { margin: 0; }
.handoff-film-note { margin-top: 16px; color: var(--muted, #5d6a70); font-size: 13px; }
.handoff-film video { display: block; width: 100%; aspect-ratio: 16 / 9; background: #fff; }

.academy-intro { text-wrap: balance; }
.page-contact .contact-aside h2 { margin-bottom: 14px; }
.page-contact .contact-aside > p:not(.contact-eyebrow) { text-wrap: balance; }

@media (max-width: 760px) {
  .handoff-film { grid-template-columns: minmax(0, 1fr); gap: 20px; }
}

/* 2026-10-15: readability and restrained accents, keeping the V31 composition. */
:root { --muted: #4e6068; --line: #ccd7d8; }

.v29-site .section-kicker,
.v29-site .cf-kicker,
.v29-site .wf-label,
.v29-site .wf-story .wf-label,
.v29-site .materials-kicker,
.v29-site .contact-eyebrow,
.v29-site .wf-events .we-kicker,
.v29-site .wf-events .we-project {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .08em;
  line-height: 1.8;
}

.v29-site .section-kicker { color: var(--section-label, #725b31); }
.v29-site .section-kicker::before { height: 2px; background: #ad9363; }
.v29-site .contact,
.v29-site .business { --section-label: #dfc99f; }

.v29-site .page-heading,
.v29-site .page-intro { background: #edf2f1; border-bottom-color: #ccd7d8; }
.v29-site .page-development-en,
.v29-site .page-heading .page-deck { color: #455c66; font-size: 16px; }

.v29-site .cf-solutions,
.v29-site .mvp-section { background: #f0f4f3; }
.v29-site .academy { background: #fff; }
.v29-site .program-row { border-color: #c6d3d4; }
.v29-site .course { border-bottom: 2px solid #a89062; }
.v29-site .course > :not(.course-photo) { margin-inline: 24px; }
.v29-site .course .course-title { margin-top: 28px; }
.v29-site .course .basic-schedule-jump { margin-top: 28px; margin-bottom: 4px; }
.v29-site .course dt { font-size: 13px; color: #725b31; font-weight: 600; }
.v29-site .course dd { font-size: 16px; line-height: 1.9; line-break: strict; word-break: auto-phrase; text-wrap: pretty; }
.v29-site .academy-intro,
.v29-site .cf-solutions-head .cf-intro { font-size: 17px; color: #455a64; line-height: 1.95; }
.v29-site .program-row .category,
.v29-site .program-row .condition { font-size: 14px; color: #4e6068; }
.cf-service-name > span { font-size: 13px; color: #725b31; }
.cf-service-rows h4 { font-size: 18px; }
.cf-service-rows p { font-size: 16px; line-height: 1.95; }
.cf-service-rows a { font-size: 14px; }

/* Explicit user exception: these arrows communicate change within the comparison. */
.cf-page .cf-manager-head .cf-kicker { font-size: 13px; color: #dfc99f; }
.cf-manager-head > p:last-child { font-size: 17px; color: #d5e0e2; }
.cf-role-table .cf-role-heading { font-size: 13px; color: #dfc99f; }
.cf-role-table > div { border-bottom-color: #54717c; }
.cf-role-table > div > span.cf-role-arrow { color: #d6bc8b; font-size: 26px; }
.cf-role-table .cf-role-label { font-size: 12px; color: #dfc99f; }
.cf-role-table p { font-size: 19px; }
.cf-page .cf-source { font-size: 13px; line-height: 1.9; }
.cf-page .cf-source-dark { color: #c3d3d8; }

.page-contact .contact-intro,
.page-privacy .contact-intro { background: linear-gradient(115deg, #e9f1ef, #f3f0e7); }
.page-contact .contact-main { background: #f0f4f3; }
.page-contact .contact-form-shell { border-color: #c4d1d2; border-top-color: #a89062; box-shadow: none; }
.page-contact .contact-steps li { color: #4d626b; }
.page-contact .contact-steps li[aria-current="step"] { color: #142f3b; }
.page-contact .field-required { background: #eae1ce; color: #554223; }
.page-contact .field-optional { background: #e8efec; color: #435c58; }

@media (max-width: 760px) {
  .v29-site .section-kicker,
  .v29-site .cf-kicker,
  .v29-site .wf-label,
  .v29-site .wf-story .wf-label,
  .v29-site .materials-kicker,
  .v29-site .contact-eyebrow,
  .v29-site .wf-events .we-kicker,
  .v29-site .wf-events .we-project { font-size: 12px; }
  .v29-site .academy-intro,
  .v29-site .cf-solutions-head .cf-intro,
  .v29-site .page-development-en { font-size: 16px; }
  .v29-site .course > :not(.course-photo) { margin-inline: 22px; }
  .cf-manager-head > p:last-child { font-size: 16px; }
  .cf-role-table p { font-size: 17px; }
  .cf-role-table > div > span.cf-role-arrow { font-size: 23px; margin-block: 3px; }
}

/* Consistent, quiet legal credit across all primary pages. */
.v29-site .footer-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px; padding-top: 28px; }
.v29-site .footer-copyright { color: #c2cbd0; font-size: 12px; letter-spacing: .04em; line-height: 1.8; }
.v29-site .footer-bottom .footer-top { margin-top: 0; }
.contact-mode-note { padding:18px 20px; border-left:2px solid #a89062; background:#f7f6f0; }
.contact-success-receipt { margin-top:20px; font-size:14px; color:#4e6068; }

/* Corporate guidance and policies remain discoverable without crowding the header. */
.v29-site .footer-policies { display:flex; flex-wrap:wrap; gap:12px 28px; border-top:1px solid #425564; margin-top:30px; padding-top:24px; font-size:13px; line-height:1.9; color:#d1dadd; }
.v29-site .footer-policies a { padding-block:6px; }
.v29-site .site-footer .footer-bottom { border-top:0; margin-top:0; }
.v29-site .corporate-entry { padding:42px 0; background:#edf2f1; border-top:1px solid #ccd7d8; }
.v29-site .corporate-entry .wrap { display:flex; align-items:center; justify-content:space-between; gap:32px; }
.v29-site .corporate-entry h2 { font-family:var(--serif,'Yu Mincho',serif); font-size:27px; font-weight:500; line-height:1.7; color:#152b3d; margin:0 0 10px; }
.v29-site .corporate-entry p { font-size:16px; line-height:1.9; color:#4e6068; margin:0; }
.v29-site .corporate-entry .section-label { font-size:13px; color:#725b31; margin-bottom:12px; }
.v29-site .corporate-entry a { flex-shrink:0; color:#152b3d; font-size:15px; padding-block:10px; text-underline-offset:5px; }
@media(max-width:760px){
  .v29-site .footer-policies { flex-direction:column; gap:8px; margin-top:25px; padding-top:20px; }
  .v29-site .corporate-entry { padding:32px 0; }
  .v29-site .corporate-entry .wrap { display:block; }
  .v29-site .corporate-entry h2 { font-size:24px; }
  .v29-site .corporate-entry a { display:inline-block; margin-top:16px; }
}

/* Icon-only mobile navigation; retain a 44px touch target. */
@media(max-width:1100px){
  .v29-site .site-header .menu-toggle { width:44px; min-width:44px; justify-content:center; gap:0; padding:8px; }
}
