.page-shop-product .content#page-content {
    overflow: clip;
}

.page-shop-product .appfooter {
    margin-top: 88px;
}

.product-page {
    --link-color: var(--black);
    --link-visited-color: var(--black);
    color: var(--black);
}

.product-page__body {
    padding: 0 var(--page-gutter);
    padding-bottom: 120px;
}

.product-page--subpage .product-page__subpage-header {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 50px var(--page-gutter) 0;
}

.product-page__subpage-nav-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 24px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.product-page__subpage-nav-link {
    display: inline-flex;
    align-items: center;
    font-family: var(--font-family-mono);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.44;
    letter-spacing: 0;
    text-transform: uppercase;
    text-decoration: none;
}

.product-page__subpage-nav-item a.product-page__subpage-nav-link,
.product-page__subpage-nav-item a.product-page__subpage-nav-link:visited {
    color: var(--gray);
}

.product-page__subpage-nav-item a.product-page__subpage-nav-link:hover {
    color: var(--black);
}

.product-page__subpage-nav-link--current {
    color: var(--black);
    text-decoration: underline;
    text-decoration-style: solid;
    text-underline-offset: 3px;
    cursor: default;
}

.product-page__body.product-page__body--subpage > .product-page__section:first-child {
    margin-top: 32px;
}

.product-page__subpage-title {
    letter-spacing: 0.05em;
}

.product-page__subpage-content {
    overflow-x: auto;
}

.product-page__subpage-content img,
.product-page__subpage-content svg,
.product-page__subpage-content video,
.product-page__subpage-content iframe {
    max-width: 100%;
    height: auto;
}

.product-page__subpage-content iframe {
    aspect-ratio: 16 / 9;
}

.product-page__hero {
    color: var(--black);
    background: var(--white);
}

.product-page__hero-inner {
    display: flex;
    flex-direction: column;
    gap: 32px;
    padding: 64px var(--page-gutter) 64px;
}

.product-page__hero-header {
    /* Full-bleed to the same width as the header bar so 50% matches the centered logo
       (50vw is wrong when a vertical scrollbar shrinks the layout width). */
    display: grid;
    grid-template-columns: calc(50% - (var(--logo-width) / 2)) minmax(0, 1fr);
    align-items: baseline;
    column-gap: 0;
    row-gap: 16px;
    width: calc(100% + (2 * var(--page-gutter)));
    margin-inline: calc(-1 * var(--page-gutter));
}

.product-page__hero-header-start {
    grid-column: 1;
    justify-self: start;
    min-width: 0;
    max-width: 100%;
    padding-left: var(--page-gutter);
}

.product-page__hero-header-end {
    display: none;
}

.product-page__hero-header .product-page__title {
    grid-column: 2;
    justify-self: start;
    text-align: left;
}

.product-page__hero-grid {
    --product-page-hero-max-width: 1920px;
    display: grid;
    grid-template-columns: minmax(0, 1.85fr) minmax(260px, 0.7fr);
    gap: 64px;
    align-items: start;
    width: min(calc(100% + var(--page-gutter)), var(--product-page-hero-max-width));
    margin-left: max(
        calc(-1 * var(--page-gutter)),
        calc((100% - var(--product-page-hero-max-width)) / 2)
    );
}

.product-page__gallery {
    --product-gallery-aspect: 3 / 2;
    --product-gallery-thumb-rail-width: clamp(272px, 34%, 400px);
    --product-gallery-thumb-gap: 0;
    display: flex;
    justify-content: stretch;
    width: 100%;
    min-width: 0;
}

.product-page__gallery-layout {
    position: relative;
    display: grid;
    grid-template-columns: var(--product-gallery-thumb-rail-width) minmax(0, 1fr);
    gap: 0;
    align-items: start;
    justify-content: stretch;
    width: 100%;
    margin-left: 0;
}

.product-page__gallery-layout:not(:has(.product-page__gallery-thumbs-shell)) {
    grid-template-columns: minmax(0, 1fr);
}

.product-page__gallery-thumbs-shell {
    align-self: start;
    min-height: 0;
    width: 100%;
    overflow: visible;
}

.product-page__gallery-thumbs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    direction: rtl;
    align-items: flex-start;
    gap: var(--product-gallery-thumb-gap);
    width: 100%;
    height: auto;
    max-height: none;
    overflow: visible;
}

.product-page__gallery-main {
    margin: 0;
    width: 100%;
}

.product-page__gallery-main.product-gallery,
.product-page__gallery-video.video-container {
    margin: 0;
    max-width: none;
    width: 100%;
    border-radius: 0;
    overflow: visible;
}

.product-page__gallery-stage {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    aspect-ratio: var(--product-gallery-aspect);
    background: var(--gray6);
    overflow: hidden;
    border-radius: 0;
}

.product-page__gallery--expanded .product-page__gallery-thumbs-shell {
    display: none;
}

.product-page__gallery--expanded .product-page__gallery-layout {
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
}

.product-page__gallery--expanded .product-page__gallery-stage {
    aspect-ratio: auto;
    min-height: min(70vh, 640px);
}

.product-page__gallery--expanded .product-page__gallery-zoom {
    cursor: zoom-out;
    position: relative;
    z-index: 0;
    pointer-events: auto;
}

.product-page__gallery-nav-layer {
    display: none;
    position: absolute;
    inset: 0;
    z-index: 5;
    pointer-events: none;
}

.product-page__gallery-nav-layer[hidden] {
    display: none !important;
}

.product-page__gallery--expanded .product-page__gallery-nav-layer:not([hidden]) {
    display: block;
}

.product-page__gallery-stage button.product-page__gallery-nav-zone {
    display: flex;
    align-items: flex-end;
    position: absolute;
    top: 0;
    bottom: 0;
    width: 25%;
    height: auto;
    min-height: 0;
    padding: 0;
    margin: 0;
    border: none;
    border-radius: 0;
    background: transparent;
    color: var(--black);
    cursor: pointer;
    z-index: 1;
    appearance: none;
    -webkit-appearance: none;
    box-shadow: none;
    overflow: visible;
    font: inherit;
    font-weight: inherit;
    line-height: 1;
    pointer-events: auto;
}

.product-page__gallery-stage button.product-page__gallery-nav-zone:hover,
.product-page__gallery-stage button.product-page__gallery-nav-zone:focus,
.product-page__gallery-stage button.product-page__gallery-nav-zone:active {
    background: transparent;
    color: var(--black);
}

.product-page__gallery-stage button.product-page__gallery-nav-zone::before,
.product-page__gallery-stage button.product-page__gallery-nav-zone::after,
.product-page__gallery-stage button.product-page__gallery-nav-zone:hover::before,
.product-page__gallery-stage button.product-page__gallery-nav-zone:hover::after,
.product-page__gallery-stage button.product-page__gallery-nav-zone:focus::before,
.product-page__gallery-stage button.product-page__gallery-nav-zone:focus::after,
.product-page__gallery-stage button.product-page__gallery-nav-zone:active::before,
.product-page__gallery-stage button.product-page__gallery-nav-zone:active::after {
    content: none;
    display: none;
}

.product-page__gallery-nav-zone--prev {
    left: 0;
    justify-content: flex-start;
}

.product-page__gallery-nav-zone--next {
    right: 0;
    justify-content: flex-end;
}

.product-page__gallery-nav-zone--next .product-page__gallery-nav-icon {
    transform: rotate(180deg);
}

.product-page__gallery-nav-icon {
    position: static;
    display: block;
    flex: 0 0 auto;
    width: 12px;
    height: 12px;
    margin: 0 0 36px;
    pointer-events: none;
    transition: color 0.2s ease;
    color: var(--black);
}

.product-page__gallery-nav-zone--prev .product-page__gallery-nav-icon {
    margin-left: 36px;
}

.product-page__gallery-nav-zone--next .product-page__gallery-nav-icon {
    margin-right: 36px;
}

.product-page__gallery-nav-zone:hover .product-page__gallery-nav-icon,
.product-page__gallery-nav-zone:focus-visible .product-page__gallery-nav-icon {
    color: var(--neon);
}

.product-page__gallery-zoom {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    cursor: zoom-in;
}

.product-page__gallery-zoom img,
.product-page__gallery-stage img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 0;
}

.product-page__gallery-stage #switching-image {
    z-index: 2;
}

.product-page__gallery-stage #product-image.blurred {
    opacity: 0;
}

.product-page__gallery-video {
    width: 100%;
    aspect-ratio: var(--product-gallery-aspect);
    background: var(--gray6);
    border-radius: 0;
    overflow: hidden;
}

.product-page__gallery-video iframe {
    width: 100%;
    height: 100%;
}

.product-page__gallery-thumbs.more-images .product-page__gallery-thumb.image img,
.product-page__gallery-thumbs.more-images .image img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    padding: 0;
    border-radius: 0;
    opacity: 1;
    background: var(--gray6);
    object-fit: cover;
}

.product-page__gallery-thumbs.more-images .product-page__gallery-thumb.image.selected img,
.product-page__gallery-thumbs.more-images .image.selected img {
    background: var(--gray6);
    opacity: 1;
}

.product-page__gallery-thumb {
    position: relative;
    direction: ltr;
    flex: 0 0 auto;
    width: 100%;
    aspect-ratio: var(--product-gallery-aspect);
    scroll-snap-align: start;
    border: none;
    border-radius: 0;
    background: var(--gray6);
    overflow: hidden;
    box-sizing: border-box;
}

.product-page__gallery-thumb.selected {
    box-shadow: none;
}

.product-page__gallery-thumb.selected::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 2;
    height: 4px;
    background: var(--purple);
    pointer-events: none;
}

.product-page__gallery-thumb-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding: 0;
    margin: 0;
    border: none;
    border-radius: 0;
    background: none;
    color: inherit;
    font: inherit;
    font-weight: inherit;
    overflow: visible;
    position: static;
    z-index: auto;
    appearance: none;
    cursor: pointer;
    text-decoration: none;
}

.product-page__gallery-thumb-button:hover,
.product-page__gallery-thumb-button:active,
.product-page__gallery-thumb-button:focus {
    background: none;
    color: inherit;
}

.product-page__gallery-thumb-button:hover::after,
.product-page__gallery-thumb-button:active::after,
.product-page__gallery-thumb-button:focus::after {
    content: none;
}

.product-page__gallery-thumb-media {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--gray6);
    overflow: hidden;
}

.product-page__gallery-thumb-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0;
}

.product-page__hero-info {
    display: flex;
    flex-direction: column;
    gap: 32px;
    min-width: 0;
}

.product-page__hero-info .product-page__summary {
    margin: 0;
}

.product-page__back-link,
.product-page__back-link:visited {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--black);
    font-family: var(--font-family-mono);
    font-size: 10px;
    font-weight: 500;
    line-height: 1.44;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    text-decoration: none;
}

.product-page__back-link:hover,
.product-page__back-link:focus-visible {
    color: var(--red);
}

.product-page__back-link-arrow {
    flex: 0 0 auto;
    text-decoration: none;
}

.product-page__back-link-label {
    text-decoration: underline;
    text-decoration-style: solid;
    text-decoration-offset: 25%;
    text-decoration-thickness: 8%;
    text-decoration-skip-ink: auto;
}

.product-page__title {
    margin: 0;
    font-family: var(--font-family-display);
    font-size: 28px;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: 0.05em;
    color: var(--black);
    text-transform: uppercase;
}

.product-page__summary {
    font-family: var(--font-family-mono);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.44;
    letter-spacing: 0;
    color: var(--gray);
}

.product-page__cart {
    padding: 0;
    border: none;
    background: transparent;
}

.product-page__hero-aux {
    margin-top: -8px;
    font-size: 12px;
    line-height: 1.5;
    color: var(--gray);
}

.product-page__section {
    padding: 0;
}

.product-page__body > .product-page__section:first-child {
    margin-top: 80px;
}

.product-page__section + .product-page__section,
.product-page__plugin-blocks + .product-page__section {
    margin-top: 120px;
}

.product-page__section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.product-page__section-heading--static {
    justify-content: flex-start;
    margin-bottom: 32px;
}

.product-page__section-title,
.product-page__support-title {
    margin: 0;
    font-family: var(--font-family-mono);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.44;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.product-page__info-title {
    letter-spacing: 0;
}

.product-page__section-controls {
    display: inline-flex;
    align-items: center;
    gap: 16px;
}

.product-page__section-control {
    width: 20px;
    height: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: none;
    background: none;
    color: var(--black);
    cursor: pointer;
    transition: color 0.2s ease;
}

.product-page__section-control:hover {
   color: var(--gray);
}

.product-page__section-control::after,
.product-page__section-control:hover::after {
    content: none;
}

.product-page__recommendations {
    --media-rail-card-width: 306px;
    --product-recommendation-card-height: 415px;
    --media-rail-gap: 16px;
}

.product-page__photos {
    --media-rail-gap: 8px;
    --media-rail-card-height: 316px;
    --media-rail-card-ratio: 420 / 316;
    --media-rail-image-fit: cover;
}

.product-page__recommendation-link,
.product-page__recommendation-link:visited {
    color: var(--black);
}

.product-page__photo-button {
    cursor: zoom-in;
}

.product-page__photo-rail.more-images .product-page__photo-card.image {
    display: block;
    max-width: none;
}

.product-page__photo-rail.more-images .product-page__photo-card.image img {
    max-width: none;
    height: 100%;
    padding: 0;
    border-radius: 0;
    opacity: 1;
}

.product-page__photo-label {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100%;
    padding: 24px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.product-page__highlights-content,
.product-page__subpage-content {
    border-top: 1px solid rgba(22, 22, 35, 0.14);
}

.product-page__additional-info-panel.product-page__subpage-content,
.product-page__additional-info-panel.product-page__subpage-content.product-page__additional-info-panel--active {
    border-top: none;
}

.product-page__subpage-content {
    font-family: var(--font-family-mono);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.55;
    letter-spacing: 0;
    color: var(--gray);
}

.product-page__subpage-content p {
    margin: 0 0 16px;
}

.product-page__subpage-content strong,
.product-page__subpage-content b {
    font-weight: 800;
    color: var(--black);
}

.product-page__subpage-content > :first-child {
    margin-top: 0;
}

.product-page__subpage-content > :last-child {
    margin-bottom: 0;
}

.product-page__highlights-content table,
.product-page__subpage-content table {
    width: 100%;
    border-collapse: collapse;
}

.product-page__highlights-content :is(th, td),
.product-page__subpage-content :is(th, td) {
    padding: 12px 0;
    border-bottom: 1px solid rgba(22, 22, 35, 0.14);
    vertical-align: top;
    font-size: 12px;
    line-height: 1.55;
}

.product-page__highlights-content th,
.product-page__subpage-content th {
    text-align: left;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.product-page__highlights-content td:first-child,
.product-page__subpage-content td:first-child {
    width: 64px;
   color: var(--gray);
}

.product-page__highlights-content td:nth-child(2),
.product-page__subpage-content td:nth-child(2) {
    width: 180px;
    font-weight: 800;
    text-transform: uppercase;
}

.product-page__plugin-blocks {
    display: flex;
    flex-direction: column;
    gap: 24px;
    margin-top: 120px;
}

.product-page__plugin-block > :first-child {
    margin-top: 0;
}

.product-page__info-grid {
    display: grid;
    grid-template-columns: minmax(280px, 0.9fr) minmax(320px, 1.1fr);
    gap: 48px;
    align-items: start;
}

/* Both columns present: pin the DESCRIPTION column start to logo-left.
   Full-bleed so 50% matches the header; column-gap 0 so DESCRIPTION sits on the line. */
.product-page__info-grid:has(.product-page__specs-panel):has(.product-page__description) {
    grid-template-columns: calc(50% - (var(--logo-width) / 2)) minmax(0, 1fr);
    column-gap: 0;
    row-gap: 48px;
    width: calc(100% + (2 * var(--page-gutter)));
    margin-inline: calc(-1 * var(--page-gutter));
}

.product-page__info-grid:has(.product-page__specs-panel):has(.product-page__description)
    .product-page__info-column:has(.product-page__specs-panel) {
    padding-left: var(--page-gutter);
    padding-right: 48px;
}

/* DESCRIPTION only (no specs): still start on the logo line */
.product-page__info-grid:not(:has(.product-page__specs-panel)) {
    width: calc(100% + (2 * var(--page-gutter)));
    margin-inline: calc(-1 * var(--page-gutter));
}

.product-page__info-grid:not(:has(.product-page__specs-panel))
    .product-page__info-column:has(.product-page__description) {
    margin-left: calc(50% - (var(--logo-width) / 2));
}

.product-page__info-column:has(.product-page__description) {
    padding-right: var(--page-gutter);
}

.product-page__spec-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.product-page__spec-row {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 16px;
    padding: 0;
    border: 0;
    font-family: var(--font-family-mono);
    font-size: 12px;
    line-height: 1.44;
}

.product-page__spec-name {
    font-weight: 800;
    letter-spacing: 0;
    color: var(--black);
}

.product-page__spec-value {
    min-width: 0;
    font-weight: 500;
    letter-spacing: 0;
    color: var(--gray);
}

.product-page__description {
    font-family: var(--font-family-mono);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.44;
    letter-spacing: 0;
   color: var(--gray);
}

.product-page__description p {
    margin: 0 0 16px;
}

.product-page__description strong,
.product-page__description b {
    font-weight: 800;
    color: var(--black);
}

.product-page__description > :first-child {
    margin-top: 0;
}

.product-page__description > :last-child {
    margin-bottom: 0;
}

.product-page__additional-info-layout {
    display: grid;
    grid-template-columns: calc(50% - (var(--logo-width) / 2)) minmax(0, 1fr);
    gap: 0;
    align-items: start;
    width: calc(100% + (2 * var(--page-gutter)));
    margin-inline: calc(-1 * var(--page-gutter));
}

.product-page__additional-info-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    list-style: none;
    margin: 0;
    padding: 0 48px 0 var(--page-gutter);
}

.product-page__additional-info-item button.product-page__additional-info-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0;
    margin: 0;
    border: none;
    border-radius: 0;
    background: transparent;
    font-family: var(--font-family-mono);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.44;
    letter-spacing: 0;
    text-transform: uppercase;
    text-decoration: underline;
    text-decoration-style: solid;
    text-underline-offset: 3px;
    color: var(--black);
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    box-shadow: none;
    overflow: visible;
    position: static;
    z-index: auto;
    height: auto;
}

.product-page__additional-info-item button.product-page__additional-info-link:hover,
.product-page__additional-info-item button.product-page__additional-info-link:focus,
.product-page__additional-info-item button.product-page__additional-info-link:active {
    background: transparent;
    color: var(--red);
}

.product-page__additional-info-item button.product-page__additional-info-link::before,
.product-page__additional-info-item button.product-page__additional-info-link::after,
.product-page__additional-info-item button.product-page__additional-info-link:hover::before,
.product-page__additional-info-item button.product-page__additional-info-link:hover::after,
.product-page__additional-info-item button.product-page__additional-info-link:focus::before,
.product-page__additional-info-item button.product-page__additional-info-link:focus::after,
.product-page__additional-info-item button.product-page__additional-info-link:active::before,
.product-page__additional-info-item button.product-page__additional-info-link:active::after {
    content: none;
    display: none;
}

.product-page__additional-info-item button.product-page__additional-info-link.product-page__additional-info-link--active,
.product-page__additional-info-item button.product-page__additional-info-link.product-page__additional-info-link--current {
    color: var(--red);
    text-decoration: underline;
    text-decoration-style: solid;
    text-underline-offset: 3px;
}

.product-page__additional-info-item button.product-page__additional-info-link.product-page__additional-info-link--active:hover,
.product-page__additional-info-item button.product-page__additional-info-link.product-page__additional-info-link--active:focus {
    color: var(--red);
}

.product-page__additional-info-panels {
    min-width: 0;
    padding-right: var(--page-gutter);
}

.product-page__additional-info-panel {
    font-family: var(--font-family-mono);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.55;
    letter-spacing: 0;
    color: var(--gray);
}

.product-page__additional-info-panel-body {
    min-width: 0;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    overflow-wrap: anywhere;
}

.product-page__additional-info-panel[hidden] {
    display: none;
}

.product-page__support {
    margin-inline: calc(-1 * var(--page-gutter));
    padding: 32px var(--page-gutter);
    background: var(--gray-super-light);
}

.product-page__support-grid {
    display: grid;
    grid-template-columns: calc(50% - (var(--logo-width) / 2)) minmax(270px, 1fr) minmax(0, 270px);
    align-items: flex-start;
    gap: 0;
}

.product-page__support-card {
    display: flex;
    flex-direction: column;
    flex: 0 1 270px;
    gap: 16px;
    width: 270px;
}

.product-page__support-card:nth-child(2) {
    justify-self: start;
}

.product-page__support-card:nth-child(3) {
    justify-self: end;
}

.product-page__support-text {
    margin: 0;
    max-width: 270px;
    font-family: var(--font-family-mono);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.44;
    letter-spacing: 0;
    color: var(--gray);
}

.product-page__support-text a,
.product-page__support-text a:visited {
    color: var(--black);
    text-decoration: underline;
    text-decoration-style: solid;
    text-decoration-skip-ink: auto;
}

.product-page__support-title {
    font-family: var(--font-family-mono);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.44;
    letter-spacing: 0;
    text-transform: uppercase;
}

.product-page__recommendation-card {
    position: relative;
    min-height: var(--product-recommendation-card-height);
    color: var(--black);
}

.product-page__recommendation-media {
    position: relative;
    display: flex;
    width: 100%;
    overflow: hidden;
    flex: 1 1 auto;
    min-height: 0;
    background: var(--white);
}

.product-page__recommendation-media img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    margin: auto;
}

.product-page__recommendation-link {
    min-height: var(--product-recommendation-card-height);
    display: flex;
    flex-direction: column;
    color: var(--black);
}

.product-page__recommendation-name,
.product-page__recommendation-price {
    font-family: var(--font-family-mono);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.44;
    letter-spacing: 0.05em;
    color: var(--black);
}

.product-page__recommendation-name {
    margin: 2px 0 0 8px;
}

.product-page__recommendation-price {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-left: 8px;
    margin-top: 8px;
}

.product-page__recommendation-stock {
    color: var(--gray);
}

.product-page__recommendation-stock::before {
    content: "[";
}

.product-page__recommendation-stock::after {
    content: "]";
}

.product-page__recommendation-plus {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 1;
    width: 14px;
    height: 14px;
    pointer-events: none;
}

.product-page__recommendation-plus::before,
.product-page__recommendation-plus::after {
    content: "";
    position: absolute;
    background: var(--black);
}

.product-page__recommendation-plus::before {
    top: 6px;
    left: 0;
    width: 14px;
    height: 1px;
}

.product-page__recommendation-plus::after {
    top: 0;
    left: 6px;
    width: 1px;
    height: 14px;
}

.product-buybox {
    --product-buybox-control-width: 176px;
    display: flex;
    flex-direction: column;
    gap: 28px;
    color: var(--black);
    font-family: var(--font-family-mono);
}

.product-buybox :is(button, input, select) {
    font-family: inherit;
}

.product-buybox__eyebrow {
    margin: 0;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.44;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--black);
}

.product-buybox .add2cart.js-top {
    order: 30;
    margin-bottom: 0;
    align-items: flex-start;
    gap: 8px;
    margin-top: 24px;
    margin-bottom: 24px;
}

.product-buybox .add2cart.js-top .badge,
.product-buybox .add2cart.js-top .badge.low-price {
    display: none;
}

.product-buybox__price-block {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}

.product-buybox__price-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 8px;
}

.product-buybox__price-caption {
    color: var(--gray);
    font-size: 10px;
    font-weight: 400;
    line-height: 1.44;
}

.product-buybox .s-price,
.product-buybox .compare-at-price {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    color: var(--purple);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.44;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.product-buybox .s-price .price,
.product-buybox .s-price .currency {
    font-size: 12px;
    font-weight: 800;
    line-height: 1.44;
    letter-spacing: 0.05em;
    color: var(--purple);
}

.product-buybox .compare-at-price {
    color: var(--gray);
    text-decoration: line-through;
}

.product-buybox .s-base-price,
.product-buybox .s-ratio-wrapper {
    font-size: 11px;
    line-height: 1.5;
    color: var(--gray);
}

.product-buybox .stocks,
.product-buybox .services,
.product-buybox .s-description {
    font-size: 12px;
    line-height: 1.55;
    color: var(--gray);
}

.product-buybox .options {
    display: flex;
    flex-direction: column;
    gap: 25px;
    order: 10;
}

.product-buybox .options .wa-flex,
.product-buybox .options .inline-select {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, var(--product-buybox-control-width));
    align-items: end;
    justify-content: space-between;
    gap: 16px;
    margin: 0;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.44;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--black);
}

.product-buybox .options p,
.product-buybox__option-label {
    margin: 0;
    color: var(--black);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.44;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.product-buybox .options select,
.product-buybox .js-service-selector,
.product-buybox .js-quantity-field {
    display: block;
    width: 100%;
    min-height: 16px;
    border: none;
    border-radius: 0;
    background: transparent;
    background-image: none;
    color: var(--gray);
    box-shadow: none;
    padding: 0 22px 1px 0;
    font-size: 12px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    transform: translateY(1px);
}

.product-buybox .options select {
    text-align-last: left;
}

.product-buybox .options select::-ms-expand,
.product-buybox .js-service-selector::-ms-expand {
    display: none;
}

.product-buybox__select-shell {
    position: relative;
    display: flex;
    align-items: flex-end;
    justify-self: end;
    width: min(var(--product-buybox-control-width), 100%);
    min-width: 0;
    min-height: 20px;
    padding-bottom: 3px;
    border-bottom: 1px solid var(--gray4);
    color: var(--gray);
    transition: border-color 160ms ease, color 160ms ease;
}

.product-buybox__select-shell:has(select:not(:disabled)):hover,
.product-buybox__select-shell:focus-within {
    border-bottom-color: var(--red);
    color: var(--red);
}

.product-buybox__select-shell::after {
    content: "";
    position: absolute;
    right: 2px;
    bottom: 6px;
    width: 8px;
    height: 8px;
    border-right: 1.4px solid currentColor;
    border-bottom: 1.4px solid currentColor;
    background: none;
    transform: rotate(45deg);
    pointer-events: none;
}

.product-buybox__select-shell select {
    margin-left: 0;
}

.product-buybox__select-shell select:not(:disabled) {
    cursor: pointer;
}

.product-buybox__option--color .product-buybox__select-shell select {
    padding-left: 20px;
}

.product-buybox__color-swatch {
    position: absolute;
    left: 0;
    bottom: 4px;
    width: 12px;
    height: 12px;
    border: 1px solid var(--gray4);
    pointer-events: none;
}

.product-buybox .options select option,
.product-buybox .js-service-selector option {
    color: var(--black);
}

.product-buybox .options .inline-select {
    grid-template-columns: 1fr;
    gap: 10px;
}

.product-buybox .options .inline-select p {
    margin-bottom: 0;
}

.product-buybox .inline-select a,
.product-buybox .inline-select a:visited {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 30px;
    padding: 6px 10px;
    border: 1px solid var(--gray4);
    color: var(--gray);
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.product-buybox .inline-select a.selected {
    border-color: var(--black);
    color: var(--black);
}

.product-buybox .skus {
    order: 10;
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.product-buybox .skus label {
    display: grid;
    grid-template-columns: minmax(120px, 1fr) minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 0 0 8px;
    border: none;
    border-bottom: 1px solid var(--gray4);
    background: transparent;
    color: var(--black);
    font-size: 12px;
    line-height: 1.3;
    text-transform: uppercase;
}

.product-buybox .skus input[type="radio"] {
    margin: 0;
}

.product-buybox .skus .hint,
.product-buybox .skus .price {
    color: var(--gray);
}

.product-buybox .purchase {
    order: 40;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.product-buybox .purchase .add2cart {
    display: grid;
    grid-template-columns: minmax(110px, 1fr);
    gap: 10px;
    margin-bottom: 0;
}

.product-buybox .qty {
    display: none;
    margin: 0;
}

.product-buybox .purchase .wa-flex.justify-content-between {
    gap: 8px;
}

.product-buybox .volume-buttons {
    width: 32px;
}

.product-buybox .increase-volume {
    width: 32px;
    min-height: 40px;
    border: 1px solid var(--gray4);
    background: var(--gray6);
    color: var(--black);
}

.product-buybox .add2cart [type="submit"] {
    width: 100%;
    min-height: 35px;
    padding: 9px 18px;
    border: none;
    border-radius: 5px;
    background: var(--purple);
    color: var(--white);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.44;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.product-buybox .add2cart [type="submit"]:hover {
    background: var(--purple);
    color: var(--neon);
}

.product-buybox .add2cart [type="submit"]:disabled,
.product-buybox .add2cart [type="submit"]:disabled:hover {
    background: var(--gray5);
    color: var(--gray);
    cursor: not-allowed;
    opacity: 1;
}

.product-buybox .add2cart [type="submit"]::before,
.product-buybox .add2cart [type="submit"]::after,
.product-buybox .add2cart [type="submit"]:hover::before,
.product-buybox .add2cart [type="submit"]:hover::after {
    content: none;
    display: none;
}

.product-buybox .added2cart a,
.product-buybox .added2cart a:visited {
    color: var(--neon);
}

.product-buybox .services {
    order: 20;
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin: 0;
    padding-top: 0;
    border-top: none;
}

.product-buybox :is(.product-buybox__options, .skus) + .product-buybox__services {
    margin-top: 48px;
}

.product-buybox__service-item {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.product-buybox__service-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, var(--product-buybox-control-width));
    align-items: end;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
}

.product-buybox__service-row .product-buybox__select-shell--service {
    width: min(var(--product-buybox-control-width), 100%);
    align-self: end;
    justify-self: end;
}

.product-buybox .js-service-variant-value {
    display: none;
}

.product-buybox .services label,
.product-buybox__service-toggle {
    display: none;
}

.product-buybox .stocks {
    order: 50;
    margin: 0;
    color: var(--black);
}

.product-buybox__stocks {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding-top: 18px;
    border-top: 1px solid var(--gray4);
}

.product-buybox__stock-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.product-buybox__stock-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, var(--product-buybox-control-width));
    gap: 16px;
    align-items: baseline;
}

.product-buybox__stock-row--single {
    grid-template-columns: minmax(0, 1fr) minmax(0, var(--product-buybox-control-width));
}

.product-buybox__stock-status {
    display: inline-flex;
    align-items: center;
    justify-self: stretch;
    justify-content: flex-start;
    gap: 0;
    min-width: 0;
}

.product-buybox__stock-name {
    color: rgba(86, 89, 98, 0.72);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.product-buybox__stock-value {
    text-align: left;
}

.product-page__hero-info .product-buybox .compare-at-price,
.product-page__hero-info .product-buybox .s-base-price,
.product-page__hero-info .product-buybox .s-ratio-wrapper {
    display: none;
}

.product-buybox .stocks :is(.text-green, .stock-low, .text-orange, .stock-none) {
    color: var(--gray);
}

.product-buybox .badge,
.product-buybox .badge.low-price {
    border-radius: 0;
    background: var(--gray6);
    color: var(--black);
}

/* Product layout fit, independent of global device tiers. */
@media (max-width: 1100px) {
    /* Match specs/header narrow layout: stack gallery above buy box and
       switch gallery to full-width mobile chrome (thumbs under main image). */
    .product-page__hero-grid {
        grid-template-columns: 1fr;
        gap: 40px;
        width: auto;
        margin-left: 0;
    }

    .product-page__gallery {
        justify-content: stretch;
        --product-gallery-thumb-min-width: 100px;
    }

    .product-page__gallery-layout {
        grid-template-columns: 1fr;
        width: 100%;
        margin-left: 0;
        justify-content: stretch;
    }

    .product-page__gallery-thumbs-shell {
        order: 2;
        align-self: start;
        max-height: none;
        overflow: visible;
    }

    .product-page__gallery-main {
        order: 1;
    }

    .product-page__gallery-thumbs {
        position: static;
        inset: auto;
        display: grid;
        grid-template-columns: repeat(
            auto-fit,
            minmax(min(var(--product-gallery-thumb-min-width), 100%), 1fr)
        );
        direction: ltr;
        height: auto;
        max-height: none;
        overflow: visible;
    }

    .product-page__gallery-thumb {
        width: 100%;
    }

    .product-page__additional-info-layout {
        grid-template-columns: 1fr;
        gap: 32px;
        width: auto;
        margin-inline: 0;
    }

    .product-page__additional-info-list {
        padding: 0;
    }

    .product-page__additional-info-panels {
        padding-right: 0;
    }

    /* Stack specs + description full width — logo-left inset would leave
       DESCRIPTION only half the screen and unreadable on narrow viewports. */
    .product-page__info-grid,
    .product-page__info-grid:has(.product-page__specs-panel):has(.product-page__description),
    .product-page__info-grid:not(:has(.product-page__specs-panel)) {
        grid-template-columns: 1fr;
        column-gap: unset;
        row-gap: unset;
        gap: 48px;
        width: auto;
        margin-inline: 0;
    }

    .product-page__info-grid:has(.product-page__specs-panel):has(.product-page__description)
        .product-page__info-column:has(.product-page__specs-panel) {
        padding-left: 0;
        padding-right: 0;
    }

    .product-page__info-column:has(.product-page__description),
    .product-page__info-grid:not(:has(.product-page__specs-panel))
        .product-page__info-column:has(.product-page__description) {
        margin-left: 0;
        padding-right: 0;
    }

    .product-page__support-grid {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        gap: 32px;
    }
}

@media (max-width: 767px) {
    .page-shop-product .appfooter {
        margin-top: 0;
    }

    .product-page__body {
        padding: 0 var(--page-gutter);
        padding-bottom: 0;
    }

    .product-page__body > .product-page__section:first-child {
        margin-top: 64px;
    }

    .product-page__section + .product-page__section,
    .product-page__plugin-blocks + .product-page__section,
    .product-page__plugin-blocks {
        margin-top: 64px;
    }

    .product-page__section-heading--static {
        margin-bottom: 32px;
    }

    .product-page__hero-inner {
        gap: 24px;
        padding: 32px var(--page-gutter) 0;
    }

    .product-page__hero-intro {
        gap: 20px;
    }

    .product-page__back-link,
    .product-page__back-link:visited {
        margin: 0;
    }

    .product-page__hero-header {
        grid-template-columns: calc(50% - (var(--logo-width) / 2)) minmax(0, 1fr);
        column-gap: 0;
        row-gap: 16px;
        width: calc(100% + (2 * var(--page-gutter)));
        margin-inline: calc(-1 * var(--page-gutter));
    }

    .product-page__hero-header-start,
    .product-page__hero-header-end {
        display: none;
    }

    .product-page__hero-header .product-page__title {
        grid-column: 2;
        justify-self: start;
        text-align: left;
        font-size: 22px;
    }

    .product-page__hero-header-start:has(.product-page__back-link) {
        display: block;
        grid-column: 1;
        padding-left: var(--page-gutter);
    }

    .product-page__hero-header:has(.product-page__back-link) {
        grid-template-columns: calc(50% - (var(--logo-width) / 2)) minmax(0, 1fr);
    }

    .product-page__hero-header:has(.product-page__back-link) .product-page__title {
        grid-column: 2;
        justify-self: start;
        text-align: left;
    }

    .product-page__additional-info-layout {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .product-page__gallery-thumbs-control {
        width: 14px;
        height: 14px;
    }

    .product-buybox .options .wa-flex {
        grid-template-columns: minmax(0, 1fr) minmax(0, var(--product-buybox-control-width));
    }

    .product-buybox {
        --product-buybox-control-width: 190px;
    }

    .product-buybox__select-shell {
        width: min(var(--product-buybox-control-width), 100%);
    }

    .product-buybox__select-shell--service {
        width: 100%;
        align-self: stretch;
    }

    .product-buybox .add2cart [type="submit"] {
        min-height: 25px;
        padding: 4px 16px;
    }

    .product-page__recommendations {
        --media-rail-card-width: 250px;
        --media-rail-gap: 0;
        --product-recommendation-card-height: 385px;
    }

    .product-page__recommendations-shell {
        margin-inline: calc(-1 * var(--page-gutter));
    }

    .product-page__highlights-content,
    .product-page__subpage-content {
        overflow: visible;
        border-top-color: var(--gray4);
    }

    .product-page__highlights-content table,
    .product-page__subpage-content:not(.product-page__additional-info-panel) table,
    .product-page__highlights-content tbody,
    .product-page__subpage-content:not(.product-page__additional-info-panel) tbody,
    .product-page__highlights-content tr,
    .product-page__subpage-content:not(.product-page__additional-info-panel) tr {
        display: block;
        width: 100%;
        min-width: 0;
    }

    .product-page__highlights-content thead,
    .product-page__subpage-content:not(.product-page__additional-info-panel) thead {
        display: none;
    }

    .product-page__highlights-content tr:has(th),
    .product-page__subpage-content:not(.product-page__additional-info-panel) tr:has(th) {
        display: none;
    }

    .product-page__highlights-content tr,
    .product-page__subpage-content:not(.product-page__additional-info-panel) tr {
        padding: 16px 0 20px;
        border-bottom: 1px solid var(--gray4);
    }

    .product-page__highlights-content :is(th, td),
    .product-page__subpage-content:not(.product-page__additional-info-panel) :is(th, td) {
        display: block;
        width: auto;
        padding: 0;
        border: 0;
        font-family: var(--font-family-mono);
        font-size: 12px;
        line-height: 1.44;
    }

    .product-page__highlights-content td:first-child,
    .product-page__subpage-content:not(.product-page__additional-info-panel) td:first-child {
        width: auto;
        margin-bottom: 16px;
        color: var(--gray);
    }

    .product-page__highlights-content td:nth-child(2),
    .product-page__subpage-content:not(.product-page__additional-info-panel) td:nth-child(2) {
        width: auto;
        margin-bottom: 16px;
        color: var(--black);
        font-size: 24px;
        font-weight: 500;
        line-height: 1;
        letter-spacing: 0.05em;
    }

    .product-page__highlights-content td:nth-child(3),
    .product-page__subpage-content:not(.product-page__additional-info-panel) td:nth-child(3) {
        color: var(--black);
        font-weight: 500;
    }

    .product-page__additional-info-panel-body table {
        width: max-content;
        min-width: 100%;
    }

    .product-page__spec-row {
        grid-template-columns: 1fr;
        gap: 2px;
    }

    .product-page__section-heading--specs {
        margin-bottom: 24px;
    }

    .product-page__support {
        margin-inline: calc(-1 * var(--page-gutter));
        padding: 64px var(--page-gutter);
    }

    .product-page__support-grid {
        flex-direction: column;
        gap: 0;
    }

    .product-page__support-card {
        flex: 0 1 auto;
        width: 100%;
        max-width: none;
    }

    .product-page__support-card + .product-page__support-card {
        margin-top: 16px;
        padding-top: 16px;
        border-top: 1px solid var(--gray4);
    }

    .product-page__support-text {
        max-width: none;
    }

    .product-page__recommendations-rail {
        border-top: 1px solid var(--black);
        border-left: 1px solid var(--black);
        border-bottom: 0;
    }

    .product-page__recommendation-card {
        box-sizing: border-box;
        height: var(--product-recommendation-card-height);
        min-height: var(--product-recommendation-card-height);
        border-right: 1px solid var(--black);
        border-bottom: 1px solid var(--black);
        background: var(--white);
    }

    .product-page__recommendation-link {
        box-sizing: border-box;
        height: 100%;
        min-height: 0;
        padding-bottom: 32px;
        aspect-ratio: auto;
    }

    .product-page__recommendation-media {
        flex: 0 0 280px;
        height: 280px;
        margin-top: 25px;
        margin-bottom: 4px;
        align-items: flex-end;
        justify-content: center;
        background: var(--white);
    }

    .product-page__recommendation-media img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

    .product-page__recommendation-name,
    .product-page__recommendation-price {
        justify-content: center;
        margin: 0;
        padding: 0 8px;
        text-align: center;
    }

    .product-page__recommendation-price {
        margin-top: 4px;
    }

    .product-page__recommendation-plus {
        top: 8px;
        right: 8px;
        width: 13px;
        height: 13px;
    }

    .product-page__recommendation-plus::before {
        top: 6px;
        width: 13px;
    }

    .product-page__recommendation-plus::after {
        left: 6px;
        height: 13px;
    }
}
