/* Presentation only. The option haircare_design_v4 disables this layer. */
.hc-v4, body:has(.hc-v4) {
  --hc-bg:#fff; --hc-bg-page:#fff; --hc-bg-soft:#f8f7f9;
  --hc-primary:#94445f; --hc-primary-hover:#7f354e; --hc-primary-soft:#f8edf1;
  --hc-text:#302c31; --hc-text-muted:#756c75; --hc-border:#e8e3e7; --hc-border-strong:#d7cdd3;
  --hc-radius-sm:6px; --hc-radius-md:8px; --hc-content-max:1180px;
  --hc-serif:'Yu Mincho','Hiragino Mincho ProN','Noto Sans JP','Yu Gothic',Meiryo,sans-serif;
  --br:#94445f; --br-l:#f8edf1; --br-d:#7f354e;
  --mg:#3a7565; --mg-l:#eff5f2; --mg-d:#28594c; --bg:#fff; --line:#e8e3e7; --tx:#302c31; --txl:#756c75;
  --danger:#b13f56; --danger-l:#fcf0f3; --danger-d:#9d3046;
  --color_main:#94445f; --color_link:#94445f; --color_text:#302c31; --color_bg:#fff;
  --color_header_bg:#fff; --color_header_text:#302c31; --color_footer_bg:#faf8fa; --color_footer_text:#302c31;
  background:#fff; color:#302c31;
}
.hc-v4, .hc-v4 *, body:has(.hc-v4) .hc-dock * { letter-spacing:0!important; }
.hc-v4 a, .hc-v4 button { -webkit-tap-highlight-color:transparent; }
.hc-v4 :is(a,button,input,select,textarea,summary):focus-visible { outline:2px solid #94445f!important; outline-offset:3px; }
.hc-v4 .l-header { border-bottom:1px solid var(--hc-border); }
.hc-v4 .l-header__inner { min-height:80px; }
.hc-v4 .c-headLogo.-txt { font-size:25px; }
.hc-v4 .c-headLogo__link { color:var(--hc-text); font-family:var(--hc-serif); font-weight:600; }
.hc-v4 .c-gnav>li>a .ttl { font-size:13px; font-weight:600; }
.hc-v4 .l-footer { background:#faf8fa; margin-top:48px; }
.hc-v4 .p-breadcrumb__list { font-size:11px; }
.hc-v4 :is(.c-pageTitle,.c-postTitle) { line-height:1.65; overflow-wrap:anywhere; }
.hc-v4 .post_content { overflow-wrap:anywhere; }
.hc-v4 .haircare-db .foot-nav { display:none!important; }
.hc-v4 .post_content>h2 { background:none; color:var(--hc-text); border-bottom:1px solid var(--hc-border); font-size:24px; }
.hc-v4 .haircare-db, .hc-v4 .hc-scan { --pp-primary:#3a7565; --ip-primary:#3a7565; }

/* Home: full-width photography, with the existing search and counts intact. */
.hc-v4.hc-v4 .v3-hero {
  border:0!important; border-radius:0!important; background:#f3f6f3 url('../img/v4/hero.webp') center 43%/cover no-repeat!important;
  position:relative; box-shadow:none!important;
}
.hc-v4.hc-v4 .v3-hero__inner { display:block; min-height:440px; padding:48px 32px; max-width:1180px; }
.hc-v4 .v3-hero__copy { width:480px; max-width:100%; position:relative; z-index:1; }
.hc-v4 .post_content .haircare-db .v3-hero__title { font-size:42px!important; line-height:1.5!important; font-family:var(--hc-serif); font-weight:500; }
.hc-v4 .v3-hero__visual { display:none!important; }
.hc-v4 .v3-hero__lead { font-size:16px; line-height:1.9; max-width:370px; }
.hc-v4 .v3-search { border:0; border-bottom:1px solid #817780; border-radius:0; box-shadow:none; max-width:450px; background:rgba(255,255,255,.94); }
.hc-v4 .v3-search input { height:50px; font-size:14px; }
.hc-v4.hc-v4 .v3-search button { width:48px; background:transparent!important; color:#94445f!important; }
.hc-v4 .v3-search button svg { color:#94445f!important; }
.hc-v4 .v3-hero__stats { margin-top:15px; gap:10px 24px; }
.hc-v4 .v3-hero__stats strong { font-size:21px; font-family:Georgia,serif; font-weight:500; }
.hc-v4 .v3-hero__stats dt,.hc-v4 .v3-hero__stats dd { font-size:11px; }
.hc-v4 .v3-section { padding-top:44px; }
.hc-v4 .v3-section__title { font-size:25px; font-weight:600; }
.hc-v4 .v3-section__sub { font-size:13px; line-height:1.8; }
.hc-v4 .v3-section__head { margin-bottom:23px; }
.hc-v4 .v3-cats__grid { gap:0; border-top:1px solid var(--hc-border); border-bottom:1px solid var(--hc-border); }
.hc-v4 .v3-cat { border:0; border-right:1px solid var(--hc-border); border-radius:0; min-height:138px; padding:18px 13px; }
.hc-v4 .v3-cat:last-child { border-right:0; }
.hc-v4 .v3-cat__img { width:64px; height:64px; }
.hc-v4 .v3-cat__img--icon { background:#f8edf1; color:#94445f; border-radius:6px; }
.hc-v4 .v3-concerns { gap:0; border-top:1px solid var(--hc-border); border-bottom:1px solid var(--hc-border); }
.hc-v4 .v3-concern { border:0; border-right:1px solid var(--hc-border); border-radius:0; padding:20px 10px; flex-direction:row; align-items:center; justify-content:center; gap:7px; }
.hc-v4 .v3-concern:last-child { border-right:0; }
.hc-v4 .v3-concern__visual { background:none!important; height:auto; width:37px; flex-shrink:0; }
.hc-v4 .v3-concern__visual::after { display:none; }
.hc-v4 .v3-concern__label { font-size:13px; padding:0; }
.hc-v4 .v3-card { padding:0; border:0; border-radius:0; box-shadow:none; }
.hc-v4 .v3-card__img { aspect-ratio:1; border-radius:7px; background:#faf9fb; }
.hc-v4 .v3-card img { object-fit:contain; }
.hc-v4 .v3-ingr-cards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 30px; }
.hc-v4 .v3-ingr-card { border:0; border-bottom:1px solid var(--hc-border); border-radius:0; padding:22px 0; }
.hc-v4 .v3-ingr-icon { background:#eff5f2; color:#3a7565; border-radius:6px; }
.hc-v4 .v3-about__inner { border:0; border-radius:0; background:#faf2f6; padding:35px 30px; }
.hc-v4 .v3-btn { border-radius:6px; }

/* Product and ingredient archives share the same restrained components. */
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db :is(.phead,.db-filter-panel,.sort-row,.type-hero,.archive-hero) {
  border:0!important; background:transparent!important; box-shadow:none!important; border-radius:0!important;
}
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .brand-h1 { font-size:25px!important; line-height:1.65!important; margin:5px 0 12px!important; padding:0!important; font-weight:600!important; text-wrap:balance; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .type-hero-top { display:none!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .type-hero { padding:0 0 22px!important; border-bottom:1px solid var(--hc-border)!important; margin-bottom:20px!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .genre-badges { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:8px; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db :is(.genre-badge,.chip,.sf-chip,.db-filter-chip,.af-tag,.ingr-cat-tag,.tag,.tag-type,.tag-brand) { border-radius:5px!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db :is(.genre-badge,.db-filter-chip) { min-height:34px!important; font-size:12px!important; font-weight:500!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .genre-badge.active { background:#94445f!important; color:#fff!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .sort-row { padding:10px 0!important; border-bottom:1px solid var(--hc-border)!important; gap:12px!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .sort-select { border:0!important; border-bottom:1px solid var(--hc-border-strong)!important; border-radius:0!important; min-height:36px!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db :is(.prod-grid,.archive-prod-grid) { gap:30px 22px!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-card { border:0!important; border-radius:0!important; padding:0 0 12px!important; background:transparent!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-card-img { background:#faf9fb!important; border-radius:7px!important; margin-bottom:14px!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-card-img img { width:83%!important; height:83%!important; object-fit:contain!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-card-brand { font-size:11px!important; font-weight:500!important; margin-bottom:5px!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db :is(.prod-card-name,.prod-card-h2) { font-size:14px!important; line-height:1.75!important; font-weight:600!important; min-height:49px; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-card-type { border:0!important; border-radius:4px!important; font-size:10px!important; padding:3px 7px!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db :is(.load-more,.brand-trigger,.initial-trigger,.type-select,.v3-filter-toggle) { border-radius:6px!important; box-shadow:none!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .ingr-list { border:0!important; border-radius:0!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .ingr-row { padding:20px 8px!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .ingr-dot { border-radius:6px!important; background:#eff5f2!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .ingr-dot::after { border-color:#3a7565!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db :is(.hub-card,.hub-brand-row,.series-card) { box-shadow:none!important; border-radius:6px!important; }
@media(min-width:960px) {
  .hc-v4 .haircare-db .page:has(>#gridView) { display:grid; grid-template-columns:195px minmax(0,1fr); gap:16px 30px; align-items:start; }
  .hc-v4 .haircare-db .page:has(>#gridView)>:is(.brand-h1,.type-hero,.brand-hero,.archive-hero,.archive-facet-intro,.db-facet-seo-guide,.db-facet-related) { grid-column:1/-1; }
  .hc-v4 .haircare-db .page:has(>#gridView)>.phead { grid-column:1; grid-row:3/span 2; padding:0 0 15px!important; }
  .hc-v4 .haircare-db .page:has(>#gridView)>.db-filter-panel { grid-column:1; grid-row:5/span 3; padding:0!important; margin:0!important; }
  .hc-v4 .haircare-db .page:has(>#gridView)>:is(.active-filters,.sort-row,#gridView,#listView,.load-more) { grid-column:2; min-width:0; }
  .hc-v4 .haircare-db .page:has(>#gridView)>.active-filters { grid-row:3; }
  .hc-v4 .haircare-db .page:has(>#gridView)>.sort-row { grid-row:4; }
  .hc-v4 .haircare-db .page:has(>#gridView)>:is(#gridView,#listView) { grid-row:5; }
  .hc-v4 .haircare-db .page:has(>#gridView)>.load-more { grid-row:6; }
  .hc-v4.hc-v4.hc-v4 .haircare-db .page:has(>#gridView) .archive-prod-grid { grid-template-columns:repeat(3,minmax(0,1fr))!important; }
  .hc-v4 .haircare-db .page:has(>#gridView) .db-filter-row { display:flex; flex-wrap:wrap; gap:6px; padding:16px 0; border-top:1px solid var(--hc-border); }
  .hc-v4 .haircare-db .page:has(>#gridView) .db-filter-label { flex:0 0 100%; padding-bottom:7px; }
  .hc-v4.hc-v4.hc-v4 .haircare-db .page:has(>#gridView) .db-filter-chip { font-size:11px!important; padding:5px 7px!important; min-height:31px!important; }
  .hc-v4 .haircare-db .page:has(>#gridView) .brand-trigger { font-size:12px!important; padding-left:9px!important; padding-right:9px!important; }
}

/* Product pages: unframed sections and legible data, without changing scores. */
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-head { border:0!important; border-radius:0!important; padding:20px 0 30px!important; box-shadow:none!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-img { background:#faf9fb!important; border:0!important; border-radius:7px!important; padding:16px!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-name { font-size:27px!important; line-height:1.7!important; font-weight:600!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-brand { font-size:11px!important; font-weight:500!important; }
.hc-v4.hc-v4.hc-v4.single-hc_product .post_content .haircare-db .brand-h1 { font-size:12px!important; line-height:1.8!important; color:var(--hc-text-muted)!important; font-weight:400!important; margin:0 0 18px!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-cta-panel { background:transparent!important; border:0!important; border-left:1px solid var(--hc-border)!important; border-radius:0!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db :is(.prod-buy-btn,.rv-write-btn) { background:#94445f!important; border-radius:6px!important; font-weight:600!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db :is(.prod-hero-score,.prod-hero-rank,.prod-hero-review) { border:0!important; border-right:1px solid var(--hc-border)!important; border-radius:0!important; background:#fff!important; padding:9px 13px!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-hero-review { border-right:0!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db :is(.prod-hero-score-num,.prod-hero-rank-num,.score-detail-num) { color:#3a7565!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .sec { border:0!important; border-top:1px solid var(--hc-border)!important; padding:30px 0!important; margin-top:0!important; background:#fff!important; border-radius:0!important; box-shadow:none!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .sec-bar { display:none!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db :is(.sec-title,.sec h2) { font-size:23px!important; line-height:1.7!important; font-weight:600!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db :is(.score-detail-main,.score-detail-box,.analysis-summary-panel,.score-verdict) { border:0!important; border-radius:0!important; background:#fff!important; padding:12px 0!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db :is(.score-verdict,.analysis-summary-panel) { border-left:2px solid #ead2dd!important; padding-left:18px!important; }
.hc-v4 .post_content .haircare-db :is(.hc-axes,.hc-comp) { border:0; border-radius:0; padding:18px 0; }
.hc-v4 .post_content .haircare-db .hc-axis__fill,.hc-v4 .post_content .haircare-db .hc-axes__legend i.is-me { background:#3a7565; }
.hc-v4 .post_content .haircare-db .hc-axis__avg { background:#b99aa9; }
.hc-v4 .post_content .haircare-db .hc-related__cards .hc-card a { border-radius:6px; box-shadow:none; }
.hc-v4 .post_content .haircare-db .hc-fold__btn { border-radius:5px; background:#faf8fa; color:#94445f; }
.hc-v4 .hc-my { --my-primary:#94445f; --my-soft:#f8edf1; --my-bg:#faf9fb; --my-line:#e8e3e7; }
.hc-v4 .post_content .haircare-db .hc-my { border:0!important; border-top:1px solid var(--hc-border)!important; border-radius:0!important; background:transparent!important; padding:18px 0!important; }
.hc-v4 .hc-my__state { border-radius:5px; background:#fff; }
.hc-v4 .hc-my__cta { background:#faf3f6; border-radius:5px; color:#94445f; }

/* Ingredient pages and check results share data typography and chart colors. */
.hc-v4 :is(#hcIngr,#hcCheck) { --ip-primary:#3a7565; --ip-soft:#eff5f2; --ip-bg:#f8f8f9; --ip-line:#e8e3e7; --ip-text:#302c31; --ip-muted:#756c75; gap:28px; }
.hc-v4 :is(#hcIngr,#hcCheck) h1.hc-ip__name { font-size:38px!important; font-family:var(--hc-serif); font-weight:500; }
.hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__tags a { border-radius:4px; font-size:11px; }
.hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__tiles { gap:0; border-top:1px solid #e8e3e7; border-bottom:1px solid #e8e3e7; padding:22px 0; }
.hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__tile { border:0; border-right:1px solid #e8e3e7; border-radius:0; padding:5px 18px; }
.hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__tile:last-child { border-right:0; }
.hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__tv { font-family:Georgia,serif; font-weight:500; font-size:31px; }
.hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__h2 { font-size:21px!important; margin-bottom:9px!important; font-weight:600; }
.hc-v4 :is(#hcIngr,#hcCheck) :is(.hc-ip__chips a,.hc-ip__types button,.hc-ip__more,.hc-ip__avoid,.hc-ip__jump) { border-radius:5px; }
.hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__seg { background:#f8f6f8; border-radius:6px; }
.hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__seg button { border-radius:4px; }
.hc-v4 :is(#hcIngr,#hcCheck) .hc-card a { border:0; border-bottom:1px solid #e8e3e7; border-radius:0; padding:18px 0; }
.hc-v4 :is(#hcIngr,#hcCheck) .hc-card img { background:#faf9fb; border-radius:5px; }
.hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__desc { border-radius:5px; border-width:1px 0; }
.hc-v4 #hcCheck .hc-ck__form { border:0; border-radius:0; padding:8px 0; gap:15px; }
.hc-v4 #hcCheck :is(.hc-ck__usageOpts span,textarea,.hc-ck__go,.hc-ck__sample) { border-radius:5px; }
.hc-v4 #hcCheck .hc-ck__go,.hc-v4 #hcCheck .hc-ck__usageOpts input:checked+span { background:#94445f; border-color:#94445f; }
.hc-v4 #hcCheck h1 { font-size:30px!important; line-height:1.65!important; }

/* Diagnosis, profile and search retain their existing storage and API logic. */
.hc-v4 #hcDiag { --dg-primary:#94445f; --dg-soft:#faf1f5; --dg-bg:#f7f5f7; --dg-line:#e5dce2; --dg-text:#302c31; --dg-muted:#756c75; }
.hc-v4 #hcDiag .hc-dg__head { text-align:left; padding:12px 0 15px; gap:13px; }
.hc-v4 #hcDiag .hc-dg__kicker { font-size:11px; }
.hc-v4 #hcDiag h1.hc-dg__title { font-size:32px!important; font-weight:500; }
.hc-v4 #hcDiag .hc-dg__lead { font-size:13px; line-height:2; }
.hc-v4 #hcDiag h2.hc-dg__q { font-size:24px!important; margin:13px 0 12px!important; }
.hc-v4 #hcDiag .hc-dg__progress { height:4px; border-radius:2px; }
.hc-v4 #hcDiag :is(button.hc-dg__card,button.hc-dg__opt) { border-radius:6px!important; border-width:1px!important; }
.hc-v4 #hcDiag .hc-dg__card { padding:22px 16px!important; }
.hc-v4 #hcDiag .hc-dg__label { font-size:14px; font-weight:600; }
.hc-v4 #hcDiag .hc-dg__hint { font-size:12px; }
.hc-v4 #hcDiag :is(.hc-dg__btn,.hc-dg__save,.hc-dg__panel,.hc-dg__fact,.hc-dg__tags span,.hc-dg__chip,.hc-dg__item a) { border-radius:6px!important; box-shadow:none; }
.hc-v4 .hc-mypage { --my-primary:#94445f; --my-soft:#faf1f5; --my-bg:#faf9fb; --my-line:#e8e3e7; --my-text:#302c31; --my-muted:#756c75; }
.hc-v4 .hc-mypage :is(.hc-mp-panel,.hc-mp-card,.hc-mp-opt,.hc-mp-tab,.hc-mp-btn,.hc-mp-empty) { border-radius:6px!important; box-shadow:none!important; }
.hc-v4 .post_content .hc-mypage .hc-mypage__title { font-size:30px!important; font-weight:600; }
.hc-v4 .hc-sr { --my-primary:#94445f; --my-soft:#faf1f5; --my-line:#e8e3e7; }
.hc-v4 .hc-scan { max-width:800px; padding:28px 20px; }
.hc-v4 .hc-scan :is(button,textarea,.stat) { border-radius:6px; }
.hc-v4 .hc-scan button { background:#94445f; }

/* The fixed navigation is outside the theme's body wrapper. */
body:has(.hc-v4) .hc-dock { border-color:#e8e3e7; box-shadow:none; padding-top:7px; padding-bottom:max(7px,env(safe-area-inset-bottom)); }
body:has(.hc-v4) .hc-dock__item { color:#847681; font-weight:500; font-size:10px; }
body:has(.hc-v4) .hc-dock__item[aria-current=page],body:has(.hc-v4) .hc-dock__item--primary { color:#94445f; }
body:has(.hc-v4) .hc-dock__item--primary .hc-dock__icon { width:26px; height:26px; margin-top:0; background:transparent; color:#94445f; box-shadow:none; border-radius:0; }
body:has(.hc-v4) .hc-float-review-btn { display:none!important; }
body:has(.hc-v4) .haircare-float-toc .hc-toc-pill { background:#fff; color:#94445f; border:1px solid #e5d6de; box-shadow:0 2px 12px #44233212; }
@media(min-width:960px) {
  body:has(.hc-v4) .hc-dock { display:grid; }
  body:has(.hc-v4) .hc-dock__item { min-height:48px; font-size:12px; }
  .hc-v4 .l-footer { padding-bottom:calc(64px + env(safe-area-inset-bottom,0px)); }
  body:has(.hc-v4) .haircare-float-toc .hc-toc-pill { display:flex!important; }
  body:has(.hc-v4) .haircare-float-toc .hc-toc-menu:not(.is-open) { display:none!important; }
  body:has(.hc-v4) .haircare-float-toc .hc-toc-menu.is-open .hc-toc-close { display:flex!important; }
}
@media(max-width:959px) {
  .hc-v4 .l-header__inner { min-height:66px; }
  .hc-v4 .c-headLogo.-txt { font-size:23px; }
}
@media(max-width:767px) {
  .hc-v4 .v3-hero { background-position:30% center!important; }
  .hc-v4.hc-v4 .v3-hero__inner { min-height:390px; padding:28px 20px; }
  .hc-v4 .post_content .haircare-db .v3-hero__title { font-size:32px!important; margin-bottom:13px!important; }
  .hc-v4 .v3-hero__lead { font-size:13px; max-width:245px; }
  .hc-v4 .v3-search input { font-size:13px; height:48px; }
  .hc-v4 .v3-hero__stats strong { font-size:19px; }
  .hc-v4 .v3-hero__stats { gap:8px 17px; }
  .hc-v4 .v3-section { padding-top:30px; }
  .hc-v4 .v3-section__title { font-size:21px; }
  .hc-v4 .v3-section__sub { font-size:12px; line-height:1.9; }
  .hc-v4 .v3-cats__grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .hc-v4 .v3-cat { min-height:118px; padding:14px 7px; border-bottom:1px solid var(--hc-border); }
  .hc-v4 .v3-cat__label { font-size:12px; }
  .hc-v4 .v3-concerns { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hc-v4 .v3-concern { justify-content:flex-start; padding:17px 10px; border-bottom:1px solid var(--hc-border); }
  .hc-v4 .v3-concern__label { font-size:12px; }
  .hc-v4 .v3-ingr-cards { grid-template-columns:1fr; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .brand-h1 { font-size:22px!important; line-height:1.7!important; margin-bottom:21px!important; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .genre-badges { grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .genre-badge { font-size:11px!important; min-height:34px!important; padding:5px 6px!important; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db :is(.prod-grid,.archive-prod-grid) { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:25px 14px!important; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db :is(.prod-card-name,.prod-card-h2) { font-size:13px!important; min-height:61px; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-card-img { margin-bottom:12px!important; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-card-type { font-size:9px!important; top:6px!important; left:5px!important; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .v3-filter-toggle { min-height:44px!important; font-size:13px!important; padding:0 12px!important; margin:10px 0 15px!important; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-head { padding:10px 0 25px!important; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-head-inner { grid-template-columns:96px minmax(0,1fr)!important; gap:10px 15px!important; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-head .prod-img { width:96px!important; height:112px!important; grid-row:1/span 3!important; padding:9px!important; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-meta { display:contents!important; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-name { font-size:20px!important; line-height:1.65!important; margin-bottom:2px!important; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-updated { grid-column:1/-1!important; grid-row:auto!important; padding:0!important; margin-top:7px!important; font-size:10px!important; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-price-row { grid-column:1/-1!important; grid-row:auto!important; justify-self:start!important; align-self:start!important; margin:0!important; gap:8px!important; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-price { font-size:24px!important; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db :is(.prod-tags,.prod-cta-panel,.prod-hero-summary,.prod-hero-points,.prod-db-facets,.hc-my) { grid-column:1/-1!important; width:100%!important; min-width:0!important; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-tags { margin-top:10px!important; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-cta-panel { border:0!important; border-top:1px solid var(--hc-border)!important; padding:15px 0 0!important; margin-top:10px!important; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db :is(.prod-hero-score,.prod-hero-rank,.prod-hero-review) { padding:9px 7px!important; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-hero-summary { margin-top:14px!important; gap:0!important; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db :is(.sec-title,.sec h2) { font-size:21px!important; }
  .hc-v4 :is(#hcIngr,#hcCheck) h1.hc-ip__name { font-size:32px!important; }
  .hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__tiles { row-gap:20px; }
  .hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__tile { padding:4px 13px; }
  .hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__tile:nth-child(2n) { border-right:0; }
  .hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__tv { font-size:28px; }
  .hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__h2 { font-size:20px!important; }
  .hc-v4 #hcDiag h1.hc-dg__title { font-size:29px!important; }
  .hc-v4 #hcDiag h2.hc-dg__q { font-size:22px!important; }
  .hc-v4 #hcDiag .hc-dg__cards { grid-template-columns:1fr; }
  .hc-v4 #hcDiag button.hc-dg__card { grid-template-columns:42px minmax(0,1fr); min-height:86px; align-content:center; justify-items:start; text-align:left; gap:3px 14px; padding:17px!important; }
  .hc-v4 #hcDiag .hc-dg__ill { grid-row:span 2; height:44px; }
  .hc-v4 #hcDiag .hc-dg__label { grid-column:2; grid-row:1; }
  .hc-v4 #hcDiag .hc-dg__hint { grid-column:2; grid-row:2; }
  .hc-v4 #hcDiag .hc-dg__ill svg { width:38px; height:38px; }
  .hc-v4 #hcCheck h1 { font-size:27px!important; }
  .hc-v4 .post_content .hc-mypage .hc-mypage__title { font-size:27px!important; }
}
@media(max-width:359px) {
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .genre-badges { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-head-inner { grid-template-columns:80px minmax(0,1fr)!important; gap:10px 12px!important; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-head .prod-img { width:80px!important; height:100px!important; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-name { font-size:18px!important; }
}
@media(prefers-reduced-motion:reduce) { .hc-v4 * { transition:none!important; scroll-behavior:auto!important; } }

/* Page-level finish: shared controls, data rhythm and complete result states. */
.hc-v4 :is(.haircare-db,.hc-mypage,#hcDiag,#hcCheck,#hcSearch) { min-width:0; }
.hc-v4 :is(.haircare-db,.hc-mypage,#hcDiag,#hcCheck,#hcSearch) :is(input[type=search],input[type=text],input[type=email],textarea,select) { font-size:16px!important; }
.hc-v4 :is(input,textarea)::placeholder { color:#756c75; opacity:1; }
.hc-v4 :is(.hc-ip__tv,.prod-price,.prod-hero-score-num,.prod-hero-rank-num,.hc-axis__val,.hc-dg__bar b) { font-variant-numeric:tabular-nums; }
.hc-v4 .post_content :is(.haircare-db,.hc-mypage,#hcDiag,#hcSearch) h2::before,
.hc-v4 .post_content :is(.haircare-db,.hc-mypage,#hcDiag,#hcSearch) h2::after { display:none; }
.hc-v4 :is(.haircare-db,.hc-mypage,#hcDiag,#hcCheck,#hcSearch) :is(button,a,select) { touch-action:manipulation; }

.hc-v4.hc-v4.hc-v4 .post_content .haircare-db h1.prod-name { margin:0!important; padding:0!important; border:0!important; background:none!important; text-wrap:pretty; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-head { padding-top:8px!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-img { align-self:start; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-img img { object-fit:contain!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-hero-summary { align-items:stretch; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db :is(.prod-hero-score-label,.prod-hero-rank-label,.prod-hero-review-label) { color:#756c75!important; font-size:11px!important; line-height:1.5!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-hero-review-num { font-size:14px!important; line-height:1.6!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .score-detail-summary { gap:12px!important; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .score-detail-box { border-top:1px solid var(--hc-border)!important; }
.hc-v4 .post_content .haircare-db .hc-axes { gap:12px; margin:14px 0; }
.hc-v4 .post_content .haircare-db .hc-axis { min-height:28px; line-height:1.55; }
.hc-v4 .post_content .haircare-db .hc-axes__legend { margin-top:7px; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db .score-radar-secondary { width:100%; max-width:340px; margin:18px auto!important; }
.hc-v4 .post_content .haircare-db .badge-area { padding:16px 0; border-top:1px solid var(--hc-border); }
.hc-v4 .post_content .haircare-db .hc-comp__bar { height:8px; border-radius:4px; }
.hc-v4 .post_content .haircare-db .hc-comp__legend { gap:10px 18px; margin-top:4px; }
.hc-v4 .post_content .haircare-db .hc-comp__legend li { align-items:baseline; line-height:1.6; }
.hc-v4 .post_content .haircare-db .hc-comp__legend i { align-self:center; }
.hc-v4 .post_content .haircare-db .hc-comp__flags li { border-radius:5px; padding:10px; }
.hc-v4 .post_content .haircare-db .analysis-redesign { font-size:14px; line-height:1.95; }
.hc-v4 .post_content .haircare-db .analysis-text-heading { font-size:14px; line-height:1.6; margin:0 0 10px; }
.hc-v4 .post_content .haircare-db .analysis-group-row { display:grid; grid-template-columns:180px minmax(0,1fr); gap:8px 24px; padding:20px 0; border:0; border-top:1px solid var(--hc-border); border-radius:0; background:none; }
.hc-v4 .post_content .haircare-db .analysis-group-title { font-size:13px; line-height:1.75; }
.hc-v4 .post_content .haircare-db .analysis-group-body { min-width:0; }
.hc-v4 .post_content .haircare-db .analysis-group-chips { display:flex; flex-wrap:wrap; gap:5px; margin:0 0 10px; }
.hc-v4 .post_content .haircare-db .analysis-group-chips>* { border-radius:4px; max-width:100%; overflow-wrap:anywhere; }
.hc-v4.hc-v4.hc-v4 .post_content .haircare-db #section-related .hc-card a { border:0!important; border-bottom:1px solid var(--hc-border)!important; border-radius:0!important; padding:16px 0!important; gap:14px; }
.hc-v4 .post_content .haircare-db #section-related .hc-cards { gap:0 24px; }
.hc-v4 .post_content .haircare-db #section-related .hc-card__name { font-size:13px; line-height:1.7; }
.hc-v4 .post_content .haircare-db .hc-my { gap:13px; }
.hc-v4 .post_content .haircare-db .hc-my__state { min-height:44px; font-weight:500; }
.hc-v4 .post_content .haircare-db .hc-my__state.is-on { font-weight:700; }
.hc-v4 .post_content .haircare-db .prod-series-box { background:transparent; border:0; border-top:1px solid var(--hc-border); border-radius:0; padding:24px 0; }
.hc-v4 .post_content .haircare-db .prod-series-head { gap:14px; flex-wrap:wrap; }
.hc-v4 .post_content .haircare-db .prod-series-item { border-radius:5px; }

.hc-v4 :is(#hcIngr,#hcCheck) { padding-top:16px; }
.hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__sec { min-width:0; }
.hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__actions { gap:10px; }
.hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__actions>* { min-height:44px; display:inline-flex; align-items:center; justify-content:center; }
.hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__tl { font-size:12px; line-height:1.65; }
.hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__tn { font-size:11px; line-height:1.8; }
.hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__tv { line-height:1.45; }
.hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__sec { padding:4px 0 18px; }
.hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__types { padding:3px 1px 9px; }
.hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__types button { min-height:40px; }
.hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__seg button { min-height:40px; }
.hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__headrow { flex-wrap:wrap; gap:10px 16px; align-items:center; }
.hc-v4 :is(#hcIngr,#hcCheck) .hc-card a { gap:14px; }
.hc-v4 #hcCheck .hc-ck__head { gap:14px; }
.hc-v4 #hcCheck .hc-ck__lead { margin:0; font-size:14px; line-height:1.95; }
.hc-v4 #hcCheck .hc-ck__form { margin-top:8px; gap:20px; }
.hc-v4 #hcCheck .hc-ck__usageOpts { gap:8px; }
.hc-v4 #hcCheck .hc-ck__usageOpts span { min-height:42px; padding:7px 12px; font-size:12px; }
.hc-v4 #hcCheck textarea { padding:16px; min-height:176px; line-height:1.9; border-color:var(--hc-border-strong); }
.hc-v4 #hcCheck .hc-ck__actions { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10px; }
.hc-v4 #hcCheck .hc-ck__actions button { padding:10px; min-height:48px; }
.hc-v4 #hcCheck :is(.hc-ck__flags li,.hc-ck__msg,.hc-ck__avoid,.hc-ck__reasons,.hc-ck__tags li) { border-radius:5px; }
.hc-v4 #hcCheck .hc-ck__result { padding-top:12px; }
.hc-v4 #hcCheck .hc-ck__unknown { padding:16px 0; border-top:1px solid var(--hc-border); }

.hc-v4 #hcDiag { padding-top:22px; gap:18px; }
.hc-v4 #hcDiag .hc-dg__head { padding:0 0 14px; }
.hc-v4 #hcDiag .hc-dg__body { gap:14px; }
.hc-v4 #hcDiag .hc-dg__nav { align-items:center; }
.hc-v4 #hcDiag :is(.hc-dg__back,.hc-dg__btn) { min-height:44px; }
.hc-v4 #hcDiag .hc-dg__result { gap:18px; }
.hc-v4 #hcDiag h2.hc-dg__rtitle { font-family:var(--hc-serif); font-size:32px!important; line-height:1.6!important; }
.hc-v4 #hcDiag .hc-dg__rsub { font-size:14px; line-height:1.85; font-weight:500; margin:0; }
.hc-v4 #hcDiag .hc-dg__tags span { background:#f7f4f6; color:#665866; font-weight:500; padding:6px 9px; }
.hc-v4 #hcDiag .hc-dg__panel { border:0; border-top:1px solid var(--hc-border); border-radius:0!important; padding:24px 0; gap:16px; }
.hc-v4 #hcDiag h3.hc-dg__h { font-size:19px!important; line-height:1.75; }
.hc-v4 #hcDiag .hc-dg__bars { gap:14px; }
.hc-v4 #hcDiag .hc-dg__bartrack { height:8px; border-radius:4px; }
.hc-v4 #hcDiag .hc-dg__bartrack span { background:#adc8be; }
.hc-v4 #hcDiag .hc-dg__bar.is-top .hc-dg__bartrack span { background:#3a7565; }
.hc-v4 #hcDiag .hc-dg__bar.is-top b { color:#3a7565; }
.hc-v4 #hcDiag .hc-dg__phead { flex-wrap:wrap; align-items:center; }
.hc-v4 #hcDiag .hc-dg__phead a { min-height:40px; display:inline-flex; align-items:center; }
.hc-v4 #hcDiag .hc-dg__save { background:#faf1f5; border:0; padding:20px; border-radius:6px!important; }
.hc-v4 #hcDiag .hc-dg__save .hc-dg__btn { width:100%; text-align:center; }
.hc-v4 #hcDiag .hc-dg__fact { border:0; border-radius:0!important; background:none; padding:4px 0; font-size:13px; line-height:1.9; }
.hc-v4 #hcDiag .hc-dg__list { gap:0; }
.hc-v4 #hcDiag .hc-dg__item a { border:0; border-bottom:1px solid var(--hc-border); border-radius:0!important; padding:18px 0; }
.hc-v4 #hcDiag .hc-dg__item img { border-radius:5px; background:#faf9fb; }
.hc-v4 #hcDiag .hc-dg__name { font-size:14px; line-height:1.75; }
.hc-v4 #hcDiag .hc-dg__fit b { color:#3a7565; }
.hc-v4 #hcDiag .hc-dg__ingr a { border:0; border-bottom:1px solid var(--hc-border); border-radius:0; padding:16px 0; }
.hc-v4 #hcDiag .hc-dg__foot { border-top:1px solid var(--hc-border); padding-top:18px; }

.hc-v4 .hc-mypage { max-width:820px; padding-top:22px; gap:20px; }
.hc-v4 .hc-mypage .hc-mypage__lead { font-size:13px; line-height:1.9; margin:0; }
.hc-v4 .hc-mypage .hc-mp-sec { padding:26px 0; border:0; border-top:1px solid var(--hc-border); border-radius:0; background:transparent; gap:18px; }
.hc-v4 .post_content .hc-mypage .hc-mp-sec h2 { font-size:21px!important; line-height:1.65; margin:0!important; }
.hc-v4 .hc-mypage .hc-mp-q { gap:10px; }
.hc-v4 .hc-mypage .hc-mp-q legend { font-size:13px; margin-bottom:9px; }
.hc-v4 .post_content .hc-mypage .hc-mp-opt { min-height:42px; border-radius:5px; padding:9px 14px!important; background:#fff; }
.hc-v4 .post_content .hc-mypage .hc-mp-opt.is-on { background:#94445f; color:#fff; }
.hc-v4 .hc-mypage .hc-mp-tabs { gap:0; border-bottom:1px solid var(--hc-border); }
.hc-v4 .hc-mypage .hc-mp-tab { min-height:48px; border:0; border-bottom:2px solid transparent; border-radius:0!important; background:#fff; }
.hc-v4 .hc-mypage .hc-mp-tab.is-on { border-bottom-color:#94445f; background:#faf1f5; color:#94445f; }
.hc-v4 .hc-mypage .hc-mp-tab.is-on span { color:#94445f; }
.hc-v4 .hc-mypage .hc-mp-empty { padding:20px 0; border:0; border-radius:0!important; line-height:1.95; }
.hc-v4 .hc-mypage .hc-mp-item { padding:18px 0; }

/* The profile, saved shelf and editor share one compact workspace. */
.hc-v4 #hcMypage { gap:0; max-width:820px; padding-top:12px; }
.hc-v4 #hcMypage .hc-mp-header { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:4px 16px; padding-bottom:24px; }
.hc-v4 #hcMypage .hc-mypage__lead { margin:0; font-size:12px; }
.hc-v4 #hcMypage .hc-mp-sec { padding:24px 0; gap:18px; }
.hc-v4 .post_content #hcMypage .hc-mp-sec h2 { font-size:18px!important; }
.hc-v4 #hcMypage .hc-mp-section-head { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 16px; }
.hc-v4 #hcMypage .hc-mp-count { margin-left:6px; color:var(--my-muted); font-size:13px; font-weight:400; white-space:nowrap; }
.hc-v4 #hcMypage :is(.hc-mp-text,.hc-mp-btn) { display:inline-flex; justify-content:center; align-items:center; min-height:44px; font:inherit; font-size:13px; font-weight:600; line-height:1.5; text-decoration:none; cursor:pointer; }
.hc-v4 #hcMypage .hc-mp-text { justify-self:start; gap:10px; padding:8px 0; border:0; border-radius:0; background:transparent; color:#84425d; text-underline-offset:4px; }
.hc-v4 #hcMypage .hc-mp-text:hover { text-decoration:underline; }
.hc-v4 #hcMypage .hc-mp-btn { gap:12px; padding:11px 20px; border:1px solid #94445f; border-radius:6px; background:#94445f; color:#fff!important; text-align:center; transition:background-color .15s,border-color .15s; }
.hc-v4 #hcMypage .hc-mp-btn:hover { border-color:#79364d; background:#79364d; }
.hc-v4 #hcMypage .hc-mp-btn--sub { border-color:#cfc5cb; background:#fff; color:#654253!important; }
.hc-v4 #hcMypage .hc-mp-btn--sub:hover { border-color:#94445f; background:#faf1f5; }
.hc-v4 #hcMypage .hc-mp-btn--danger { background:#a13b44; border-color:#a13b44; }
.hc-v4 #hcMypage .hc-mp-shelf { gap:16px; }
.hc-v4 #hcMypage .hc-mp-search { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; margin:0; }
.hc-v4 #hcMypage .hc-mp-search input { min-width:0; width:100%; min-height:46px; padding:10px 14px; border:1px solid #cfc5cb; border-radius:6px; background:#fff; color:var(--my-text); font:inherit; font-size:16px; }
.hc-v4 #hcMypage .hc-mp-search .hc-mp-btn { min-width:76px; }
.hc-v4 #hcMypage .hc-mp-shelf-empty { display:grid; justify-items:start; gap:8px; padding:12px 0 4px; background:none; }
.hc-v4 #hcMypage .hc-mp-shelf-empty p { margin:0; color:var(--my-muted); font-size:13px; line-height:1.8; }
.hc-v4 #hcMypage .hc-mp-profile[data-profile-state=empty] { padding:20px 24px 24px; border-top:0; border-bottom:1px solid #eadce3; background:#faf4f7; }
.hc-v4 #hcMypage .hc-mp-status { color:#84425d; font-size:12px; }
.hc-v4 #hcMypage .hc-mp-profile[data-profile-state=saved] { padding-top:0; border-top:0; }
.hc-v4 #hcMypage .hc-mp-profile-empty { display:grid; justify-items:start; gap:12px; padding:0; }
.hc-v4 #hcMypage .hc-mp-profile-empty .hc-mp-actions { gap:10px; padding:0; align-items:center; }
.hc-v4 #hcMypage .hc-mp-profile-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px 24px; margin:0; }
.hc-v4 #hcMypage .hc-mp-profile-summary>div { min-width:0; }
.hc-v4 #hcMypage .hc-mp-profile-summary dt { margin:0 0 5px; font-size:12px; color:var(--my-muted); }
.hc-v4 #hcMypage .hc-mp-profile-summary dd { margin:0; font-size:14px; line-height:1.8; overflow-wrap:anywhere; }
.hc-v4 #hcMypage .hc-mp-details { font-size:13px; }
.hc-v4 #hcMypage .hc-mp-details summary { min-height:44px; padding:10px 0; color:var(--my-muted); cursor:pointer; }
.hc-v4 #hcMypage .hc-mp-profile .hc-mp-details { margin-top:-4px; }
.hc-v4 #hcMypage .hc-mp-avoid { padding:12px 0; border-top:1px solid var(--my-line); }
.hc-v4 #hcMypage .hc-mp-avoid summary { color:var(--my-text); }
.hc-v4 #hcMypage .hc-mp-avoid summary>span:first-child { font-size:15px; font-weight:600; }
.hc-v4 #hcMypage .hc-mp-avoid summary .hc-mp-count { float:right; }
.hc-v4 #hcMypage .hc-mp-avoid-content { display:grid; gap:12px; padding:8px 0 4px; }
.hc-v4 #hcMypage .hc-mp-avoid .hc-mp-actions { gap:12px 24px; }
.hc-v4 #hcMypage .hc-mp-tag { display:inline-flex; align-items:center; min-height:30px; padding:4px 10px; border-radius:4px; background:#edf4f1; color:#346451; font-size:12px; }
.hc-v4 #hcMypage .hc-mp-chip { min-height:44px; border:1px solid #cfc5cb; border-radius:6px; color:#654253; font-weight:500; }
.hc-v4 #hcMypage .hc-mp-chip:hover { background:#faf1f5; border-color:#94445f; }
.hc-v4 #hcMypage .hc-mp-settings { border-top:1px solid var(--my-line); padding:12px 0 0; }
.hc-v4 #hcMypage .hc-mp-settings[open] { display:block; }
.hc-v4 #hcMypage .hc-mp-settings .hc-mp-hint { margin:8px 0; }
.hc-v4 #hcMypage .hc-mp-text--danger { color:#a13b44; }
.hc-v4 #hcMypage .hc-mp-editor { display:grid; grid-template-columns:minmax(0,1fr); gap:0; }
.hc-v4 #hcMypage .hc-mp-editor[hidden] { display:none; }
.hc-v4 #hcMypage .hc-mp-editor .hc-mp-q { padding:16px 0; border-bottom:1px solid #f0ebee; }
.hc-v4 #hcMypage .hc-mp-editor .hc-mp-q:last-child { border-bottom:0; }
.hc-v4 #hcMypage .hc-mp-editor-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-bottom:1px solid var(--my-line); margin-bottom:8px; }
.hc-v4 #hcMypage .hc-mp-editor-tabs button { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:6px; min-height:54px; padding:10px 4px; border:0; border-bottom:2px solid transparent; border-radius:0; background:#fff; color:#665860; font:inherit; font-size:13px; line-height:1.6; cursor:pointer; }
.hc-v4 #hcMypage .hc-mp-editor-tabs button[aria-selected=true] { border-bottom-color:#94445f; background:#faf1f5; color:#803750; font-weight:600; }
.hc-v4 #hcMypage .hc-mp-step-number { display:inline-grid; place-items:center; width:20px; height:20px; flex:0 0 20px; border:1px solid #c9bcc4; border-radius:50%; font-size:11px; }
.hc-v4 #hcMypage [aria-selected=true]>.hc-mp-step-number { background:#94445f; border-color:#94445f; color:#fff; }
.hc-v4 #hcMypage .hc-mp-editor-actions { display:flex; align-items:center; justify-content:space-between; gap:8px 20px; position:static; margin-top:4px; padding:12px 0; border-top:1px solid var(--my-line); background:#fff; }
.hc-v4 #hcMypage .hc-mp-editor-progress { color:var(--my-muted); font-size:12px; font-variant-numeric:tabular-nums; }
.hc-v4 #hcMypage .hc-mp-partial-save { display:flex; justify-content:flex-end; }
.hc-v4 #hcMypage .hc-mp-partial-save .hc-mp-text { min-height:44px; font-size:12px; font-weight:400; color:var(--my-muted); }
.hc-v4 #hcMypage .hc-mp-step-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px 20px; }
.hc-v4 #hcMypage .hc-mp-step-actions .hc-mp-btn { min-width:96px; }
.hc-v4 #hcMypage .hc-mp-editor>.hc-mp-hint { grid-column:1/-1; }
.hc-v4 #hcMypage .hc-mp-opts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.hc-v4 #hcMypage .hc-mp-choice { display:flex; align-items:center; gap:8px; min-height:48px; margin:0; padding:11px 12px; border:1px solid #ded7dc; border-radius:6px; background:#fff; font-size:13px; line-height:1.6; cursor:pointer; }
.hc-v4 #hcMypage .hc-mp-choice:hover { border-color:#b3768d; }
.hc-v4 #hcMypage .hc-mp-choice.is-on { border-color:#94445f; background:#faf1f5; color:#71364e; }
.hc-v4 #hcMypage .hc-mp-choice input { appearance:auto; flex:0 0 16px; width:16px; height:16px; margin:0; accent-color:#94445f; }
.hc-v4 #hcMypage .hc-mp-choice>span:not(.hc-mp-order) { flex:1; min-width:0; overflow-wrap:anywhere; }
.hc-v4 #hcMypage .hc-mp-order { flex:0 0 18px; background:#94445f; color:#fff; }
.hc-v4 #hcMypage :is(button,a,input,summary,[role=tabpanel]):focus-visible { outline:2px solid #94445f; outline-offset:3px; }
.hc-v4 #hcMypage .hc-mp-actions { grid-column:1/-1; padding-top:4px; }
.hc-v4 #hcMypage .hc-mp-item { grid-template-columns:80px minmax(0,1fr) 148px; gap:8px 20px; align-items:center; padding:20px 0; }
.hc-v4 #hcMypage .hc-mp-item :is(img,.hc-mp-noimg) { width:80px; height:96px; grid-row:auto; border-radius:4px; background:#f8f8f8; }
.hc-v4 #hcMypage .hc-mp-body { gap:6px; }
.hc-v4 #hcMypage .hc-mp-body a { font-size:14px; line-height:1.75; }
.hc-v4 #hcMypage .hc-mp-move { display:grid; gap:6px; grid-column:3; }
.hc-v4 #hcMypage .hc-mp-move>span { color:var(--my-muted); font-size:11px; }
.hc-v4 #hcMypage .hc-mp-move select { min-height:44px; width:100%; max-width:none; border-radius:6px; }
@media(min-width:700px) {
  .hc-v4 #hcMypage .hc-mp-q:not([data-q=concerns]):not([data-q=finish]):not([data-q=treatments]):not([data-q=avoid]) .hc-mp-opts { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .hc-v4 #hcMypage .hc-mp-q[data-q=finish] .hc-mp-opts { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:600px) {
  .hc-v4 #hcMypage .hc-mp-header { display:grid; gap:2px; padding-bottom:16px; }
  .hc-v4 #hcMypage .hc-mp-sec { padding:20px 0; }
  .hc-v4 #hcMypage .hc-mp-profile[data-profile-state=empty] { padding:18px 16px 20px; }
  .hc-v4 #hcMypage .hc-mp-profile-empty .hc-mp-actions { display:grid; grid-template-columns:minmax(0,1fr); width:100%; gap:8px; }
  .hc-v4 #hcMypage .hc-mp-profile-empty .hc-mp-btn { width:100%; }
  .hc-v4 #hcMypage .hc-mp-profile-empty .hc-mp-btn--sub { border-color:transparent; background:transparent; }
  .hc-v4 #hcMypage .hc-mp-profile-summary { grid-template-columns:minmax(0,1fr); gap:10px; }
  .hc-v4 #hcMypage .hc-mp-profile-summary>div { display:grid; grid-template-columns:6em minmax(0,1fr); gap:8px; }
  .hc-v4 #hcMypage .hc-mp-profile-summary dt { margin:0; line-height:2.1; }
  .hc-v4 #hcMypage .hc-mp-editor-tabs button { font-size:11px; }
  .hc-v4 #hcMypage .hc-mp-editor-actions { gap:8px; }
  .hc-v4 #hcMypage .hc-mp-step-actions .hc-mp-btn { min-width:112px; padding-inline:18px; }
  .hc-v4 #hcMypage .hc-mp-item { grid-template-columns:72px minmax(0,1fr); gap:8px 14px; }
  .hc-v4 #hcMypage .hc-mp-item :is(img,.hc-mp-noimg) { width:72px; height:88px; grid-row:span 2; }
  .hc-v4 #hcMypage .hc-mp-move { grid-column:2; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:10px; }
  .hc-v4 #hcMypage .hc-mp-move select { max-width:180px; }
}

.hc-v4 #hcSearch { padding-top:24px; gap:22px; }
.hc-v4 #hcSearch h1.hc-sr__title { font-size:26px!important; line-height:1.7; overflow-wrap:anywhere; }
.hc-v4 #hcSearch .hc-sr__form { gap:10px; }
.hc-v4 #hcSearch .hc-sr__form input { border:1px solid var(--hc-border-strong); border-radius:5px; }
.hc-v4 #hcSearch .hc-sr__form button { border-radius:5px; min-width:64px; }
.hc-v4 #hcSearch .hc-sr__exact { border:0; border-left:3px solid #3a7565; border-radius:0; padding:18px 20px; background:#f4f8f6; }
.hc-v4 #hcSearch .hc-sr__sec { padding-top:20px; border-top:1px solid var(--hc-border); gap:12px; }
.hc-v4 #hcSearch .hc-sr__head { flex-wrap:wrap; }
.hc-v4 #hcSearch .hc-sr__head h2 { font-size:20px!important; line-height:1.7; }
.hc-v4 #hcSearch :is(.hc-sr__none,.hc-sr__help) { border-radius:0; border:0; background:transparent; padding:18px 0; line-height:1.95; }
.hc-v4 #hcSearch .hc-sr__chips a { border-radius:5px; min-height:42px; display:inline-flex; align-items:center; }
.hc-v4 #hcSearch .hc-card a { border:0; border-bottom:1px solid var(--hc-border); border-radius:0; padding:16px 0; }
.hc-v4 #hcSearch .hc-sr__pager a { min-height:44px; border-radius:5px; }
body:has(.hc-v4) .hc-dock__item { min-height:44px; color:#6f6470; }

@media(min-width:960px) {
  .hc-v4 .hc-mypage .hc-mp-sec:has(>.hc-mp-q) { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:32px; }
  .hc-v4 .hc-mypage .hc-mp-sec:has(>.hc-mp-q)>:is(h2,p,.hc-mp-actions,.hc-mp-msg) { grid-column:1/-1; }
  .hc-v4 #hcCheck .hc-ck__form { gap:24px; }
}
@media(max-width:767px) {
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-head-inner { row-gap:12px!important; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-tags { margin-top:0!important; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-updated { margin-top:4px!important; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-hero-summary { margin-top:8px!important; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .prod-hero-rank-label { min-height:2.7em; }
  .hc-v4 .post_content .haircare-db .hc-my__shelf { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .hc-v4 .post_content .haircare-db .hc-my__state { font-size:11px; }
  .hc-v4 .post_content .haircare-db .analysis-group-row { grid-template-columns:minmax(0,1fr); gap:10px; padding:18px 0; }
  .hc-v4 .post_content .haircare-db .hc-comp__flags { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__actions>* { flex:1 1 140px; padding:10px; font-size:12px; }
  .hc-v4 :is(#hcIngr,#hcCheck) .hc-ip__tv { font-size:26px; }
  .hc-v4 #hcDiag h2.hc-dg__rtitle { font-size:27px!important; }
  .hc-v4 #hcDiag .hc-dg__panel { padding:22px 0; }
  .hc-v4 #hcDiag .hc-dg__bar { grid-template-columns:5em minmax(0,1fr) 2em; gap:8px; font-size:12px; }
  .hc-v4 #hcDiag .hc-dg__save { padding:18px 14px; }
  .hc-v4 .hc-mypage .hc-mp-tabs { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .hc-v4 .hc-mypage .hc-mp-tab { font-size:11px; padding:8px 2px; }
  .hc-v4 .hc-mypage .hc-mp-tab span { display:block; }
  .hc-v4 #hcSearch h1.hc-sr__title { font-size:22px!important; }
  .hc-v4.hc-v4.hc-v4 .post_content .haircare-db .db-filter-chip { min-height:40px!important; }
}
body:has(.hc-v4) :is(.hc-bestprice-modal,.rv-modal) { background:#fff; border-radius:8px; max-height:calc(100dvh - 24px); overflow-y:auto; overscroll-behavior:contain; }
body:has(.hc-v4) .hc-bestprice-overlay { background:rgba(44,32,42,.4); backdrop-filter:none; }
body:has(.hc-v4) .hc-bestprice-modal { padding:28px 24px max(24px,env(safe-area-inset-bottom)); }
body:has(.hc-v4) .hc-bestprice-icon { display:none; }
body:has(.hc-v4) .hc-bestprice-header { padding:0 24px 10px 0; text-align:left; }
body:has(.hc-v4) .hc-bestprice-title { font-size:21px; color:#302c31; }
body:has(.hc-v4) .hc-bestprice-product { font-size:12px; color:#756c75; line-height:1.8; margin-top:10px; }
body:has(.hc-v4) .hc-bestprice-close { width:44px; height:44px; top:10px; right:10px; background:#f7f3f6; color:#756c75; }
body:has(.hc-v4) :is(.hc-bestprice-btn,.hc-bestprice-links>*) { min-height:62px; border:0; border-bottom:1px solid #e8e3e7; border-radius:0!important; padding:12px 0; }
body:has(.hc-v4) .hc-bp-price { color:#302c31; }
body:has(.hc-v4) .hc-bestprice-note { color:#756c75; font-size:11px; line-height:1.8; }
body:has(.hc-v4) :is(#hcFloatToc,#hcBestpriceOverlay,#rvModalOverlay) :is(button,a,input,select,textarea,[tabindex]):focus-visible { outline:2px solid #94445f; outline-offset:2px; }
body:has(.hc-v4) .haircare-float-toc button { font:inherit; cursor:pointer; }
body:has(.hc-v4) .haircare-float-toc .hc-toc-item { width:100%; min-height:44px; border:0; border-bottom:1px solid #e8e3e7; background:transparent; text-align:left; color:#302c31; }
body:has(.hc-v4) .haircare-float-toc .hc-toc-pill { min-height:40px; font-size:12px; }
body:has(.hc-v4) .haircare-float-toc .hc-toc-pill svg path { stroke:currentColor; }
body:has(.hc-v4) .haircare-float-toc .hc-toc-close { border:0; min-width:44px; min-height:44px; }
