/* ==========================================================================
   Casi Voice 2026 — design layer
   Loaded after screen.css + casi-redesign.css. All new markup uses .cv2-*.
   ========================================================================== */
:root {
    --cv2-ink: #161616;
    --cv2-navy: #2B3548;
    --cv2-terra: #9B6044;
    --cv2-terra-dark: #82502F;
    --cv2-cream: #F8F3E6;
    --cv2-cream-soft: #FCFAF4;
    --cv2-line: #D8CBAE;
    --cv2-line-soft: #EEE7D8;
    --cv2-box-line: #E6DCC6;
    --cv2-btn-line: #C9A08A;
    --cv2-muted: #4A4A4A;
    --cv2-serif: "Cormorant Garamond", "Cormorant", Georgia, serif;
    --cv2-sans: "Jost", system-ui, sans-serif;
    --cv2-max: 1560px;
    --cv2-pad: 32px;
}
.cv2-site { background: #FFFFFF; color: var(--cv2-ink); }
.cv2-site a { color: inherit; }
.cv2-wrap { max-width: var(--cv2-max); margin: 0 auto; padding-left: var(--cv2-pad); padding-right: var(--cv2-pad); box-sizing: border-box; }
.cv2-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.cv2-site img { max-width: 100%; }

/* ---------- Type ---------- */
.cv2-h1 { font-family: var(--cv2-serif); font-weight: 600; font-size: clamp(40px, 5vw, 56px); line-height: 1.08; color: var(--cv2-ink); margin: 0; }
.cv2-h2 { font-family: var(--cv2-serif); font-weight: 600; font-size: 34px; line-height: 1.15; color: var(--cv2-ink); margin: 0; }
.cv2-kicker { font-family: var(--cv2-sans); font-weight: 600; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--cv2-navy); margin: 0 0 10px; display: block; }
.cv2-byline { font-family: var(--cv2-sans); font-weight: 400; font-size: 14px; color: var(--cv2-muted); margin: 0; display: block; }
.cv2-eyebrow { font-family: var(--cv2-sans); font-weight: 600; font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--cv2-terra); margin: 0 0 14px; }
.cv2-link-serif { font-family: var(--cv2-serif); font-weight: 500; font-size: 18px; color: var(--cv2-terra) !important; text-decoration: underline; white-space: nowrap; }
.cv2-link-serif:hover { color: var(--cv2-terra-dark) !important; }
.cv2-head-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 34px; }
.cv2-head-row--rule { border-bottom: 1px solid var(--cv2-line); padding-bottom: 14px; margin-bottom: 36px; }

/* ---------- Buttons ---------- */
.cv2-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-family: var(--cv2-sans); font-weight: 600; font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; text-decoration: none !important; border-radius: 999px; padding: 13px 26px; white-space: nowrap; cursor: pointer; transition: background .15s, color .15s, border-color .15s; }
.cv2-btn--fill { background: var(--cv2-terra); color: #FFFFFF !important; border: 1px solid var(--cv2-terra); }
.cv2-btn--fill:hover { background: var(--cv2-terra-dark); border-color: var(--cv2-terra-dark); }
.cv2-btn--line { background: transparent; color: var(--cv2-terra-dark) !important; border: 1px solid var(--cv2-btn-line); }
.cv2-btn--line:hover { background: var(--cv2-terra); border-color: var(--cv2-terra); color: #FFFFFF !important; }
.cv2-btn--sm { font-size: 11px; letter-spacing: 0.06em; padding: 11px 16px; }
.cv2-btn--head { font-size: 12px; letter-spacing: 0.12em; padding: 12px 22px; }
.cv2-btn:focus-visible, .cv2-site a:focus-visible, .cv2-site button:focus-visible { outline: 2px solid var(--cv2-ink); outline-offset: 3px; }
.cv2-btn-row { display: flex; flex-wrap: wrap; gap: 10px; }

/* ---------- Header ---------- */
.cv2-headbar { position: sticky; top: 0; z-index: 100; background: #FFFFFF; border-bottom: 1px solid var(--cv2-line); }
.cv2-headbar__inner { max-width: var(--cv2-max); margin: 0 auto; padding: 16px var(--cv2-pad); display: flex; align-items: center; justify-content: space-between; gap: clamp(12px, 2vw, 24px); box-sizing: border-box; }
.cv2-logo-h { margin: 0; font-size: inherit; line-height: 0; }
.cv2-logo { display: inline-flex; align-items: center; line-height: 0; flex-shrink: 0; }
.cv2-logo img { height: clamp(20px, 2.1vw, 26px); width: auto; display: block; }
.cv2-nav { flex: 1; min-width: 0; display: flex; justify-content: center; }
.cv2-nav__list { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: clamp(14px, 2vw, 28px); }
.cv2-nav__link { font-family: var(--cv2-sans); font-weight: 500; font-size: clamp(14px, 1.15vw, 16px); letter-spacing: clamp(0.04em, 0.35vw, 0.08em); text-transform: uppercase; color: var(--cv2-navy) !important; text-decoration: none; white-space: nowrap; padding: 6px 0; border-bottom: 2px solid transparent; display: block; }
.cv2-nav__link:hover { color: var(--cv2-terra) !important; }
.cv2-nav__link.is-active { color: var(--cv2-terra) !important; border-bottom-color: var(--cv2-terra); }
.cv2-actions { display: flex; align-items: center; gap: clamp(14px, 1.8vw, 28px); flex-shrink: 0; }
.cv2-search { background: none; border: 0; padding: 0; font-family: var(--cv2-sans); font-size: 16px; color: var(--cv2-navy); cursor: pointer; }
.cv2-search:hover { color: var(--cv2-terra); }
.cv2-burger { display: none; background: none; border: 0; padding: 8px; margin-left: -8px; flex-direction: column; gap: 4px; cursor: pointer; }
.cv2-burger span { display: block; width: 22px; height: 2px; background: var(--cv2-ink); }
.cv2-mnav { border-top: 1px solid var(--cv2-line-soft); padding: 14px 20px; display: flex; flex-direction: column; gap: 4px; }
.cv2-mnav[hidden] { display: none; }
.cv2-mnav .cv2-nav__list { flex-direction: column; align-items: stretch; gap: 0; }
.cv2-mnav .cv2-nav__link, .cv2-mnav > a, .cv2-mnav > button { font-family: var(--cv2-sans); font-weight: 500; font-size: 16px; text-transform: none; letter-spacing: 0; color: var(--cv2-ink) !important; text-decoration: none; padding: 10px 0; border: 0; border-bottom: 1px solid var(--cv2-cream); background: none; text-align: left; cursor: pointer; }

/* ---------- Tagline band ---------- */
.cv2-tagline { background: linear-gradient(180deg, #FFFFFF 0%, var(--cv2-cream) 100%); padding: 64px var(--cv2-pad) 60px; text-align: center; }
.cv2-tagline__kicker { font-family: var(--cv2-serif); font-weight: 500; font-size: 24px; color: var(--cv2-navy); margin: 0 0 22px; }
.cv2-tagline__title { font-family: var(--cv2-serif); font-weight: 500; font-size: clamp(34px, 4.4vw, 52px); line-height: 1.1; color: var(--cv2-navy); margin: 0; text-wrap: balance; }
.cv2-tagline__title em { font-style: italic; }

/* ---------- Latest ---------- */
.cv2-latest { padding: 32px 0 56px; }
.cv2-latest__grid { display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr); gap: 48px; align-items: start; }
.cv2-latest__side { display: flex; flex-direction: column; gap: 40px; }
.cv2-card__link { text-decoration: none !important; display: block; color: inherit; }
.cv2-latest__img { margin: 0 0 16px; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; background: var(--cv2-cream); }
.cv2-latest__main .cv2-latest__img { aspect-ratio: 16 / 10; margin-bottom: 22px; }
.cv2-latest__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cv2-latest__title { font-family: var(--cv2-serif); font-weight: 500; font-size: 26px; line-height: 1.2; color: var(--cv2-ink); margin: 0 0 8px; text-wrap: pretty; }
.cv2-latest__main .cv2-latest__title { font-size: clamp(32px, 3.2vw, 46px); line-height: 1.1; margin-bottom: 14px; max-width: 18em; }
.cv2-latest__excerpt { font-family: var(--cv2-serif); font-weight: 500; font-size: 20px; line-height: 1.55; color: var(--cv2-ink); margin: 0 0 14px; max-width: 640px; }

/* ---------- Cards / pillar rows ---------- */
.cv2-pillar { padding: 72px 0; }
.cv2-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 56px 48px; }
.cv2-card__img { margin: 0 0 16px; width: 100%; aspect-ratio: 4 / 3; overflow: hidden; background: var(--cv2-cream); }
.cv2-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cv2-card .cv2-kicker { letter-spacing: 1px; margin-bottom: 8px; }
.cv2-card__title { font-family: var(--cv2-serif); font-weight: 500; font-size: 24px; line-height: 1.25; color: var(--cv2-ink); margin: 0 0 10px; }
.cv2-card__link:hover .cv2-card__title, .cv2-card__link:hover .cv2-latest__title { color: var(--cv2-terra); }
.cv2-card__excerpt { font-family: var(--cv2-serif); font-weight: 500; font-size: 18px; line-height: 1.5; color: var(--cv2-ink); margin: 0 0 10px; }

/* ---------- Spotlight + Reading Room ---------- */
.cv2-duo { margin-top: 32px; border-top: 1px solid var(--cv2-line); padding: 88px 0 96px; background: var(--cv2-cream-soft); }
.cv2-duo__row { display: flex; flex-wrap: wrap; gap: 48px; }
.cv2-duo__col { flex: 1 1 560px; min-width: 0; display: flex; flex-direction: column; }
.cv2-duo__title { margin-bottom: 34px; }
.cv2-box { flex: 1; background: #FFFFFF; border: 1px solid var(--cv2-box-line); display: grid; align-items: stretch; }
.cv2-box--spotlight { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); }
.cv2-box--reading { grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr); }
.cv2-box__img { position: relative; overflow: hidden; background: var(--cv2-cream); min-height: 340px; }
.cv2-box__img--soft { background: #F6F2EA; }
.cv2-box__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 22%; display: block; }
.cv2-box--reading .cv2-box__img img { object-position: 42% 45%; }
.cv2-box__text { padding: 44px 48px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.cv2-box--reading .cv2-box__text { padding: 40px 32px; }
.cv2-box__name { font-family: var(--cv2-serif); font-weight: 600; font-size: 29px; line-height: 1.15; color: var(--cv2-ink); margin: 0 0 8px; }
.cv2-box__role { font-family: var(--cv2-serif); font-style: italic; font-weight: 500; font-size: 18px; color: var(--cv2-navy); margin: 0 0 20px; }
.cv2-box__bio { font-family: var(--cv2-serif); font-weight: 500; font-size: 19px; line-height: 1.65; color: var(--cv2-ink); margin: 0 0 30px; }
.cv2-box__quote { font-family: var(--cv2-serif); font-style: italic; font-weight: 500; font-size: 34px; line-height: 1.2; color: var(--cv2-ink); margin: 0 0 32px; text-wrap: balance; }

/* ---------- Community banner ---------- */
.cv2-community-wrap { padding-top: 16px; padding-bottom: 72px; }
.cv2-community { background: var(--cv2-cream); border: 1px solid var(--cv2-line); padding: 40px 48px; display: flex; align-items: center; justify-content: center; gap: 60px; flex-wrap: wrap; }
.cv2-community__img { flex: 0 0 320px; max-width: 320px; }
.cv2-community__img img { width: 100%; height: auto; display: block; }
.cv2-community__text { flex: 0 1 640px; min-width: 280px; }
.cv2-community__title { font-family: var(--cv2-serif); font-weight: 600; font-size: 38px; line-height: 1.15; color: var(--cv2-ink); margin: 0 0 16px; }
.cv2-community__body { font-family: var(--cv2-sans); font-size: 16px; line-height: 1.65; color: var(--cv2-ink); margin: 0 0 26px; max-width: 560px; }
.cv2-community__topics { display: flex; flex-wrap: wrap; gap: 14px; margin: 0 0 30px; font-family: var(--cv2-sans); font-weight: 500; font-size: 14px; color: var(--cv2-ink); }
.cv2-community .cv2-btn { font-size: 14px; letter-spacing: 0.08em; padding: 10px 24px; }

/* ---------- Columnists rail ---------- */
.cv2-columnists { padding: 88px 0 0; }
.cv2-columnists__box { border-top: 2px solid var(--cv2-line); border-bottom: 2px solid var(--cv2-line); padding: 72px 0 108px; }
.cv2-columnists__box .cv2-head-row { margin-bottom: 48px; align-items: baseline; }
.cv2-rail-wrap { position: relative; }
.cv2-rail { display: flex; gap: 44px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.cv2-rail::-webkit-scrollbar { display: none; }
.cv2-rail__item { flex: 0 0 calc((100% - 176px) / 5); display: flex; flex-direction: column; gap: 12px; text-decoration: none !important; scroll-snap-align: start; }
.cv2-rail__photo { width: 100%; aspect-ratio: 5 / 6; overflow: hidden; border: 1px solid var(--cv2-line); background: var(--cv2-cream); display: block; }
.cv2-rail__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cv2-rail__name { font-family: var(--cv2-sans); font-weight: 500; font-size: 13px; line-height: 1.4; color: var(--cv2-ink); }
.cv2-arrow { position: absolute; top: calc(50% - 40px); width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--cv2-ink); background: #FFFFFF; color: var(--cv2-ink); font-size: 18px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 6px rgba(255, 255, 255, .9); }
.cv2-arrow:hover { background: var(--cv2-terra); border-color: var(--cv2-terra); color: #FFFFFF; }
.cv2-arrow--prev { left: -14px; }
.cv2-arrow--next { right: -14px; }

/* ---------- Get involved ---------- */
.cv2-involve { background: var(--cv2-cream); border-top: 1px solid var(--cv2-line); padding: 88px 0 96px; margin-top: 88px; }
.cv2-involve__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 32px; }
.cv2-involve__card { display: flex; flex-direction: column; align-items: flex-start; background: #FFFFFF; border: 1px solid var(--cv2-line); padding: 44px 40px 40px; min-width: 0; }
.cv2-involve__card h3 { font-family: var(--cv2-serif); font-weight: 600; font-size: 30px; line-height: 1.15; color: var(--cv2-ink); margin: 26px 0 14px; }
.cv2-involve__card > p { font-family: var(--cv2-sans); font-size: 16px; line-height: 1.65; color: #1F1F1F; margin: 0 0 32px; flex: 1; }
.cv2-nl { display: flex; flex-wrap: wrap; gap: 12px; width: 100%; }
.cv2-nl input { flex: 1 1 180px; min-width: 0; padding: 13px 16px; border: 1px solid var(--cv2-ink); background: #FFFFFF; font-family: var(--cv2-sans); font-size: 15px; color: var(--cv2-ink); border-radius: 0; }
.cv2-btn--submit { font-size: 15px; letter-spacing: 0.02em; }
.cv2-nl__msg { display: none; width: 100%; margin: 6px 0 0; font-family: var(--cv2-sans); font-size: 14px; }
.cv2-nl.loading .cv2-btn--submit { opacity: .6; pointer-events: none; }
.cv2-nl.success .cv2-nl__msg--ok { display: block; color: #2F6B3A; }
.cv2-nl.error .cv2-nl__msg--err { display: block; color: #A33A2A; }
.cv2-nl.success input, .cv2-nl.success .cv2-btn--submit { display: none; }

/* ---------- Footer ---------- */
.cv2-foot { background: var(--cv2-navy); color: #FFFFFF; padding: 88px 0 44px; }
.cv2-foot__top { display: flex; justify-content: space-between; gap: 40px; margin-bottom: 48px; flex-wrap: wrap; }
.cv2-foot__logo { height: 26px; width: auto; display: block; margin: 0 0 18px; }
.cv2-foot__tagline { font-family: var(--cv2-serif); font-style: italic; font-weight: 600; font-size: 26px; letter-spacing: 0.02em; color: #F3DFD1; margin: 0; }
.cv2-foot__cols { display: flex; gap: 64px; flex-wrap: wrap; }
.cv2-foot__cols h3 { font-family: var(--cv2-sans); font-weight: 600; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: #FFFFFF; margin: 0 0 18px; }
.cv2-foot__cols ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.cv2-foot__cols a, .cv2-foot__cols button { font-family: var(--cv2-sans); font-weight: 400; font-size: 16px; color: #D8DEE7 !important; text-decoration: none; background: none; border: 0; padding: 0; cursor: pointer; text-align: left; }
.cv2-foot__cols a:hover, .cv2-foot__cols button:hover { color: #FFFFFF !important; text-decoration: underline; }
.cv2-foot__bottom { border-top: 1px solid #44506A; padding-top: 24px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; }
.cv2-foot__bottom p { font-family: var(--cv2-sans); font-size: 14px; color: #AEB6C4; margin: 0; }
.cv2-foot__social { list-style: none; margin: 0; padding: 0; display: flex; gap: 4px; }
.cv2-foot__social a { color: #D8DEE7 !important; display: flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; }
.cv2-foot__social a:hover { color: #FFFFFF !important; }
.cv2-foot__social svg { width: 20px; height: 20px; }

/* ---------- Pillar + region pages ---------- */
.cv2-archive__head { padding: 40px 0 8px; }
.cv2-regions { padding-top: 16px; }
.cv2-regions__inner { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.cv2-regions__inner::before { content: none; }
.cv2-regions .cv2-wrap { border-top: 1px solid var(--cv2-line); border-bottom: 1px solid var(--cv2-line); padding-top: 20px; padding-bottom: 20px; max-width: calc(var(--cv2-max) - 2 * var(--cv2-pad)); padding-left: 0; padding-right: 0; }
.cv2-regions__label { font-family: var(--cv2-sans); font-weight: 500; font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--cv2-navy); margin: 0; white-space: nowrap; }
.cv2-chips { display: flex; gap: 28px; flex-wrap: wrap; }
.cv2-chip { font-family: var(--cv2-sans); font-weight: 400; font-size: 15px; color: var(--cv2-navy) !important; background: #FFFFFF; border: 1px solid var(--cv2-line); border-radius: 999px; padding: 9px 20px; text-decoration: none !important; white-space: nowrap; }
.cv2-chip:first-child { min-width: 88px; text-align: center; }
.cv2-chip:hover { border-color: var(--cv2-terra); color: var(--cv2-terra) !important; }
.cv2-chip.is-active { background: var(--cv2-navy); border-color: var(--cv2-navy); color: #FFFFFF !important; font-weight: 500; }
.cv2-featured { padding: 64px 0; }
.cv2-featured__link { display: grid; grid-template-columns: 1.3fr 1fr; gap: 44px; align-items: center; text-decoration: none !important; }
.cv2-featured__img { margin: 0; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: var(--cv2-cream); }
.cv2-featured__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cv2-featured__title { font-family: var(--cv2-serif); font-weight: 600; font-size: 36px; line-height: 1.18; color: var(--cv2-ink); margin: 0 0 16px; }
.cv2-featured__excerpt { font-family: var(--cv2-serif); font-weight: 500; font-size: 19px; line-height: 1.5; color: var(--cv2-ink); margin: 0 0 16px; }
.cv2-more { padding: 0 0 96px; }
.cv2-more--region { padding-top: 56px; }
.cv2-more__title { margin: 0 0 36px; }
.cv2-empty { font-family: var(--cv2-serif); font-size: 22px; color: var(--cv2-muted); margin: 0 0 56px; }

/* ---------- Article ---------- */
.cv2-post { padding: 64px var(--cv2-pad) 96px; max-width: 1440px; margin: 0 auto; box-sizing: border-box; }
.cv2-post__layout { display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-start; gap: 56px; }
.cv2-article { flex: 1 1 860px; max-width: 1180px; min-width: 0; padding-left: 240px; box-sizing: border-box; }
.cv2-article__head, .cv2-article__hero, .cv2-article__body { max-width: 700px; margin-left: auto; margin-right: auto; }
.cv2-article__head { position: relative; margin-bottom: 40px; }
.cv2-article__author { position: absolute; right: calc(100% + 56px); top: 68px; width: 170px; display: flex; flex-direction: column; align-items: flex-start; }
.cv2-article__author-link { text-decoration: none !important; display: flex; flex-direction: column; align-items: flex-start; }
.cv2-article__author-link img { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; display: block; margin-bottom: 18px; }
.cv2-article__author-name { font-family: var(--cv2-serif); font-weight: 600; font-size: 20px; line-height: 1.25; color: var(--cv2-ink); margin-bottom: 6px; }
.cv2-article__meta { font-family: var(--cv2-sans); font-size: 14px; color: var(--cv2-muted); margin: 0 0 14px; }
.cv2-article__share, .cv2-article__back { font-family: var(--cv2-sans); font-weight: 500; font-size: 14px; color: var(--cv2-terra) !important; text-decoration: none; margin-bottom: 10px; white-space: nowrap; }
.cv2-article__share:hover, .cv2-article__back:hover { text-decoration: underline; }
.cv2-article__kicker { font-family: var(--cv2-sans); font-weight: 600; font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--cv2-navy); margin: 0 0 20px; }
.cv2-article__title { font-family: var(--cv2-serif); font-weight: 600; font-size: clamp(34px, 3.4vw, 48px); line-height: 1.15; color: var(--cv2-ink); margin: 0 0 20px; }
.cv2-article__dek { font-family: var(--cv2-serif); font-weight: 500; font-style: italic; font-size: 22px; line-height: 1.4; color: var(--cv2-ink); margin: 0; }
.cv2-article__hero { margin-top: 0; margin-bottom: 44px; }
.cv2-article__hero img { width: 100%; height: auto; display: block; }
.cv2-article__hero figcaption { font-family: var(--cv2-sans); font-size: 14px; color: var(--cv2-muted); margin-top: 12px; text-align: center; }
.cv2-article__body { font-family: var(--cv2-serif); font-weight: 500; font-size: 19px; line-height: 1.75; color: var(--cv2-ink); }
.cv2-article__body p { margin: 0 0 1.2em; }
.cv2-article__body h2 { font-family: var(--cv2-serif); font-weight: 600; font-size: 28px; line-height: 1.25; color: var(--cv2-ink); margin: 44px 0 16px; }
.cv2-article__body h3 { font-family: var(--cv2-serif); font-weight: 600; font-size: 23px; color: var(--cv2-terra); margin: 32px 0 12px; }
.cv2-article__body a { color: var(--cv2-terra); text-decoration: underline; }
.cv2-article__body blockquote { border: 0; margin: 40px 0; padding: 0; font-style: italic; font-size: 26px; line-height: 1.45; color: var(--cv2-navy); }
.cv2-article__body figcaption { font-family: var(--cv2-sans); font-size: 14px; color: var(--cv2-muted); text-align: center; }
.cv2-rec { flex: 0 1 340px; min-width: 280px; position: sticky; top: 110px; margin-top: 300px; }
.cv2-rec__heading { font-family: var(--cv2-serif); font-weight: 600; font-size: 34px; line-height: 1.1; color: var(--cv2-ink); margin: 0; padding-bottom: 16px; border-bottom: 1px solid var(--cv2-ink); }
.cv2-rec__item { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 18px; align-items: start; padding: 22px 0; border-bottom: 1px solid var(--cv2-line-soft); text-decoration: none !important; }
.cv2-rec__item:hover { opacity: .8; }
.cv2-rec__img { width: 120px; aspect-ratio: 3 / 2; overflow: hidden; background: var(--cv2-cream); display: block; }
.cv2-rec__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cv2-rec__kicker { display: block; font-family: var(--cv2-sans); font-weight: 600; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--cv2-terra); margin: 0 0 6px; }
.cv2-rec__title { display: block; font-family: var(--cv2-serif); font-weight: 600; font-size: 21px; line-height: 1.2; color: var(--cv2-ink); }

/* ---------- Author ---------- */
.cv2-author { padding: 64px 0 96px; }
.cv2-author__top { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 64px; align-items: start; margin-bottom: 80px; }
.cv2-author__photo { margin: 0; width: 100%; aspect-ratio: 4 / 5; overflow: hidden; background: var(--cv2-cream); }
.cv2-author__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cv2-author__social { display: flex; gap: 6px; margin-top: 16px; }
.cv2-author__social a { color: var(--cv2-navy) !important; display: flex; min-width: 40px; min-height: 40px; align-items: center; justify-content: center; border: 1px solid var(--cv2-line); border-radius: 50%; }
.cv2-author__social a:hover { color: #FFFFFF !important; background: var(--cv2-terra); border-color: var(--cv2-terra); }
.cv2-author__social svg { width: 18px; height: 18px; }
.cv2-back { display: inline-block; font-family: var(--cv2-sans); font-weight: 500; font-size: 14px; color: var(--cv2-terra) !important; text-decoration: none; margin-bottom: 28px; white-space: nowrap; }
.cv2-author__name { font-family: var(--cv2-serif); font-weight: 600; font-size: clamp(38px, 4vw, 52px); line-height: 1.1; color: var(--cv2-ink); margin: 0 0 22px; }
.cv2-author__bio { font-family: var(--cv2-serif); font-weight: 500; font-size: 20px; line-height: 1.7; color: var(--cv2-ink); margin: 0; max-width: 720px; white-space: pre-line; }
.cv2-author__articles-title { padding-bottom: 14px; border-bottom: 1px solid var(--cv2-line); margin-bottom: 8px; }
.cv2-rows { display: flex; flex-direction: column; }
.cv2-row { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 40px; padding: 32px 0; border-bottom: 1px solid var(--cv2-line-soft); text-decoration: none !important; align-items: start; }
.cv2-row__img { aspect-ratio: 3 / 2; overflow: hidden; background: var(--cv2-cream); display: block; }
.cv2-row__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cv2-row__title { display: block; font-family: var(--cv2-serif); font-weight: 600; font-size: 28px; line-height: 1.2; color: var(--cv2-ink); margin: 0 0 10px; }
.cv2-row:hover .cv2-row__title { color: var(--cv2-terra); }
.cv2-row__excerpt { display: block; font-family: var(--cv2-serif); font-weight: 500; font-size: 18px; line-height: 1.55; color: var(--cv2-ink); margin: 0 0 12px; }

/* ---------- Columnists page ---------- */
.cv2-columnists-page { padding-bottom: 96px; }
.cv2-colgroup { padding-top: 56px; }
.cv2-colgroup .cv2-h2 { padding-bottom: 14px; border-bottom: 1px solid var(--cv2-line); margin-bottom: 36px; }
.cv2-colgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 40px 44px; }
.cv2-col { display: flex; flex-direction: column; gap: 12px; text-decoration: none !important; }
.cv2-col__photo { aspect-ratio: 5 / 6; overflow: hidden; border: 1px solid var(--cv2-line); background: var(--cv2-cream); display: block; }
.cv2-col__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cv2-col__name { font-family: var(--cv2-sans); font-weight: 500; font-size: 15px; color: var(--cv2-ink); }
.cv2-col:hover .cv2-col__name { color: var(--cv2-terra); }

/* ---------- Static pages (About, Book Club, Classic Pairings, Nina) ---------- */
.cv2-static { display: block; }
.cv2-static a { text-decoration: none; }

/* ==========================================================================
   Tablet + mobile
   ========================================================================== */
@media (max-width: 1100px) {
    .cv2-article { padding-left: 0; flex-basis: 100%; }
    .cv2-article__author { position: static; transform: none; width: auto; margin: 0 auto 32px; max-width: 700px; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
    .cv2-article__author-link { flex-direction: row; align-items: center; gap: 12px; }
    .cv2-article__author-link img { width: 56px; height: 56px; margin: 0; }
    .cv2-article__author-name, .cv2-article__meta, .cv2-article__share, .cv2-article__back { margin: 0; }
    .cv2-rec { position: static; margin: 0 auto; flex-basis: 100%; max-width: 700px; }
}
@media (max-width: 960px) {
    :root { --cv2-pad: 20px; }
    .cv2-nav, .cv2-search { display: none; }
    .cv2-burger { display: flex; }
    .cv2-logo img { height: 18px; }
    .cv2-btn--head { font-size: 12px; padding: 8px 12px; letter-spacing: 0.02em; }
    .cv2-headbar__inner { padding-top: 10px; padding-bottom: 10px; }
    .cv2-latest__grid, .cv2-featured__link { grid-template-columns: 1fr; gap: 32px; }
    .cv2-grid3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 24px; }
    .cv2-rail__item { flex-basis: calc((100% - 44px) / 2.4); }
    .cv2-rail { gap: 22px; }
    .cv2-author__top { grid-template-columns: 1fr; gap: 32px; }
    .cv2-author__side { max-width: 320px; }
}
@media (max-width: 700px) {
    .cv2-tagline { padding: 44px 20px 40px; }
    .cv2-tagline__kicker { font-size: 20px; margin-bottom: 14px; }
    .cv2-h2 { font-size: 30px; }
    .cv2-pillar { padding: 48px 0; }
    .cv2-grid3 { grid-template-columns: 1fr; gap: 40px; }
    .cv2-duo { padding: 56px 0 64px; }
    .cv2-box--spotlight, .cv2-box--reading { grid-template-columns: 1fr; }
    .cv2-box__img { min-height: 0; aspect-ratio: 4 / 3; }
    .cv2-box__text, .cv2-box--reading .cv2-box__text { padding: 28px 24px 32px; }
    .cv2-box__quote { font-size: 28px; }
    .cv2-btn-row .cv2-btn { flex: 1 1 0; min-width: 0; letter-spacing: 0.02em; }
    .cv2-community { padding: 32px 24px; gap: 28px; }
    .cv2-community__img { flex-basis: 100%; max-width: 280px; margin: 0 auto; }
    .cv2-community__title { font-size: 32px; }
    .cv2-columnists { padding-top: 56px; }
    .cv2-columnists__box { padding: 44px 0 64px; }
    .cv2-rail__item { flex-basis: 42%; }
    .cv2-arrow { display: none; }
    .cv2-involve { padding: 56px 0 64px; margin-top: 56px; }
    .cv2-involve__grid { grid-template-columns: 1fr; gap: 20px; }
    .cv2-involve__card { padding: 32px 24px; }
    .cv2-foot { padding: 56px 0 32px; }
    .cv2-foot__cols { gap: 32px 48px; }
    .cv2-foot__bottom { flex-direction: column; align-items: flex-start; }
    .cv2-chips { gap: 10px; }
    .cv2-regions__inner { gap: 14px; }
    .cv2-row { grid-template-columns: 1fr; gap: 16px; padding: 24px 0; }
    .cv2-colgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 16px; }
    .cv2-post { padding-top: 32px; }
    .cv2-article__title { font-size: 34px; }
    .cv2-article__body { font-size: 18px; }
    /* static pages: soften desktop-sized inline type and padding */
    .cv2-static h1 { font-size: 40px !important; }
    .cv2-static h2 { font-size: 30px !important; }
    .cv2-static section { padding-left: 20px !important; padding-right: 20px !important; }
    .cv2-static .cv2-bookclub-now { grid-template-columns: 1fr !important; }
}

/* Region bar: keep the side margin on narrower screens so it lines up with the content */
.cv2-regions .cv2-wrap { margin-left: max(var(--cv2-pad), calc((100% - var(--cv2-max)) / 2 + var(--cv2-pad))); margin-right: max(var(--cv2-pad), calc((100% - var(--cv2-max)) / 2 + var(--cv2-pad))); }

/* Desktop "Sign in" link next to Subscribe (hidden on phones, where it is in the menu) */
.cv2-signin { font-family: var(--cv2-sans, 'Jost', sans-serif); font-size: 15px; color: inherit; text-decoration: none; margin-right: 6px; }
.cv2-signin:hover { color: #9B6044; }
@media (max-width: 900px) { .cv2-signin { display: none; } }
.cv2-nl__member { font-style: italic; margin: 8px 0 0; }

/* Nina's profile and other static pages on phones */
@media (max-width: 760px) {
    .cv2-nina-band { padding: 40px 20px 56px !important; }
    .cv2-nina-hero { grid-template-columns: 1fr !important; gap: 28px !important; }
    .cv2-nina-photo { padding-top: 0 !important; max-width: 340px; }
    .cv2-nina-photo > div { margin-top: 20px !important; justify-content: flex-start !important; }
    .cv2-nina-topics { grid-template-columns: 1fr !important; }
    .cv2-nina-latest { grid-template-columns: 96px minmax(0,1fr) !important; }
    .cv2-nina-latest > div:first-child { width: 96px !important; }
    .cv2-static .cv2-bookclub-now { grid-template-columns: 1fr !important; gap: 32px !important; }
}

/* Smallest phones (320–360px): keep logo, menu button and Subscribe on screen */
@media (max-width: 360px) {
    .cv2-headbar__inner { gap: 8px !important; padding-left: 12px !important; padding-right: 12px !important; }
    .cv2-logo img { width: 150px !important; height: auto !important; }
    .cv2-btn--head { padding: 8px 12px !important; font-size: 11px !important; letter-spacing: 0.06em !important; }
}

/* "Next pillar" box at the end of an article */
.cv2-article__next { max-width: 700px; margin: 56px auto 0; }
.cv2-nextp { display: grid; grid-template-columns: 64px minmax(0, 1fr) 44px; align-items: center; gap: 24px; padding: 28px 0; border-top: 2px solid var(--cv2-navy); border-bottom: 1px solid var(--cv2-line); text-decoration: none !important; color: var(--cv2-ink); }
.cv2-nextp__mark { width: 64px; height: 64px; border-radius: 50%; border: 1px solid var(--cv2-btn-line); display: flex; align-items: center; justify-content: center; font-family: var(--cv2-serif); font-size: 30px; color: var(--cv2-terra); }
.cv2-nextp__text { display: flex; flex-direction: column; gap: 4px; }
.cv2-nextp__kicker { font-family: var(--cv2-sans); font-weight: 600; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--cv2-navy); }
.cv2-nextp__name { font-family: var(--cv2-serif); font-weight: 600; font-size: 28px; line-height: 1.15; color: var(--cv2-ink); }
.cv2-nextp__desc { font-family: var(--cv2-serif); font-size: 16px; line-height: 1.5; color: var(--cv2-muted); }
.cv2-nextp__arrow { width: 44px; height: 44px; border-radius: 50%; background: var(--cv2-navy); color: #FFFFFF; display: flex; align-items: center; justify-content: center; transition: background .2s; }
.cv2-nextp:hover .cv2-nextp__arrow { background: var(--cv2-terra); }
.cv2-nextp:hover .cv2-nextp__name { color: var(--cv2-terra); }
@media (max-width: 600px) { .cv2-nextp { grid-template-columns: 48px minmax(0, 1fr) 40px; gap: 14px; } .cv2-nextp__mark { width: 48px; height: 48px; font-size: 24px; } .cv2-nextp__arrow { width: 40px; height: 40px; } .cv2-nextp__name { font-size: 24px; } }

/* Region buttons: selected one is light with a dark outline (as in the design) */
.cv2-chip.is-active { background: var(--cv2-cream) !important; border-color: var(--cv2-navy) !important; color: var(--cv2-navy) !important; font-weight: 500; }

/* Contact and Contribute pages: same type and buttons as the rest of the 2026 design */
.cs-contact-page .gh-article-title, .cv-contribute-title { font-family: var(--cv2-serif) !important; font-weight: 600 !important; font-size: clamp(40px, 5vw, 56px) !important; line-height: 1.08 !important; letter-spacing: 0 !important; color: var(--cv2-ink) !important; }
.cs-contact-page .gh-article-header, .cv-contribute-head { padding-bottom: 24px !important; margin-bottom: 36px !important; border-bottom: 1px solid var(--cv2-line); }
.cs-contact-page .cs-contact-subtitle { font-family: var(--cv2-serif) !important; font-style: italic; font-size: 22px !important; color: var(--cv2-navy) !important; margin-top: 12px !important; }
.cs-contact-content > p:not(.cs-contact-note), .cv-contribute-lede, .cv-contribute-lede p, .cv-contribute-cta, .cv-contribute-section > p { font-family: var(--cv2-serif) !important; font-weight: 500 !important; font-size: 19px !important; line-height: 1.75 !important; color: var(--cv2-ink) !important; }
.cv-contribute-hero-title, .cv-contribute-section-title { font-family: var(--cv2-serif) !important; font-weight: 600 !important; font-size: 34px !important; line-height: 1.15 !important; color: var(--cv2-ink) !important; }
.cv-contribute-card-title { font-family: var(--cv2-serif) !important; font-weight: 600 !important; font-size: 24px !important; color: var(--cv2-ink) !important; }
.cv-contribute-card-text { font-family: var(--cv2-serif) !important; font-size: 17px !important; line-height: 1.6 !important; }
.cv-contribute-pillars a.cv-pillar { background: #FFFFFF !important; border: 1px solid var(--cv2-line) !important; border-radius: 999px !important; text-decoration: none !important; transition: border-color .2s, color .2s; }
.cv-contribute-pillars a.cv-pillar .cv-pillar-label { font-family: var(--cv2-sans) !important; font-size: 15px !important; color: var(--cv2-navy) !important; }
.cv-contribute-pillars a.cv-pillar:hover { border-color: var(--cv2-terra) !important; }
.cv-contribute-pillars a.cv-pillar:hover .cv-pillar-label { color: var(--cv2-terra) !important; }
.cv-contribute a, .cs-contact-content a { color: var(--cv2-terra); }
@media (max-width: 760px) { .cs-contact-content > p:not(.cs-contact-note), .cv-contribute-lede, .cv-contribute-lede p, .cv-contribute-cta, .cv-contribute-section > p { font-size: 18px !important; } .cv-contribute-hero-title, .cv-contribute-section-title { font-size: 28px !important; } }
.cs-contact-page .gh-article-header { border-bottom: 0 !important; padding-bottom: 0 !important; margin-bottom: 0 !important; }
.cs-contact-page .cs-contact-subtitle { padding-bottom: 24px !important; margin-bottom: 36px !important; border-bottom: 1px solid var(--cv2-line); }

/* ===== Contact page (Claude Design handoff, Oct 2026) ===== */
.cv2-contact__intro { padding: 72px 32px 56px; max-width: 760px; margin: 0 auto; text-align: center; box-sizing: content-box; }
.cv2-contact__kicker { font-family: var(--cv2-sans); font-weight: 600; font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--cv2-terra); margin: 0 0 14px; }
.cv2-contact__title { font-family: var(--cv2-serif); font-weight: 500; font-size: 60px; line-height: 1.08; color: var(--cv2-navy); margin: 0 0 24px; }
.cv2-contact__lede { font-family: var(--cv2-serif); font-weight: 500; font-size: 22px; line-height: 1.6; color: var(--cv2-ink); margin: 0 auto; max-width: 640px; }
.cv2-contact__formwrap { padding: 0 32px 104px; }
.cv2-contact__box { max-width: 760px; margin: 0 auto; background: var(--cv2-cream); padding: 48px 52px 52px; box-sizing: border-box; }
.cv2-contact__pitch { font-family: var(--cv2-serif); font-weight: 500; font-size: 20px; line-height: 1.6; color: var(--cv2-ink); text-align: center; margin: 40px auto 0; max-width: 760px; }
.cv2-contact__pitch a { color: var(--cv2-terra-dark); text-decoration: underline; }
.cv2-form { display: flex !important; flex-direction: column; gap: 22px; max-width: none !important; margin: 0 !important; }
.cv2-form .cv2-form__row { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 22px; margin: 0 !important; }
.cv2-form .cs-contact-field { display: flex; flex-direction: column; gap: 8px; margin: 0 !important; }
.cv2-form .cs-contact-label { font-family: var(--cv2-sans) !important; font-weight: 500 !important; font-size: 13px !important; letter-spacing: 0.08em !important; text-transform: uppercase; color: var(--cv2-navy) !important; margin: 0 !important; }
.cv2-form .cs-contact-required, .cv2-form__note span { color: var(--cv2-terra) !important; }
.cv2-form .cs-contact-input { font-family: var(--cv2-sans) !important; font-size: 16px !important; color: var(--cv2-ink) !important; background: #FFFFFF !important; border: 1px solid var(--cv2-line) !important; border-radius: 4px !important; padding: 14px 16px !important; width: 100% !important; box-sizing: border-box; box-shadow: none !important; }
.cv2-form .cs-contact-input:focus { outline: 2px solid var(--cv2-terra); outline-offset: 1px; border-color: var(--cv2-terra) !important; }
.cv2-form .cs-contact-textarea { line-height: 1.6 !important; resize: vertical; min-height: 170px; }
.cv2-form .cs-contact-error { font-family: var(--cv2-sans); font-size: 13px; color: #A3361F; margin: 0; }
.cv2-form__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 6px; }
.cv2-form__note { font-family: var(--cv2-sans); font-size: 14px; color: var(--cv2-muted); margin: 0; }
.cv2-form .cv2-form__submit { display: inline-flex !important; align-items: center; gap: 12px; font-family: var(--cv2-sans) !important; font-weight: 600 !important; font-size: 13px !important; letter-spacing: 0.14em !important; text-transform: uppercase; color: #FFFFFF !important; background: var(--cv2-navy) !important; border: none !important; padding: 18px 34px !important; border-radius: 999px !important; cursor: pointer; height: auto !important; margin: 0 !important; }
.cv2-form .cv2-form__submit:hover { background: var(--cv2-terra) !important; }
.cv2-form .cv2-form__submit:disabled { opacity: .7; cursor: wait; }
.cv2-form__arrow { font-size: 16px; letter-spacing: 0; }
.cv2-form .cs-contact-status { font-family: var(--cv2-sans); font-size: 15px; margin: 0; }
.cv2-form .cs-contact-status:empty { display: none; }
@media (max-width: 760px) {
    .cv2-contact__intro { padding: 48px 20px 36px; }
    .cv2-contact .cv2-contact__title { font-size: 42px !important; }
    .cv2-contact__lede { font-size: 19px; }
    .cv2-contact__formwrap { padding: 0 16px 72px !important; }
    .cv2-contact__box { padding: 28px 20px 32px; }
    .cv2-form .cv2-form__submit { width: 100%; justify-content: center; }
}

/* ===== Contribute page (Claude Design handoff, Oct 2026) ===== */
@media (max-width: 760px) {
    .cv2-contribute h1 { font-size: 42px !important; }
    .cv2-contribute h2 { font-size: 30px !important; }
    .cv2-contribute section { padding-top: 48px !important; padding-bottom: 56px !important; }
    .cv2-contribute section > div > div[style*="grid"] { gap: 32px !important; }
}

/* Newsletter card above the footer (all pages except the homepage) */
.cv2-nlband { background: var(--cv2-cream); border-top: 1px solid var(--cv2-line); padding: 72px 0 80px; }
.cv2-nlband__card { max-width: 640px; margin: 0 auto; box-sizing: border-box; }
.cv2-nlband__card > p { flex: none !important; margin-bottom: 28px !important; }
@media (max-width: 760px) { .cv2-nlband { padding: 48px 0 56px; } }

/* Phones: Spotlight and Reading Room pictures get a fixed height (iPhone Safari ignores the box ratio in this layout) */
@media (max-width: 900px) {
    .cv2-box__img { min-height: 0 !important; aspect-ratio: auto !important; height: auto !important; }
    .cv2-box__img img { position: static !important; display: block; width: 100% !important; height: calc(75vw - 30px) !important; object-fit: cover; }
}
@media (min-width: 601px) and (max-width: 900px) {
    .cv2-box__img img { height: 420px !important; }
}

/* Phones: Nina's "In Practice" photos larger, arrows smaller */
@media (max-width: 760px) {
    [aria-label="In Practice photos"] img { flex: 0 0 82% !important; width: 82% !important; }
    [aria-label="In Practice photos"] > div { gap: 14px !important; }
    [aria-label="In Practice photos"] button { width: 44px !important; height: 44px !important; }
    [aria-label="In Practice photos"] button:first-of-type { left: 8px !important; }
    [aria-label="In Practice photos"] button:nth-of-type(2) { right: 8px !important; }
}
@media (max-width: 760px) {
    .cv2-nina-more { padding: 48px 20px 0 !important; }
    .cv2-nina-more section { padding-left: 0 !important; padding-right: 0 !important; }
}

/* Author pages: cream top band like Nina's profile */
.cv2-author { padding: 0 0 96px !important; }
.cv2-author__band { background: var(--cv2-cream); padding: 88px 32px 96px; }
.cv2-author .cv2-author__top { max-width: 1100px; margin: 0 auto !important; grid-template-columns: 300px minmax(0, 1fr); gap: 88px; align-items: center; }
.cv2-author__photo { background: #EFE7D6; }
.cv2-author__social { justify-content: center; gap: 22px; margin-top: 28px; }
.cv2-author__social a { border: 0 !important; min-width: 32px; min-height: 32px; border-radius: 0; }
.cv2-author__social a:hover { background: none !important; color: var(--cv2-terra) !important; }
.cv2-author__social svg { width: 22px; height: 22px; }
.cv2-author .cv2-author__articles { max-width: 1100px; margin: 0 auto; padding: 80px 32px 0; box-sizing: border-box; }
@media (max-width: 760px) {
    .cv2-author__band { padding: 40px 20px 56px; }
    .cv2-author .cv2-author__top { grid-template-columns: 1fr; gap: 28px; }
    .cv2-author__side { max-width: 340px; }
    .cv2-author__social { justify-content: flex-start; margin-top: 18px; }
    .cv2-author .cv2-author__articles { padding: 48px 20px 0; }
}
.cv2-nlband__card h2 { font-family: var(--cv2-serif); font-weight: 600; font-size: 30px; line-height: 1.15; color: var(--cv2-ink); margin: 26px 0 14px; letter-spacing: 0; }
