.spp-sf-page { min-height: 60vh; }
.spp-sf-editorial { border-top: 1px solid var(--line); }
.spp-sf-editorial h2 { max-width: 900px; font-size: clamp(27px, 3.2vw, 40px); line-height: 1.2; }
.spp-sf-editorial h3 { font-size: 21px; line-height: 1.3; margin-bottom: 12px; }
.spp-sf-editorial p { line-height: 1.65; }
.spp-sf-editorial-intro { max-width: 850px; }
.spp-sf-editorial-choices { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; margin-top: 28px; }
.spp-sf-editorial-choices article { padding: 24px; background: var(--cream); border: 1px solid var(--line); }
.spp-sf-editorial article { min-width: 0; overflow-wrap: anywhere; }
.spp-sf-editorial article p:last-child { margin-bottom: 0; }
.spp-sf-editorial-planning { margin-block: 36px; }
.spp-sf-editorial-faq details { padding: 18px 0; border-bottom: 1px solid var(--line); }
.spp-sf-editorial-faq summary { cursor: pointer; font-weight: 700; line-height: 1.45; }
.spp-sf-editorial-faq p { max-width: 850px; margin: 14px 0 0; }
.spp-sf-editorial-related { display: flex; flex-wrap: wrap; gap: 12px 22px; margin-top: 28px; }
@media (max-width: 860px) { .spp-sf-editorial-choices { grid-template-columns: 1fr; } }
.spp-sf-page h1 { max-width: 920px; margin-bottom: 24px; font-size: clamp(46px, 6vw, 82px); }
.spp-sf-lead { max-width: 760px; color: var(--muted); font-size: clamp(17px, 2vw, 21px); line-height: 1.55; }
.spp-sf-catalog-hero { padding: 76px 0 60px; border-bottom: 1px solid var(--line); background: var(--cream); }
.spp-sf-directions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 25px; }
.spp-sf-directions a { display: grid; grid-template-columns: 1fr auto; gap: 5px 14px; min-height: 104px; align-content: center; padding: 18px 20px; border: 1px solid var(--line); color: inherit; background: var(--white); text-decoration: none; }
.spp-sf-directions strong { font-size: 19px; }
.spp-sf-directions small { color: var(--muted); }
.spp-sf-directions span { grid-column: 2; grid-row: 1 / 3; align-self: center; color: var(--plum); }
.spp-sf-service-products { scroll-margin-top: 90px; }
.spp-sf-service-all { margin: 25px 0 0; }
.spp-sf-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.spp-sf-card { overflow: hidden; border: 1px solid var(--line); background: var(--white); }
.spp-sf-card-image { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #e6e0d9; }
.spp-sf-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 300ms ease; }
.spp-sf-card:hover .spp-sf-card-image img { transform: scale(1.02); }
.spp-sf-card-copy { padding: 28px; }
.spp-sf-card-copy h2 { margin-bottom: 14px; font-size: clamp(29px, 3vw, 43px); }
.spp-sf-card-copy > p:not(.spp-sf-kicker) { min-height: 4.7em; color: var(--muted); }
.spp-sf-kicker { margin-bottom: 10px; color: var(--plum); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.spp-sf-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 25px; padding-top: 20px; border-top: 1px solid var(--line); }
.spp-sf-card-footer strong { font-size: 21px; }
.spp-sf-explainer { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 72px; border-block: 1px solid var(--line); }
.spp-sf-explainer > div { padding: 30px; border-right: 1px solid var(--line); }
.spp-sf-explainer > div:last-child { border-right: 0; }
.spp-sf-explainer span { display: block; margin-bottom: 35px; color: var(--plum); font-size: 12px; font-weight: 800; }
.spp-sf-explainer strong { display: block; margin-bottom: 8px; font-size: 22px; }
.spp-sf-explainer p { margin: 0; color: var(--muted); font-size: 14px; }
.spp-sf-candidates { border-top: 1px solid var(--line); background: var(--cream); }
.spp-sf-candidates > .shell > p { max-width: 750px; color: var(--muted); }
.spp-sf-candidate-group { margin-top: 46px; }
.spp-sf-candidate-group h3 { margin-bottom: 18px; font-size: clamp(26px, 3vw, 38px); }
.spp-sf-candidate-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.spp-sf-candidate-card { min-width: 0; overflow: hidden; border: 1px solid var(--line); background: var(--white); }
.spp-sf-candidate-card > img { display: block; width: 100%; aspect-ratio: 5 / 4; object-fit: cover; }
.spp-sf-candidate-copy { display: grid; gap: 12px; padding: 20px; }
.spp-sf-candidate-copy h4 { margin: 0; font-size: clamp(19px, 2vw, 24px); line-height: 1.2; }
.spp-sf-candidate-copy p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.spp-sf-candidate-copy .spp-sf-candidate-distinction { color: inherit; }
.spp-sf-candidate-copy .spp-sf-candidate-caption { font-size: 11px; }
.spp-sf-candidate-copy a { justify-self: start; margin-top: 6px; color: var(--plum); font-weight: 700; }
.spp-sf-candidate-request { scroll-margin-top: 90px; border-top: 1px solid var(--line); }
.spp-sf-candidate-request-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 50px; align-items: start; }
.spp-sf-candidate-request-grid h2 { font-size: clamp(30px, 4vw, 50px); }
.spp-sf-candidate-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.spp-sf-candidate-form select, .spp-sf-candidate-form textarea { width: 100%; min-width: 0; padding: 12px 14px; border: 1px solid var(--line); background: var(--white); }
.spp-sf-candidate-form textarea { resize: vertical; }

.spp-sf-product-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(380px, .92fr); align-items: start; gap: 70px; }
.spp-sf-product-media { position: sticky; top: 106px; overflow: hidden; background: #e6e0d9; }
.spp-sf-product-media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.spp-sf-product-media p { margin: 0; padding: 12px 16px; color: var(--muted); background: var(--cream); font-size: 12px; }
.spp-sf-product-copy h1 { font-size: clamp(43px, 5vw, 69px); }
.spp-sf-specs { margin: 30px 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.spp-sf-specs li { display: flex; justify-content: space-between; gap: 24px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.spp-sf-specs span { color: var(--muted); font-size: 13px; }
.spp-sf-specs strong { text-align: right; font-size: 14px; }
.spp-sf-configurator { padding: 26px; border: 1px solid var(--line); background: var(--white); box-shadow: 0 18px 50px rgba(41,35,38,.08); }
.spp-sf-fabric-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 18px; }
.spp-sf-fabric-fields label { display: grid; gap: 6px; }
.spp-sf-fabric-fields label > span { font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.spp-sf-fabric-fields select { width: 100%; min-height: 52px; padding: 10px 12px; border: 1px solid var(--line); background: var(--paper); }
.spp-sf-config-fields { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.spp-sf-config-fields label { display: grid; gap: 6px; }
.spp-sf-config-fields label > span { font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.spp-sf-config-fields input { width: 100%; min-height: 52px; padding: 10px 12px; border: 1px solid var(--line); background: var(--paper); }
.spp-sf-config-fields small { color: var(--muted); font-size: 10px; }
.spp-sf-live-price { display: grid; margin: 24px 0 18px; padding: 20px 0; border-block: 1px solid var(--line); }
.spp-sf-live-price > span { color: var(--muted); font-size: 12px; }
.spp-sf-live-price strong { margin: 5px 0; font-size: 34px; line-height: 1; }
.spp-sf-live-price small { color: var(--muted); }
.spp-sf-configurator .button { width: 100%; }
.spp-sf-onviz-calculator { display: grid; gap: 12px; min-width: 0; margin: 0 20px 20px; padding: 18px; border: 1px solid var(--line); background: var(--paper); }
.spp-sf-onviz-calculator label { display: grid; gap: 6px; min-width: 0; }
.spp-sf-onviz-calculator input, .spp-sf-onviz-calculator select { box-sizing: border-box; width: 100%; max-width: 100%; min-width: 0; min-height: 44px; padding: 8px; border: 1px solid var(--line); background: var(--white); font: inherit; }
.spp-sf-onviz-calculator p { margin: 0; }
.spp-sf-onviz-calculator .button { white-space: normal; }
.spp-sf-onviz-result strong { font-size: 26px; }
.spp-sf-calculated-request { display: block; padding: 12px 0 2px; color: var(--plum); font-weight: 700; line-height: 1.5; overflow-wrap: anywhere; }
.spp-sf-calculated-request:focus-visible { outline: 2px solid var(--plum); outline-offset: 3px; }
.spp-sf-item-detail .spp-sf-onviz-calculator { margin: 28px 0 0; padding: 24px; }
.spp-sf-item-detail .spp-sf-product-media img { object-fit: contain; }
.spp-sf-item-detail h1, .spp-sf-item-detail h2, .spp-sf-item-detail h3 { overflow-wrap: anywhere; hyphens: auto; }
@media (min-width: 861px) { .spp-sf-item-detail .spp-sf-product-copy h1 { font-size: clamp(36px, 3.8vw, 54px); } }
.spp-sf-candidate-copy .button { justify-self: stretch; text-align: center; color: #fff; }
.spp-sf-disclaimer { margin: 18px 0 0; color: var(--muted); font-size: 12px; }
.spp-sf-product-notes { border-top: 1px solid var(--line); background: var(--cream); }
.spp-sf-note-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; }
.spp-sf-note-grid h2 { font-size: clamp(35px, 4vw, 56px); }
.spp-sf-note-grid article > p:last-child { color: var(--muted); font-size: 17px; }

.spp-sf-page > .shell { padding-block: 70px 100px; }
.spp-sf-cart-list { border-top: 1px solid var(--line); }
.spp-sf-cart-line { display: grid; grid-template-columns: minmax(0, 1fr) 130px 150px auto; align-items: center; gap: 24px; padding: 26px 0; border-bottom: 1px solid var(--line); }
.spp-sf-cart-line h2 { margin: 0 0 5px; font-size: 25px; }
.spp-sf-cart-line p { margin: 0; color: var(--muted); }
.spp-sf-cart-line label { display: grid; gap: 4px; }
.spp-sf-cart-line label span { color: var(--muted); font-size: 10px; text-transform: uppercase; }
.spp-sf-cart-line input { min-height: 44px; padding: 8px; border: 1px solid var(--line); }
.spp-sf-cart-line > strong { font-size: 20px; text-align: right; }
.spp-sf-cart-line > button { border: 0; color: var(--plum); background: transparent; cursor: pointer; }
.spp-sf-cart-total { display: flex; align-items: center; justify-content: flex-end; gap: 45px; padding-top: 32px; }
.spp-sf-cart-total > div { display: grid; }
.spp-sf-cart-total span { color: var(--muted); font-size: 12px; }
.spp-sf-cart-total strong { font-size: 34px; }
.spp-sf-cart-total small { color: var(--muted); }
.spp-sf-empty { max-width: 650px; padding: 45px; border: 1px solid var(--line); background: var(--white); }
.spp-sf-empty h2 { font-size: 42px; }

.spp-sf-checkout-layout { display: grid; grid-template-columns: .9fr 1.1fr; align-items: start; gap: 70px; padding-block: 70px 100px; }
.spp-sf-checkout-lines { margin-top: 35px; border-top: 1px solid var(--line); }
.spp-sf-checkout-lines > div { display: flex; justify-content: space-between; gap: 24px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.spp-sf-checkout-lines span { display: grid; }
.spp-sf-checkout-lines small { margin-top: 4px; color: var(--muted); }
.spp-sf-checkout-total { font-size: 24px; }
.spp-sf-checkout-form { grid-template-columns: 1fr 1fr; }
.spp-sf-checkout-form textarea { width: 100%; padding: 12px 14px; border: 1px solid var(--line); resize: vertical; }
.spp-sf-wide { grid-column: 1 / -1; }
.spp-sf-success, .spp-sf-error { padding: 22px; border: 1px solid rgba(35,67,28,.25); background: #e0f0d7; }
.spp-sf-error { border-color: rgba(117,42,42,.25); color: #752a2a; background: #f5dddd; }
.spp-sf-cart-link { display: flex; position: static; width: fit-content; align-items: center; gap: 6px; margin: 16px auto; font-size: 13px; font-weight: 700; }
.spp-sf-cart-link span { display: grid; min-width: 22px; height: 22px; padding-inline: 4px; place-items: center; border-radius: 50%; color: var(--plum-dark); background: var(--lime); }

@media (max-width: 860px) {
  .spp-sf-directions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .spp-sf-candidate-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .spp-sf-candidate-request-grid { grid-template-columns: 1fr; }
  .spp-sf-grid, .spp-sf-product-grid, .spp-sf-note-grid, .spp-sf-checkout-layout { grid-template-columns: 1fr; }
  .spp-sf-product-grid, .spp-sf-checkout-layout { gap: 38px; }
  .spp-sf-product-media { position: static; }
  .spp-sf-explainer { grid-template-columns: 1fr; }
  .spp-sf-explainer > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .spp-sf-explainer > div:last-child { border-bottom: 0; }
  .spp-sf-cart-line { grid-template-columns: 1fr 110px; }
  .spp-sf-cart-line > strong { text-align: left; }
}

@media (max-width: 560px) {
  .spp-sf-directions { grid-template-columns: 1fr; }
  .spp-sf-candidate-grid, .spp-sf-candidate-form { grid-template-columns: 1fr; }
  .spp-sf-candidate-group { margin-top: 34px; }
  .spp-sf-candidate-card > img { aspect-ratio: 16 / 11; }
  .spp-sf-fabric-fields { grid-template-columns: 1fr; }
  .spp-sf-catalog-hero { padding: 48px 0 38px; }
  .spp-sf-page h1 { font-size: clamp(34px, 9vw, 42px); }
  .spp-sf-grid { gap: 14px; }
  .spp-sf-card-copy { padding: 21px; }
  .spp-sf-card-copy > p:not(.spp-sf-kicker) { min-height: 0; }
  .spp-sf-card-footer { align-items: stretch; flex-direction: column; }
  .spp-sf-config-fields { grid-template-columns: 1fr 1fr; }
  .spp-sf-config-fields label:last-child { grid-column: 1 / -1; }
  .spp-sf-cart-line { grid-template-columns: 1fr; gap: 13px; }
  .spp-sf-cart-line > strong { font-size: 24px; }
  .spp-sf-cart-total { align-items: stretch; flex-direction: column; gap: 20px; }
  .spp-sf-cart-total .button { width: 100%; }
  .spp-sf-checkout-form { grid-template-columns: 1fr; padding: 22px; }
  .spp-sf-checkout-form > * { grid-column: 1 / -1; }
}
