/*
Theme Name: HISOCIA
Theme URI: https://hisocia.jp/
Author: HISOCIA
Description: 限定公開コンテンツ、クリエイター販売、認証プロフィール、相談・予約導線に最適化したHISOCIA公式テーマ。HISOCIA Coreプラグインと組み合わせて使用します。
Version: 1.0.1
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: hisocia
License: GNU General Public License v2 or later
*/

:root {
  --his-ink: #15203c;
  --his-night: #101831;
  --his-paper: #f7f5f1;
  --his-muted: #687086;
  --his-line: #e4e0d9;
  --his-plum: #6e456f;
  --his-teal: #2d766f;
  --his-gold: #bb9360;
  --his-white: #fff;
  --his-radius: 6px;
  --his-shadow: 0 18px 45px rgba(20, 30, 58, .1);
  --his-container: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--his-white); color: var(--his-ink); font-family: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif; line-height: 1.75; }
body.hisocia-age-locked { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }
.his-container { width: min(calc(100% - 40px), var(--his-container)); margin-inline: auto; }
.his-eyebrow { margin: 0 0 16px; color: var(--his-plum); font-size: 10px; font-weight: 800; letter-spacing: .22em; text-transform: uppercase; }
.his-button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 20px; border: 0; border-radius: 4px; background: var(--his-plum); color: #fff; font-size: 13px; font-weight: 800; cursor: pointer; box-shadow: 0 8px 26px rgba(110,69,111,.18); }
.his-button:hover, .his-button:focus { background: #573456; color: #fff; }
.his-button--light { background: #fff; color: var(--his-ink); }
.his-button--outline { background: transparent; color: var(--his-ink); border: 1px solid #c9c6c0; box-shadow: none; }
.his-age-strip { min-height: 34px; display: flex; align-items: center; justify-content: center; gap: 10px; padding: 6px 20px; background: var(--his-night); color: #d9ddec; font-size: 11px; letter-spacing: .06em; }
.his-age-strip b { display: grid; place-items: center; width: 21px; height: 21px; border: 1px solid #9da4b7; border-radius: 50%; font-size: 9px; }
.his-header { position: sticky; top: 0; z-index: 100; background: rgba(255,255,255,.97); border-bottom: 1px solid var(--his-line); }
.admin-bar .his-header { top: 32px; }
.his-header__inner { min-height: 82px; display: flex; align-items: center; gap: 38px; }
.his-logo { display: flex; align-items: center; gap: 11px; font: 700 18px Georgia, serif; letter-spacing: .12em; }
.his-logo__mark { width: 37px; height: 37px; display: grid; place-items: center; background: var(--his-ink); color: #fff; border-radius: 50% 50% 50% 14%; font: 21px Georgia, serif; }
.his-logo small { display: block; color: var(--his-muted); font: 600 7px/1.2 sans-serif; letter-spacing: .16em; }
.his-nav { display: flex; gap: 26px; margin-right: auto; }
.his-nav ul { display: flex; align-items: center; gap: 26px; margin: 0; padding: 0; list-style: none; }
.his-nav a { font-size: 13px; font-weight: 800; }
.his-nav a:hover { color: var(--his-plum); }
.his-header__actions { display: flex; gap: 9px; align-items: center; }
.his-menu-toggle { display: none; width: 42px; height: 42px; border: 0; background: transparent; font-size: 24px; }
.his-hero { min-height: 625px; display: grid; grid-template-columns: 1.02fr .98fr; background: var(--his-paper); overflow: hidden; }
.his-hero__copy { padding: 88px 6vw 72px max(40px, calc((100vw - var(--his-container)) / 2)); }
.his-hero h1 { margin: 0; font: 500 clamp(42px, 4.2vw, 68px)/1.32 Georgia, "Yu Mincho", serif; letter-spacing: .02em; }
.his-hero h1 em { color: var(--his-plum); font-style: normal; }
.his-hero__lead { margin: 28px 0; color: #596176; font-size: 14px; line-height: 2; }
.his-hero__actions { display: flex; gap: 20px; align-items: center; }
.his-trust-row { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 36px; color: #70778a; font-size: 11px; }
.his-hero__art { position: relative; min-height: 625px; background: radial-gradient(circle at 70% 30%, #6e456f 0 9%, transparent 9.5%), radial-gradient(circle at 22% 70%, #277469 0 10%, transparent 10.5%), linear-gradient(135deg, #151d38, #273052 55%, #141d37); overflow: hidden; }
.his-hero__art:before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px); background-size: 42px 42px; }
.his-float-card { position: absolute; width: 315px; top: 105px; left: 12%; padding: 31px; background: rgba(255,255,255,.97); border-radius: 8px; box-shadow: 0 28px 70px rgba(0,0,0,.25); transform: rotate(-2deg); }
.his-float-card small { color: var(--his-plum); font-size: 9px; font-weight: 800; letter-spacing: .18em; }
.his-float-card h2 { font: 600 20px/1.65 Georgia, serif; }
.his-float-card i { display: block; height: 5px; margin-top: 8px; border-radius: 5px; background: #e5e1db; }
.his-float-card i:nth-of-type(2) { width: 84%; }.his-float-card i:nth-of-type(3) { width: 62%; }
.his-float-message { position: absolute; width: 255px; right: 7%; bottom: 82px; padding: 20px; background: #fff; border-radius: 8px; box-shadow: 0 28px 70px rgba(0,0,0,.25); color: var(--his-muted); font-size: 10px; transform: rotate(2deg); }
.his-float-message b { color: var(--his-teal); }.his-float-message p { color: var(--his-ink); font-size: 13px; font-weight: 700; }
.his-notice { margin: -25px auto 0; min-height: 54px; padding: 16px 24px; display: flex; align-items: center; gap: 22px; position: relative; z-index: 3; background: #fff; border: 1px solid var(--his-line); box-shadow: 0 10px 30px rgba(20,30,58,.07); font-size: 11px; }
.his-notice b { color: var(--his-plum); }.his-notice a { flex: 1; }.his-notice time { color: #858b98; }
.his-section { padding-block: 88px; }
.his-section__head { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 34px; }
.his-section__head h2 { margin: 0; font: 500 34px/1.3 Georgia, "Yu Mincho", serif; }
.his-section__head > a { font-size: 11px; font-weight: 800; border-bottom: 1px solid #b6b2ab; }
.his-grid { display: grid; gap: 24px; }.his-grid--3 { grid-template-columns: repeat(3,minmax(0,1fr)); }.his-grid--4 { grid-template-columns: repeat(4,minmax(0,1fr)); }
.his-story-card { background: #fff; border: 1px solid var(--his-line); border-radius: var(--his-radius); overflow: hidden; transition: .2s; }
.his-story-card:hover { transform: translateY(-4px); box-shadow: var(--his-shadow); }
.his-story-card__media { height: 190px; padding: 20px; position: relative; background: linear-gradient(135deg,#936b78,#472e55); color: rgba(255,255,255,.78); }
.his-story-card:nth-child(3n+2) .his-story-card__media { background: linear-gradient(135deg,#5c918b,#183f43); }
.his-story-card:nth-child(3n) .his-story-card__media { background: linear-gradient(135deg,#536486,#17223e); }
.his-story-card__media img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; }
.his-story-card__media span { position: relative; z-index: 2; font-size: 9px; font-weight: 800; letter-spacing: .16em; }
.his-story-card__body { padding: 22px; }.his-story-card__body h3 { min-height: 50px; margin: 8px 0 16px; font-size: 15px; line-height: 1.65; }
.his-card-meta { display: flex; align-items: center; gap: 8px; color: var(--his-muted); font-size: 10px; }
.his-avatar { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 50%; background: #ede8e3; font-size: 9px; }
.his-card-foot { display: flex; justify-content: space-between; margin-top: 16px; padding-top: 13px; border-top: 1px solid #ece9e4; font-size: 10px; }
.his-card-foot b { font: 600 17px Georgia, serif; }
.his-dark { background: var(--his-night); color: #fff; }.his-dark .his-eyebrow { color: #bd96ba; }
.his-ranking { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: rgba(255,255,255,.11); }
.his-rank { display: grid; grid-template-columns: 36px 48px 1fr auto; align-items: center; gap: 14px; padding: 23px; background: var(--his-night); }
.his-rank__number { color: var(--his-gold); font: italic 18px Georgia,serif; }.his-rank h3 { margin: 0; font-size: 13px; }.his-rank p { margin: 3px 0 0; color: #8c94a9; font-size: 9px; }
.his-cast-card { display: grid; grid-template-columns: 42% 58%; min-height: 240px; border: 1px solid var(--his-line); }
.his-cast-card__media { display: grid; place-items: center; min-height: 240px; background: linear-gradient(160deg,#c6a9a6,#6d465c); color: rgba(255,255,255,.8); font: 54px Georgia,serif; }
.his-cast-card__body { padding: 23px 20px; }.his-cast-card h3 { margin: 5px 0 18px; font: 23px Georgia,serif; }
.his-availability { margin-bottom: 14px; padding: 10px 0; border-block: 1px solid var(--his-line); font-size: 10px; }.his-availability b { display: block; color: var(--his-teal); }
.his-features { border: 1px solid var(--his-line); gap: 1px; background: var(--his-line); }
.his-feature { min-height: 235px; padding: 28px 24px; background: #fff; }.his-feature span { color: #c8c2b8; font: 25px italic Georgia,serif; }.his-feature b { display: block; margin: 24px 0 5px; color: var(--his-plum); font-size: 8px; letter-spacing: .18em; }.his-feature h3 { margin: 0 0 10px; font: 20px Georgia,serif; }.his-feature p { color: var(--his-muted); font-size: 11px; }
.his-creator-cta { margin-bottom: 80px; padding: 48px 55px; display: grid; grid-template-columns: 1fr .8fr auto; gap: 45px; align-items: center; background: var(--his-paper); border: 1px solid var(--his-line); }.his-creator-cta h2 { margin: 0; font: 500 29px/1.5 Georgia,serif; }.his-creator-cta > p { color: var(--his-muted); font-size: 11px; }
.his-content { padding-block: 70px; }.his-content__layout { display: grid; grid-template-columns: minmax(0,1fr) 280px; gap: 55px; }.his-content h1 { font: 500 clamp(32px,4vw,52px)/1.35 Georgia,"Yu Mincho",serif; }
.his-article-preview { margin-block: 30px; padding: 28px; background: var(--his-paper); border-left: 3px solid var(--his-plum); }
.his-paywall { margin: 34px 0; padding: 38px; text-align: center; background: var(--his-night); color: #fff; border-radius: 8px; }.his-paywall h2 { margin-top: 0; font: 25px Georgia,serif; }.his-paywall p { color: #b7bdcd; }
.his-sidebar-card { margin-bottom: 18px; padding: 23px; border: 1px solid var(--his-line); }.his-sidebar-card h2 { font: 19px Georgia,serif; }
.his-footer { padding: 55px 0; background: #0b1228; color: #cbd0dc; }.his-footer__top { display: flex; justify-content: space-between; gap: 40px; }.his-footer__nav { display: flex; flex-wrap: wrap; gap: 20px; font-size: 10px; }.his-footer__notice { max-width: 760px; margin-top: 34px; color: #727b90; font-size: 9px; }.his-footer__copy { color: #535c73; font-size: 8px; }
.his-age-gate { position: fixed; inset: 0; z-index: 99999; display: grid; place-items: center; padding: 20px; background: rgba(7,12,27,.94); }.his-age-gate[hidden] { display: none; }.his-age-gate__card { width: min(480px,100%); padding: 42px; text-align: center; background: #fff; border-radius: 8px; }.his-age-gate h2 { font: 29px Georgia,serif; }.his-age-gate p { color: var(--his-muted); font-size: 13px; }.his-age-gate__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 24px; }
.his-empty { padding: 35px; text-align: center; background: var(--his-paper); border: 1px dashed #cbc6bd; color: var(--his-muted); }

@media (max-width: 920px) {
  .his-nav { display: none; position: absolute; inset: 82px 0 auto; padding: 20px; background: #fff; border-bottom: 1px solid var(--his-line); }.his-nav.is-open { display: block; }.his-nav ul { align-items: stretch; flex-direction: column; }
  .his-menu-toggle { display: inline-grid; place-items: center; }.his-header__actions .his-button--outline { display: none; }
  .his-hero { grid-template-columns: 1fr; }.his-hero__copy { padding: 65px 25px; }.his-hero__art { min-height: 430px; }
  .his-grid--3 { grid-template-columns: repeat(2,1fr); }.his-grid--4 { grid-template-columns: repeat(2,1fr); }.his-ranking { grid-template-columns: 1fr; }
  .his-content__layout { grid-template-columns: 1fr; }.his-creator-cta { grid-template-columns: 1fr; gap: 18px; }
}
@media (max-width: 600px) {
  .admin-bar .his-header { top: 46px; }.his-header__inner { min-height: 70px; }.his-logo small { display: none; }.his-header__actions > .his-button { display: none; }
  .his-hero h1 { font-size: 39px; }.his-hero__actions { align-items: stretch; flex-direction: column; }.his-float-card { width: 270px; left: 7%; }.his-float-message { right: 4%; }
  .his-notice { flex-wrap: wrap; margin-inline: 12px; }.his-notice a { flex-basis: 100%; order: 3; }
  .his-section { padding-block: 62px; }.his-section__head { align-items: flex-start; flex-direction: column; }.his-section__head h2 { font-size: 28px; }
  .his-grid--3, .his-grid--4 { grid-template-columns: 1fr; }.his-rank { grid-template-columns: 32px 42px 1fr; }.his-rank > b:last-child { display: none; }
  .his-footer__top { flex-direction: column; }.his-age-gate__actions { grid-template-columns: 1fr; }
}
