.button { display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:0 26px; border:0; border-radius:999px; background:var(--accent); color:#fff; font:inherit; cursor:pointer; transition:.18s ease; }
.button:hover { background:var(--accent-dark); transform:translateY(-1px); }
.button--ghost { background:transparent; color:var(--accent-dark); border:1px solid rgba(189,111,117,.4); }
.button--ghost:hover { color:#fff; }
.button--full { width:100%; }
.eyebrow { margin-bottom:12px; color:var(--accent-dark); text-transform:uppercase; letter-spacing:.12em; font-size:12px; font-weight:700; }
.text-link { color:var(--accent-dark); white-space:nowrap; }
.center-heading { text-align:center; margin-bottom:34px; }
.center-heading h2 { margin-bottom:0; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:32px; margin-bottom:36px; }
.section-heading h2 { margin-bottom:0; }
.story-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.story-card { background:#fff; border:1px solid rgba(98,75,55,.09); border-radius:var(--radius-sm); overflow:hidden; box-shadow:0 10px 30px rgba(93,67,45,.055); }
.story-card__cover { position:relative; aspect-ratio:1/1; overflow:hidden; background:#ece6de; }
.story-card__cover img { width:100%; height:100%; object-fit:cover; }
.story-card__play { position:absolute; right:14px; bottom:14px; width:38px; height:38px; display:grid; place-items:center; border-radius:50%; background:rgba(255,255,255,.93); color:var(--accent-dark); box-shadow:0 4px 15px rgba(0,0,0,.12); font-size:13px; padding-left:2px; }
.story-card__body { padding:20px 20px 22px; }
.story-card__meta { color:var(--muted); font-size:13px; margin-bottom:8px; }
.story-card h3 { margin-bottom:9px; font-size:21px; }
.story-card p { color:var(--muted); font-size:14px; line-height:1.52; margin-bottom:14px; }
.story-card__link { color:var(--accent-dark); font-size:14px; font-weight:600; }
.form-shell { max-width:560px; }
.form-shell input { width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:8px; font:inherit; }
.story-detail { display:grid; grid-template-columns:minmax(280px,.8fr) 1.2fr; gap:56px; align-items:start; }
.story-detail__cover { aspect-ratio:4/3; border-radius:var(--radius); background:linear-gradient(135deg,#efe6d7,#dfc7c3); }
audio { width:100%; margin-top:24px; }
.page-heading { max-width:760px; margin-bottom:48px; }
.page-heading h1 { margin-bottom:16px; }
.page-heading > p:last-child { color:var(--muted); font-size:18px; }
.specialist-card--page { min-height:650px; }
.specialist-card--page .specialist-card__copy h1 { font-size:48px; }
.specialist-page { background:#f7eae7; }
.story-page__grid { display:grid; grid-template-columns:.92fr 1.08fr; gap:70px; align-items:start; }
.story-page__cover { border-radius:18px; overflow:hidden; box-shadow:var(--shadow); }
.story-page__cover img { width:100%; aspect-ratio:4/5; object-fit:cover; }
.story-page__content { padding-top:6px; }
.back-link { display:inline-block; margin-bottom:34px; color:var(--muted); font-size:14px; }
.story-page__lead { font-size:19px; color:var(--muted); }
.story-page__description { margin-top:42px; padding-top:28px; border-top:1px solid var(--line); }
.story-page__description h2 { font-size:28px; }
.muted { color:var(--muted); }


/* Legal & payment */
.legal-page { background: #fcfaf6; }
.legal-document { max-width: 920px; }
.legal-document h1 { margin-bottom: 12px; }
.legal-document h2 { margin-top: 42px; margin-bottom: 14px; font-size: 28px; }
.legal-document p { margin-bottom: 14px; }
.legal-document a { text-decoration: underline; text-underline-offset: 3px; }
.legal-note { margin-top: 42px; padding: 20px 22px; border: 1px solid var(--line); border-radius: 14px; background: #fff8ef; }

.legal-form { max-width: 620px; }
.consent-check { display: flex; align-items: flex-start; gap: 12px; padding: 16px 18px; margin: 22px 0 8px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.consent-check input { width: auto; margin-top: 5px; }
.consent-check a, .legal-hint a, .payment-legal a { text-decoration: underline; text-underline-offset: 3px; }
.legal-hint, .payment-legal { font-size: 13px; line-height: 1.5; color: var(--muted); }

.subscription-page { max-width: 980px; }
.subscription-page__lead { max-width: 720px; color: var(--muted); font-size: 18px; }
.subscription-plans { margin-top: 36px; display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.subscription-plan, .empty-state { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 30px; box-shadow: var(--shadow); }
.subscription-plan__price { font: 36px Georgia, serif; margin-bottom: 10px; }
.subscription-plan__price span { font: 15px Inter, sans-serif; color: var(--muted); }
.story-purchase { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin: 24px 0; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.story-purchase strong { font: 28px Georgia, serif; }
.story-purchase small { flex-basis: 100%; color: var(--muted); }


/* v7 support + specialist */
.subscription-plans--single { max-width: 620px; }
.support-page { background:#fcfaf6; }
.support-form-card { max-width:980px; display:grid; grid-template-columns:.85fr 1.15fr; gap:64px; align-items:start; }
.support-form-card__intro p { color:var(--muted); }
.support-direct a { color:var(--accent-dark); text-decoration:underline; text-underline-offset:3px; }
.support-form { background:#fff; border:1px solid var(--line); border-radius:18px; padding:30px; box-shadow:var(--shadow); }
.support-form label { display:block; margin-bottom:18px; font-weight:600; }
.support-form input, .support-form textarea { width:100%; margin-top:7px; padding:12px 14px; border:1px solid var(--line); border-radius:10px; font:inherit; background:#fff; }
.support-form textarea { resize:vertical; }
.form-message { margin-bottom:18px; padding:12px 14px; border-radius:10px; background:#f3f0ea; }
.form-message--success { background:#edf5ee; }
.form-message--error { background:#faeeee; }
.specialist-page--bio .specialist-card--page { min-height:600px; }
.specialist-lead { font-size:20px; }
.specialist-content-section { background:#fcfaf6; }
.specialist-content-grid { display:grid; grid-template-columns:1fr 1fr; gap:70px; }
.specialist-services { padding-left:20px; }
.specialist-services li { margin:10px 0; }
.specialist-principle { margin-top:70px; padding-top:40px; border-top:1px solid var(--line); max-width:900px; }
@media (max-width:760px){ .support-form-card,.specialist-content-grid{grid-template-columns:1fr;gap:32px;} }


/* v8 catalog, access and profile */
.specialist-card__actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.specialist-page--compact .specialist-card--compact { min-height:auto; }
.specialist-page--compact .specialist-card__image { margin-bottom:-50px; }
.specialist-page--compact .specialist-card__copy { padding:22px 0 30px; }

.catalog-topics { display:flex; flex-wrap:wrap; gap:10px; margin:-12px 0 36px; }
.catalog-topics a, .story-card__topics a, .story-page__topics a {
  display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:999px;
  background:#fff; padding:8px 13px; font-size:13px; color:var(--muted);
}
.catalog-topics a:hover, .catalog-topics a.is-active,
.story-card__topics a:hover, .story-page__topics a:hover {
  border-color:rgba(189,111,117,.35); color:var(--accent-dark); background:#f9eeec;
}
.story-card__topics { display:flex; flex-wrap:wrap; gap:7px; margin:0 0 14px; }
.story-card__topics a { padding:5px 9px; font-size:12px; }
.story-page__topics { display:flex; flex-wrap:wrap; gap:8px; margin:18px 0 8px; }
.story-card__lock {
  position:absolute; right:12px; bottom:12px; padding:8px 12px; border-radius:999px;
  background:rgba(45,39,34,.82); color:#fff; font-size:12px; font-weight:700;
}
.story-locked { margin:28px 0; padding:26px; border:1px solid var(--line); border-radius:16px; background:#fff8f5; }
.story-locked h2 { font-size:27px; margin-bottom:10px; }
.story-locked p:not(.eyebrow) { color:var(--muted); }
.subscription-terms { margin:24px 0 28px; padding-top:20px; border-top:1px solid var(--line); }
.subscription-terms h3 { margin-bottom:10px; }

.profile-heading { display:flex; justify-content:space-between; gap:24px; align-items:flex-start; margin-bottom:36px; }
.profile-subscription { display:flex; align-items:center; justify-content:space-between; gap:28px; padding:28px 30px; margin-bottom:54px; border:1px solid var(--line); border-radius:18px; background:#fff8f5; }
.profile-subscription.is-active { background:#f1f6ef; }
.profile-subscription h2 { margin-bottom:8px; font-size:28px; }
.profile-subscription p:last-child { margin-bottom:0; color:var(--muted); }
.profile-stories-heading { margin-top:0; }

@media (max-width:760px){
  .profile-heading,.profile-subscription { flex-direction:column; align-items:flex-start; }
  .specialist-page--compact .specialist-card__image { margin-bottom:-20px; }
}


/* v9 premium editorial details */
.story-guidance {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin-top:36px;
}
.story-guidance__item {
  min-height:100%;
  padding:26px 28px;
  border:1px solid rgba(98,75,55,.10);
  border-radius:18px;
  background:#fbf8f3;
}
.story-guidance__item:nth-child(2) { background:#f4f6f2; }
.story-guidance__item h2 { margin-bottom:12px; font-size:25px; line-height:1.18; }
.story-guidance__text, .story-guidance__text p { color:var(--muted); font-size:15px; line-height:1.68; }
.story-guidance__text p:last-child { margin-bottom:0; }

.specialist-detail { background:#f8f2ef; }
.specialist-detail__grid {
  display:grid;
  grid-template-columns:minmax(330px,.82fr) minmax(0,1.18fr);
  gap:76px;
  align-items:start;
}
.specialist-detail__photo {
  position:sticky;
  top:110px;
  overflow:hidden;
  border-radius:22px;
  background:#f2eeee;
  box-shadow:0 24px 60px rgba(71,52,44,.10);
}
.specialist-detail__photo img {
  display:block;
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  object-position:center 30%;
}
.specialist-detail__copy { max-width:760px; padding:20px 0 12px; }
.specialist-detail__copy h1 { margin-bottom:18px; font-size:52px; }
.specialist-detail__lead { max-width:640px; font:22px/1.45 Georgia,serif; color:#4d443e; }
.specialist-detail__facts {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin:30px 0 34px;
}
.specialist-detail__facts span {
  display:flex;
  flex-direction:column;
  min-width:145px;
  padding:14px 16px;
  border-top:1px solid rgba(109,86,70,.20);
  color:var(--muted);
  font-size:13px;
}
.specialist-detail__facts strong { color:var(--text); font-size:16px; font-weight:600; }
.specialist-detail__text p { color:var(--muted); font-size:16px; line-height:1.76; }

.library-page { background:#f8f3ee; }
.library-page__shell { max-width:1080px; }
.library-page__heading { max-width:760px; margin-bottom:42px; }
.library-page__heading h1 { max-width:700px; }
.library-page__heading > p:last-child { color:var(--muted); font-size:18px; }
.library-membership {
  display:grid;
  grid-template-columns:1.35fr .65fr;
  gap:0;
  overflow:hidden;
  border:1px solid rgba(101,78,60,.10);
  border-radius:24px;
  background:#fff;
  box-shadow:0 30px 80px rgba(79,58,44,.08);
}
.library-membership__main { padding:46px 50px 48px; }
.library-membership__main h2 { margin-bottom:12px; font-size:36px; }
.library-membership__note { max-width:620px; color:var(--muted); }
.library-membership__list { list-style:none; padding:24px 0 0; margin:26px 0 0; border-top:1px solid var(--line); }
.library-membership__list li { position:relative; padding-left:26px; margin:13px 0; color:#514943; }
.library-membership__list li::before { content:'—'; position:absolute; left:0; color:var(--accent-dark); }
.library-membership__checkout {
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:44px 36px;
  background:#f1e6e3;
}
.library-membership__price { margin-bottom:20px; }
.library-membership__price strong { display:block; font:48px/1 Georgia,serif; }
.library-membership__price span { display:block; margin-top:7px; color:var(--muted); }
.library-membership__checkout > p:not(.payment-legal) { margin-bottom:24px; color:var(--muted); font-size:14px; }

.site-footer--premium { padding:58px 0 22px; background:#262421; color:rgba(255,255,255,.76); }
.premium-footer {
  display:grid;
  grid-template-columns:1.45fr .7fr .9fr 1.05fr;
  gap:42px;
}
.site-footer--premium .brand { color:#fff; }
.premium-footer__brand p { max-width:320px; margin:16px 0 0; color:rgba(255,255,255,.54); font-size:14px; line-height:1.65; }
.premium-footer__column { display:flex; flex-direction:column; gap:9px; font-size:13px; }
.premium-footer__column strong { margin-bottom:5px; color:#fff; font-size:12px; text-transform:uppercase; letter-spacing:.10em; }
.premium-footer__column a { color:rgba(255,255,255,.70); }
.premium-footer__column a:hover { color:#fff; }
.premium-footer__details span { color:rgba(255,255,255,.57); line-height:1.45; }
.premium-footer__bottom {
  display:flex;
  justify-content:space-between;
  gap:20px;
  margin-top:40px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.10);
  color:rgba(255,255,255,.38);
  font-size:12px;
}

@media (max-width:900px){
  .story-guidance { grid-template-columns:1fr; }
  .specialist-detail__grid { grid-template-columns:1fr; gap:36px; }
  .specialist-detail__photo { position:static; max-width:560px; }
  .library-membership { grid-template-columns:1fr; }
  .premium-footer { grid-template-columns:1fr 1fr; }
}
@media (max-width:600px){
  .specialist-detail__copy h1 { font-size:40px; }
  .library-membership__main,.library-membership__checkout { padding:30px 24px; }
  .premium-footer { grid-template-columns:1fr; gap:28px; }
  .premium-footer__bottom { flex-direction:column; }
}
