.buyer-page { background: #fff; color: #17212b; }
.buyer-heading { padding: 42px 0 26px; border-bottom: 1px solid #dde5ec; }
.buyer-heading h1 { font-size: 38px; line-height: 1.18; max-width: 820px; letter-spacing: 0; margin: 10px 0 16px; }
.buyer-heading p { max-width: 780px; }
.buyer-heading .crumb { margin-bottom: 10px; }
.buyer-section { padding: 36px 0; background: #fff; }
.buyer-section[id], .buyer-route[id] { scroll-margin-top: 90px; }
.buyer-section h2 { font-size: 26px; line-height: 1.3; letter-spacing: 0; }
.buyer-section a:not(.btn), .buyer-route a { color: #0b7046; text-decoration: underline; text-underline-offset: 3px; }
.buyer-section table { width: 100%; border-collapse: collapse; }
.buyer-section th, .buyer-section td { padding: 12px 15px; border-bottom: 1px solid #dde5ec; text-align: left; vertical-align: top; }
.buyer-section th { background: #f3f6f5; }
.buyer-section td:first-child { font-weight: 650; width: 25%; }
.buyer-section .table-scroll { overflow-x: auto; }
.planner-layout { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); gap: 40px; align-items: start; }
.planner-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.planner-fields .field { min-width: 0; }
.planner-fields label { display: block; margin-bottom: 7px; font-weight: 650; font-size: 14px; }
.planner-fields input, .planner-fields select, .planner-brief { width: 100%; min-width: 0; padding: 11px 12px; border: 1px solid #aebdc5; border-radius: 4px; background: white; color: #17212b; font: inherit; }
.planner-fields [hidden], [data-planner-result][hidden] { display: none; }
.planner-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 22px; }
.planner-actions .btn { white-space: normal; text-align: center; font-size: 14px; }
.planner-result { border-top: 3px solid #0b7a46; padding-top: 16px; }
.planner-result dl { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 0 0 16px; }
.planner-result dt, .planner-result dd { margin: 0; padding: 12px 0; border-bottom: 1px solid #dde5ec; }
.planner-result dd { font-weight: 750; text-align: right; }
.planner-result dd { overflow-wrap: anywhere; }
.planner-brief { min-height: 230px; resize: vertical; font-size: 14px; }
.planner-note { font-size: 14px; color: #53636e; }
.planner-photo { margin: 0 0 20px; }
.planner-photo img { width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; border-radius: 4px; }
.planner-photo figcaption { font-size: 12px; color: #53636e; margin-top: 7px; }
.buyer-route { padding: 18px 0; border-bottom: 1px solid #dde5ec; }
.buyer-route h3 { margin: 0 0 8px; font-size: 19px; }
.buyer-route ul { margin: 0; padding-left: 20px; columns: 2; column-gap: 36px; }
.buyer-route li { padding: 4px 0; break-inside: avoid; }
.buyer-links { display: flex; gap: 20px; flex-wrap: wrap; margin: 18px 0; }
.buyer-links a { font-weight: 650; }
.buyer-entry { padding: 22px 0; border-bottom: 1px solid #dde5ec; background: #f6faf7; color: #17212b; }
.buyer-entry .container { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.buyer-entry p { margin: 0; }
.buyer-entry a { color: #0b7046; font-weight: 700; text-decoration: underline; }
.related-reading { margin-top: 18px; color: #435260; }
.related-reading a { color: #0b7046; font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.related-reading a:hover { color: #075b39; }
.buyer-updated { font-size: 13px; color: #53636e; }
.quote-preview { width: 100%; min-height: 160px; padding: 12px; }
@media(max-width:760px) {
  .buyer-heading { padding-top: 25px; }
  .buyer-heading h1 { font-size: 29px; }
  .planner-layout { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .buyer-route ul { columns: 1; }
  .buyer-section td:first-child { width: 34%; }
  .buyer-section th, .buyer-section td { padding: 10px 8px; }
  .buyer-section { padding: 26px 0; }
}
@media(max-width:420px) { .planner-fields { grid-template-columns: minmax(0,1fr); } }
@media(max-width:600px) {
  .buyer-section table, .buyer-section tbody { display: block; width: 100%; }
  .buyer-section thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .buyer-section tr { display: block; padding: 12px 0; border-bottom: 1px solid #dde5ec; }
  .buyer-section td, .buyer-section td:first-child { display: block; width: 100%; padding: 6px 12px; border: 0; overflow-wrap: anywhere; }
  .buyer-section td:not(:first-child)::before { content: attr(data-label); display: block; color: #53636e; font-size: 12px; font-weight: 650; margin-bottom: 2px; }
}
