/* The opening composition keeps objects beside copy, in normal document flow. */
.async-page .async-opening-layout { display:grid; grid-template-columns:minmax(0,440px) minmax(0,640px); align-items:center; justify-content:center; gap:56px; max-width:1136px; margin:0 auto 58px; text-align:left; }
.async-page .async-opening-object { display:block; width:100%; height:auto; max-width:440px; justify-self:center; }
.async-page .async-opening-copy { min-width:0; }
.async-page .async-opening-copy > h1 { font-size:64px; line-height:.94; letter-spacing:-.03em; margin:0; }
.async-page .async-opening-copy .async-opening-note { max-width:100%; margin-top:28px; }
.async-page .async-opening-copy .async-opening-description { margin:26px 0 0; }
.async-page .async-opening-copy > .product-actions { justify-content:flex-start; margin:25px 0 0; }
.async-page .async-book-intro { display:grid; grid-template-columns:minmax(0,1fr) 128px; align-items:center; gap:16px; width:100%; min-width:0; }
.async-page .async-book-intro h2 { margin:0; min-width:0; }
.async-page .async-plan-arrow { display:block; width:128px; height:128px; object-fit:contain; }
.async-page .async-feedback-object { display:block; width:128px; height:128px; background:url('assets/study-objects-3d.png') right center / 300% 100% no-repeat; }
.async-page .async-book-note { display:flex; flex-direction:column; align-self:stretch; padding-bottom:32px; }
.async-page .async-book-note > .feedback-letter { flex:none; margin:auto 0 0; transform:rotate(2deg); }
.async-page .async-book-note > p:not(.book-note-caption) { margin-bottom:42px; }
.async-page .async-book-note > p.book-note-caption { margin:22px 0 0; padding:0; max-width:none; }

/* The two headings share a starting edge; the taller planner no longer
   vertically centers the question column farther down the section. */
@media(min-width:621px) {
  .async-page .async-fit.async-fit-studio { align-items:start; }
  .async-page .async-fit-studio > .fit-studio-notes { align-self:start; padding-top:0; margin-top:0; }
}

/* All answer panels line up with their question, including the book and fit sections. */
.product-page.async-page :is(.month-folders,.fit-studio-notes,.kit-file-stack,.async-faq) > details { width:100%; min-width:0; }
.product-page.async-page :is(.month-folders,.fit-studio-notes,.kit-file-stack,.async-faq) > details > :is(summary,p,div) { box-sizing:border-box; width:100%; min-width:0; max-width:none; border-radius:12px; }

@media(max-width:820px) {
  .async-page .async-opening-layout { grid-template-columns:minmax(0,1fr); gap:22px; max-width:640px; }
  .async-page .async-opening-object { grid-row:2; max-width:320px; }
  .async-page .async-opening-copy { text-align:center; }
  .async-page .async-opening-copy .async-opening-description { margin-inline:auto; }
  .async-page .async-opening-copy > .product-actions { justify-content:center; }
  .async-page .async-book-intro { grid-template-columns:minmax(0,1fr) 86px; gap:10px; }
  .async-page .async-plan-arrow,.async-page .async-feedback-object { width:86px; height:86px; }
}
@media(max-width:620px) {
  .async-page .async-opening-layout { margin-bottom:36px; gap:22px; }
  .async-page .async-opening-copy > h1 { font-size:42px; }
  .async-page .async-opening-copy .async-opening-note { margin-top:22px; }
  .async-page .async-opening-copy .async-opening-description {
    margin-top:28px;
    padding:20px;
    border-radius:12px;
    background:#fffaf5;
    color:#493325;
    font-size:15px;
    line-height:1.75;
    text-align:left;
    box-shadow:0 8px 18px -12px #49332538;
  }
  .async-page .async-opening-copy > .product-actions { gap:10px; }
  .async-page .async-opening-copy > .product-actions .button { width:100%; padding-inline:15px; font-size:16px; }
  .async-page .async-opening-copy > .product-actions .text-link { width:100%; min-height:44px; justify-content:center; font-size:16px; }
  .async-page .async-opening-object { max-width:260px; }
  .async-page .async-book-intro { grid-template-columns:minmax(0,1fr) 76px; gap:8px; }
  .async-page .async-plan-arrow,.async-page .async-feedback-object { width:76px; height:76px; }
  .async-page .async-book-note > .feedback-letter { margin-top:40px; }
  .product-page.async-page :is(.month-folders,.kit-file-stack) > details > summary {
    display:grid;
    grid-template-columns:minmax(0,1fr) 20px;
    grid-template-rows:auto auto;
    align-items:center;
    gap:9px 12px;
    min-height:0;
    padding:17px 16px;
    white-space:normal;
  }
  .product-page.async-page :is(.month-folders,.kit-file-stack) > details > summary > span {
    grid-column:1 / -1;
    grid-row:1;
    justify-self:start;
    width:auto;
    margin:0;
  }
  .product-page.async-page .kit-file-stack > details > summary > strong { grid-column:1; grid-row:2; min-width:0; }
  .product-page.async-page :is(.month-folders,.kit-file-stack) > details > summary > .icon {
    position:static;
    grid-column:2;
    grid-row:2;
    justify-self:end;
    align-self:center;
    width:20px;
    height:20px;
    margin:0;
  }
  .async-page .kit-case-gift { display:grid; grid-template-columns:minmax(0,1fr) 72px; align-items:center; gap:10px 12px; padding:18px 16px; }
  .async-page .kit-case-gift > img { float:none; grid-column:2; grid-row:1; width:72px; height:72px; margin:0; justify-self:end; object-fit:contain; }
  .async-page .kit-case-gift > strong { grid-column:1; grid-row:1; min-width:0; margin:0; font-size:clamp(22px,5.8vw,25px)!important; line-height:1.15!important; }
  .async-page .kit-case-gift > span { grid-column:1 / -1; grid-row:2; margin:0; }
}

/* Tactile teaching objects, clear terms, and a cover band kept on its cover. */
.async-page .support-sheet {
  padding: 0;
  margin: 28px 0 36px;
  background: none;
  border-radius: 0;
  box-shadow: none;
}
.async-page .support-sheet::before { display: none; }
.async-page .support-terms { display: grid; gap: 15px; }
.async-page .support-terms > .support-term {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(240px, .8fr);
  gap: 28px;
  align-items: center;
  padding: 22px 28px 24px 18px;
  border: 0;
  border-radius: 16px;
  background: linear-gradient(115deg, #fffefa, #f7eee8);
  box-shadow: 0 9px 16px -9px #50332342, 0 3px 2px #d1b5a180, inset 0 1px 0 #fff;
}
.async-page .support-terms > .support-term--questions { background: linear-gradient(115deg, #fff9f6, #f0ded7); }
.async-page .support-terms > .support-term--meeting { background: linear-gradient(115deg, #fffefa, #ede7e0); }
.async-page .support-terms dt { display: grid; grid-template-columns: 86px minmax(0,1fr); align-items: center; gap: 15px; min-width: 0; }
.async-page .support-terms dt > .support-object {
  display: block;
  width: 86px;
  height: 86px;
  margin: 0;
  background: url('assets/study-objects-3d.png') right center / 300% 100% no-repeat;
}
.async-page .support-terms dt > .support-object--questions { background-position: center; }
.async-page .support-terms dt > .support-object--meeting { background-position: left center; }
.async-page .support-terms dt > .support-description { display: block; margin: 0; max-width: none; color: #352a24; }
.async-page .support-description > strong { display: block; font: 750 19px/1.4 Manrope,sans-serif; }
.async-page .support-description > span { display: block; margin-top: 7px; max-width: 43ch; font: 400 15px/1.65 Manrope,sans-serif; color: #655247; }
.async-page .support-terms dd { justify-self: stretch; min-width: 0; padding-left: 22px; border-left: 1px solid #d8c6bb; }
.async-page .support-terms dd strong { display: block; padding: 0; margin: 0; background: none; color: #3b2920; font: 750 22px/1.35 Manrope,sans-serif; letter-spacing: -.025em; }
.async-page .support-terms dd > span { max-width: 29ch; color: #655247; font-size: 14px; line-height: 1.6; }
.async-page .support-note { max-width: 88ch; margin: 22px 0 0; color: #604c40; font: 400 14px/1.7 Manrope,sans-serif; }

/* The reading surface shares the question's complete width at every size. */
.product-page.async-page .async-faq > details { width: 100%; min-width: 0; }
.product-page.async-page .async-faq > details > :is(summary,p) { box-sizing: border-box; width: 100%; max-width: none; }
.product-page.async-page .async-faq > details > p { padding: 21px 23px 23px; margin: 9px 0 0; font-size: 16px; line-height: 1.8; }
.product-page.async-page .async-faq > details > summary { padding: 20px 23px; }
.product-page.async-page .async-faq .product-close {
  display: grid;
  grid-template-columns: minmax(0,1fr) 176px;
  gap: 28px;
  margin: 38px 0 0;
  padding: 32px 34px;
  transform: none;
  position: relative;
  background: linear-gradient(115deg, #2c211b 12%, #50372b 100%);
  border-radius: 16px;
  box-shadow: 0 17px 28px -16px #35201870, 0 3px 3px #3b271d35, inset 0 1px 0 #ffffff3d;
}
.async-page .product-close-copy { min-width: 0; }
.async-page .product-close-copy h3 { color: #fffaf5; font: italic 800 clamp(29px,3vw,37px)/1.12 'Roboto Condensed',sans-serif; margin: 0; max-width: 23ch; letter-spacing: -.02em; }
.async-page .product-close-copy p { max-width: 53ch; color: #f0ded2; margin: 15px 0 22px; font: 400 15px/1.7 Manrope,sans-serif; }
.async-page .product-close-copy .button { background: #f3ddd0; color: #35251c; min-height: 48px; padding: 13px 21px; font-size: 14px; box-shadow: 0 5px 10px #160e0a35, inset 0 1px 0 #fff9efb3; }
.async-page .product-close-object { display: block; width: 176px; height: 176px; background: url('assets/study-objects-3d.png') right center / 300% 100% no-repeat; transform: rotate(-7deg); }
.async-page .product-close-copy .button:focus-visible { outline: 3px solid #fff4e8; outline-offset: 5px; }

/* A printed cover label sits inside the cover instead of crossing the spine. */
.history-page .edition-book-band { align-self: stretch; box-sizing: border-box; width: auto; margin: 0 0 24px; padding: 15px 18px; transform: none; border-radius: 4px; background: #493125; color: #fffaf5; font: 600 14px/1.5 Manrope,sans-serif; box-shadow: 0 5px 9px #35201824, inset 0 1px 0 #ffffff24; }
.history-page .edition-offer-price { display: grid; justify-items: start; gap: 6px; }
.history-page .edition-offer-price del { color: #e7cdbb; font: 500 21px/1.3 Manrope,sans-serif; text-decoration-thickness: 2px; }
.history-page .edition-offer-price strong { color: #fffaf5; font-size: 58px; line-height: 1.1; }
.history-page .edition-offer-price > span { color: #f1ded1; font: 500 14px/1.5 Manrope,sans-serif; }

.history-page .edition-order { grid-template-columns: minmax(0,1fr) minmax(0,.95fr); align-items: start; gap: 52px; background: linear-gradient(140deg, #fffdf9 20%, #f4e7df); }
.history-page .edition-order-intro { min-width: 0; }
.history-page .edition-order-heading { display: grid; grid-template-columns: minmax(0,1fr) 132px; gap: 15px; align-items: center; }
.history-page .edition-order-heading h2 { font-size: clamp(30px,3.7vw,46px); line-height: 1.1; margin: 0; }
.history-page .edition-order-object { display: block; width: 132px; height: 146px; background: url('assets/study-objects-3d.png') left center / 300% 100% no-repeat; transform: rotate(6deg); }
.history-page .edition-order-intro > p { max-width: 60ch; color: #655247; font-size: 15px; line-height: 1.8; margin: 22px 0 26px; }
.history-page .edition-order dl { display: grid; gap: 14px; min-width: 0; }
.history-page .edition-order dl > div { display: block; padding: 21px 24px; border: 0; border-radius: 14px; background: #fffdfa; box-shadow: 0 9px 18px -11px #50332338, 0 2px 2px #dcc8b880, inset 0 1px 0 #fff; }
.history-page .edition-order dl > div:nth-child(2) { background: #f4e6e0; }
.history-page .edition-order dt { font: 750 16px/1.45 Manrope,sans-serif; color: #352a24; margin: 0 0 9px; }
.history-page .edition-order dd { min-width: 0; font: 400 15px/1.7 Manrope,sans-serif; color: #655247; margin: 0; overflow-wrap: anywhere; }
.history-page .edition-order-price dd { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 15px; }
.history-page .edition-order-price dd del { font-size: 18px; color: #796253; text-decoration-thickness: 2px; }
.history-page .edition-order-price dd strong { color: #352a24; font-size: 28px; font-weight: 800; }
.history-page .edition-order-price dd > span { flex-basis: 100%; }
.history-page .edition-order .text-link { min-height: 44px; font-size: 15px; white-space: normal; }
.history-page .edition-order .text-link .icon { flex: none; }

/* The paper is the page itself; the authentication grid has no separate frame. */
#main.public-workspace:has(> .auth-page), #main.teacher-auth-shell {
  width: 100%;
  max-width: none;
  min-height: calc(100vh - 110px);
  margin: 0;
  padding: 46px clamp(24px,5vw,76px) 64px;
  background: #f4e7db url('assets/paper-backdrop.png') center top / cover no-repeat;
}
#main.teacher-auth-shell { min-height: 100vh; }
#main > .auth-page, #main.teacher-auth-shell > .teacher-auth {
  width: 100%;
  max-width: 1160px;
  margin: 0 auto;
  padding: 0;
  gap: 60px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
#main > .auth-page > .auth-copy { padding: 16px 0 0; overflow: visible; }
#main > .auth-page > .auth-sheet, #main .teacher-auth-panel {
  padding: 34px;
  background: #fffdf9;
  border: 0;
  border-radius: 16px;
  transform: none;
  box-shadow: 0 19px 36px -17px #50332338, 0 3px 4px #5033230d, inset 0 1px 0 #fff;
}

@media (hover:hover) and (pointer:fine) {
  .async-page .product-close-object { transition: transform 240ms cubic-bezier(.16,1,.3,1); }
  .async-page .product-close:has(.button:hover) .product-close-object { transform: translateY(-5px) rotate(-3deg); }
  .async-page .product-close-copy .button:hover { background: #fff0e5; }
}
@media (max-width:900px) {
  .async-page .support-terms > .support-term { grid-template-columns: minmax(0,1fr) minmax(210px,.7fr); gap: 20px; padding: 21px 23px 23px 15px; }
  .async-page .support-terms dt { grid-template-columns: 70px minmax(0,1fr); gap: 12px; }
  .async-page .support-terms dt > .support-object { width: 70px; height: 70px; }
  .async-page .support-terms dd { padding-left: 17px; }
  .async-page .support-terms dd strong { font-size: 19px; }
  .history-page .edition-order { grid-template-columns: 1fr; gap: 32px; }
  .history-page .edition-order-heading { grid-template-columns: minmax(0,1fr) 140px; max-width: 680px; }
  .history-page .edition-order-object { width: 140px; height: 140px; }
  #main > .auth-page, #main.teacher-auth-shell > .teacher-auth { gap: 32px; }
}
@media (max-width:720px) {
  #main.public-workspace:has(> .auth-page), #main.teacher-auth-shell { padding: 30px 20px 44px; }
  #main > .auth-page, #main.teacher-auth-shell > .teacher-auth { max-width: 600px; gap: 22px; }
  #main > .auth-page > .auth-sheet, #main .teacher-auth-panel { padding: 25px; }
  #main > .auth-page .auth-copy h1, #main > .auth-page .auth-copy > p { padding-inline: 0; }
}
@media (max-width:620px) {
  .async-page .support-sheet { margin: 24px 0 30px; }
  .async-page .support-terms > .support-term { grid-template-columns: 1fr; gap: 17px; padding: 18px 19px 22px; }
  .async-page .support-terms dt { grid-template-columns: 62px minmax(0,1fr); gap: 12px; }
  .async-page .support-terms dt > .support-object { width: 62px; height: 62px; }
  .async-page .support-description > strong { font-size: 18px; }
  .async-page .support-description > span { font-size: 14px; }
  .async-page .support-terms dd { padding: 15px 0 0; border-left: 0; border-top: 1px solid #dbc9be; }
  .async-page .support-terms dd strong { font-size: 21px; }
  .async-page .support-terms dd > span { max-width: none; }
  .product-page.async-page .async-faq > details > :is(summary,p) { padding: 18px; font-size: 15px; }
  .product-page.async-page .async-faq .product-close { grid-template-columns: minmax(0,1fr); gap: 0; padding: 25px; margin-top: 30px; }
  .async-page .product-close-object { grid-row: 1; width: 108px; height: 108px; margin: -8px 0 12px; justify-self: end; }
  .async-page .product-close-copy h3 { font-size: 31px; }
  .async-page .product-close-copy .button { width: 100%; font-size: 14px; padding-inline: 16px; }
  .history-page .edition-book-band { margin: 0 0 24px; padding: 12px 13px; font-size: 13px; }
  .history-page .edition-offer-price strong { font-size: 50px; }
  .history-page .edition-price-row { align-items: center; gap: 24px; }
  .history-page .edition-order-heading { grid-template-columns: minmax(0,1fr) 86px; gap: 8px; }
  .history-page .edition-order-heading h2 { font-size: 32px; }
  .history-page .edition-order-object { width: 86px; height: 106px; }
  .history-page .edition-order dl > div { padding: 19px 21px; }
  .history-page .edition-order .button { min-height: 48px; font-size: 14px; }
}
@media (prefers-reduced-motion:reduce) {
  .async-page .product-close-object { transition: none; }
  .async-page .product-close:has(.button:hover) .product-close-object { transform: rotate(-7deg); }
}

.history-page .worry-notes details > p{box-sizing:border-box;width:100%;max-width:none}

/* Readable copy at the approved desktop density, with a compact planner. */
.async-page { --async-copy-size:20px; }
.async-page .async-opening-copy .async-opening-description,
.async-page .async-book-note > p:not(.book-note-sign),
.async-page .feedback-letter > p,
.async-page .async-kit-heading > p,
.async-page .fit-studio-notes details > p,
.async-page .kit-file-stack p,
.async-page .kit-case-cover > p,
.async-page .support-description > span,
.async-page .support-terms dd > span,
.async-page .support-note,
.async-page .async-subscription > div > p,
.product-page.async-page .async-faq > details > p,
.async-page .product-close-copy p { font-size:var(--async-copy-size); line-height:1.65; }
.async-page .async-book .product-small,
.async-page .async-book .month-folders details > p { font-size:var(--async-copy-size); line-height:1.65; }
.async-page .async-book .month-folders summary { font-size:19px; line-height:1.5; }
.async-page .async-book .month-folders summary > span { font-size:15px; }
.async-page .feedback-letter > span:last-child { font-size:17px; line-height:1.6; }
.async-page .async-book-note > p.book-note-caption { font-size:18px; }
.async-page .async-fit.async-fit-studio { padding-block:54px 44px; }
.async-page .fit-studio-visual h2 { max-width:18ch; font-size:clamp(36px,3.6vw,50px); line-height:1.1; margin:0; }
.async-page .fit-planner-object { width:100%; max-width:340px; margin:10px auto -36px; }
.async-page .fit-planner-label { font-size:21px; line-height:1.15; }
.async-page .fit-studio-notes { padding-top:0; }
.async-page .fit-studio-notes > h3 { margin-top:0; }
.product-page.async-page :is(.fit-studio-notes,.kit-file-stack,.async-faq) details > summary { font-size:20px; line-height:1.45; }
.product-page.async-page .kit-file-stack details > summary > span { font-size:15px; }
.async-page .fit-answer { font-size:17px; line-height:1.5; }
.async-page .async-kit.async-kit-studio { background:#fffaf5; }
.async-page .async-agreement { background:#f0e0d3; padding-bottom:48px; }
.async-page .support-terms dd strong { font-size:23px; }
.async-page .product-actions :is(.button,.text-link),
.async-page .fit-studio-notes > .button,
.async-page .kit-case-cover > .button,
.async-page .async-subscription > .button,
.async-page .product-close-copy .button { font-size:18px; min-height:48px; }
@media (max-width:820px) {
  .async-page .async-book { grid-template-columns:1fr; transform:none; }
  .async-page .async-book-plan { border-radius:7px 7px 0 0; }
  .async-page .async-book-note { border-radius:0 0 12px 7px; }
  .async-page .async-book-note > .feedback-letter { margin-top:18px; }
  .async-page .async-book-note > p:not(.book-note-caption) { margin-bottom:16px; }
}
@media (max-width:620px) {
  .async-page { --async-copy-size:17px; }
  .async-page .async-opening-copy .async-opening-description { padding:18px; }
  .async-page .async-book-page { padding:26px 22px; }
  .async-page .async-book .month-folders summary { font-size:17px; }
  .async-page .async-book .month-folders summary > span { font-size:14px; }
  .async-page .feedback-letter { padding:25px 21px; }
  .async-page .feedback-letter > span:last-child,
  .async-page .async-book-note > p.book-note-caption { font-size:16px; }
  .async-page .async-fit.async-fit-studio { padding-block:42px; gap:24px; }
  .async-page .fit-studio-visual h2 { font-size:34px; }
  .async-page .fit-planner-object { max-width:245px; margin:6px auto -24px; }
  .async-page .fit-planner-label { font-size:17px; }
  .product-page.async-page :is(.fit-studio-notes,.kit-file-stack,.async-faq) details > summary { font-size:17px; }
  .async-page .fit-answer { font-size:16px; }
  .async-page .support-terms dd strong { font-size:21px; }
  .async-page .product-actions :is(.button,.text-link),
  .async-page .fit-studio-notes > .button,
  .async-page .kit-case-cover > .button,
  .async-page .async-subscription > .button,
  .async-page .product-close-copy .button { font-size:16px; }
}
