/* TableWeb r6k reading rhythm. Scoped to information pages and the design chooser. */
body.hybrid-detail .breadcrumbs {
  padding-top:1.6rem;
  font-size:.84rem;
  line-height:1.5;
}
body.hybrid-detail .detail-heading {
  max-width:52rem;
  padding-block:clamp(3rem,5vw,4.25rem) clamp(3rem,5vw,3.75rem);
}
body.hybrid-detail .detail-heading .section-index {
  margin-bottom:.9rem;
  color:#71877a;
  font-size:.75rem;
  font-weight:600;
  letter-spacing:.12em;
  line-height:1.4;
}
body.hybrid-detail .detail-heading h1 {
  max-width:17ch;
  margin:0 0 1rem;
  color:#182822;
  font-size:clamp(2rem,3.7vw,3.25rem);
  font-weight:700;
  line-height:1.2;
  letter-spacing:-.035em;
  text-wrap:balance;
}
body.hybrid-detail .detail-heading>p:last-child {
  max-width:56ch;
  margin:0;
  color:#45564b;
  font-size:1.05rem;
  line-height:1.75;
}
body.hybrid-detail .detail-block,
body.hybrid-detail .detail-split {
  padding-block:clamp(3rem,4.4vw,3.75rem);
}
body.hybrid-detail .detail-block h2,
body.hybrid-detail .detail-split h2,
body.hybrid-detail .detail-related h2,
body.hybrid-detail .hybrid-contact-strip h2 {
  margin:0 0 1.1rem;
  font-size:clamp(1.5rem,2.1vw,1.7rem);
  font-weight:650;
  line-height:1.3;
  letter-spacing:-.02em;
  text-wrap:balance;
}
body.hybrid-detail .detail-block h3,
body.hybrid-detail .detail-split h3 {
  margin:0 0 .55rem;
  font-size:1.18rem;
  font-weight:650;
  line-height:1.4;
  letter-spacing:-.01em;
}
body.hybrid-detail .detail-block>p:not(.price),
body.hybrid-detail .detail-block>ul,
body.hybrid-detail .detail-split p,
body.hybrid-detail .detail-process p,
body.hybrid-detail .detail-definitions,
body.hybrid-detail .faq-list details>p {
  max-width:66ch;
  color:#34483d;
  font-size:1rem;
  line-height:1.75;
}
body.hybrid-detail .detail-block>p:not(.price) { margin-bottom:1rem; }
body.hybrid-detail .detail-block>ul { margin-block:.8rem 0; padding-left:1.25rem; }
body.hybrid-detail .detail-block li { margin-block:.35rem; line-height:1.7; }
body.hybrid-detail .detail-block .price {
  margin:.75rem 0 1rem;
  font-size:clamp(2rem,3.4vw,2.5rem);
  font-weight:650;
  line-height:1.2;
  letter-spacing:-.035em;
  font-variant-numeric:tabular-nums;
}
body.hybrid-detail .detail-definitions { line-height:1.65; }
body.hybrid-detail .detail-definitions>div { gap:2rem; padding-block:1.15rem; }
body.hybrid-detail .detail-definitions dt { font-weight:650; }
body.hybrid-detail .detail-process { margin-top:1.5rem; }
body.hybrid-detail .detail-process li {
  grid-template-columns:2.5rem minmax(0,1fr);
  gap:1.25rem;
  padding:1.55rem 0;
}
body.hybrid-detail .detail-process .section-index {
  margin:.2rem 0 0;
  color:#71877a;
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.08em;
  line-height:1.5;
}
body.hybrid-detail .detail-process h3 { margin-bottom:.5rem; }
body.hybrid-detail .detail-process p { margin:0; }
body.hybrid-detail .faq-list summary {
  min-height:56px;
  padding-block:1rem;
  font-size:1rem;
  font-weight:600;
  line-height:1.55;
}
body.hybrid-detail .faq-list details>p { margin:0; padding:0 0 1.25rem; }
body.hybrid-detail .detail-related { padding-block:3rem; }
body.hybrid-detail .detail-related>a {
  min-height:56px;
  padding-block:.85rem;
  font-size:.96rem;
  font-weight:550;
  line-height:1.55;
}
body.hybrid-detail .annotation,
body.hybrid-detail figcaption {
  color:#53645b;
  font-size:.875rem;
  line-height:1.6;
}
body.hybrid-detail .plan-comparison { font-size:.94rem; line-height:1.65; }
body.hybrid-detail .plan-comparison th { font-weight:650; }
body.hybrid-detail .hybrid-contact-strip p { max-width:62ch; font-size:1rem; line-height:1.7; }

/* The design chooser retains its own visual language; its labels get a clearer scale. */
body.builder-shell .builder-main { max-width:1360px; }
body.builder-shell .builder-intro { max-width:56rem; }
body.builder-shell .builder-intro .intro-label {
  margin-bottom:.8rem;
  color:#5a6b60;
  font-size:.78rem;
  font-weight:600;
  line-height:1.4;
  letter-spacing:.1em;
}
body.builder-shell .builder-intro h1 {
  margin:0 0 .9rem;
  font-size:clamp(2rem,3.6vw,3rem);
  font-weight:700;
  line-height:1.2;
  letter-spacing:-.035em;
  text-wrap:balance;
}
body.builder-shell .builder-intro>p:not(.intro-label) {
  max-width:64ch;
  margin:.65rem 0 0;
  color:#34483d;
  font-size:1rem;
  line-height:1.75;
}
body.builder-shell .builder-intro .individual-note {
  max-width:70ch;
  margin-top:.9rem;
  color:#53645b;
  font-size:.9rem;
  line-height:1.7;
}
body.builder-shell .library-heading {
  margin-top:1.5rem;
  padding-block:1rem;
}
body.builder-shell .library-heading h2 {
  font-size:1.12rem;
  font-weight:650;
  line-height:1.4;
  letter-spacing:-.015em;
}
body.builder-shell .library-heading span {
  color:#53645b;
  font-size:.875rem;
  font-weight:600;
  line-height:1.4;
}
body.builder-shell .direction-choice { padding-block:1.6rem; }
body.builder-shell .choice-name {
  margin-top:1rem;
  font-size:1.1rem;
  font-weight:600;
  line-height:1.4;
}
body.builder-shell .choice-description {
  max-width:60ch;
  margin-top:.45rem;
  color:#43544a;
  font-size:.94rem;
  line-height:1.65;
}
body.builder-shell .builder-primary { font-size:.96rem; font-weight:600; }

@media(max-width:760px) {
  body.hybrid-detail .detail-heading { padding-block:2.5rem 2.75rem; }
  body.hybrid-detail .detail-heading h1 { font-size:clamp(2rem,8vw,2.3rem); }
  body.hybrid-detail .detail-heading>p:last-child { font-size:1rem; line-height:1.7; }
  body.hybrid-detail .detail-block,
  body.hybrid-detail .detail-split { padding-block:2.8rem; }
  body.hybrid-detail .detail-block h2,
  body.hybrid-detail .detail-split h2,
  body.hybrid-detail .detail-related h2,
  body.hybrid-detail .hybrid-contact-strip h2 { font-size:1.5rem; }
  body.hybrid-detail .detail-process li { grid-template-columns:2.1rem minmax(0,1fr); gap:.9rem; padding:1.35rem 0; }
  body.hybrid-detail .detail-process h3 { font-size:1.1rem; }
  body.hybrid-detail .detail-block>p:not(.price),
  body.hybrid-detail .detail-block>ul,
  body.hybrid-detail .detail-split p,
  body.hybrid-detail .detail-process p,
  body.hybrid-detail .detail-definitions,
  body.hybrid-detail .faq-list details>p { font-size:1rem; line-height:1.72; }
  body.hybrid-detail .detail-related { padding-block:2.5rem; }
  body.hybrid-detail .hybrid-contact-strip p { font-size:.96rem; }
  body.builder-shell .builder-main { padding:2rem 1.25rem 3rem; }
  body.builder-shell .builder-intro h1 { font-size:clamp(2rem,8vw,2.3rem); }
  body.builder-shell .builder-intro>p:not(.intro-label) { font-size:.98rem; }
  body.builder-shell .builder-intro .individual-note { font-size:.88rem; }
  body.builder-shell .library-heading { align-items:baseline; gap:.75rem; }
  body.builder-shell .library-heading h2 { font-size:1rem; }
  body.builder-shell .library-heading span { flex-shrink:0; font-size:.84rem; }
  body.builder-shell .choice-description { font-size:.92rem; }
}

/* r6m: let Japanese prose use the column while keeping line length readable. */
body.hybrid-detail .detail-heading { max-width:min(100%,72rem); }
body.hybrid-detail .detail-heading h1 { max-width:none; }
body.hybrid-detail .detail-heading>p:last-child { max-width:min(100%,70em); }
body.hybrid-detail .detail-block>p:not(.price),
body.hybrid-detail .detail-block>ul,
body.hybrid-detail .detail-split p { max-width:min(100%,60em); }
body.hybrid-detail .detail-process p,
body.hybrid-detail .detail-definitions { max-width:100%; }
body.hybrid-detail .faq-list details>p { max-width:min(100%,62em); }
body.hybrid-detail .hybrid-contact-strip p { max-width:min(100%,68em); }
body.hybrid-detail .detail-related>a { max-width:100%; }
