/* Official models: compact introduction, portrait grid, direct consultation. */
.home-light.talents-page { background: var(--yolo-white); color: var(--yolo-ink); }
.talents-page main { display: block; }
.talents-page figure { margin: 0; }
.talents-page p { margin-top: 0; }
.talents-page :is(a, button, textarea, summary):focus-visible { outline: 3px solid var(--yolo-light); outline-offset: 4px; }
.talents-page :is(button, textarea) { font: inherit; }
.talents-page :is(section, main) { scroll-margin-top: 24px; }
.talents-wrap { width: min(1200px, calc(100% - 64px)); margin-inline: auto; }
.talents-page .talents-header { position: relative; padding: 16px 32px; border-bottom: 1px solid var(--rule); background: var(--yolo-white); backdrop-filter: none; gap: 24px; }
.talents-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 32px; }
.talents-nav a { text-decoration: none; font-size: var(--fs-small); min-height: 44px; display: inline-flex; align-items: center; gap: 12px; }
.talents-nav a[aria-current], .talents-nav a:hover { color: var(--yolo-light); }
.talents-nav .talents-nav-cta { background: var(--yolo-light); color: var(--yolo-white); border-radius: var(--rad-s); padding: 8px 20px; font-weight: 600; }
.talents-kicker { font-family: 'Josefin Sans', sans-serif; font-size: var(--fs-small); letter-spacing: .16em; line-height: 1.6; color: var(--ink-2); margin-bottom: 16px; }
.talents-hero { padding-block: 40px 32px; }
.talents-hero h1 { font-family: 'Noto Sans JP', sans-serif; font-size: clamp(32px, 4vw, 56px); letter-spacing: -.035em; line-height: 1.35; font-weight: 600; margin-bottom: 16px; }
.talents-lead { color: var(--ink-2); font-size: clamp(15px, 1.6vw, 20px); line-height: 1.8; margin-bottom: 0; }
.talents-text-link { color: var(--yolo-light); font-size: var(--fs-body); text-decoration: none; border: 0; border-bottom: 1px solid currentColor; background: none; cursor: pointer; padding: 8px 0; min-height: 44px; display: inline-flex; gap: 24px; align-items: center; }
.talents-directory { padding-block: 16px 32px; }
.talents-directory-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; margin-bottom: 12px; }
.talents-directory-toolbar h2 { display: flex; gap: 20px; align-items: center; font: 500 17px/1.5 'Noto Sans JP', sans-serif; }
.talents-directory-toolbar h2 > span:first-child { font: 600 32px/1 'Josefin Sans', sans-serif; }
.talents-directory-toolbar h2 > span:last-child { border-left: 1px solid var(--rule); padding-left: 20px; color: var(--ink-2); }
.talents-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.talents-filters button { border: 1px solid var(--rule); background: transparent; color: var(--yolo-ink); border-radius: var(--rad-s); min-height: 44px; padding: 8px 16px; cursor: pointer; font-size: var(--fs-small); }
.talents-filters button[aria-pressed='true'] { background: var(--yolo-light); color: var(--yolo-white); border-color: var(--yolo-light); }
.talents-extra-filters { margin-block: 8px 16px; font-size: var(--fs-small); color: var(--ink-2); }
.talents-extra-filters summary { width: fit-content; min-height: 44px; cursor: pointer; padding-block: 8px; }
.talents-extra-filters .talents-filters { padding-top: 8px; }
.talents-result { margin-bottom: 16px; font-size: var(--fs-small); color: var(--ink-2); }
.talents-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 16px; }
.talent-card a { text-decoration: none; display: block; }
.talent-card-photo { position: relative; overflow: hidden; background: var(--rule); aspect-ratio: 3/4; }
.talent-card img { width: 100%; height: auto; aspect-ratio: 3/4; object-fit: cover; display: block; }
.talent-sample-label { position: absolute; top: 12px; left: 12px; background: var(--yolo-paper); color: var(--yolo-ink); padding: 4px 8px; font: 400 var(--fs-label)/1.5 'Josefin Sans', sans-serif; letter-spacing: .1em; }
.talent-card-caption { padding-top: 16px; }
.talent-card-caption p[lang] { font: 400 16px/1.4 'Josefin Sans', sans-serif; margin: 4px 0; color: var(--ink-2); overflow-wrap: anywhere; }
.talent-card-caption h3 { font: 500 20px/1.5 'Noto Sans JP', sans-serif; margin: 0; overflow-wrap: anywhere; }
.talent-card-caption .talent-card-area { font-size: var(--fs-label); color: var(--ink-2); margin: 8px 0 0; }
.talent-card-tags { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 12px 0 8px; }
.talent-card-tags li { background: var(--rule); border-radius: var(--rad-s); padding: 4px 8px; font-size: var(--fs-label); }
.talent-profile-link { color: var(--yolo-light); border-bottom: 1px solid currentColor; display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: var(--fs-body); padding-block: 8px; min-height: 44px; }
.talents-empty { border-block: 1px solid var(--rule); padding: 40px 32px; background: var(--yolo-white); }
.talents-empty h3 { font: 500 clamp(19px, 2vw, 24px)/1.6 'Noto Sans JP', sans-serif; }
.talents-empty p { color: var(--ink-2); margin-block: 16px 24px; }
.talents-page .talents-sample-note { padding: 16px; border-radius: var(--rad-s); background: var(--rule); text-align: center; font-size: var(--fs-small); margin: 24px 0 0; }
.talents-booking { padding-block: 48px; border-top: 1px solid var(--rule); }
.casting-layout { display: grid; grid-template-columns: 1.3fr 1fr; gap: 64px; align-items: center; }
.booking-heading h2 { font: 500 clamp(26px, 2.8vw, 36px)/1.55 'Noto Sans JP', sans-serif; margin-bottom: 16px; }
.booking-heading > p:not(.talents-kicker) { color: var(--ink-2); font-size: var(--fs-small); }
.talents-page .booking-status-note { margin: 16px 0 0; font-size: var(--fs-label); color: var(--ink-2); }
.casting-action .button { width: 100%; justify-content: space-between; gap: 16px; border-radius: var(--rad-s); padding: 16px 24px; margin-bottom: 16px; }
.casting-action .casting-note { font-size: var(--fs-small); color: var(--ink-2); margin: 0 0 16px; }
.casting-copy { background: none; border: 0; border-bottom: 1px solid currentColor; color: var(--yolo-light); padding: 8px 0; cursor: pointer; min-height: 44px; font-size: var(--fs-small); }
.copy-status { margin: 12px 0 0; color: var(--ink-2); font-size: var(--fs-small); }
.talents-about { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; padding-block: 48px; border-top: 1px solid var(--rule); }
.talents-about h2, .talents-about h3 { font: 500 clamp(24px, 2.4vw, 30px)/1.6 'Noto Sans JP', sans-serif; margin: 0 0 16px; }
.talents-about p:not(.talents-kicker) { font-size: var(--fs-small); color: var(--ink-2); }
.about-intro .talents-text-link { margin-right: 24px; font-size: var(--fs-small); gap: 8px; }
.talents-join { padding-left: 40px; border-left: 1px solid var(--rule); }
.talents-join .talents-text-link { font-size: var(--fs-small); gap: 12px; }
.talents-about .join-note { font-size: var(--fs-label); }
.mobile-break { display: none; }
.copy-fallback { display: block; width: 100%; min-height: 240px; padding: 16px; border: 1px solid var(--rule); background: var(--yolo-white); color: var(--yolo-ink); border-radius: var(--rad-s); }
.talents-footer { border-top: 1px solid var(--rule); padding-block: 24px; }
.talents-footer > div { display: flex; flex-wrap: wrap; gap: 24px; align-items: center; justify-content: space-between; }
.talents-footer a { text-decoration: none; }
.talents-footer nav { display: flex; flex-wrap: wrap; gap: 24px; font-size: var(--fs-small); }
.talents-footer p { font-size: var(--fs-label); color: var(--ink-2); margin: 0; }
.talents-breadcrumb { display: flex; gap: 16px; margin-block: 40px; font-size: var(--fs-small); }
.talents-breadcrumb a { color: var(--ink-2); text-underline-offset: 4px; }
.talents-profile { display: grid; grid-template-columns: 1.05fr 1fr; gap: 64px; align-items: center; margin-bottom: 96px; }
.profile-portrait img { width: 100%; height: auto; aspect-ratio: 3/4; object-fit: cover; display: block; }
.profile-info { min-width: 0; }
.profile-roman { font: 400 24px/1.3 'Josefin Sans', sans-serif; color: var(--ink-2); margin-bottom: 24px; overflow-wrap: anywhere; }
.profile-info h1 { font: 500 clamp(28px, 3.2vw, 42px)/1.4 "Noto Sans JP",sans-serif; margin: 0 0 8px; overflow-wrap: anywhere; }
.profile-contact-note { font-size: var(--fs-label); color: var(--ink-2); margin: 12px 0 0; }
.profile-intro { color: var(--ink-2); white-space: pre-line; }
.profile-facts { margin-block: 32px; border-top: 1px solid var(--rule); }
.profile-facts > div { display: grid; grid-template-columns: 120px 1fr; gap: 16px; padding-block: 12px; border-bottom: 1px solid var(--rule); font-size: var(--fs-small); }
.profile-facts dt { color: var(--ink-2); }
.profile-facts dd { margin: 0; overflow-wrap: anywhere; }
.profile-work-title { font: 500 var(--fs-small)/1.5 'Noto Sans JP', sans-serif; }
.talents-tags { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 16px 0 32px; }
.talents-tags li { font-size: var(--fs-small); padding: 4px 12px; border: 1px solid var(--rule); border-radius: var(--rad-pill); }
.profile-info .button { font-size: var(--fs-small); gap: 16px; padding-inline: 24px; max-width: 100%; }
.profile-gallery { border-top: 1px solid var(--rule); padding-block: 64px; }
.profile-gallery .talents-kicker, .profile-credits .talents-kicker { margin-bottom: 12px; }
.profile-gallery > div { margin-top: 32px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.profile-gallery img { width: 100%; height: auto; aspect-ratio: 3/4; object-fit: cover; display: block; }
.profile-credits { border-top: 1px solid var(--rule); padding-block: 48px; }
.profile-credits ul { padding-left: 1.4em; color: var(--ink-2); }
.profile-back { margin-block: 24px 64px; }
.demo-notice { background: var(--yolo-white); color: var(--ink-2); border-bottom: 1px solid var(--rule); padding: 12px 24px; font-size: var(--fs-small); text-align: center; }

/* Development only: display photo regions from the unchanged fictional concept.
   The PNG and these sample filenames are copied into an isolated temporary folder only. */
.talents-demo :is(.talent-card-photo, .profile-portrait, .profile-gallery figure):has(img[src*="-concept.png"]) { position: relative; overflow: hidden; aspect-ratio: 3/4; }
.talents-demo img[src*="-concept.png"] { position: absolute; top: -111.7%; width: 445%; max-width: none; height: auto; aspect-ratio: auto; object-fit: fill; }
.talents-demo img[src$="sample-a-concept.png"] { left: -15.6%; }
.talents-demo img[src$="sample-b-concept.png"] { left: -121%; }
.talents-demo img[src$="sample-c-concept.png"] { left: -225.5%; }
.talents-demo img[src$="sample-d-concept.png"] { left: -330%; }
@media (max-width: 959px) {
  .talents-directory-toolbar { align-items: start; flex-direction: column; }
  .talents-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; }
  .talents-profile { gap: 32px; align-items: start; }
  .profile-facts > div { grid-template-columns: 1fr; gap: 4px; }
  .casting-layout { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 599px) {
  .talents-wrap { width: calc(100% - 40px); }
  .talents-page .talents-header { padding: 12px 20px; display: block; }
  .talents-header .brand { width: fit-content; min-height: 32px; }
  .talents-nav { gap: 16px; margin-top: 8px; justify-content: space-between; }
  .talents-nav a { font-size: var(--fs-label); }
  .talents-nav .talents-nav-cta { padding: 8px 12px; gap: 8px; }
  .talents-hero { padding-block: 32px 24px; }
  .talents-hero h1 { font-size: clamp(28px, 7.7vw, 40px); line-height: 1.45; }
  .talents-hero .talents-kicker { font-size: var(--fs-label); margin-bottom: 12px; }
  .talents-lead { font-size: var(--fs-small); }
  .talents-directory { padding-top: 8px; }
  .talents-directory-toolbar h2 { font-size: var(--fs-small); gap: 16px; }
  .talents-directory-toolbar h2 > span:first-child { font-size: 28px; }
  .talents-directory-toolbar h2 > span:last-child { padding-left: 16px; }
  .talents-directory-toolbar .talents-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  .talents-filters button { padding-inline: 12px; }
  .talents-extra-filters { margin-bottom: 8px; }
  .talents-grid { gap: 24px 12px; }
  .talent-card-caption { padding-top: 12px; }
  .talent-card-caption h3 { font-size: var(--fs-label); }
  .talent-card-tags { gap: 4px; margin-top: 8px; }
  .talent-card-tags li { padding: 4px 6px; font-size: 11px; }
  .talent-profile-link { font-size: var(--fs-small); gap: 4px; }
  .talent-sample-label { left: 8px; top: 8px; font-size: 10px; padding: 4px 6px; }
  .talents-page .talents-sample-note { padding: 12px; font-size: var(--fs-label); }
  .talents-empty { padding: 24px 20px; }
  .talents-empty p { font-size: var(--fs-small); }
  .talents-booking { padding-block: 32px; }
  .booking-heading h2 { font-size: 26px; }
  .mobile-break { display: inline; }
  .casting-action .button { padding: 12px 16px; font-size: var(--fs-small); }
  .desktop-break { display: none; }
  .talents-footer > div { display: block; }
  .talents-footer nav { gap: 12px 20px; margin-block: 20px; }
  .talents-breadcrumb { margin-block: 24px; }
  .talents-profile { grid-template-columns: 1fr; gap: 32px; margin-bottom: 48px; }
  .profile-info h1 { margin-bottom: 24px; }
  .profile-facts > div { grid-template-columns: 100px 1fr; gap: 12px; }
  .profile-gallery { padding-block: 40px; }
  .profile-gallery > div { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .talents-page *, .talents-page *::before, .talents-page *::after { scroll-behavior: auto; transition: none; }
}

@media (max-width:959px) { .talents-about {gap:32px;} .talents-join {padding-left:24px;} }
@media (max-width:599px) { .talent-card-caption h3 {font-size:16px;} .talent-card-caption p[lang] {font-size:14px;} .talents-booking,.talents-about{padding-block:32px;} .casting-layout,.talents-about{grid-template-columns:1fr;gap:24px;} .talents-join{padding:24px 0 0;border-left:0;border-top:1px solid var(--rule);} .profile-info h1{margin-bottom:8px;} }
/* Keep profile links aligned when names or tags wrap. */
.talent-card a {display:flex;flex-direction:column;height:100%;}
.talent-card-photo {flex-shrink:0;}
.talent-profile-link {margin-top:auto;}
