/* lo-core product page (Phase 1-B). Functional layout only; the theme owns colours. */
.lo-key-points { list-style: none; margin: 0 0 16px; padding: 12px 14px; border: 1px solid currentColor; border-radius: 8px; font-size: 14px; line-height: 1.6; }
.lo-key-points li { padding-left: 1.2em; text-indent: -1.2em; }
.lo-key-points li::before { content: "✓ "; }
.lo-key-points__more { display: inline-block; margin-top: 4px; font-size: 13px; }
.lo-affiliate-disclosure { margin: 0 0 16px; padding: 10px 14px; border: 1px solid currentColor; border-radius: 8px; font-size: 14px; line-height: 1.6; }
.lo-accordion { margin: 24px 0; }
.lo-accordion__item { border-top: 1px solid currentColor; }
.lo-accordion__item:last-child { border-bottom: 1px solid currentColor; }
.lo-accordion__item > summary { cursor: pointer; padding: 14px 0; font-weight: 700; font-size: 16px; list-style: none; }
.lo-accordion__item > summary::-webkit-details-marker { display: none; }
.lo-accordion__item > summary::after { content: "+"; float: right; }
.lo-accordion__item[open] > summary::after { content: "−"; }
.lo-accordion__panel { padding: 0 0 16px; }
.lo-step { display: inline-block; margin-right: 6px; padding: 1px 8px; border: 1px solid currentColor; border-radius: 999px; font-size: 12px; font-weight: 700; }

/* EPO option sections on phones (spec §6: bring the add-to-cart button up).
   Spacing only -- nothing is hidden, the theme still owns colours, and the
   select boxes keep their 40px tap height. Measured on staging 27382 at 390px:
   each section spent 48px of .tm-box padding, a 63px two-line title at 22.7px,
   and the totals block 193px; the 15px gap between sections comes from the
   flex row-gap on EPO's .tc-row lists. */
@media (max-width: 767px) {
  .tm-extra-product-options .tc-row.tm-box { padding: 12px 12px; }
  /* EPO's own ".option-radius .tc-section-inner-wrap .tm-box" sets 1.5em top and
     bottom with the same specificity in a later stylesheet, so the rounded
     section variant needs one more class to be overridden. */
  .tm-extra-product-options .option-radius .tc-section-inner-wrap .tc-row.tm-box { padding-top: 12px; padding-bottom: 12px; }
  .tm-extra-product-options h4.tm-section-label { font-size: 16px; line-height: 1.3; margin: 0 0 6px; }
  /* Let the title wrap; never truncate or hide it. */
  .tm-extra-product-options h4.tm-section-label .tc-section-label-text { font-size: inherit; line-height: inherit; }
  .tm-extra-product-options .tm-section-description h5 { font-size: 13px; margin: 0 0 6px; }
  /* The totals block lives in .tc-totals-form, OUTSIDE .tm-extra-product-options. */
  .tc-totals-form .tm-epo-totals { padding: 8px 12px; }
  .tc-totals-form dl.tm-extra-product-options-totals { margin: 8px 0; }
  .tc-totals-form dl.tm-extra-product-options-totals dd { padding-bottom: 4px; }
  /* Gap between consecutive sections (EPO's own flex row-gap is 15px); rows
     keep their horizontal gap so side-by-side fields are unaffected. */
  .tm-extra-product-options ul.tc-row, .tm-extra-product-options li.tc-row { row-gap: 8px; }
}
