/* Extend HALMI's existing green, white and charcoal surfaces. */
.model-guide { margin: .75rem 0; font-size: .9375rem; line-height: 1.5; }
.model-guide p { margin: .3rem 0; }
.model-guide .mg-enclosure { font-weight: 650; color: #175944; }
.model-guide-details { margin: .25rem 0 .5rem; font-size: .875rem; }
.model-guide-details summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.model-guide-details p { line-height: 1.6; }
.hc-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.5rem; margin: 0 0 1.5rem; }
.hc-toolbar p { font-size: .875rem; margin: 0; }
.hc-toolbar button,.hc-remove,.hc-picker,.hc-card-open { min-height: 44px; }
.hc-picker { display: inline-flex; align-items: center; gap: .6rem; font-size: .9375rem; cursor: pointer; }
.hc-picker input { width: 19px; height: 19px; accent-color: #175944; }
.hc-selected .hc-picker { color: #175944; font-weight: 650; }
.model-card-controls .model-actions { flex-wrap: wrap; gap: .35rem 1rem; }
.hc-card-open { font-size: .875rem; text-decoration: underline; text-underline-offset: 4px; color: #175944; }
.hc-remove,.hc-card-open { border: 0; background: transparent; padding: .5rem 0; cursor: pointer; color: #175944; font-family: inherit; }
.hc-card-note { flex-basis: 100%; font-size: .875rem; line-height: 1.5; color: #175944; }
.hc-comparison { border: 1px solid #bacac0; border-radius: 1rem; background: #fff; margin: 2rem 0 1rem; scroll-margin-top: 110px; }
.hc-comparison[hidden],.hc-card-open[hidden] { display: none !important; }
.hc-comparison > summary { display: flex; justify-content: space-between; gap: 1rem; cursor: pointer; padding: 1.2rem; font-weight: 650; font-size: 1.125rem; }
.hc-body { padding: 0 1.2rem 1.25rem; }
.hc-body > p { font-size: 1rem; line-height: 1.6; }
.hc-controls { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; margin: 1.25rem 0; }
.hc-controls label { display: flex; flex-direction: column; gap: .5rem; font-size: .875rem; }
.hc-controls select { width: 100%; min-width: 0; min-height: 48px; padding: .65rem; background: #fff; color: #17241d; border: 1px solid #a5b6ab; border-radius: .5rem; font: inherit; font-size: 1rem; }
.hc-results { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.25rem; margin: 1.5rem 0; }
.hc-result { min-width: 0; display: flex; flex-direction: column; border: 1px solid #d3ded6; border-radius: .75rem; overflow: hidden; padding: 0 1rem .5rem; }
.hc-result > img { width: calc(100% + 2rem); max-width: none; margin: 0 -1rem 1rem; aspect-ratio: 1.5; object-fit: contain; background: #edf1ed; }
.hc-result h3 { font-size: 1.35rem; line-height: 1.3; margin: 0 0 .75rem; }
.hc-facts { display: grid; gap: .8rem; font-size: .9375rem; line-height: 1.5; }
.hc-facts dt { font-size: .875rem; color: #526158; }
.hc-facts dd { margin: .15rem 0 0; }
.hc-options { font-size: .875rem; line-height: 1.5; margin: .75rem 0; }
.hc-options summary { cursor: pointer; padding: .5rem 0; min-height: 44px; }
.hc-price { margin-top: auto; padding: 1rem 0; font-size: .875rem; }
.hc-price > strong { display: block; font-size: 1.6rem; line-height: 1.3; }
.hc-price p { margin: .4rem 0 0; }
.hc-result .hb-primary { text-align: center; min-height: 48px; display: flex; align-items: center; justify-content: center; padding: .75rem; font-size: 1rem; }
.hc-remove { align-self: start; margin-top: .5rem; font-size: .875rem; text-decoration: underline; text-underline-offset: 4px; }
.hc-footer { display: flex; gap: 1rem; flex-wrap: wrap; align-items: center; justify-content: space-between; }
.hc-footer > * { min-height: 44px; display: flex; align-items: center; font-size: .9375rem; }
.project-solution { margin: 1rem 0; border-top: 1px solid #ccd5ce; }
.project-solution div { margin-top: .75rem; }
.project-solution dt { font-size: .875rem; color: #526158; }
.project-solution dd { font-size: 1rem; line-height: 1.55; margin: .3rem 0 0; }
.workshop-proof { display: grid; grid-template-columns: 1.4fr 1fr; gap: 2rem; margin: 2rem 0 3rem; align-items: start; }
.workshop-proof img { width: 100%; height: auto; border-radius: .75rem; }
.workshop-proof figcaption { font-size: .9375rem; line-height: 1.5; margin-top: .75rem; }
.workshop-proof .proof-detail img { aspect-ratio: 1.2; object-fit: cover; object-position: 80% 65%; }
.workshop-proof .proof-detail { max-width: 28rem; }
.professional-note { display: flex; gap: 2rem; align-items: center; justify-content: space-between; }
.professional-note h3 { font-size: 1.4rem; margin-bottom: .75rem; }
.professional-note p { font-size: 1rem; line-height: 1.6; max-width: 46rem; }
.professional-note button { text-align: left; flex-shrink: 0; max-width: 22rem; font-size: 1rem; min-height: 48px; }
.request-context { border-left: 3px solid #b5d3bc; padding: .75rem 1rem; margin-bottom: 1rem; font-size: 1rem; line-height: 1.6; }
.hb-includes { margin-top: 1.3rem; border: 1px solid #c5d4c9; border-radius: .75rem; padding: 1rem; background: #fff; color: #17241d; }
.hb-includes h3 { font-size: 1.1rem; margin: 0 0 .7rem; }
.hb-includes ul { margin: .5rem 0 .75rem; padding-left: 1.2rem; }
.hb-includes li,.hb-includes p { font-size: 1rem; line-height: 1.6; margin: .45rem 0; }
.hb-includes details { border-top: 1px solid #d4ded7; margin-top: .75rem; }
.hb-includes summary { cursor: pointer; min-height: 48px; padding: .75rem 0; font-size: 1rem; }
.hb-share { margin: 1rem 0 .25rem; }
.hb-share button { font-size: .9375rem; min-height: 48px; }
.hb-share p { font-size: .875rem; line-height: 1.5; margin-top: .5rem; }
.hb-share-fallback label { display: block; font-size: .875rem; }
.hb-share-fallback input { font-size: 1rem; width: 100%; min-height: 48px; margin-top: .4rem; padding: .65rem; border: 1px solid #a5b6ab; border-radius: .5rem; }
.hc-body :focus-visible,.hc-toolbar :focus-visible,.hb-share :focus-visible { outline: 3px solid #438769; outline-offset: 3px; }
@media(max-width:1000px) { .hc-controls { grid-template-columns: repeat(2,minmax(0,1fr)); } .hc-results { gap: .65rem; } .hc-result { padding-right: .75rem; padding-left: .75rem; } .hc-result > img { width: calc(100% + 1.5rem); margin-left: -.75rem; margin-right: -.75rem; } }
@media(max-width:760px) {
 .hc-results { grid-template-columns: minmax(0,1fr); gap: 1rem; }
 .hc-result { padding: 0 1rem .75rem; } .hc-result > img { width: calc(100% + 2rem); margin: 0 -1rem 1rem; }
 .hc-facts { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem 1rem; }
 .hc-comparison > summary { padding: 1rem; } .hc-body { padding: 0 1rem 1rem; }
 .workshop-proof { grid-template-columns: minmax(0,1fr); gap: 1.5rem; }
 .professional-note { display: block; } .professional-note button { margin-top: 1rem; }
 .model-guide p { font-size: .9375rem; }
 .hc-toolbar { align-items: flex-start; }
}
@media(max-width:540px) {
 #model-grid { grid-template-columns: minmax(0,1fr); }
 #model-grid .model-card-controls .hb-card-calculator { min-height: 4.75rem; }
 #model-grid .model-card-controls .model-video-link { min-height: 3.5rem; }
 #model-grid .model-video-label small { min-height: 0; }
 #model-grid .model-card-controls .hb-card-calculator strong { font-size: 1rem; }
 .hc-controls { grid-template-columns: minmax(0,1fr); }
}
