/* Standalone product styles: no generated utility build is required. */
body.single-product #page-wrapper { overflow-x: clip; overflow-y: visible; }
.thp-product { --p-blue: #0000aa; --p-ink: #232342; --p-muted: #626278; --p-line: #dddde6; --p-cream: #faf8f3; color: var(--p-ink); background: var(--p-cream); font-family: 'Source Sans Pro', sans-serif; padding-bottom: 1px; }
.thp-product [hidden] { display: none !important; }
.thp-product *, .thp-product *::before, .thp-product *::after { box-sizing: border-box; }
.thp-product a { color: inherit; }
.thp-product a, .thp-product button, .thp-product summary { -webkit-tap-highlight-color: transparent; }
.thp-product :is(a, button, input, summary, [tabindex]):focus-visible { outline: 3px solid #00a5a1; outline-offset: 4px; }
.thp-product button, .thp-product summary { cursor: pointer; }
.thp-product button:disabled, .thp-product [aria-disabled="true"] { opacity: .55; cursor: wait; }
.thp-product h1, .thp-product h2, .thp-product h3, .thp-product p { margin: 0; }
.thp-product h1, .thp-product h2, .thp-product h3 { font-family: 'Unna', Georgia, serif; font-weight: 400; letter-spacing: -.025em; }
.thp-product .thp-product__shell { width: min(1280px, calc(100% - 96px)); margin-inline: auto; }
.thp-product__breadcrumb { display: flex; flex-wrap: wrap; gap: 12px; padding: 25px 0; font-size: 13px; color: var(--p-muted); }
.thp-product__breadcrumb a { text-decoration: underline; text-underline-offset: 3px; }
.thp-product__hero { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 76px); padding: 4px 0 76px; align-items: start; }
.thp-product__gallery, .thp-product__summary { min-width: 0; }
.thp-product__gallery { align-self: stretch; }
.thp-product__gallery-inner { position: sticky; top: 116px; }
.thp-product__image-stage { position: relative; background: #f0ede7; overflow: hidden; }
.thp-product__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; }
.thp-product__track::-webkit-scrollbar { display: none; }
.thp-product__slide { flex: 0 0 100%; min-width: 100%; aspect-ratio: 1 / 1.04; scroll-snap-align: start; scroll-snap-stop: always; }
.thp-product__slide img { display: block; width: 100%; height: 100%; object-fit: cover; }
.thp-product__gallery-controls { position: absolute; bottom: 16px; right: 16px; display: flex; align-items: center; gap: 4px; color: var(--p-blue); background: #fff; }
.thp-product__gallery-controls button { width: 44px; height: 44px; font-size: 23px; transition: background .2s; }
.thp-product__gallery-controls button:hover { background: #ededff; }
.thp-product__gallery-controls span { min-width: 38px; text-align: center; font-size: 12px; }
.thp-product__thumbnails { display: flex; gap: 10px; overflow-x: auto; padding: 12px 3px 3px; }
.thp-product__thumbnails button { flex: 0 0 68px; width: 68px; height: 68px; border: 1px solid transparent; padding: 3px; opacity: .7; }
.thp-product__thumbnails button[aria-pressed="true"] { border-color: var(--p-blue); opacity: 1; }
.thp-product__thumbnails img { width: 100%; height: 100%; object-fit: cover; }
.thp-product .thp-product__eyebrow { font-size: 10px; font-weight: 700; line-height: 1.4; letter-spacing: .16em; color: var(--p-blue); margin-bottom: 14px; }
.thp-product__heading { padding-top: 9px; }
.thp-product__heading h1 { color: var(--p-blue); font-size: clamp(38px, 4vw, 58px); line-height: 1.02; margin-bottom: 18px; overflow-wrap: anywhere; }
.thp-product__intro { font-size: 16px; line-height: 1.65; color: #55556b; }
.thp-product__intro p + p { margin-top: 10px; }
.thp-product__intro a { text-decoration: underline; }
.thp-product__buy { padding-top: 23px; scroll-margin-top: 115px; }
.thp-product__price-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 21px; }
.thp-product__price { color: var(--p-blue); font-size: 27px; font-weight: 600; }
.thp-product__price del { color: var(--p-muted); font-size: 19px; font-weight: 400; margin-right: 4px; }
.thp-product ins { text-decoration: none; }
.thp-product__unit { font-size: 13px; color: var(--p-muted); font-weight: 400; }
.thp-product__stock { flex-shrink: 0; display: flex; align-items: center; gap: 7px; font-size: 12px; color: #276044; }
.thp-product__stock::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.thp-product__stock.is-unavailable { color: #8b453f; }
.thp-product .thp-product__delivery { font-size: 14px; line-height: 1.5; color: var(--p-muted); margin: -8px 0 20px; }
.thp-product__quantity-row { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.thp-product__quantity-row > label { font-size: 13px; }
.thp-product__quantity { display: flex; align-items: center; border: 1px solid var(--p-line); background: white; height: 48px; }
.thp-product__quantity button { width: 44px; height: 46px; font-size: 20px; }
.thp-product__quantity input.qty { width: 44px; min-width: 0; height: 46px; padding: 0; text-align: center; border: 0; background: transparent; font: inherit; appearance: textfield; -moz-appearance: textfield; }
.thp-product__quantity input::-webkit-inner-spin-button, .thp-product__quantity input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.thp-product__quantity:has(input[type="hidden"]) { border: 0; }
.thp-product__subtotal { margin-left: auto; text-align: right; font-size: 16px; }
.thp-product__subtotal > span { color: var(--p-muted); font-size: 12px; margin-right: 5px; }
.thp-product .thp-product__cta { width: 100%; min-height: 57px; display: flex; align-items: center; justify-content: center; gap: 24px; background: #ffca05; color: #000078; padding: 15px 22px; border: 1px solid transparent; font: 600 16px/1.4 'Source Sans Pro', sans-serif; text-decoration: none; transition: background .2s, transform .2s; }
.thp-product__cta > span:last-child { font-size: 23px; line-height: 1; }
.thp-product .thp-product__cta:hover { background: #ffda45; transform: translateY(-1px); }
.thp-product__cta[aria-busy="true"] { opacity: .7; }
.thp-product__shipping { margin-top: 17px; }
.thp-product__shipping p { font-size: 13px; color: var(--p-blue); }
.thp-product__shipping small { font-size: 10px; color: var(--p-muted); }
.thp-product__reassurance { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 20px; margin-top: 14px; font-size: 11px; color: var(--p-muted); }
.thp-product__reassurance span > span { color: #297053; margin-right: 4px; }
.thp-product__unavailable { line-height: 1.6; font-size: 15px; margin-bottom: 15px !important; }
.thp-product__details { margin-top: 26px; border-top: 1px solid var(--p-line); }
.thp-product__match { margin-top: 24px; }
.thp-product__match:empty { display: none; }
.thp-product__match-card { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 12px 16px; align-items: center; padding: 18px; border: 1px solid var(--p-line); background: #fff; }
.thp-product__match-label { grid-column: 1 / -1; font-size: 14px; font-weight: 600; color: var(--p-blue); }
.thp-product__match-image img { width: 64px; height: 72px; object-fit: cover; }
.thp-product__match-info { min-width: 0; }
.thp-product__match-card h3 { font-size: 23px; line-height: 1.15; margin-bottom: 6px; }
.thp-product__match-add { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; padding: 10px 12px; border: 1px solid var(--p-blue); color: var(--p-blue) !important; font-size: 14px; font-weight: 600; white-space: nowrap; }
.thp-product__match-add:hover { background: #ededff; }
.thp-product__card > .thp-product__match-info { display: flex; flex-direction: column; flex: 1; }
.thp-product__impact-link { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; margin-top: 12px; color: var(--p-blue) !important; font-size: 14px; text-decoration: underline; text-underline-offset: 4px; }
.thp-product__details details { border-bottom: 1px solid var(--p-line); }
.thp-product__details summary { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 18px 0; font-size: 14px; font-weight: 600; list-style: none; }
.thp-product__details summary::-webkit-details-marker { display: none; }
.thp-product__details summary > span { font-size: 22px; color: var(--p-blue); transition: transform .2s; }
.thp-product__details details[open] summary > span { transform: rotate(45deg); }
.thp-product__detail-content { padding-bottom: 23px; color: var(--p-muted); font-size: 15px; line-height: 1.65; overflow-wrap: anywhere; }
.thp-product__detail-content p + p, .thp-product__detail-content table { margin-top: 12px; }
.thp-product__detail-content a { text-decoration: underline; text-underline-offset: 4px; color: var(--p-blue); }
.thp-product__detail-content ul { list-style: disc; padding-left: 20px; }
.thp-product__detail-content th, .thp-product__detail-content td { text-align: left; padding: 5px 15px 5px 0; }
.thp-product__impact { background: var(--p-blue); color: #fff; padding: 68px 0 28px; scroll-margin-top: 110px; }
.thp-product__impact .thp-product__eyebrow { color: #d0d0ff; }
.thp-product__impact-heading { display: grid; grid-template-columns: 1.2fr 1fr; gap: 60px; align-items: start; }
.thp-product__impact h2 { font-size: clamp(34px, 3.8vw, 51px); line-height: 1.05; }
.thp-product__impact h2 em { color: #ffbabb; }
.thp-product__impact-heading > p { font-size: 17px; line-height: 1.65; color: #e4e4ff; max-width: 480px; }
.thp-product__impact-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 48px; gap: 38px; }
.thp-product__impact-grid > div { border-top: 1px solid #ffffff45; padding-top: 21px; }
.thp-product__impact-grid h3 { font-size: 29px; margin-bottom: 12px; }
.thp-product__impact-grid p { font-size: 16px; line-height: 1.6; color: #e4e4ff; max-width: 350px; }
.thp-product__impact-footer { display: flex; justify-content: space-between; gap: 20px; border-top: 1px solid #ffffff45; padding-top: 24px; margin-top: 40px; font-size: 12px; }
.thp-product__impact-footer a { text-decoration: underline; text-underline-offset: 4px; }
.thp-product__recommendations { padding-block: 76px; scroll-margin-top: 110px; }
.thp-product__section-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 30px; }
.thp-product__section-heading h2, .thp-product__faq h2 { color: var(--p-blue); font-size: clamp(32px, 3.5vw, 45px); line-height: 1.1; }
.thp-product__section-heading p { margin-top: 12px; color: var(--p-muted); font-size: 16px; line-height: 1.6; max-width: 630px; }
.thp-product__section-heading > a { display: inline-flex; align-items: center; justify-content: center; gap: 24px; min-height: 48px; padding: 12px 20px; border: 1px solid var(--p-blue); color: var(--p-blue); font-size: 15px; font-weight: 600; text-decoration: none; flex-shrink: 0; }
.thp-product__section-heading > a:hover { background: #ededff; }
.thp-product__recommendations:has(.thp-product__recommendation-grid:empty) { display: none; }
.thp-product__recommendation-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.thp-product__card { display: flex; flex-direction: column; min-width: 0; }
.thp-product__card-image { position: relative; overflow: hidden; aspect-ratio: 1 / 1.1; background: #efede7; }
.thp-product__card-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.thp-product__card-image:hover img { transform: scale(1.035); }
.thp-product__card-image > span { position: absolute; top: 12px; left: 12px; padding: 5px 9px; background: #ffbabb; color: #000078; font-size: 11px; }
.thp-product__card h3 { font-size: 24px; line-height: 1.15; margin: 16px 0 10px; }
.thp-product__card-price { font-size: 15px; margin-top: auto; color: var(--p-blue); }
.thp-product__card-price del { color: var(--p-muted); font-size: 13px; margin-right: 5px; }
.thp-product .thp-product__card-add { display: flex; justify-content: space-between; align-items: center; padding: 11px 0; margin-top: 13px; border-top: 1px solid var(--p-line); border-bottom: 1px solid var(--p-line); min-height: 44px; color: var(--p-blue); font-size: 13px; font-weight: 600; text-decoration: none; }
.thp-product__card-add:hover { border-color: var(--p-blue); }
.thp-product__card-add span { font-size: 21px; }
.thp-product__faq { display: grid; grid-template-columns: 1fr 1.6fr; gap: 70px; padding: 0 0 76px; }
.thp-product__faq .thp-product__details { margin-top: 0; }
.thp-product__sticky { position: fixed; bottom: 0; left: 0; right: 0; z-index: 8900; background: #fff; border-top: 1px solid var(--p-line); padding: 12px 0 calc(12px + env(safe-area-inset-bottom, 0px)); box-shadow: 0 -3px 20px #0000780a; transform: translateY(105%); visibility: hidden; transition: transform .4s cubic-bezier(.2, .8, .2, 1), visibility 0s .4s; }
.thp-product__sticky.is-visible { transform: none; visibility: visible; transition-delay: 0s; }
.thp-product__sticky > div { display: flex; align-items: center; justify-content: space-between; gap: 25px; }
.thp-product__sticky-info { display: flex; gap: 12px; align-items: center; min-width: 0; }
.thp-product__sticky-info img { width: 48px; height: 48px; object-fit: cover; }
.thp-product__sticky-info > div { display: flex; flex-direction: column; min-width: 0; }
.thp-product__sticky-info strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 15px; color: var(--p-blue); }
.thp-product__sticky-info div > span { font-size: 12px; color: var(--p-muted); }
.thp-product__sticky .thp-product__cta { width: auto; min-width: 230px; min-height: 48px; padding-block: 11px; }
body.overflow-hidden .thp-product__sticky { visibility: hidden; }
.thp-product__feedback { position: fixed; z-index: 10050; bottom: 100px; left: 50%; transform: translateX(-50%); width: min(460px, calc(100vw - 32px)); padding: 20px 50px 20px 22px; background: #fff; color: var(--p-blue); border: 1px solid var(--p-blue); box-shadow: 0 8px 40px #00007825; font-size: 14px; }
.thp-product__feedback a { display: inline-block; text-decoration: underline; text-underline-offset: 4px; margin-top: 8px; }
.thp-product__feedback button { position: absolute; right: 4px; top: 3px; width: 44px; height: 44px; font-size: 26px; }
.thp-product__feedback.is-error { color: #8b302b; border-color: #8b302b; }
@media (max-width: 1100px) {
    .thp-product .thp-product__shell { width: calc(100% - 56px); }
    .thp-product__hero { gap: 30px; }
    .thp-product__impact-heading { gap: 40px; }
}
@media (max-width: 899px) {
    .thp-product .thp-product__shell { width: calc(100% - 40px); }
    .thp-product__hero { grid-template-columns: 1fr; gap: 28px; padding-bottom: 40px; }
    .thp-product__gallery-inner { position: static; }
    .thp-product__breadcrumb { font-size: 11px; padding-block: 17px; }
    .thp-product__slide { aspect-ratio: 1.2 / 1; }
    .thp-product__thumbnails { gap: 6px; }
    .thp-product__thumbnails button { flex-basis: 54px; width: 54px; height: 54px; }
    .thp-product__heading { padding-top: 0; }
    .thp-product__heading h1 { font-size: 42px; margin-bottom: 13px; }
    .thp-product__intro { font-size: 15px; }
    .thp-product__impact { padding-top: 42px; }
    .thp-product__impact-heading { grid-template-columns: 1fr; gap: 22px; }
    .thp-product__impact-heading > p { max-width: 100%; font-size: 15px; }
    .thp-product__impact-grid { gap: 22px; margin-top: 32px; }
    .thp-product__impact-grid h3 { font-size: 25px; }
    .thp-product__impact-footer { flex-wrap: wrap; font-size: 11px; }
    .thp-product__recommendations { padding-block: 45px; }
    .thp-product__recommendation-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 18px; }
    .thp-product__section-heading { display: block; }
    .thp-product__section-heading > a { display: inline-block; margin-top: 19px; }
    .thp-product__faq { grid-template-columns: 1fr; gap: 24px; padding-bottom: 45px; }
    .thp-product__sticky { padding-top: 10px; padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px)); }
    .thp-product__sticky > div { gap: 12px; }
    .thp-product__sticky-info img { display: none; }
    .thp-product__sticky-info strong { font-size: 13px; }
    .thp-product__sticky .thp-product__cta { min-width: 158px; flex-shrink: 0; gap: 12px; padding: 10px 14px; font-size: 14px; }
    body:has(.thp-product__sticky) { padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px)); }
}
@media (max-width: 540px) {
    .thp-product__match-card { grid-template-columns: 56px minmax(0, 1fr) auto; gap: 12px; padding: 14px; }
    .thp-product__match-image img { width: 56px; height: 64px; }
    .thp-product__match-card h3 { font-size: 20px; }
    .thp-product__match-add { padding-inline: 8px; font-size: 13px; }
    .thp-product__slide { aspect-ratio: 1.3 / 1; }
    .thp-product__heading h1 { font-size: 36px; }
    .thp-product__impact-grid { grid-template-columns: 1fr; gap: 26px; }
    .thp-product__impact-grid h3 { font-size: 28px; margin-bottom: 7px; }
    .thp-product__impact-grid p { max-width: 100%; }
    .thp-product__card h3 { font-size: 22px; }
}
@media (max-width: 360px) {
    .thp-product .thp-product__shell { width: calc(100% - 28px); }
    .thp-product__quantity-row { gap: 7px; }
    .thp-product__subtotal > span { display: block; }
}
/* Motion: purposeful, short, and always optional (see reduced-motion below). */
.thp-product { interpolate-size: allow-keywords; }
@keyframes thp-toast { from { opacity: 0; transform: translate(-50%, 16px); } }
@keyframes thp-sheen { from { background-position: 200% 0; } to { background-position: -200% 0; } }
.thp-product__impact-grid > div { transition: border-color .3s; }
.thp-product__impact-grid > div:hover { border-color: #ffbabb; }
@media (hover: hover) {
    .thp-product__slide img { transition: transform .8s cubic-bezier(.2, .8, .2, 1); }
    .thp-product__image-stage:hover .thp-product__slide img { transform: scale(1.035); }
}
.thp-product__thumbnails button { transition: opacity .2s, border-color .2s, transform .2s; }
.thp-product__thumbnails button:hover { opacity: 1; transform: translateY(-2px); }
.thp-product__quantity button { transition: background .15s, color .15s; }
.thp-product__quantity button:hover:not(:disabled) { background: #ededff; color: var(--p-blue); }
.thp-product__quantity button:active:not(:disabled) { transform: scale(.88); }
.thp-product .thp-product__cta { position: relative; overflow: hidden; transition: background .2s, transform .2s, box-shadow .2s; }
.thp-product .thp-product__cta:hover { box-shadow: 0 8px 22px #ffca0559; }
.thp-product .thp-product__cta:active { transform: scale(.985); box-shadow: none; }
.thp-product__cta > span:last-child { transition: transform .25s; }
.thp-product__cta:hover > span:last-child { transform: translateX(5px); }
.thp-product__cta[aria-busy="true"] { opacity: 1; background: linear-gradient(100deg, #ffca05 35%, #ffe27a 50%, #ffca05 65%) 0 0 / 200% 100%; animation: thp-sheen 1.1s linear infinite; }
.thp-product .thp-product__cta.is-added { background: #00a49f; color: #fff; }
.thp-product .thp-product__cta.is-added > span:last-child { display: none; }
.thp-product .thp-product__card-add.is-added { color: #00807c; border-color: #00807c; }
.thp-product__shipping.is-complete p { color: #00807c; font-weight: 600; }
.thp-product__reassurance span { transition: color .2s; }
.thp-product__reassurance span:hover { color: var(--p-ink); }
.thp-product__details summary { transition: color .2s; }
.thp-product__details summary:hover { color: var(--p-blue); }
.thp-product__details details::details-content { block-size: 0; overflow: hidden; transition: block-size .35s cubic-bezier(.2, .8, .2, 1), content-visibility .35s allow-discrete; }
.thp-product__details details[open]::details-content { block-size: auto; }
.thp-product__card-image { transition: box-shadow .3s; }
.thp-product__card:hover .thp-product__card-image { box-shadow: 0 12px 28px #23234214; }
.thp-product__card h3 a { text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .3s; }
.thp-product__card:hover h3 a { background-size: 100% 1px; }
.thp-product__card-add span { display: inline-block; transition: transform .3s; }
.thp-product__card-add:hover span { transform: rotate(90deg); }
.thp-product__feedback { animation: thp-toast .4s cubic-bezier(.2, .8, .2, 1); }
@media (prefers-reduced-motion: reduce) {
    .thp-product *, .thp-product *::before, .thp-product *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
