/* Practice introduction and category cards share the same editorial typography. */
.practice-welcome { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); align-items: center; gap: clamp(32px,5vw,76px); padding: 32px 0 42px; margin-bottom: 34px; border-bottom: 1px solid var(--border); }
.practice-welcome .home-hero { max-width: none; margin: 0; text-align: left; background: none; }
.practice-welcome .home-hero .eyebrow { margin: 0 0 20px; color: var(--text-soft); font-size: .7rem; font-weight: 600; letter-spacing: .14em; }
.practice-welcome .home-hero h1 { font-family: 'Avenir Next',Avenir,'Segoe UI',sans-serif; font-size: clamp(2.25rem,3.6vw,3.25rem); line-height: 1.12; font-weight: 600; letter-spacing: -.045em; margin: 0 0 22px; }
.practice-welcome .home-hero h1 span { display: block; }
.practice-welcome .home-hero h1 span:last-child { color: var(--brand); }
.practice-welcome .home-hero .home-lede { max-width: 440px; margin: 0; font-size: .96rem; line-height: 1.7; }
.practice-start { min-width: 0; }
.practice-start h2 { margin: 0 0 12px; font-size: .75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--text-soft); }
.practice-welcome .goal-shortcuts { grid-template-columns: minmax(0,1fr); gap: 0; margin: 0; border-top: 1px solid var(--border); }
.practice-welcome .goal-shortcut { display: grid; grid-template-columns: minmax(0,1fr) 22px; align-items: center; gap: 20px; min-height: 85px; padding: 18px 0; border: 0; border-bottom: 1px solid var(--border); border-radius: 0; background: transparent; box-shadow: none; }
.practice-welcome .goal-shortcut strong { font-family: 'Avenir Next',Avenir,'Segoe UI',sans-serif; font-size: 1.04rem; font-weight: 600; letter-spacing: -.015em; line-height: 1.4; }
.practice-welcome .goal-shortcut small { font-size: .82rem; margin-top: 4px; line-height: 1.55; }
.practice-welcome .goal-shortcut .icon { width: 22px; height: 22px; color: var(--brand); }
.practice-welcome .goal-shortcut:hover strong,
.practice-welcome .goal-shortcut:focus-visible strong { color: var(--brand); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
[data-contrast="high"] .practice-welcome .home-hero h1 span:last-child { color: var(--text); }
@media (max-width: 840px) {
  .practice-welcome { grid-template-columns: minmax(0,1fr); gap: 30px; padding: 20px 0 32px; margin-bottom: 28px; }
  .practice-welcome .home-hero .home-lede { max-width: 520px; }
}
@media (max-width: 560px) {
  .practice-welcome { padding-top: 8px; }
  .practice-welcome .home-hero .eyebrow { margin-bottom: 16px; font-size: .65rem; letter-spacing: .11em; }
  .practice-welcome .home-hero h1 { font-size: clamp(2rem,7.9vw,2.8rem); margin-bottom: 18px; }
  .practice-welcome .home-hero .home-lede { font-size: .9rem; }
  .practice-welcome .goal-shortcut { min-height: 82px; padding: 16px 0; }
  .practice-welcome .goal-shortcut strong { font-size: 1rem; }
}

:where(.editorial-library) .home-modules { max-width: none; margin: 0; gap: 24px; align-items: stretch; }
:where(.editorial-library) .home-module-card { display: grid; grid-template-columns: minmax(0,1fr); gap: 0; padding: 24px; min-width: 0; align-items: start; border: 1px solid var(--border); border-radius: 18px; background: #fffdf8; box-shadow: 0 9px 24px #29354b0c; backdrop-filter: none; -webkit-backdrop-filter: none; }
:where(.editorial-library) .home-module-card[data-module-start="read_the_room"] { --card-accent: #9f5317; }
:where(.editorial-library) .home-module-card > * { grid-column: auto; grid-row: auto; min-height: 0; }
:where(.editorial-library) .home-module-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px #29354b15; }
:where(.editorial-library) .module-topline { display: flex; align-items: center; gap: 10px; margin: 0 0 20px; }
:where(.editorial-library) .module-serial { display: inline; font-size: .8rem; font-variant-numeric: tabular-nums; color: var(--card-accent); }
:where(.editorial-library) .module-icon { width: 32px; height: 32px; }
:where(.editorial-library) .module-count { margin-left: auto; font-size: .72rem; color: var(--text-soft); }
:where(.editorial-library) .home-module-card h3 { min-height: 0; font-size: 1.5rem; line-height: 1.13; margin: 0 0 12px; }
:where(.editorial-library) .module-description { display: block; min-height: 0; font-size: .87rem; line-height: 1.6; margin: 0 0 21px; }
:where(.editorial-library) .module-photo { position: static; min-height: 0; align-self: center; width: 100%; margin: 0 0 20px; overflow: visible; background: none; border-radius: 18px; }
:where(.editorial-library) .home-module-img { position: static; width: 100%; height: auto; min-height: 0; max-height: none; aspect-ratio: auto; object-fit: contain; transform: none; border-radius: 18px; }
:where(.editorial-library) .module-question { min-height: 0; font-size: .93rem; line-height: 1.5; margin: 0 0 22px; }
:where(.editorial-library) .module-enter { align-self: end; margin: auto 0 0; font-size: .83rem; padding: 12px 16px; border-radius: 10px; }
.editorial-library .home-modules { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 30px 35px; }
.editorial-library .home-module-card { grid-template-columns: minmax(0,1fr); align-content: start; padding: 0 0 16px; border: 0; border-bottom: 2px solid var(--card-accent); background: transparent; box-shadow: none; border-radius: 0; }
.editorial-library .home-module-card:hover { box-shadow: none; transform: none; }
.editorial-library .module-photo { grid-column: 1/-1; grid-row: 1; margin: 0 0 14px; }
.editorial-library .module-topline { grid-column: 1/-1; grid-row: 2; margin-bottom: 8px; }
.editorial-library .module-serial { font-size: .85rem; }
.editorial-library .module-icon { background: none; width: 22px; height: 22px; }
.editorial-library .home-module-card h3 { grid-column: 1; grid-row: 3; font-family: 'Avenir Next',Avenir,'Segoe UI',sans-serif; font-size: clamp(1.7rem,2.5vw,2.4rem); font-weight: 600; letter-spacing: -.035em; margin-bottom: 6px; }
.editorial-library .module-description { grid-column: 1; grid-row: 4; margin-bottom: 6px; }
.editorial-library .module-question { grid-column: 1; grid-row: 5; margin: 0; color: var(--card-accent); font-size: .88rem; }
.editorial-library .module-question br { display: none; }
.editorial-library .module-enter { grid-column: 1; grid-row: 6; justify-self: start; width: auto; min-height: 44px; box-sizing: border-box; margin: 6px 0 0; padding: 10px 0; border: 0; border-radius: 0; flex-direction: row; justify-content: flex-start; text-align: left; font-family: 'Avenir Next',Avenir,'Segoe UI',sans-serif; font-size: .85rem; font-weight: 600; line-height: 1.4; letter-spacing: .01em; gap: 12px; background: transparent; color: var(--text); text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.editorial-library .home-module-card:hover .module-enter,
.editorial-library .home-module-card:focus-visible .module-enter { background: transparent; color: var(--card-accent); }
@media (max-width: 600px) {
  .editorial-library .home-modules { grid-template-columns: 1fr; }
}
[data-contrast="high"] .editorial-library .home-module-card { color: var(--text); background: #fff; border: 2px solid #64748b; box-shadow: none; }
[data-contrast="high"] .editorial-library .home-module-card h3,
[data-contrast="high"] .editorial-library .module-description,
[data-contrast="high"] .editorial-library .module-question,
[data-contrast="high"] .editorial-library .module-count,
[data-contrast="high"] .editorial-library .module-serial { color: #172033; }
[data-contrast="high"] .editorial-library .module-icon { color: var(--card-accent); background: #fff; }
[data-motion="reduced"] .editorial-library .home-module-card:hover { transform: none; }
@media (prefers-reduced-motion: reduce) { .editorial-library .home-module-card:hover { transform: none; } }
