:root{
  --joyu-accent:#ff1775;
  --joyu-accent-dark:#d70f5f;
  --joyu-accent-soft:#fff1f7;
  --joyu-ink:#161616;
  --joyu-muted:#737373;
  --joyu-line:#ececec;
}

/*
 * JOYU LAB Core v1.4.7
 * RE:DIVERの通常投稿DOM・本文幅・サイドバー・見出し・文字組みを優先する。
 * JOYU LAB側では女優ページ固有パーツだけを装飾する。
 */

/* RE:DIVERの#main直下に通常投稿と同じarticleとして配置する。 */
.joyu-actress-article,.joyu-actress-index-article{box-sizing:border-box;min-width:0}
.joyu-actress-header{margin-bottom:1.6em}
.joyu-actress-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0 0 10px;
  color:var(--joyu-accent);
  font-weight:800;
  font-size:12px;
  letter-spacing:.16em;
}
.joyu-actress-kicker:before{content:"";width:26px;height:2px;background:var(--joyu-accent);display:block}
.joyu-actress-meta-line{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:12px;font-size:12px;color:#888}

/* Hero: the v1.2 elements are retained. */
.joyu-actress-hero{
  display:grid;
  grid-template-columns:minmax(220px,36%) minmax(0,1fr);
  gap:24px;
  align-items:start;
  margin:0 0 2.2em;
}
.joyu-actress-main-image{
  min-width:0;
  background:#f7f7f7;
  border-radius:10px;
  padding:12px;
  box-sizing:border-box;
}
.joyu-actress-hero.joyu-image-layout-landscape{
  grid-template-columns:1fr;
}
.joyu-image-layout-landscape .joyu-actress-main-image{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  max-width:none;
  margin:0;
}
.joyu-image-layout-landscape .joyu-actress-main-image img{
  width:auto;
  max-width:100%;
  max-height:720px;
}
.joyu-actress-main-image img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}
.joyu-actress-main-image-placeholder{
  min-height:340px;
  border:2px dashed var(--joyu-accent);
  border-radius:10px;
  padding:48px 18px;
  text-align:center;
  background:var(--joyu-accent-soft);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  line-height:1.8;
}
.joyu-actress-hero-panel{
  border:1px solid var(--joyu-line);
  border-radius:10px;
  padding:22px;
  background:#fff;
}
.joyu-actress-nameblock{padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--joyu-line)}
.joyu-actress-name{font-size:1.65em;font-weight:800;line-height:1.25;margin:0 0 4px;color:var(--joyu-ink)}
.joyu-actress-reading{font-size:.86em;color:#777;margin:0 0 2px}
.joyu-actress-english{font-size:.84em;color:#999;margin:0;letter-spacing:.05em}
.joyu-actress-quickfacts{margin:0;display:grid;gap:0}
.joyu-actress-quickfacts>div{display:grid;grid-template-columns:8em minmax(0,1fr);gap:12px;padding:10px 0;border-bottom:1px solid #f0f0f0}
.joyu-actress-quickfacts dt{font-size:.82em;font-weight:800;color:#777}
.joyu-actress-quickfacts dd{font-size:.92em;line-height:1.65;margin:0;color:#222}
.joyu-actress-tags{display:flex;flex-wrap:wrap;gap:7px;margin:16px 0 0}
.joyu-actress-tags span{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;background:var(--joyu-accent-soft);color:var(--joyu-accent-dark);font-size:.78em;font-weight:700}
.joyu-actress-activity{margin:16px 0 0;padding:12px 14px;background:#f8f8f8;border-left:3px solid var(--joyu-accent);font-size:.86em;line-height:1.7}
.joyu-actress-term-description{margin-top:16px;font-size:.92em;line-height:1.8;color:#555}

/* Do not restyle RE:DIVER headings. Only spacing helpers for generated sections. */
.joyu-actress-content>section{scroll-margin-top:90px}
.joyu-actress-content a{overflow-wrap:anywhere}

/* Profile table generated from actress term meta. */
.joyu-actress-profile-table-wrap{width:100%;overflow-x:auto}
.joyu-actress-profile-table{width:100%;border-collapse:collapse;table-layout:auto}
.joyu-actress-profile-table th,
.joyu-actress-profile-table td{padding:.8em 1em;border:1px solid #e5e5e5;vertical-align:top;text-align:left;line-height:1.7}
.joyu-actress-profile-table th{width:11em;background:#fafafa;font-weight:800;white-space:nowrap}
.joyu-actress-profile-table td{overflow-wrap:anywhere}

/* In-page navigation */
.joyu-actress-nav{margin:1.6em 0 2.4em;padding:1em;border:1px solid #e9e9e9;border-radius:10px;background:#fafafa}
.joyu-actress-nav ul{display:flex;flex-wrap:wrap;gap:.45em;list-style:none!important;margin:0!important;padding:0!important}
.joyu-actress-nav li{margin:0!important;padding:0!important}
.joyu-actress-nav a{display:block;padding:.45em .8em;border:1px solid #ddd;border-radius:999px;background:#fff;color:inherit;text-decoration:none;font-size:.86em;font-weight:700}
.joyu-actress-nav a:hover{border-color:var(--joyu-accent);color:var(--joyu-accent)}

/* JOYU LAB-specific content parts. */
.joyu-analysis-box,.joyu-analysis-summary{margin:1.5em 0;padding:1.25em 1.4em;border:1px solid #ffd0e1;border-radius:10px;background:linear-gradient(135deg,#fff8fb,#fff)}
.joyu-point{margin:1.5em 0;padding:1.2em 1.4em;border-radius:10px;background:#171717;color:#fff}
.joyu-point ul{margin:0!important}
.joyu-note{margin:1.5em 0;padding:1em 1.2em;border-left:4px solid var(--joyu-accent);border-radius:0 8px 8px 0;background:#fff5f9}
.joyu-work-evidence{margin:1.5em 0;padding:1.25em 1.35em;border:1px solid #e8e8e8;border-radius:10px;background:#fff}
.joyu-work-evidence:before{content:"WORK DATA";display:inline-block;margin-bottom:.8em;padding:.3em .55em;border-radius:4px;background:#111;color:#fff;font-size:.72em;font-weight:800;letter-spacing:.1em}
.joyu-work-evidence ul{display:flex;flex-wrap:wrap;gap:.4em 1em;list-style:none!important;margin:0 0 1em!important;padding:0!important}
.joyu-work-evidence li{margin:0!important}
.joyu-editor-profile,.editor-profile{margin:2.5em 0 0;padding:1.25em 1.4em;border:1px solid #e8e8e8;border-radius:10px;background:#fafafa}
.joyu-auto-posts-placeholder{padding:1.2em;border:2px dashed #ddd;border-radius:8px;background:#fafafa;text-align:center;color:#777}
.joyu-admin-only-note{padding:1em 1.2em;background:#fff7da;border:1px solid #e6c64f;border-radius:8px}

/* Related review cards */
.joyu-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1em;margin:1.5em 0}
.joyu-review-card{overflow:hidden;border:1px solid #eee;border-radius:9px;background:#fff}
.joyu-review-card-link{display:block;height:100%;color:inherit;text-decoration:none}
.joyu-review-card-image img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.joyu-review-card-body{padding:.9em 1em 1em}
.joyu-review-card-body h3{margin:0 0 .45em!important;font-size:1em;line-height:1.55}
.joyu-review-card-body time{font-size:.78em;color:#888}
.joyu-empty-reviews{grid-column:1/-1;padding:1em;background:#fafafa;border:1px solid #eee;border-radius:8px}

/* Footer actions */
.joyu-actress-footer{display:flex;flex-wrap:wrap;gap:10px;margin-top:2.5em;padding-top:1.3em;border-top:1px solid var(--joyu-line)}
.joyu-actress-footer a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 18px;border-radius:999px;text-decoration:none;font-weight:700;font-size:13px}
.joyu-back-to-actress{background:#111;color:#fff}
.joyu-edit-actress{border:1px solid #ddd;color:#333;background:#fff}

/* Actress index */
.joyu-actress-index-header{margin-bottom:1.6em}
.joyu-actress-index-header p:last-child{line-height:1.9;margin-top:.9em;color:#555}
.joyu-actress-search{display:flex;gap:10px;margin:0 0 1.6em;padding:14px;background:#fafafa;border:1px solid #ededed;border-radius:10px}
.joyu-actress-search input{flex:1;min-width:0;padding:12px 13px;border:1px solid #d8d8d8;border-radius:7px;background:#fff}
.joyu-actress-search button{padding:12px 20px;border:0;border-radius:7px;background:#111;color:#fff;font-weight:700;cursor:pointer}
.joyu-actress-search button:hover{background:var(--joyu-accent)}
.joyu-actress-search-result{margin:0 0 1.3em;font-weight:700}
.joyu-actress-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.joyu-actress-card{margin:0;background:#fff;border:1px solid #ececec;border-radius:10px;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}
.joyu-actress-card:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.08)}
.joyu-actress-card-link{display:block;color:inherit;text-decoration:none;height:100%}
.joyu-actress-card-image{aspect-ratio:4/5;background:#f5f5f5;overflow:hidden;padding:8px;box-sizing:border-box}
.joyu-actress-card-image img{width:100%;height:100%;object-fit:contain;object-position:center;display:block}
.joyu-actress-card-noimage{height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#111,#333);color:var(--joyu-accent);font-weight:800;letter-spacing:.08em}
.joyu-actress-card-body{padding:13px 14px 15px}
.joyu-actress-card-body h2{font-size:1.08em;line-height:1.4;margin:0 0 4px}
.joyu-actress-card-reading{font-size:.78em;color:#777;margin:0 0 8px}
.joyu-actress-card-bodytype{font-size:.76em;margin:0 0 8px;padding:4px 8px;display:inline-block;border-radius:999px;background:var(--joyu-accent-soft);color:var(--joyu-accent-dark);font-weight:700}
.joyu-actress-card-story{font-size:.78em;line-height:1.6;color:#666;margin:0}
.joyu-actress-pagination{margin:2em 0 0}
.joyu-actress-pagination ul{display:flex;gap:7px;list-style:none;padding:0;margin:0;flex-wrap:wrap}
.joyu-actress-pagination a,.joyu-actress-pagination span{display:block;padding:8px 12px;border:1px solid #ddd;border-radius:6px;text-decoration:none}
.joyu-actress-pagination .current{background:#111;color:#fff;border-color:#111}
.joyu-actress-empty{padding:2em;text-align:center;background:#f7f7f7;border-radius:10px}

@media(max-width:900px){
  .joyu-actress-hero{grid-template-columns:1fr;gap:18px}
  .joyu-actress-main-image{max-width:460px;margin:0 auto;width:100%}
  .joyu-image-layout-landscape .joyu-actress-main-image{max-width:none}
  .joyu-actress-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .joyu-actress-quickfacts>div{grid-template-columns:1fr;gap:4px}
  .joyu-actress-profile-table th{width:8em;white-space:normal}
  .joyu-review-grid{grid-template-columns:1fr}
  .joyu-actress-search{flex-direction:column}
  .joyu-actress-search button{width:100%}
}
@media(max-width:520px){
  .joyu-actress-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .joyu-actress-card-body{padding:10px}
}

/* Article hubs: RE:DIVER owns the layout; these rules only add JOYU LAB accents. */
.joyu-content-hub{margin:0 0 1.8em}
.joyu-content-hub-header{padding:clamp(1.25em,3vw,2.25em);border-radius:12px;background:linear-gradient(135deg,#171717,#2b2227);color:#fff}
.joyu-content-hub-header h1{margin:0 0 .45em!important;color:#fff;font-size:clamp(1.75rem,4vw,2.55rem);line-height:1.25}
.joyu-content-hub-header p{max-width:58em;margin:0!important;color:#f1e9ed;line-height:1.8}
.joyu-content-hub-nav{display:flex;flex-wrap:wrap;gap:.55em;margin-top:1em}
.joyu-content-hub-nav a{display:inline-flex;align-items:center;min-height:40px;padding:.5em .95em;border:1px solid #e5e5e5;border-radius:999px;background:#fff;color:#292529;text-decoration:none;font-size:.88em;font-weight:700}
.joyu-content-hub-nav a:hover,.joyu-content-hub-nav a[aria-current="page"]{border-color:#d62b70;background:#d62b70;color:#fff}
.joyu-new-list,.joyu-ranking-list{margin-top:1.2em}
.joyu-new-list .pb,.joyu-ranking-list .pb{overflow:hidden;border:1px solid #eee;border-radius:11px;background:#fff;transition:transform .18s ease,box-shadow .18s ease}
.joyu-new-list .pb:hover,.joyu-ranking-list .pb:hover{transform:translateY(-2px);box-shadow:0 9px 24px rgba(0,0,0,.09)}
.joyu-new-list .pb-title,.joyu-ranking-list .pb-title{font-size:1.02em;line-height:1.55}
.joyu-card-actress{margin:.25em 0;color:#5f5660;font-size:.78em;line-height:1.55}
.joyu-card-actress span{margin-right:.45em;color:#d62b70;font-weight:800}
.joyu-card-read-more{margin-left:auto;color:#d62b70;font-size:.78em;font-weight:800}

@media(max-width:700px){
  .joyu-content-hub{margin-bottom:1.35em}
  .joyu-content-hub-header{padding:1.25em 1.1em}
  .joyu-content-hub-nav{gap:.4em}
  .joyu-content-hub-nav a{min-height:38px;padding:.45em .75em;font-size:.82em}
  .joyu-new-list,.joyu-ranking-list{--gird--column--sm:1!important}
  .joyu-new-list .pb-title,.joyu-ranking-list .pb-title{font-size:1em}
}



/* Directory-only navigation and cards; RE:DIVER owns the surrounding layout. */
.joyu-actress-index .joyu-actress-kana{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.joyu-actress-index .joyu-actress-kana a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:52px;padding:8px 14px;box-sizing:border-box;border:1px solid #dedede;border-radius:999px;background:#fff;color:#222;text-decoration:none;font-weight:700;font-size:14px}
.joyu-actress-index .joyu-actress-kana a:hover,.joyu-actress-index .joyu-actress-kana a[aria-current="page"]{background:#161616;border-color:#161616;color:#fff}
.joyu-actress-index .joyu-actress-kana-note{font-size:12px;color:#666;margin:0 0 20px}
.joyu-actress-index .joyu-actress-card-link:focus-visible,.joyu-actress-index .joyu-actress-kana a:focus-visible,.joyu-actress-index .joyu-actress-search :focus-visible{outline:3px solid #ff1775;outline-offset:3px}
.joyu-actress-index .joyu-actress-card-body h2{padding:0;border:0;background:none;box-shadow:none;font-size:1.08em;line-height:1.5;margin:0 0 6px;color:#161616}
.joyu-actress-index .joyu-actress-card-body h2:before,.joyu-actress-index .joyu-actress-card-body h2:after{display:none}
.joyu-actress-index .joyu-actress-card-bodytype{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;line-height:1.7;border-radius:6px}
.joyu-actress-index .joyu-actress-card-more{display:block;margin-top:10px;color:#c61059;font-size:12px;font-weight:700}
@media(max-width:520px){.joyu-actress-index .joyu-actress-kana{gap:6px}.joyu-actress-index .joyu-actress-kana a{flex:1 0 16%;min-width:44px;padding:8px;font-size:13px}.joyu-actress-index .joyu-actress-card-more{font-size:11px}}
