.sos-product-hero { padding: 24px 0 40px; background: #fff; }
.sos-product-hero__grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(420px, .92fr); align-items: center; gap: clamp(45px, 7vw, 108px); }
.sos-product-gallery { min-width: 0; }
.sos-product-gallery__stage { position: relative; display: grid; min-height: 500px; place-items: center; overflow: hidden; background: #fff; }
.sos-product-gallery__stage::after { position: absolute; inset: 0; box-shadow: inset 0 0 42px 30px #fff; pointer-events: none; content: ""; }
.sos-product-gallery__stage > img { display: block; width: min(100%, 670px); height: min(55vw, 580px); object-fit: contain; }
.sos-product-gallery__thumbs { position: relative; z-index: 2; display: flex; justify-content: center; gap: 9px; margin-top: -32px; }
.sos-product-gallery__thumbs button { width: 66px; height: 66px; padding: 4px; overflow: hidden; border: 1px solid var(--sos-line); border-radius: 10px; background: #fff; cursor: pointer; }
.sos-product-gallery__thumbs button.is-active { border-color: var(--sos-green); box-shadow: 0 0 0 3px rgba(131,183,53,.13); }
.sos-product-gallery__thumbs img { width: 100%; height: 100%; object-fit: contain; }
.sos-product-intro h1 { margin: 11px 0 13px; color: var(--sos-deep); font-size: clamp(42px, 5.1vw, 74px); line-height: .99; letter-spacing: -.055em; }
.sos-product-rating { display: inline-flex; align-items: center; gap: 12px; margin-bottom: 22px; color: #4d5d53; font-size: 13px; font-weight: 700; text-decoration: none; }
.sos-product-intro__copy { max-width: 650px; color: #56675c; font-size: 17px; }
.sos-product-intro__copy > :first-child { margin-top: 0; }
.sos-product-intro__copy > :last-child { margin-bottom: 0; }
.sos-product-trust { border-block: 1px solid var(--sos-line); background: #fff; }
.sos-product-trust .sos-container { display: grid; min-height: 78px; grid-template-columns: repeat(3, 1fr); align-items: center; }
.sos-product-trust span { display: grid; grid-template-columns: 42px 1fr; column-gap: 12px; align-items: center; padding: 13px 5vw; border-right: 1px solid var(--sos-line); }
.sos-product-trust span:first-child { padding-left: 0; }
.sos-product-trust span:last-child { padding-right: 0; border-right: 0; }
.sos-product-trust i { grid-row: 1 / 3; display: grid; width: 38px; height: 38px; place-items: center; border-radius: 10px; color: var(--sos-forest); background: var(--sos-mint); font-style: normal; font-weight: 900; }
.sos-product-trust b { color: var(--sos-deep); font-size: 13px; }
.sos-product-trust small { color: var(--sos-muted); font-size: 10px; }

.sos-configurator { padding: 68px 0 86px; background: var(--sos-soft); }
.sos-configurator__head { max-width: 880px; margin-bottom: 28px; }
.sos-configurator__head h2 { margin: 8px 0 8px; color: var(--sos-deep); font-size: clamp(34px, 4vw, 54px); line-height: 1.04; letter-spacing: -.04em; }
.sos-configurator__head p { max-width: 760px; margin: 0; color: var(--sos-muted); }
.sos-configurator__form { margin: 0 !important; }
.sos-configurator__grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(300px, 1fr); align-items: start; gap: 18px; }
.sos-configurator__options { min-width: 0; padding: clamp(26px, 3.5vw, 48px); border: 1px solid var(--sos-line); border-radius: var(--sos-radius); background: #fff; box-shadow: 0 12px 36px rgba(26,58,36,.055); }
.sos-configurator__step { display: grid; grid-template-columns: 54px 1fr; align-items: center; gap: 17px; margin-bottom: 26px; padding-bottom: 24px; border-bottom: 1px solid var(--sos-line); }
.sos-configurator__step > b { display: grid; width: 50px; height: 50px; place-items: center; border-radius: 12px; color: #fff; background: var(--sos-forest); font-size: 19px; font-weight: 800; line-height: 1; box-shadow: 0 10px 20px rgba(7,92,50,.16); }
.sos-configurator__step h3 { margin: 0 !important; color: var(--sos-deep) !important; font-family: "Avenir Next", Avenir, Inter, Arial, sans-serif !important; font-size: 25px !important; font-weight: 700 !important; line-height: 1.15 !important; letter-spacing: normal !important; }
.sos-configurator__epo { min-width: 0; }
.sos-configurator__epo .tc-extra-product-options,
.sos-configurator__epo .tm-extra-product-options,
.sos-configurator__epo .tm-extra-product-options-fields,
.sos-configurator__epo .tm-extra-product-options-field,
.sos-configurator__epo .tc-container { width: 100% !important; max-width: 100% !important; }
.sos-configurator__epo .tm-extra-product-options { margin: 0 !important; }
.sos-configurator__epo .tm-extra-product-options-field { display: flex !important; flex-wrap: wrap; gap: 0; margin: 0 !important; }
.sos-configurator__epo .cpf-section { min-width: 230px; padding: 12px 10px !important; }
.sos-configurator__epo .tcwidth-100 { flex: 0 0 100% !important; width: 100% !important; }
.sos-configurator__epo .tcwidth-50 { flex: 0 0 50% !important; width: 50% !important; }
.sos-configurator__epo .tcwidth-33 { flex: 0 0 33.333% !important; width: 33.333% !important; }
.sos-configurator__epo h1, .sos-configurator__epo h2, .sos-configurator__epo h3, .sos-configurator__epo h4, .sos-configurator__epo h5, .sos-configurator__epo h6 { color: var(--sos-deep) !important; font-size: 18px !important; line-height: 1.25 !important; }
.sos-configurator__epo .sos-epo-step-heading { position: relative; display: flex !important; min-height: 75px; align-items: center; margin: 26px 0 22px !important; padding: 24px 0 0 71px !important; border-top: 1px solid var(--sos-line); color: var(--sos-deep) !important; font-family: "Avenir Next", Avenir, Inter, Arial, sans-serif !important; font-size: 25px !important; font-weight: 700 !important; line-height: 1.15 !important; letter-spacing: normal !important; }
.sos-configurator__epo .sos-epo-step-heading * { margin: 0 !important; color: inherit !important; font-family: inherit !important; font-size: inherit !important; font-weight: inherit !important; line-height: inherit !important; letter-spacing: inherit !important; }
.sos-configurator__epo .sos-epo-step-heading::before { position: absolute; bottom: 0; left: 0; display: grid; width: 50px; height: 50px; place-items: center; border-radius: 12px; color: #fff; background: var(--sos-forest); content: attr(data-sos-step); font-size: 19px; font-weight: 800; line-height: 1; box-shadow: 0 10px 20px rgba(7,92,50,.16); }
.sos-configurator__epo label, .sos-configurator__epo .tm-epo-field-label { color: #253a2d !important; font-size: 13px !important; font-weight: 700 !important; }
.sos-configurator__epo select, .sos-configurator__epo input[type="text"], .sos-configurator__epo input[type="email"], .sos-configurator__epo input[type="number"], .sos-configurator__epo input[type="url"], .sos-configurator__epo textarea { width: 100% !important; min-height: 50px; padding: 10px 42px 10px 13px !important; border: 1px solid #c8d5cb !important; border-radius: 10px !important; outline: 0; color: var(--sos-ink) !important; background-color: #fff !important; box-shadow: none !important; }
.sos-configurator__epo select { appearance: auto; cursor: pointer; }
.sos-configurator__epo textarea { min-height: 110px; padding-right: 13px !important; }
.sos-configurator__epo select:hover, .sos-configurator__epo input:hover, .sos-configurator__epo textarea:hover { border-color: #a7baa9 !important; }
.sos-configurator__epo select:focus, .sos-configurator__epo input:focus, .sos-configurator__epo textarea:focus { border-color: var(--sos-green) !important; box-shadow: 0 0 0 4px rgba(131,183,53,.12) !important; }
.sos-configurator__epo input[type="radio"], .sos-configurator__epo input[type="checkbox"] { width: 21px !important; height: 21px !important; accent-color: var(--sos-forest); }
.sos-configurator__epo .tmcp-field-wrap { margin: 0 !important; }
.sos-configurator__epo .tmcp-field-wrap > label { gap: 9px; }
.sos-configurator__epo .tm-epo-element-label { margin-bottom: 7px !important; }
.sos-configurator__epo .tm-element-description { color: var(--sos-muted); font-size: 13px; }
.sos-configurator__form.js-summary-ready .sos-configurator__epo .tm-epo-totals,
.sos-configurator__form--quote .sos-configurator__epo .tm-epo-totals { position: absolute !important; width: 1px !important; height: 1px !important; margin: 0 !important; padding: 0 !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; clip-path: inset(50%) !important; white-space: nowrap !important; }
.sos-configurator__epo input[type="file"] { width: 100%; min-height: 118px; padding: 42px 18px 18px; border: 2px dashed #b9cbbd; border-radius: 13px; color: var(--sos-muted); background: var(--sos-soft); cursor: pointer; }
.sos-configurator__epo input[type="file"]::file-selector-button { margin-right: 13px; padding: 9px 14px; border: 0; border-radius: 8px; color: #fff; background: var(--sos-forest); font-weight: 800; cursor: pointer; }
.sos-configurator__epo .cpf-upload-container, .sos-configurator__epo .tm-epo-upload { padding: 18px !important; border: 2px dashed #b9cbbd !important; border-radius: 13px !important; background: var(--sos-soft) !important; }

.sos-configurator__sidebar { position: sticky; top: 18px; display: grid; gap: 12px; min-width: 0; }
.sos-configurator__sidebar.is-long { position: static; }
.sos-design-templates { overflow: hidden; border: 2px solid var(--sos-green); border-radius: 14px; background: #fff; box-shadow: 0 10px 24px rgba(83,126,44,.08); }
.sos-design-templates summary { display: flex; min-height: 62px; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 17px; color: var(--sos-deep); cursor: pointer; list-style: none; }
.sos-design-templates summary::-webkit-details-marker { display: none; }
.sos-design-templates summary > span { display: flex; align-items: center; gap: 10px; font-weight: 800; }
.sos-design-templates summary i { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 8px; color: var(--sos-deep); background: var(--sos-mint); font-style: normal; }
.sos-design-templates summary > b { font-size: 20px; transition: transform .2s; }
.sos-design-templates[open] summary > b { transform: rotate(45deg); }
.sos-design-templates > div { display: grid; padding: 0 12px 12px; }
.sos-design-templates > div a { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 8px; padding: 10px 7px; border-top: 1px solid var(--sos-line); color: var(--sos-forest); font-size: 12px; font-weight: 700; text-decoration: none; }
.sos-design-templates > div small { padding: 2px 6px; border-radius: 5px; color: var(--sos-deep); background: var(--sos-mint); }
.sos-design-templates > div i { font-style: normal; }
.sos-summary { overflow: hidden; border: 1px solid #cbd9ce; border-radius: 18px; background: #fff; box-shadow: var(--sos-shadow); }
.sos-summary > header { padding: 22px 22px 15px; }
.sos-summary > header small { color: var(--sos-forest); font-size: 9px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.sos-summary > header h3 { margin: 3px 0 0; color: var(--sos-deep); font-size: 21px; line-height: 1.15; }
.sos-summary__rows { display: grid; padding: 0 22px 10px; }
.sos-summary__empty { margin: 4px 0 13px; color: var(--sos-muted); font-size: 12px; }
.sos-summary__row { display: grid; grid-template-columns: minmax(90px, .8fr) minmax(0, 1.2fr); gap: 10px; padding: 8px 0; border-top: 1px solid #edf1ed; font-size: 11px; line-height: 1.35; }
.sos-summary__row dt { color: #34483b; font-weight: 800; }
.sos-summary__row dd { margin: 0; overflow-wrap: anywhere; color: #68786e; text-align: right; }
.sos-summary__total { margin: 10px 14px 0; padding: 17px; border-radius: 12px 12px 0 0; color: var(--sos-deep); background: #f6f9f5; }
.sos-summary__total > small { color: #6a786e; font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.sos-summary__total > div { display: flex; align-items: baseline; gap: 9px; }
.sos-summary__total strong, .sos-summary__total .price, .sos-summary__total .amount { color: var(--sos-deep) !important; font-size: clamp(29px, 3vw, 41px) !important; font-weight: 900 !important; line-height: 1.1; text-decoration: none; }
.sos-summary__total del, .sos-summary__total ins { display: inline; text-decoration: none; }
.sos-summary__total b { font-size: 13px; }
.sos-summary__shipping { display: flex; align-items: center; gap: 11px; margin: 0 14px; padding: 14px 17px; border-top: 1px solid #bfdcce; border-radius: 0 0 12px 12px; color: #0a6243; background: #e5f5ed; }
.sos-summary__shipping > span, .sos-summary__quote > span { display: grid; flex: 0 0 35px; width: 35px; height: 35px; place-items: center; border-radius: 50%; background: rgba(7,92,50,.1); font-weight: 900; }
.sos-summary__shipping strong, .sos-summary__shipping small { display: block; }
.sos-summary__shipping strong { font-size: 15px; }
.sos-summary__shipping small { color: #4c7b66; font-size: 10px; }
.sos-summary__quote { display: flex; align-items: center; gap: 11px; margin: 10px 14px 0; padding: 16px; border-radius: 12px; color: var(--sos-deep); background: var(--sos-mint); }
.sos-summary__quote strong, .sos-summary__quote small { display: block; }
.sos-summary__quote strong { font-size: 13px; }
.sos-summary__quote small { margin-top: 2px; color: var(--sos-muted); font-size: 10px; }
.sos-summary__action { padding: 14px; }
.sos-summary__primary, .sos-summary__action .add-request-quote-button, .sos-summary__action .ywraq-button, .sos-summary__action button[type="submit"]:not(.sos-native-quote-submit) { display: flex !important; width: 100% !important; min-height: 54px !important; align-items: center; justify-content: center; margin: 0 !important; padding: 12px 18px !important; border: 0 !important; border-radius: 10px !important; color: #fff !important; background: var(--sos-forest) !important; font-size: 14px !important; font-weight: 900 !important; text-align: center; text-decoration: none !important; box-shadow: none !important; }
.sos-native-quote-submit { display: none !important; }
.sos-special-order { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 15px; border: 1px solid var(--sos-line); border-radius: 12px; color: #4d6054; background: rgba(255,255,255,.72); font-size: 10px; line-height: 1.35; text-decoration: none; }
.sos-special-order strong { flex: 0 0 auto; color: var(--sos-forest); }

.sos-product-info { background: #fff; }
.sos-product-info__grid { display: grid; grid-template-columns: minmax(260px, .55fr) minmax(0, 1.45fr); gap: 80px; }
.sos-product-info header { position: sticky; top: 24px; align-self: start; }
.sos-product-info h2 { margin: 10px 0 13px; color: var(--sos-deep); font-size: clamp(34px, 4vw, 52px); line-height: 1.05; letter-spacing: -.04em; }
.sos-product-info header p { color: var(--sos-muted); }
.sos-rich-content { color: #405147; }
.sos-rich-content > :first-child { margin-top: 0; }
.sos-rich-content h2, .sos-rich-content h3, .sos-rich-content h4 { color: var(--sos-deep); }
.sos-rich-content h2 { margin-top: 38px; font-size: 30px; }
.sos-rich-content h3 { margin-top: 28px; font-size: 22px; }
.sos-rich-content p, .sos-rich-content li { line-height: 1.75; }
.sos-rich-content table { width: 100%; border-collapse: collapse; }
.sos-rich-content th, .sos-rich-content td { padding: 12px; border: 1px solid var(--sos-line); text-align: left; }
.sos-product-reviews { background: var(--sos-soft); }
.sos-reviews-native { padding: clamp(20px, 3vw, 38px); border: 1px solid var(--sos-line); border-radius: var(--sos-radius); background: #fff; }
.sos-reviews-native #comments, .sos-reviews-native #review_form_wrapper { width: 100%; max-width: none; }
.sos-reviews-native .comment-form-rating .stars a { color: var(--sos-yellow) !important; }
.sos-reviews-native input:not([type="submit"]), .sos-reviews-native textarea { width: 100%; border: 1px solid #c8d5cb; border-radius: 9px; }
.sos-reviews-native input[type="submit"] { border: 0; border-radius: 9px; color: #fff; background: var(--sos-forest); }
.sos-related { background: #fff; }

@media (max-width: 1120px) {
  .sos-product-hero__grid { grid-template-columns: 1fr 1fr; gap: 36px; }
  .sos-product-gallery__stage { min-height: 430px; }
  .sos-configurator__grid { grid-template-columns: minmax(0, 2.5fr) minmax(290px, 1fr); }
  .sos-configurator__epo .tcwidth-33 { flex-basis: 50% !important; width: 50% !important; }
}
@media (max-width: 880px) {
  .sos-product-hero__grid { grid-template-columns: 1fr; }
  .sos-product-gallery__stage { min-height: 380px; }
  .sos-product-gallery__stage > img { height: 420px; }
  .sos-product-intro { max-width: 700px; }
  .sos-product-trust span { padding-inline: 20px; }
  .sos-configurator__grid { grid-template-columns: 1fr; }
  .sos-configurator__sidebar { position: static; }
  .sos-product-info__grid { grid-template-columns: 1fr; gap: 35px; }
  .sos-product-info header { position: static; }
}
@media (max-width: 620px) {
  .sos-product-hero { padding-top: 15px; }
  .sos-product-gallery__stage { min-height: 310px; }
  .sos-product-gallery__stage > img { height: 330px; }
  .sos-product-intro h1 { font-size: 43px; }
  .sos-product-trust .sos-container { grid-template-columns: 1fr; padding-block: 8px; }
  .sos-product-trust span, .sos-product-trust span:first-child, .sos-product-trust span:last-child { padding: 10px 0; border-right: 0; border-bottom: 1px solid var(--sos-line); }
  .sos-product-trust span:last-child { border-bottom: 0; }
  .sos-configurator { padding: 50px 0; }
  .sos-configurator__options { padding: 20px 12px; }
  .sos-configurator__step { grid-template-columns: 45px 1fr; }
  .sos-configurator__step > b { width: 42px; height: 42px; font-size: 17px; }
  .sos-configurator__step h3 { font-size: 20px !important; }
  .sos-configurator__epo .cpf-section, .sos-configurator__epo .tcwidth-33, .sos-configurator__epo .tcwidth-50 { flex: 0 0 100% !important; width: 100% !important; min-width: 0; padding-inline: 4px !important; }
  .sos-configurator__epo .sos-epo-step-heading { min-height: 67px; padding: 24px 0 0 59px !important; font-size: 20px !important; }
  .sos-configurator__epo .sos-epo-step-heading::before { width: 42px; height: 42px; font-size: 17px; }
  .sos-summary__row { grid-template-columns: 1fr; gap: 2px; }
  .sos-summary__row dd { text-align: left; }
}
