/* COMMOD 3.0 · property-bound financing studio */
.commod-finance-section { scroll-margin-top: 100px; }
.commod-finance-section > .section-shell > h2 { font-size: clamp(32px,4vw,58px); font-weight: 450; letter-spacing: -.045em; line-height: 1.1; margin: 20px 0 40px; }
.commod-detail-finance.commod-finance-section { padding: clamp(18px,3vw,38px); }
.cf { --cf-gold: #e4c992; --cf-line: #d9d0c0; color: #24231f; background: #f6f3ec; border: 1px solid var(--cf-line); font-family: inherit; padding: clamp(20px,3.5vw,48px); border-radius: 6px; container-type: inline-size; }
.cf *, .cf *::before, .cf *::after { box-sizing: border-box; }
.cf [hidden] { display: none !important; }
.cf-header { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; margin-bottom: 28px; }
.cf-eyebrow { font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.cf-header h3 { margin: 16px 0 0; font-size: clamp(27px,3.3vw,44px); font-weight: 480; line-height: 1.12; letter-spacing: -.035em; }
.cf-header h3 em { font-family: Georgia,serif; color: #8d682c; font-weight: 400; }
.cf-badge { color: #6b542e; border: 1px solid #c5b18a; border-radius: 40px; padding: 8px 12px; font-size: 10px; white-space: nowrap; }
.cf-object { border-top: 1px solid var(--cf-line); border-bottom: 1px solid var(--cf-line); padding: 20px 0; display: grid; gap: 8px; margin-bottom: 26px; }
.cf-object strong { font-size: 16px; line-height: 1.45; }
.cf-object > span { font-size: 12px; color: #676159; line-height: 1.6; }
.cf .cf-object-select { margin-bottom: 20px; }
.cf-layout { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(285px,.85fr); gap: 28px; align-items: start; }
.cf-editor { min-width: 0; }
.cf-step { border: 1px solid var(--cf-line); background: #fffdf8; margin: 0 0 12px; border-radius: 4px; }
.cf-step > summary { cursor: pointer; padding: 19px 18px; font-size: 15px; font-weight: 650; line-height: 1.45; list-style: none; display: flex; align-items: center; gap: 12px; }
.cf-step > summary::-webkit-details-marker { display: none; }
.cf-step > summary > span { font-size: 11px; color: #8c6b35; }
.cf-step > summary::after { content: '+'; margin-left: auto; color: #8c6b35; }
.cf-step[open] > summary::after { content: '−'; }
.cf-step-body { padding: 0 18px 22px; }
.cf-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.cf .cf-field { display: grid; align-content: start; gap: 7px; min-width: 0; margin: 0; font-size: 12px; line-height: 1.5; color: #514a40; }
.cf-field > span:first-child { min-height: 18px; font-weight: 550; }
.cf .cf-input { display: flex; align-items: center; background: #f1eee7; border: 1px solid #d4cab7; border-radius: 3px; min-width: 0; }
.cf .cf-input > span { padding-right: 10px; font-size: 12px; color: #766b59; white-space: nowrap; }
.cf .cf-field input { width: 100%; min-width: 0; background: transparent; border: 0; border-radius: 0; color: #181714; padding: 11px 9px; font-size: 17px; line-height: 1.4; box-shadow: none; margin: 0; }
.cf .cf-field select { width: 100%; min-width: 0; min-height: 47px; background: #f1eee7; border: 1px solid #d4cab7; border-radius: 3px; color: #181714; padding: 10px 8px; font-size: 13px; line-height: 1.5; text-overflow: ellipsis; }
.cf .cf-field input[aria-invalid="true"] { outline: 2px solid #ac3929; }
.cf :is(input,select,button,a,summary):focus-visible { outline: 2px solid #9b702e; outline-offset: 4px; }
.cf .cf-help { color: #696259; font-size: 12px; line-height: 1.75; margin: 16px 0 0; }
.cf .cf-check { display: flex; align-items: flex-start; gap: 10px; font-size: 12px; line-height: 1.7; margin: 18px 0; color: #4c463d; cursor: pointer; }
.cf .cf-check input { flex: 0 0 18px; width: 18px; height: 18px; margin: 2px 0 0; padding: 0; accent-color: #80602b; }
.cf-program { border-top: 1px solid var(--cf-line); margin-top: 22px; padding-top: 24px; }
.cf-program-title { display: flex; gap: 10px; align-items: center; justify-content: space-between; }
.cf-program-title strong { font-size: 18px; font-weight: 650; letter-spacing: -.02em; }
.cf-program-title > span { font-size: 10px; text-align: right; color: #71634b; }
.cf-program p { font-size: 12px; line-height: 1.75; margin: 12px 0; }
.cf-program .cf-warning { padding: 12px; background: #f7ebd3; color: #6c4917; border-left: 3px solid #b2863f; }
.cf-program a { color: #77561f; font-size: 12px; text-decoration: underline; text-underline-offset: 3px; }
.cf-program-fields { padding: 16px 0; }
.cf-program-status { padding: 12px; background: #eee9e0; color: #655844; }
.cf-program-status[data-included="true"] { background: #e4ece2; color: #355734; }
.cf-summary { background: #151612; color: #f4f0e8; padding: 28px; position: sticky; top: 110px; border-radius: 4px; min-width: 0; }
.cf-summary .cf-eyebrow { color: var(--cf-gold); }
.cf-main-label { color: #d7d0c2; font-size: 13px; margin: 30px 0 10px; }
.cf-main-number { font-size: clamp(32px,3.5vw,50px); line-height: 1.1; font-weight: 450; letter-spacing: -.045em; color: var(--cf-gold); display: block; overflow-wrap: anywhere; }
.cf-summary-next { margin: 26px 0; padding: 18px 0; border-top: 1px solid #464438; border-bottom: 1px solid #464438; display: grid; gap: 8px; }
.cf-summary-next > span { color: #c4bba9; font-size: 12px; line-height: 1.5; }
.cf-summary-next strong { font-size: 24px; font-weight: 500; }
.cf-metrics { display: grid; gap: 14px; }
.cf-metrics > div { display: flex; gap: 12px; justify-content: space-between; align-items: baseline; font-size: 12px; line-height: 1.5; }
.cf-metrics span { color: #c4bba9; }
.cf-metrics strong { font-weight: 550; text-align: right; white-space: nowrap; }
.cf-summary-small { font-size: 11px; line-height: 1.8; color: #c5bcaa; margin: 22px 0 0; }
.cf-compare { display: grid; gap: 8px; margin-top: 24px; padding: 18px; border: 1px solid #64563d; background: #22231d; }
.cf-compare span { font-size: 12px; color: #d5c6a8; }
.cf-compare strong { font-size: 23px; font-weight: 450; }
.cf-compare small { font-size: 10px; line-height: 1.7; color: #bdb5a6; }
.cf-alert { font-size: 11px; line-height: 1.75; color: #f3d6a4; }
.cf-alert p { margin: 18px 0 0; }
.cf-text-button { width: fit-content; background: transparent; color: #795723; padding: 4px 0; border: 0; font: inherit; font-size: 12px; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; text-align: left; }
.cf-button { padding: 14px 16px; background: var(--cf-gold); border: 1px solid var(--cf-gold); color: #171712; width: 100%; font: inherit; font-size: 12px; line-height: 1.6; text-align: left; cursor: pointer; margin-top: 24px; }
.cf-button:hover { background: #f4dfb4; }
.cf-inquiry { display: block; text-decoration: none; }
.cf-inquiry + .cf-button { margin-top: 10px; background: transparent; color: var(--cf-gold); border-color: #64563d; }
.cf-results { margin-top: 30px; border-top: 1px solid var(--cf-line); padding-top: 24px; }
.cf-results h4 { font-size: 22px; font-weight: 550; margin: 0 0 20px; }
.cf-table-scroll { overflow-x: auto; max-width: 100%; }
.cf table { border-collapse: collapse; width: 100%; font-size: 12px; text-align: right; line-height: 1.6; }
.cf table caption { text-align: left; font-size: 11px; color: #716656; padding-bottom: 10px; }
.cf th,.cf td { padding: 13px 12px; border-bottom: 1px solid var(--cf-line); white-space: nowrap; }
.cf thead th { background: #ece6da; font-size: 11px; font-weight: 650; }
.cf tr > :first-child { text-align: left; }
.cf tbody th { font-weight: 550; }
.cf-schedule { margin-top: 24px; }
.cf-schedule .cf-text-button { margin: 16px 0; }
.cf-schedule p { font-size: 12px; line-height: 1.8; }
.cf-disclaimer { font-size: 13px; line-height: 1.8; color: #4b443a; border-top: 1px solid var(--cf-line); padding-top: 24px; margin: 26px 0 0; }
.cf-print-value { display: none; }
@container (max-width: 760px) { .cf-layout { grid-template-columns: minmax(0,1fr); } .cf-summary { position: static; } .cf-header { flex-direction: column; } }
@media (max-width: 900px) { .cf-layout { grid-template-columns: minmax(0,1fr); } .cf-summary { position: static; } .cf-header { flex-direction: column; } }
@media (max-width: 520px) { .cf { padding: 18px 12px; } .cf-fields { grid-template-columns: minmax(0,1fr); } .cf-step-body { padding: 0 12px 18px; } .cf-step > summary { padding: 17px 12px; } .cf-summary { padding: 24px 18px; } .cf-header h3 { font-size: 29px; } .cf-program-title { align-items: flex-start; } .commod-detail-finance.commod-finance-section { padding: 28px 10px; } }
@media (prefers-reduced-motion: reduce) { .commod-lightbox-stage img.is-changing { animation: none; } }
@media print {
  body.commod-print-finance { background: #fff !important; overflow: visible !important; }
  body.commod-print-finance > :not(.cf-print-target) { display: none !important; }
  .cf-print-target { border: 0; padding: 0; font-size: 10pt; color: #000; background: white; container-type: normal; }
  .cf-print-target .cf-layout { display: block; }
  .cf-print-target .cf-summary { position: static; background: white; color: black; border: 1px solid #777; margin: 20px 0; }
  .cf-print-target .cf-summary * { color: black; }
  .cf-print-target :is(button,input,select,.cf-badge,.cf-object-select,.cf-inquiry) { display: none !important; }
  .cf-print-target .cf-print-value { display: inline; font-weight: 600; }
  .cf-print-target .cf-fields { grid-template-columns: 1fr 1fr; }
  .cf-print-target .cf-step { break-inside: auto; }
  .cf-print-target .cf-field,.cf-print-target tr { break-inside: avoid; }
  .cf-print-target .cf-table-scroll { overflow: visible; }
  .cf-print-target table { font-size: 8pt; }
  .cf-print-target th,.cf-print-target td { padding: 5px; white-space: normal; }
  .cf-print-target .cf-header h3 { font-size: 24pt; }
  .cf-print-target .cf-input { border: none; background: none; padding: 5px; gap: 6px; }
}
