.rmw-shell { background-color: #fffdf7; }
.rmw-calculator-section { padding: 88px 0; background-color: #123428; }
.rmw-calculator-grid { display: grid; grid-template-columns: 0.82fr 1.18fr; gap: 80px; align-items: start; }
.rmw-calculator-intro { position: sticky; top: 36px; }
.rmw-calculator-notes { margin: 30px 0 0; padding: 0; list-style: none; }
.rmw-calculator-note { position: relative; margin-bottom: 14px; padding-left: 22px; color: #c8d6cf; font-size: 14px; line-height: 1.6; }
.rmw-calc-diagram-card { margin-top: 34px; overflow: hidden; border: 1px solid rgba(255,255,255,.18); background: rgba(255,255,255,.045); }
.rmw-calc-diagram-head { padding: 18px 18px 0; display: grid; gap: 4px; }
.rmw-calc-diagram-head span { color: #c8ff5a; font-size: 10px; font-weight: 800; letter-spacing: 1.4px; text-transform: uppercase; }
.rmw-calc-diagram-head strong { color: #fff; font-size: 13px; }
.rmw-calc-diagram { color: #c8ff5a; }
.rmw-calc-diagram svg { width: 100%; height: auto; display: block; }
.rmw-calc-diagram text { fill: rgba(255,255,255,.72); font-family: Manrope,Arial,sans-serif; font-size: 11px; font-weight: 700; }
.rmw-calc-diagram-card > p { margin: 0 18px 18px; color: rgba(255,255,255,.68); font-size: 11px; line-height: 1.55; }
.rmw-diagram-plane { fill: rgba(255,255,255,.08); stroke: rgba(255,255,255,.55); stroke-width: 2; }
.rmw-diagram-line,.rmw-diagram-grid,.rmw-diagram-seam { fill: none; stroke: rgba(255,255,255,.34); stroke-width: 1.4; }
.rmw-diagram-grid { stroke-dasharray: 3 4; }
.rmw-diagram-accent { fill: none; stroke: #c8ff5a; stroke-width: 4; }
.rmw-diagram-dimension { fill: none; stroke: rgba(255,255,255,.72); stroke-width: 1.5; }
.rmw-calculator-card { padding: 38px; background-color: #fffdf7; box-shadow: 0 24px 70px rgba(0,0,0,0.2); }
.rmw-system-field { margin-bottom: 14px; }
.rmw-system-field select { padding-right: 38px; }
.rmw-calc-assumption { margin-bottom: 26px; padding: 12px 14px; border-left: 3px solid #28785b; background: #e8f1ec; color: #40564b; font-size: 11px; line-height: 1.5; }
.rmw-calculator-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.rmw-calculator-or { grid-column: span 2; padding: 4px 0; color: #28785b; font-size: 10px; font-weight: 800; letter-spacing: 1.5px; }
.rmw-field { position: relative; display: block; }
.rmw-field[hidden] { display: none !important; }
.rmw-field-label { display: block; margin-bottom: 8px; color: #123428; font-size: 13px; font-weight: 700; }
.rmw-field-unit { position: absolute; right: 13px; bottom: 14px; z-index: 2; color: #687870; font-size: 12px; }
.rmw-input { width: 100%; min-height: 48px; padding: 10px 54px 10px 13px; border: 1px solid #c9cec9; background-color: #ffffff; color: #123428; font-size: 16px; }
.rmw-calc-button { width: 100%; margin-top: 22px; padding: 16px 22px; border: 0; background-color: #c9f24a; color: #123428; font-size: 14px; font-weight: 800; cursor: pointer; }
.rmw-calculator-results { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin-top: 26px; background-color: #d7d7cb; }
.rmw-result { min-height: 112px; padding: 20px; background-color: #f3efe6; }
.rmw-result-accent { background-color: #dff0e8; }
.rmw-result-label { display: block; margin-bottom: 13px; color: #687870; font-size: 11px; font-weight: 750; letter-spacing: 0.8px; text-transform: uppercase; }
.rmw-result-value { display: block; color: #123428; font-family: Georgia, Times New Roman, serif; font-size: 25px; line-height: 1.15; font-weight: 400; }
.rmw-calculator-disclaimer { margin: 20px 0; color: #687870; font-size: 12px; line-height: 1.55; }
.rmw-calculator-cta { display: block; text-align: center; }
@media screen and (max-width: 991px) {
  .rmw-calculator-grid { grid-template-columns: 1fr; gap: 44px; }
  .rmw-calculator-intro { position: static; }
}
@media screen and (max-width: 767px) {
  .rmw-calculator-section { padding: 60px 0; }
  .rmw-calculator-card { padding: 24px; }
  .rmw-calculator-fields { grid-template-columns: 1fr; }
  .rmw-calculator-or { grid-column: span 1; }
  .rmw-calculator-results { grid-template-columns: 1fr; }
}

/* Material calculator — calm, high-trust utility surface. */
.rmw-shell { background: #f6f3eb; }
.rmw-calculator-section { width: min(1480px, calc(100% - 32px)); margin: 18px auto; padding: 104px 0; border-radius: 28px; background: #12372a; }
.rmw-calculator-grid { gap: clamp(54px,7vw,104px); }
.rmw-calculator-card { padding: clamp(28px,3.2vw,44px); border-radius: 20px; background: #fffdf8; box-shadow: 0 28px 80px rgba(6,24,17,.22); }
.rmw-input { border-radius: 10px; background: #fffdf8; }
.rmw-calc-button { min-height: 52px; border-radius: 999px; background: #cef255; }
.rmw-calculator-results { gap: 12px; background: transparent; }
.rmw-result { border: 1px solid rgba(18,37,28,.1); border-radius: 14px; background: #f4f0e7; }
.rmw-result-accent { background: #e3efe8; }

@media screen and (max-width: 767px) {
  .rmw-calculator-section { width: calc(100% - 16px); padding: 72px 0; border-radius: 20px; }
  .rmw-calculator-card { padding: 24px 18px; border-radius: 16px; }
}

/* Roof geometry calculator v3 */
.rmw-roof-diagram-card .rmw-calc-diagram { background: linear-gradient(145deg,#fff,#e8f3ed); color: #173f2c; }
.rmw-roof-diagram-card .rmw-calc-diagram text { fill: #315245; font-size: 12px; font-weight: 750; }
.rmw-roof-face { fill: #e8f2ec; stroke: #5d7e70; stroke-width: 1.6; }
.rmw-roof-line { fill: none; stroke: #173f2c; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; }
.rmw-roof-rise { fill: none; stroke: #82c91e; stroke-width: 2.5; stroke-dasharray: 7 5; }
.rmw-roof-ground { fill: none; stroke: #9baba4; stroke-width: 1.5; }
.rmw-roof-dimension { fill: none; stroke: #82c91e; stroke-width: 3; stroke-linecap: round; }
.rmw-roof-shape-fieldset { margin: 0 0 26px; padding: 0; border: 0; }
.rmw-roof-shape-fieldset legend { margin-bottom: 13px; color: #123428; font-size: 13px; font-weight: 850; }
.rmw-roof-shape-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.rmw-roof-shape-grid button { min-height: 104px; padding: 12px 10px; display: grid; justify-items: start; align-content: center; gap: 5px; border: 1px solid #d5d8d3; border-radius: 12px; background: #fff; color: #123428; text-align: left; cursor: pointer; }
.rmw-roof-shape-grid button.is-active { border-color: #245941; background: #eaf3ee; box-shadow: inset 0 0 0 1px #245941; }
.rmw-roof-shape-grid strong { font-size: 12px; line-height: 1.25; }
.rmw-roof-shape-grid small { color: #687870; font-size: 10px; line-height: 1.35; }
.rmw-roof-icon { width: 38px; height: 22px; position: relative; display: block; color: #245941; }
.rmw-roof-icon:before,.rmw-roof-icon:after { content: ""; position: absolute; border: 2px solid currentColor; }
.rmw-roof-icon-gable:before { width: 22px; height: 22px; left: 6px; top: 6px; border-width: 2px 2px 0 0; transform: rotate(-45deg); }
.rmw-roof-icon-skillion:before,.rmw-roof-icon-flat:before { width: 34px; height: 14px; left: 1px; top: 4px; border-width: 2px 2px 0 0; transform: skewY(-14deg); }
.rmw-roof-icon-stepped:before { width: 28px; height: 16px; left: 3px; top: 2px; border-width: 0 0 2px 2px; }
.rmw-roof-icon-stepped:after { width: 18px; height: 8px; left: 13px; top: 3px; border-width: 2px 0 0 2px; }
.rmw-roof-icon-hip:before { width: 30px; height: 16px; left: 2px; top: 3px; transform: skewX(-22deg); }
.rmw-roof-icon-hip:after { width: 2px; height: 18px; left: 17px; top: 2px; border-width: 0 0 0 2px; transform: rotate(38deg); }
.rmw-roof-icon-pyramid:before { width: 24px; height: 24px; left: 6px; top: 4px; border-width: 2px 2px 0 0; transform: rotate(-45deg); }
.rmw-roof-icon-pyramid:after { width: 2px; height: 18px; left: 18px; top: 2px; border-width: 0 0 0 2px; }
.rmw-measure-mode { margin-bottom: 22px; display: grid; grid-template-columns: 1fr 1fr; border: 1px solid #d5d8d3; }
.rmw-measure-mode button { min-height: 46px; border: 0; border-left: 1px solid #d5d8d3; background: transparent; color: #687870; font-size: 11px; font-weight: 800; cursor: pointer; }
.rmw-measure-mode button:first-child { border-left: 0; }
.rmw-measure-mode button.is-active { background: #245941; color: #fff; }
.rmw-slope-method { margin-bottom: 20px; padding: 14px; display: flex; flex-wrap: wrap; gap: 10px 18px; border: 1px solid #d5d8d3; background: #f4f1e9; color: #53665c; font-size: 11px; }
.rmw-slope-method > span { width: 100%; color: #123428; font-size: 10px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.rmw-slope-method label { display: inline-flex; align-items: center; gap: 7px; }
.rmw-slope-method input { accent-color: #245941; }
.rmw-field-label small { margin-top: 5px; display: block; color: #687870; font-size: 10px; font-weight: 550; line-height: 1.35; }
.rmw-shape-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
.rmw-slope-result { margin: 18px 0 2px; padding: 16px 18px; display: grid; grid-template-columns: auto 1fr; gap: 4px 16px; align-items: center; border-left: 3px solid #aeb7b2; background: #f1eee6; }
.rmw-slope-result.is-ready { border-left-color: #b5f440; background: #e5f0e9; }
.rmw-slope-result > span { grid-row: span 2; color: #245941; font-size: 9px; font-weight: 850; letter-spacing: .1em; }
.rmw-slope-result strong { color: #123428; font-size: 18px; }
.rmw-slope-result small { color: #687870; font-size: 10px; line-height: 1.4; }
.rmw-calc-advanced { margin-top: 24px; border-top: 1px solid #d5d8d3; border-bottom: 1px solid #d5d8d3; }
.rmw-calc-advanced summary { padding: 16px 0; display: grid; gap: 4px; color: #123428; font-size: 12px; font-weight: 800; cursor: pointer; }
.rmw-calc-advanced summary small { color: #687870; font-size: 10px; font-weight: 550; }
.rmw-calc-advanced-fields { padding-bottom: 20px; }
.rmw-calc-answer { margin-top: 24px; padding: 20px; display: grid; gap: 6px; background: #f1eee6; }
.rmw-calc-answer.is-ready { background: #dff0e8; }
.rmw-calc-answer > span { color: #245941; font-size: 9px; font-weight: 850; letter-spacing: .1em; }
.rmw-calc-answer strong { color: #123428; font-family: Georgia,serif; font-size: 28px; font-weight: 400; }
.rmw-calc-answer p { margin: 0; color: #687870; font-size: 11px; }
.rmw-calculator-cta.is-disabled { opacity: .48; pointer-events: none; }

@media screen and (max-width: 767px) {
  .rmw-roof-shape-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .rmw-shape-fields { grid-template-columns: 1fr; }
  .rmw-roof-shape-grid button { min-height: 94px; }
}

/* Production contrast and product-context surfaces */
html body .rmw-calculator-section { margin: 0 !important; background: linear-gradient(142deg,#0c2a1e 0%,#164c35 100%) !important; color: #fff !important; }
html body .rmw-calculator-intro h2 { color: #fff !important; }
html body .rmw-calculator-intro .rmw-eyebrow { color: #b5f440 !important; }
html body .rmw-calculator-intro > p,html body .rmw-calculator-note { color: rgba(255,255,255,.76) !important; }
html body .rmw-calculator-card { background: #fffdf8 !important; color: #12251c !important; }
html body .rmw-calculator-card label,html body .rmw-calculator-card h3,html body .rmw-calculator-card p,html body .rmw-calculator-card output { color: #12251c !important; }
html body .rmw-calculator-card input,html body .rmw-calculator-card select,html body .rmw-calculator-card textarea { background: #fff !important; color: #12251c !important; -webkit-text-fill-color: #12251c !important; }
.rmw-calc-simple-help { margin: 0 0 18px !important; color: rgba(18,37,28,.7) !important; font-size: 13px !important; line-height: 1.6 !important; }
.rmw-product-guidance { margin: 0 0 24px; padding: 18px 20px; border-left: 4px solid #b5f440; background: rgba(18,37,28,.045); color: rgba(18,37,28,.76); font-size: 15px; line-height: 1.65; }
.rmw-product-guidance strong { display: block; margin-bottom: 5px; color: #12251c; font-size: 13px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.rmw-product-application { margin: 0; padding: clamp(56px,7vw,96px) max(24px,calc((100vw - 1280px)/2)); display: grid; grid-template-columns: minmax(0,.72fr) minmax(0,1.28fr); align-items: center; gap: clamp(28px,5vw,72px); background: #0c2a1e; color: #fff; }
.rmw-product-application-copy { max-width: 520px; }
.rmw-product-application .rmw-eyebrow { color: #b5f440 !important; }
.rmw-product-application h2 { margin: 12px 0 16px !important; color: #fff !important; font-size: clamp(38px,5vw,72px) !important; line-height: .98 !important; }
.rmw-product-application p { margin: 0 !important; color: rgba(255,255,255,.76) !important; font-size: 16px !important; line-height: 1.68 !important; }
.rmw-product-application figure { min-height: 360px; margin: 0; position: relative; overflow: hidden; border-radius: 24px; background: #173d2d; }
.rmw-product-application img { width: 100%; height: 100%; min-height: 360px; position: absolute; inset: 0; object-fit: cover; object-position: center; }
.rmw-product-application figcaption { position: absolute; z-index: 2; right: 18px; bottom: 18px; padding: 8px 11px; border-radius: 999px; background: rgba(7,29,21,.86); color: #fff; font-size: 10px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
@media screen and (max-width:767px) {
  .rmw-product-application { padding: 54px 20px; grid-template-columns: 1fr; gap: 28px; }
  .rmw-product-application figure,.rmw-product-application img { min-height: 260px; }
}
