/* Linden & Spring — content pages: About, Policies, Journal, Article, 404. */

/* ---------- About ---------- */
.ms-about-hero { display: flex; flex-direction: column; gap: 26px; padding-top: 72px; }
.ms-about-hero__copy { max-width: 1100px; }
.ms-about-hero .ms-h1 { font-size: 84px; line-height: .98; letter-spacing: -.04em; }
.ms-about-hero .ms-lead { font-size: 20px; max-width: 720px; }
.ms-about-hero__img { aspect-ratio: 21 / 9; margin-top: 20px; border-radius: var(--radius-card); }
.ms-about-hero__img img { object-position: 50% 45%; }
.ms-about-mission { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; }
.ms-about-mission .ms-h2 { font-size: 46px; }
.ms-about-mission .ms-body { line-height: 1.65; }
.ms-about-facts__inner { padding-top: 64px; padding-bottom: 64px; gap: 32px; }
.ms-fact { display: flex; flex-direction: column; gap: 6px; padding-top: 18px; border-top: 1px solid var(--color-ink); }
.ms-fact__value { font-family: var(--font-display); font-weight: 500; font-size: 52px; line-height: 1; letter-spacing: -.03em; }
.ms-fact__label { font-size: 15px; color: var(--color-body); }
.ms-process { list-style: none; gap: 16px; }
.ms-process__step { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.ms-process__img { display: flex; aspect-ratio: 1 / 1; border-radius: var(--radius-tile); background: var(--color-linen); }
.ms-process__img.is-todo { align-items: center; justify-content: center; padding: 10px; color: var(--color-taupe); font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; text-align: center; }
.ms-process__icon { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 50%; background: var(--color-linen); color: var(--color-maple); }
.ms-process__n { font-size: 14px; font-weight: 600; color: var(--color-maple); }
.ms-process__step strong { font-family: var(--font-display); font-weight: 500; font-size: 21px; line-height: 1.15; letter-spacing: -.01em; }
.ms-process__text { font-size: 15px; line-height: 1.5; color: var(--color-body); }
.ms-about-standards { background: var(--color-forest); }
.ms-about-standards .ms-split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.ms-about-standards__img { aspect-ratio: 4 / 3; border-radius: var(--radius-card); background: #2C3731; }
.ms-about-standards .ms-h2 { font-size: 46px; }
.ms-standards { list-style: none; display: flex; flex-direction: column; gap: 18px; font-size: 17px; line-height: 1.5; }
.ms-standards li { display: flex; gap: 14px; }
.ms-standards li svg { flex: 0 0 auto; margin-top: 2px; }
.ms-standards__text { color: var(--color-footer-muted); }
.ms-about-cta { display: flex; flex-direction: column; align-items: center; gap: 20px; text-align: center; }
.ms-about-cta .ms-h2 { max-width: 900px; font-size: 56px; line-height: 1.02; letter-spacing: -.035em; }
.ms-about-cta .ms-body { max-width: 600px; }
.ms-about-cta__btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
@media (max-width: 1024px) {
	.ms-about-mission, .ms-about-standards .ms-split { grid-template-columns: minmax(0, 1fr); gap: 32px; }
	.ms-process { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.ms-about-hero { padding-top: 48px; }
	.ms-about-hero .ms-h1 { font-size: 46px; }
	.ms-about-hero__img { aspect-ratio: 4 / 3; }
	.ms-about-mission .ms-h2, .ms-about-standards .ms-h2 { font-size: 32px; }
	.ms-about-cta .ms-h2 { font-size: 36px; }
	.ms-process { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ms-fact__value { font-size: 40px; }
}

/* ---------- Sticky table of contents (Policies, Article) ---------- */
.ms-toc { display: flex; flex-direction: column; font-size: 15px; font-weight: 600; align-self: start; }
.ms-toc__title { padding-bottom: 10px; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--color-taupe); }
.ms-toc a { padding: 9px 0 9px 14px; border-left: 2px solid var(--color-line); color: var(--color-ink); text-decoration: none; }
.ms-toc a:hover { border-left-color: var(--color-taupe); }
.ms-toc a[aria-current="true"] { border-left-color: var(--color-pine); color: var(--color-pine); }
@media (min-width: 1025px) { .ms-toc { position: sticky; top: 24px; } }

/* ---------- Policies ---------- */
.ms-policies__hero { display: flex; flex-direction: column; gap: 16px; max-width: 1200px; padding-top: 56px; padding-bottom: 40px; }
.ms-policies__hero .ms-body { font-size: 17px; max-width: 720px; }
.ms-policies__note { max-width: 820px; padding: 14px 16px; border-radius: var(--radius-tile); background: var(--color-placeholder-bg); color: var(--color-placeholder-text); font-size: 14px; line-height: 1.55; }
.ms-policies__layout { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: 56px; align-items: start; max-width: 1200px; padding-top: 48px; padding-bottom: 96px; border-top: 1px solid var(--color-line); }
.ms-policies__body { max-width: none; min-width: 0; font-size: 16px; line-height: 1.65; }
.ms-policies__body > * + * { margin-top: 14px; }
.ms-policies__body h2 { margin-top: 56px; font-size: 36px; letter-spacing: -.025em; scroll-margin-top: 24px; }
.ms-policies__body > h2:first-child { margin-top: 0; }
.ms-policies__body h3 { margin-top: 22px; font-family: var(--font-body); font-size: 18px; font-weight: 700; }
.ms-policies__body ul { display: flex; flex-direction: column; gap: 6px; padding-left: 20px; }
.ms-policies__body ul > * + * { margin-top: 0; }
.ms-policies__body strong { color: var(--color-ink); }
.ms-policies__body .ms-table-wrap { margin-top: 14px; }
.ms-policies__contact { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 56px !important; padding: 24px; border-radius: var(--radius-card); background: var(--color-linen); }
.ms-ph-public .ms-ph { background: var(--color-placeholder-bg); color: var(--color-placeholder-text); border-radius: 3px; box-shadow: 0 0 0 2px var(--color-placeholder-bg); }
@media (max-width: 1024px) {
	.ms-policies__layout { grid-template-columns: minmax(0, 1fr); gap: 32px; }
}
@media (max-width: 640px) {
	.ms-policies__body h2 { font-size: 30px; margin-top: 44px; }
}

/* Privacy choices switch */
.ms-choices { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 16px; border-radius: 12px; background: #fff; }
.ms-choices__text { display: flex; flex-direction: column; gap: 2px; flex: 1 1 260px; }
.ms-choices__text span { font-size: 14px; }
.ms-choices__status { flex-basis: 100%; font-size: 14px; font-weight: 600; color: var(--color-pine); }
.ms-choices__status:empty { display: none; }

/* ---------- Journal ---------- */
.ms-journal__hero { display: flex; flex-direction: column; gap: 14px; padding-top: 56px; padding-bottom: 40px; }
.ms-journal__hero .ms-pills { margin-top: 12px; }
.ms-feature-post { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 40px; align-items: center; overflow: hidden; border-radius: var(--radius-card); background: #fff; color: var(--color-ink); text-decoration: none; }
.ms-feature-post:hover .ms-feature-post__title { text-decoration: underline; }
.ms-feature-post__img { aspect-ratio: 4 / 3; }
.ms-feature-post__text { display: flex; flex-direction: column; gap: 14px; padding: 32px 40px 32px 0; }
.ms-feature-post__title { font-family: var(--font-display); font-weight: 500; font-size: 40px; line-height: 1.08; letter-spacing: -.025em; }
.ms-journal .ms-grid.ms-g3 { row-gap: 48px; }
.ms-journal__cta-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; padding-top: 64px; padding-bottom: 64px; }
.ms-journal__cta-text { color: var(--color-on-dark-muted); font-size: 17px; }
@media (max-width: 1024px) {
	.ms-feature-post { grid-template-columns: minmax(0, 1fr); gap: 0; }
	.ms-feature-post__text { padding: 24px 24px 28px; }
}
@media (max-width: 640px) {
	.ms-feature-post__title { font-size: 30px; }
}

/* ---------- Article ---------- */
.ms-article__head { padding-top: 48px; padding-bottom: 32px; }
.ms-article__head > * { max-width: 820px; margin-left: auto; margin-right: auto; }
.ms-article__head { display: flex; flex-direction: column; gap: 16px; }
.ms-article__title { font-size: 58px; line-height: 1.02; }
.ms-article__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; font-size: 14px; color: var(--color-taupe); }
.ms-article__head .ms-crumbs, .ms-article__head .ms-eyebrow, .ms-article__head h1, .ms-article__head p { width: 100%; }
.ms-article__hero { max-width: 1200px; margin: 0 auto; aspect-ratio: 2 / 1; border-radius: var(--radius-card); }
.ms-article__layout { display: grid; grid-template-columns: 220px minmax(0, 720px); gap: 56px; justify-content: center; padding-top: 48px; padding-bottom: 72px; }
.ms-article__layout.no-toc { grid-template-columns: minmax(0, 720px); }
.ms-article__layout .ms-toc { gap: 0; }
.ms-article__body { font-size: 18px; line-height: 1.7; color: #2F2C28; }
.ms-article__body h2 { font-size: 34px; scroll-margin-top: 24px; }
.ms-article__body > h2:first-child { margin-top: 0; }
.ms-inline-product { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 18px; align-items: center; padding: 22px 24px; border-radius: 12px; background: var(--color-linen); }
.ms-inline-product__img { width: 88px; height: 88px; background: var(--color-stone); }
.ms-inline-product__text { display: flex; flex-direction: column; gap: 4px; font-size: 16px; line-height: 1.4; }
.ms-inline-product__text .ms-muted, .ms-inline-product__text a { font-size: 15px; }
.ms-inline-product__text a { font-weight: 600; }
@media (max-width: 900px) {
	.ms-article__layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}
@media (max-width: 640px) {
	.ms-article__title { font-size: 40px; }
	.ms-article__body { font-size: 17px; }
	.ms-article__body h2 { font-size: 28px; }
}

/* ---------- 404 ---------- */
.ms-nf .ms-section { padding-top: 88px; }
.ms-nf__head { display: flex; flex-direction: column; align-items: center; gap: 20px; max-width: 760px; margin: 0 auto; text-align: center; }
.ms-nf__search { display: flex; align-items: center; gap: 10px; width: 100%; max-width: 560px; height: 56px; margin-top: 8px; padding: 0 6px 0 20px; border: 1px solid var(--color-field-line); border-radius: 28px; background: #fff; }
.ms-nf__search input { flex: 1 1 0; min-width: 0; height: 100%; border: 0; background: transparent; font-size: 16px; }
.ms-nf__search input:focus { outline: none; }
.ms-nf__search:focus-within { outline: 2px solid var(--color-ink); outline-offset: 2px; }
.ms-nf__search .ms-btn { min-height: 44px; height: 44px; }
.ms-nf__tiles { margin-top: 56px; }
.ms-nf__tile { display: flex; flex-direction: column; gap: 12px; padding: 20px; border-radius: var(--radius-card); background: #fff; color: var(--color-ink); text-decoration: none; }
.ms-nf__tile:hover strong { text-decoration: underline; }
.ms-nf__tile strong { font-size: 17px; }
.ms-nf__img { aspect-ratio: 1 / 1; }
@media (max-width: 900px) { .ms-nf__tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .ms-nf .ms-section { padding-top: 56px; } .ms-nf__tile { padding: 14px; } }
