/* The same paper, ink, rust, font and shell as the replacement website.
   Adapt existing app controls without changing their visibility or behavior. */
:root { --cream:#fcfaf5; --paper:#fcfaf5; --ink:#292824; --gold:#803b29; --gold-dark:#803b29; --line:#d5cfc3; --soft:#f5f1e8; --brown:#292824; --muted-brown:#5f5b53; --shadow:none; --danger:#8e2f27; }
body[data-book-design] { margin:0!important; padding:0!important; background:var(--paper)!important; color:var(--ink)!important; font:400 24px/1.6 'EB Garamond',Georgia,serif!important; }
body[data-book-design] :is(p,li,a,button,input,select,textarea,label,summary,blockquote,h1,h2,h3,h4,.small,.notice,.check,.speaker,.session-title,.mode,.error,.duration,.subtitle,.eyebrow,.crumb,.track-title,.track-dur,.part-label,.book-meta,.author,.progress-stats,.field,.status-detail,.session-meta,.voice-detail,.consent-detail) { font-family:'EB Garamond',Georgia,serif!important; letter-spacing:normal!important; text-transform:none!important; }
body[data-book-design] :is(main,.wrap) { color:var(--ink); }
body[data-book-design] :is(p,li,blockquote) { font-size:24px!important; line-height:1.6!important; }
body[data-book-design] :is(h1,h2,h3,h4) { color:var(--ink)!important; font-weight:400!important; font-style:normal!important; line-height:1.17!important; letter-spacing:-.012em!important; }
body[data-book-design] h1 { font-size:54px!important; margin-bottom:28px!important; }
body[data-book-design] h2 { font-size:40px!important; margin-bottom:24px!important; }
body[data-book-design] h3 { font-size:30px!important; }
body[data-book-design] h4 { font-size:28px!important; }
body[data-book-design] h1:after { content:'';display:block;width:56px;height:1px;background:#a39b8d;margin:28px auto; }
body[data-book-design] :is(.shell,.page-shell,.wrap) { width:calc(100% - 48px)!important; max-width:800px!important; padding:40px 0 36px!important; margin:0 auto!important; }
body[data-book-design] :is(.logo-top,main>.brand,main>.rule,.masthead>.logo,.wrap>.divider) { display:none; }
body[data-book-design] :is(.hero,.masthead) { margin:0 0 40px; }
body[data-book-design] .masthead:has(>img:not(.logo)) { display:grid; grid-template-columns:150px minmax(0,1fr); gap:36px; align-items:start; }
body[data-book-design] .masthead>img:not(.logo) { width:150px;height:auto; }
body[data-book-design] .masthead h1:after { margin-left:0; }
body[data-book-design] :is(.card,.module,.session,.player-wrap,.kindle-howto,.information-notice,.pathway-card,.consult-offer) { background:transparent!important; box-shadow:none!important; border-radius:0!important; border-color:var(--line)!important; }
body[data-book-design] .card { max-width:none; width:100%; padding:28px 0 0!important; border:0!important; border-top:1px solid var(--line)!important; margin:32px 0 0!important; height:auto; }
body[data-book-design] .module { padding:28px 0 0!important; border:0!important; border-top:1px solid var(--line)!important; margin:32px 0 0!important; }
body[data-book-design] :is(.notice,.information-notice) { background:var(--soft)!important; padding:24px!important; margin:24px 0; }
body[data-book-design] :is(.small,.small p,.small li,.notice,.notice p,.check,.notice-more p,.consent-detail,.voice-detail,.duration,.subtitle,.eyebrow,.crumb,.mode,.speaker,.session-meta,.error,.field label,.book-meta,.author,.progress-stats,.footer,.footer p,.hw-service-notice p) { font-size:20px!important; line-height:1.5!important; color:var(--muted); }
body[data-book-design] :is(.button,button:not(.big-btn),.unlock-button,.launch-cta,.download-btn,.class-btn,.btn) { display:inline-flex; align-items:center; justify-content:center; background:transparent!important; color:var(--rust)!important; border:1px solid var(--rust)!important; border-radius:0!important; box-shadow:none!important; font-size:20px!important; font-weight:400!important; line-height:1.35!important; min-height:54px; padding:14px 24px!important; max-width:100%; white-space:normal; cursor:pointer; text-align:center; text-decoration:none; }
body[data-book-design] :is(.button,button:not(.big-btn),.unlock-button,.launch-cta,.download-btn,.class-btn,.btn):hover:not(:disabled) { color:var(--paper)!important; background:var(--rust)!important; }
body[data-book-design] :is(button,.button):disabled { opacity:.5;cursor:not-allowed; }
body[data-book-design] :is(button,.button).danger { border-color:var(--danger)!important;color:var(--danger)!important; }
body[data-book-design] :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea) { font-size:22px!important; line-height:1.5!important; color:var(--ink)!important; background:var(--paper)!important; border:1px solid #aba396!important; border-radius:0!important; padding:12px 16px!important; max-width:100%; }
body[data-book-design] :is(input[type=checkbox],input[type=radio]) { width:20px; height:20px; flex-shrink:0; accent-color:var(--rust); }
body[data-book-design] :is(a,button,input,textarea,select,summary):focus-visible { outline:3px solid var(--rust)!important;outline-offset:4px; }
body[data-book-design] .gate-input { display:block;width:100%;margin-bottom:18px; }
body[data-book-design] #gateForm { background:var(--soft)!important;padding:32px; }
body[data-book-design] :is(.player-wrap,.kindle-howto) { padding:28px; }
body[data-book-design] :is(.session-head,.composer,.status-panel,.message.assistant,.turn.assistant) { background:var(--soft)!important; }
body[data-book-design] :is(.message.user,.turn.user) { background:#ece5d8!important; }
body[data-book-design] :is(.message,.turn) { font-size:24px!important;line-height:1.5!important; }
body[data-book-design] :is(.track-title,.track-dur,.track-num,.part-label) { font-size:20px!important;line-height:1.35!important; }
body[data-book-design] .track { min-height:54px; }
body[data-book-design] .big-btn { color:var(--rust);border-color:var(--rust); }
body[data-book-design] .big-play { background:var(--rust);color:var(--paper); }
body[data-book-design] .hw-service-notice { max-width:800px; padding:0 24px; margin:0 auto; }
body[data-book-design] #practice-main>section { background:var(--paper)!important; padding:var(--section-space) 24px!important; }
body[data-book-design] #practice-main>section.enroll-section { background:var(--soft)!important; }
body[data-book-design] #practice-main :is(.reading,.inner) { max-width:800px!important;margin:auto; }
body[data-book-design] .weeks { display:grid;grid-template-columns:1fr 1fr;gap:32px; padding:0; }
body[data-book-design] .weeks li { list-style:none; padding:24px 0;border-top:1px solid var(--line);background:transparent; }
/* Shell values match the website and override older app header selectors. */
body[data-book-design] .hw-site-header { text-align:left; }
body[data-book-design] .hw-brand { margin:0; }
body[data-book-design] .hw-reader-entry a { font-size:21px!important; }
body[data-book-design] .hw-site-footer { text-align:left; }
body[data-book-design] .hw-site-footer :is(p,a,span) { font-size:20px!important;color:var(--paper)!important; }
@media(max-width:767px) {
 body[data-book-design] { font-size:22px!important; }
 body[data-book-design] :is(p,li,blockquote,.message,.turn) { font-size:22px!important; }
 body[data-book-design] h1 { font-size:38px!important; }
 body[data-book-design] h2 { font-size:32px!important; }
 body[data-book-design] :is(h3,h4) { font-size:28px!important; }
 body[data-book-design] :is(.shell,.page-shell,.wrap) { padding-top:36px!important; }
 body[data-book-design] .masthead:has(>img:not(.logo)) { display:block; }
 body[data-book-design] .masthead>img:not(.logo) { width:130px;margin:0 auto 28px; }
 body[data-book-design] :is(#gateForm,.player-wrap,.kindle-howto) { padding:20px; }
 body[data-book-design] .weeks { grid-template-columns:1fr; }
 body[data-book-design] .hw-reader-entry a { font-size:20px!important; }
 body[data-book-design] .session-head { flex-wrap:wrap; }
 body[data-book-design] .hw-mobile-menu summary { font-size:22px!important; }
}
@media print {
 body[data-book-design] :is(.hw-site-header,.hw-site-footer,.hw-footer-ornament,.hw-skip,.hw-preview-note,.crumb) { display:none!important; }
 body[data-book-design] :is(p,li) { font-size:12pt!important;line-height:1.35!important; }
 body[data-book-design] h1 { font-size:24pt!important; }
 body[data-book-design] :is(.shell,.wrap) { width:100%!important;padding:0!important; }
}
body[data-book-design] * { font-family:'EB Garamond',Georgia,serif!important; }
body[data-book-design] .hw-preview-note { font-family:system-ui,sans-serif!important; }
body[data-book-design] h1:after { margin-left:0; }
body[data-book-design] .hero h1:after, body[data-book-design] .page-shell .masthead h1:after { margin-left:auto; }
body[data-book-design] :is(.back-link,.crumbs,.nav,.jump,.speaker,.waiting-status,.speak-status,.breath-time,.voice-status,.session-meta,.pathway-label,.speedbar,.listen .row) { font-size:20px!important;line-height:1.5!important; }
body[data-book-design] .jump a { white-space:normal; }
body[data-book-design] .hw-reader-entry { background:var(--paper); }
body[data-book-design] #gateForm label { display:block;font-size:20px;line-height:1.4;margin:0 0 8px; }
body[data-book-design] .gate-msg { font-size:20px;line-height:1.5; }
body[data-book-design] .gate-msg:empty { min-height:0;margin:0; }
body[data-book-design] :is(.label,.note,.reading-download,.notice-more summary,.jump-nav a,.part-nav a,.speed-label,.big-num,.plyr__time,.plyr__tooltip) { font-size:20px!important;line-height:1.4!important; }
/* Section labels (Readings, Meditations, Journals; Week 1; Listen instead) were
   still the old brass #7A5C14 in bold. Supporting labels are muted, normal
   weight, with the site's light tracking. */
body[data-book-design] .label { color:var(--muted)!important; font-weight:400!important; letter-spacing:.035em!important; text-transform:none!important; }
body[data-book-design] .wrap a { font-size:20px!important; }
body[data-book-design] .progress-stats strong { color:var(--rust)!important; }
body[data-book-design] :is(.progress-fill,.track.active) { background:var(--soft)!important; }
body[data-book-design] .progress-fill { background:var(--rust)!important; }
body[data-book-design] .plyr { --plyr-color-main:var(--rust);--plyr-audio-control-color:var(--rust);--plyr-audio-controls-background:var(--paper); }
body[data-book-design] .plyr button { min-height:44px;min-width:44px;padding:10px!important; }
body[data-book-design] .plyr__controls { flex-wrap:wrap;gap:10px; }
body[data-book-design] .plyr__progress__container { min-width:120px; }
body[data-book-design] main a:not(.button) { font-size:1em!important; }
body[data-book-design] button.track-btn { display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:16px 4px!important; border:0!important;border-bottom:1px solid var(--line)!important;text-align:left; }
body[data-book-design] .track.front .track-btn { padding-left:26px!important;padding-right:50px!important; }
body[data-book-design] button.track-btn:hover:not(:disabled),body[data-book-design] button.track-btn.playing { background:var(--soft)!important; color:var(--rust)!important; }
body[data-book-design] :is(.track-dur,.track-btn.playing .track-title,.check-mark) { color:var(--rust)!important; }
body[data-book-design] .big-btn:hover { background:var(--rust);color:var(--paper); }

/* Reading rhythm: component boundaries own the gap, without stacked padding. */
body[data-book-design] :is(.card,.shell,.wrap,.module,.reading,.inner) > :is(h2,h3,h4):not(:first-child) { margin-top:var(--subsection-space)!important; }
body[data-book-design] :is(.card,.shell,.wrap,.module,.reading,.inner) > .eyebrow + :is(h2,h3,h4) { margin-top:0!important; }
body[data-book-design] :is(.card,.reading,.inner,.module,.wrap) > :last-child { margin-bottom:0!important; }
body[data-book-design] :is(.card,.shell,.wrap,.module,.reading,.inner) > :is(.button,button) + :is(p,ul,ol) { margin-top:var(--copy-space); }
body[data-book-design] :is(.row,.composer-actions,.hero-actions) { gap:var(--related-space); }
body[data-book-design] .hero-actions { margin-top:var(--copy-space); }
body[data-book-design] .weeks { gap:32px; margin-top:32px; margin-bottom:0; }
body[data-book-design] .weeks li { padding-bottom:0; margin-bottom:0; }
body[data-book-design] .weeks li > :last-child { margin-bottom:0!important; }
body[data-book-design] .refund { margin-top:var(--subsection-space);padding-top:28px; }
body[data-book-design] .notice > :last-child, body[data-book-design] .information-notice > :last-child { margin-bottom:0; }
@media(max-width:767px) {
 body[data-book-design] :is(.shell,.page-shell,.wrap) { padding-bottom:28px!important; }
 body[data-book-design] .card { padding-top:24px!important;margin-top:28px!important; }
 body[data-book-design] .weeks { gap:28px; }
}

/* Companion exchanges. Who spoke is carried by the label and the wash, not by a
   rounded panel, so the reading surface stays as flat as the rest. */
body[data-book-design] :is(.message,.turn) { border-radius:0!important; padding:20px 24px!important; }

/* ── Private pages ───────────────────────────────────────────────
   Client pages and single-client companions. Same paper, ink, type and
   controls as the website, without its navigation: nothing here sells
   anything. One skin for every client, present and future, so a new page
   inherits the identity instead of carrying a copy of it.
   The masthead the public shell would have supplied is the page's own logo,
   kept small, over one thin rule. */
body[data-book-private] main > .brand { display:flex!important; justify-content:center; margin:0 0 20px!important; }
body[data-book-private] main > .brand img { width:220px!important; max-width:100%; height:auto; }
body[data-book-private] main > .rule { display:block!important; height:1px!important; background:var(--line)!important; opacity:1!important; margin:0 0 40px!important; }
body[data-book-private] .hw-private-ornament { max-width:800px; margin:0 auto; padding:36px 24px 44px; text-align:center; }
body[data-book-private] .hw-private-ornament img { width:100px; height:auto; opacity:.5; }
body[data-book-private] .footer { border-top:1px solid var(--line); padding-top:24px; margin-top:var(--subsection-space)!important; }
/* Dates, prompt labels and disclosure summaries came from the older sans
   uppercase treatment. They read as ordinary text now. */
body[data-book-private] :is(.entry-date,.promptlabel,.notelabel,.question,.promptText,.earlier summary,legend) { letter-spacing:normal!important; text-transform:none!important; }
body[data-book-private] :is(.entry-date,.notelabel) { font-size:20px!important; line-height:1.5!important; color:var(--muted)!important; font-weight:400!important; }
body[data-book-private] :is(.promptlabel,legend) { font-size:28px!important; line-height:1.2!important; font-weight:400!important; }
body[data-book-private] .earlier { margin-top:var(--subsection-space); border-top:1px solid var(--line); padding-top:24px; }
body[data-book-private] .earlier summary { font-size:22px!important; font-weight:400!important; color:var(--rust)!important; }
body[data-book-private] .earlier .card { background:transparent!important; }
/* What Chad asked the client to keep: a thin rust rule beside it, not a slab. */
body[data-book-private] .keep { border-left:1px solid var(--rust)!important; padding:0 0 0 24px!important; margin:0 0 var(--copy-space)!important; }
body[data-book-private] .keep h3 { font-size:24px!important; margin:0 0 8px!important; }
body[data-book-private] :is(.notice,.locked,.ok,.bad,.note) { border-left-width:1px!important; border-radius:0!important; }
body[data-book-private] .locked { background:var(--soft)!important; color:var(--danger)!important; }
body[data-book-private] .sit audio { margin:var(--related-space) 0; }
@media(max-width:767px) {
 body[data-book-private] main > .brand img { width:180px!important; }
 body[data-book-private] main > .rule { margin-bottom:32px!important; }
 body[data-book-private] .hw-private-ornament { padding:28px 20px 36px; }
 body[data-book-private] :is(.promptlabel,legend) { font-size:26px!important; }
}

/* Match the source website masthead and centre the quiet closing ornament. */
body[data-book-private] main > .brand img { filter:grayscale(1) brightness(.75) contrast(3); mix-blend-mode:multiply; }
body[data-book-private] .hw-private-ornament img { margin-inline:auto; }
/* The read-aloud boxes keep the wash, which is what a quiet block gets, but not
   the old 10px corners. The welcome videos carried border-radius:10px inline
   from the old player; a square frame matches everything else on the page. */
body[data-book-design] .listen { border-radius:0!important; }
body[data-book-design] video { border-radius:0!important; }

/* Public resource navigation and compact, readable course details. */
body[data-book-design] .resource-jumps { display:flex;gap:16px 32px;flex-wrap:wrap;margin:28px 0 40px; }
body[data-book-design] .resource-jumps a { min-height:44px;display:inline-flex;align-items:center; }
body[data-book-design] .week-details { border-top:1px solid var(--line);padding-top:16px;margin-top:24px; }
body[data-book-design] .week-details summary { cursor:pointer;color:var(--rust);font-size:22px;line-height:1.4; }
body[data-book-design] .week-details > div { padding-top:24px; }
body[data-book-design] .button.button-primary { background:var(--footer)!important;border-color:var(--footer)!important;color:var(--paper)!important; }
body[data-book-design] .reader-masthead { grid-template-columns:minmax(0,1fr) 120px!important; }
body[data-book-design] .reader-masthead > img { grid-column:2;grid-row:1;width:120px!important; }
body[data-book-design] .reader-masthead > div { grid-column:1;grid-row:1; }
@media(max-width:767px){
 body[data-book-design] .reader-masthead:has(>img:not(.logo)) { display:flex;flex-direction:column;gap:24px; }
 body[data-book-design] .reader-masthead > div { order:0; }
 body[data-book-design] .reader-masthead > img { order:1;width:90px!important;margin:0!important; }
}
