/* Native commerce pages share the approved palette and type, with normal document scrolling. */
body.commerce-page {
  --header-height: 82px;
  --scene-pad: clamp(24px, 4vw, 108px);
  min-width: 0;
  overflow-wrap: anywhere;
}
.commerce-main {
  min-height: 60svh;
  padding: calc(var(--header-height) + clamp(40px, 6vw, 88px)) var(--scene-pad) clamp(64px, 8vw, 120px);
}
.commerce-heading { margin-bottom: clamp(32px, 4vw, 56px); }
.commerce-title { font-size: clamp(38px, 5vw, 80px); line-height: 1.08; letter-spacing: -.05em; }
.commerce-heading .eyebrow { margin-bottom: 20px; }
.commerce-heading .term-description,
.commerce-heading .page-description { max-width: 75ch; font-size: 15px; line-height: 1.8; margin-top: 24px; }
.commerce-content { font-size: 15px; line-height: 1.75; }
.commerce-content > :first-child { margin-top: 0; }
.commerce-content h2 { font-size: clamp(26px, 3vw, 42px); line-height: 1.15; margin: 1.4em 0 .7em; }
.commerce-content h3 { font-size: clamp(20px, 2vw, 28px); font-weight: 500; line-height: 1.3; }
.commerce-content p a,
.commerce-content li a { text-decoration: underline; text-underline-offset: 4px; }
.commerce-content img { height: auto; }
.commerce-content table { max-width: 100%; }
.commerce-content .wp-block-table { overflow-x: auto; }
.commerce-content textarea { font-family: var(--font-sans); }
.commerce-content header { position: static; display: block; width: auto; height: auto; padding: 0; border: 0; }

/* Informational pages use the same palette, type and controls as the storefront. */
.commerce-main.info-main {
  --e2go-info-copy-size: clamp(1rem, calc(.94rem + .16vw), 1.125rem);
  padding-top: calc(var(--header-height) + 20px);
  padding-bottom: clamp(48px, 6vw, 88px);
}
.info-main .commerce-content { font-size: var(--e2go-info-copy-size); line-height: 1.65; }
.info-main .info-hero-copy p { font-size: clamp(1rem, 1.55vw, 1.125rem); }
.info-main .commerce-document { max-width: 1680px; margin-inline: auto; }
.info-main .commerce-heading { margin-bottom: 28px; }
.info-main .commerce-title { font-size: clamp(36px, 4.2vw, 60px); }
.info-back { display: inline-flex; align-items: center; min-height: 44px; margin-bottom: 4px; font-size: 13px; color: var(--muted); }
.info-back:hover { color: var(--ink); }
.info-main--legal .commerce-document { max-width: 900px; }
.info-main--legal .info-page, .info-main--legal .info-legal { max-width: none; }
.info-main--legal .info-legal { overflow-wrap: anywhere; }
.info-main--legal .info-page .info-lead { font-size: max(1.125rem, var(--e2go-info-copy-size)); margin-bottom: 20px; }
.info-page { max-width: 1680px; margin-inline: auto; }
.info-page .info-lead { max-width: 65ch; font-size: clamp(17px, 1.5vw, 21px); line-height: 1.5; margin: 0 0 28px; }
.info-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 24px; margin: 0 0 40px; }
.info-actions .info-action-link { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; text-decoration: underline; text-underline-offset: 5px; }
.info-page h2:first-child { margin-top: 0; }
.info-page p { margin-bottom: 1.2em; }
.info-page ul, .info-page ol { padding-left: 1.4em; margin: 1em 0 1.5em; }
.info-page ul { list-style: disc; }
.info-page ol { list-style: decimal; }
.info-page li { margin-bottom: .45em; }
.info-story { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 4vw, 72px); align-items: center; margin-bottom: clamp(40px, 5vw, 72px); scroll-margin-top: calc(var(--header-height) + var(--e2go-admin-bar-height, 0px) + 24px); }
.info-story-copy { max-width: 70ch; }
.info-story-copy p:last-child { margin-bottom: 0; }
.info-story-image { margin: 0; min-width: 0; }
.info-story-image img { display: block; width: 100%; height: auto; border-radius: 3px; }
.info-story--reverse .info-story-copy { grid-column: 2; grid-row: 1; }
.info-story--reverse .info-story-image { grid-column: 1; grid-row: 1; }
.info-prose, .info-legal { max-width: 85ch; }
.info-legal h2, .info-legal h3 { scroll-margin-top: calc(var(--header-height) + var(--e2go-admin-bar-height, 0px) + 24px); }
.info-contents { display: flex; flex-wrap: wrap; gap: 8px 20px; padding: 12px 0; margin-bottom: 28px; border-block: 1px solid var(--line); }
.info-contents a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: 5px; font-size: 1rem; }
.info-film video { display: block; width: 100%; max-height: 70svh; aspect-ratio: 16 / 9; object-fit: contain; background: var(--ink); border-radius: 3px; }
.info-cta { display: flex; align-items: center; justify-content: space-between; gap: 28px; background: var(--stone); padding: clamp(24px, 3vw, 48px); margin-top: 40px; }
.info-cta h2, .info-cta p { margin: 0 0 16px; }
.info-cta p { margin-bottom: 0; }
.info-cta .pill { flex-shrink: 0; }

.info-cta.info-cta--parallax {
  position: relative;
  isolation: isolate;
  display: grid;
  place-items: center;
  place-content: center;
  min-height: 65svh;
  margin: 0;
  padding: calc(var(--header-height) + 1.5rem) var(--scene-pad) 2.5rem;
  overflow: clip;
  color: var(--paper);
  background: var(--ink);
  text-align: center;
}
.info-cta--parallax .info-cta-backdrop {
  position: absolute;
  z-index: -2;
  inset: -14% 0 auto;
  width: 100%;
  height: 128%;
  object-fit: cover;
  object-position: center 56%;
  transform: translate3d(0, var(--e2go-cta-y, 0px), 0);
  pointer-events: none;
}
.info-cta--parallax::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  content: '';
  background: radial-gradient(ellipse at center, rgba(16, 20, 17, .77), rgba(16, 20, 17, .43));
}
.info-cta--parallax .info-cta-content { max-width: min(52rem, 100%); }
.info-cta--parallax h2 {
  font-size: clamp(3rem, 7.8vw, 7.5rem);
  font-weight: 600;
  letter-spacing: -.065em;
  line-height: .98;
}
.info-cta--parallax p { font-size: var(--e2go-info-copy-size); line-height: 1.65; }
.info-cta--parallax .pill { margin-top: 1.4rem; }
@media (prefers-reduced-motion: reduce) {
  .info-cta--parallax .info-cta-backdrop { transform: none; }
}

.info-contact { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(36px, 6vw, 100px); align-items: start; margin-bottom: 48px; }
.info-contact h2 { margin: 0 0 12px; font-size: clamp(24px, 2.4vw, 34px); line-height: 1.2; }
.info-contact-intro { max-width: 45ch; color: var(--muted); }
.info-contact-options { display: grid; gap: 12px; margin: 20px 0 24px; }
.info-contact-option { display: grid; justify-items: start; }
.info-contact-label { font-size: 1rem; color: var(--muted); }
.info-contact-option a { display: inline-flex; align-items: center; min-height: 44px; font-size: var(--e2go-info-copy-size); text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 5px; }
.info-contact-option a:hover { text-decoration-color: var(--ink); }
.info-contact-phones { display: flex; flex-wrap: wrap; gap: 0 24px; }
.info-contact-showroom { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; padding-top: 20px; border-top: 1px solid var(--line); }
.info-contact-showroom h3 { font-size: 1rem; letter-spacing: 0; margin: 0 0 8px; }
.info-contact-showroom address, .info-contact-showroom p { margin: 0; font-style: normal; }
.info-directions { display: inline-flex; align-items: center; min-height: 44px; font-size: 1rem; text-decoration: underline; text-underline-offset: 5px; }
.info-contact-message { padding-left: clamp(24px, 3vw, 48px); border-left: 1px solid var(--line); }
.e2go-contact-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px 16px; margin: 16px 0; }
.info-page .e2go-contact-field { margin: 0; }
.e2go-contact-field--email, .e2go-contact-field--message { grid-column: 1 / -1; }
.e2go-contact-field label { display: block; font-size: 1rem; margin-bottom: 6px; }
.e2go-contact-field input, .e2go-contact-field textarea { width: 100%; min-width: 0; min-height: 44px; padding: 10px 12px; background: transparent; border: 1px solid #aaa99f; border-radius: 3px; color: var(--ink); font: inherit; font-size: 16px; line-height: 1.4; }
.e2go-contact-field textarea { display: block; resize: vertical; height: 112px; min-height: 112px; }
.e2go-contact-field input:focus-visible, .e2go-contact-field textarea:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
.e2go-contact-status { padding: 16px 20px; border-left: 3px solid var(--orange); background: var(--stone); }
.e2go-contact-form { scroll-margin-top: calc(var(--header-height) + var(--e2go-admin-bar-height, 0px) + 24px); }
.e2go-contact-form > .pill { min-height: 48px; }
.info-map-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-top: 28px; margin-bottom: 16px; border-top: 1px solid var(--line); }
.info-map-heading h2 { margin: 0; font-size: clamp(24px, 2.5vw, 32px); }
.info-map { min-height: 280px; height: clamp(280px, 30vw, 440px); background: var(--stone); }
.info-map iframe { display: block; border: 0; width: 100%; height: 100%; }
@media (max-width: 900px) {
  .info-story, .info-contact { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .info-story--reverse .info-story-copy, .info-story--reverse .info-story-image { grid-column: auto; grid-row: auto; }
  .info-story-copy { max-width: none; }
  .info-cta { align-items: flex-start; flex-direction: column; }
  .info-contact-message { padding: 28px 0 0; border-left: 0; border-top: 1px solid var(--line); }
  .info-contact-options { grid-template-columns: 1fr 1fr; align-items: start; }
  .info-contact-showroom { max-width: 600px; }
}
@media (max-width: 480px) {
  .e2go-contact-fields { grid-template-columns: minmax(0, 1fr); }
  .e2go-contact-field--email, .e2go-contact-field--message { grid-column: auto; }
  .info-contact-options { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .info-contact-showroom { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .info-contact h2 { font-size: 25px; }
  .info-map-heading { align-items: flex-start; flex-direction: column; gap: 0; }
  .info-contact { margin-bottom: 28px; }
  .info-main .commerce-heading { margin-bottom: 24px; }
  .info-actions { gap: 8px 20px; margin-bottom: 28px; }
}
.commerce-post-list { display: grid; gap: 36px; }
.commerce-post { padding: 0 0 32px; border-bottom: 1px solid var(--line); }
.commerce-post h2 { font-size: clamp(26px, 3vw, 42px); margin-bottom: 20px; }
.commerce-post h2 a:hover { text-decoration: underline; text-underline-offset: 5px; }
.commerce-shop-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 18px; margin-bottom: 30px; }
.commerce-shop-toolbar .woocommerce-notices-wrapper { flex-basis: 100%; }
.commerce-page .woocommerce-result-count,
.commerce-page .woocommerce-ordering { float: none; margin: 0; font-size: 13px; }
.commerce-product-grid { row-gap: 42px; }
.commerce-product-grid .product-meta h3 { max-width: none; }
.commerce-product-grid .product-price { white-space: normal; min-width: 70px; }
.commerce-page .woocommerce nav.woocommerce-pagination,
.commerce-page nav.woocommerce-pagination,
.commerce-page .pagination { margin-top: 48px; }
.commerce-page nav.woocommerce-pagination ul { display: inline-flex; gap: 8px; border: 0; flex-wrap: wrap; }
.commerce-page nav.woocommerce-pagination ul li { border: 0; }
.commerce-page nav.woocommerce-pagination ul li a,
.commerce-page nav.woocommerce-pagination ul li span,
.commerce-page .page-numbers:not(ul) { min-width: 44px; min-height: 44px; padding: 12px 15px; border: 1px solid var(--line); border-radius: 50%; line-height: 1.2; display: inline-flex; align-items: center; justify-content: center; }
.commerce-page nav.woocommerce-pagination ul li span.current,
.commerce-page .page-numbers.current { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.commerce-page nav.woocommerce-pagination ul li a:hover { background: var(--stone); color: var(--ink); }
.commerce-page .nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.commerce-page .page-links { margin-top: 30px; }

/* Inputs and actions remain native WooCommerce controls. */
.commerce-page .woocommerce form .form-row label { font-size: 13px; line-height: 1.7; margin-bottom: 6px; }
.commerce-page .woocommerce input.input-text,
.commerce-page .woocommerce textarea,
.commerce-page .woocommerce select,
.commerce-page .woocommerce-ordering select,
.commerce-page .select2-container--default .select2-selection--single {
  background: var(--paper); color: var(--ink); border: 1px solid var(--line); border-radius: 3px; min-height: 48px; padding: 12px; max-width: 100%; box-shadow: none; font: inherit;
}
.commerce-page .woocommerce textarea { min-height: 110px; }
.commerce-page .select2-container--default .select2-selection--single .select2-selection__rendered { padding: 0; line-height: 22px; }
.commerce-page .select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; }
.commerce-page .woocommerce .quantity .qty { min-width: 72px; }
.commerce-page .woocommerce input[type="checkbox"],
.commerce-page .woocommerce input[type="radio"] { accent-color: var(--ink); }
.commerce-page .woocommerce a.button,
.commerce-page .woocommerce button.button,
.commerce-page .woocommerce input.button,
.commerce-page .woocommerce #respond input#submit,
.commerce-page .wc-block-components-button:not(.is-link) {
  background: var(--ink); color: var(--paper); border: 1px solid var(--ink); border-radius: 100px; font-family: var(--font-sans); font-size: 13px; font-weight: 600; line-height: 1.4; padding: 14px 24px; min-height: 48px; text-decoration: none; box-shadow: none;
}
.commerce-page .woocommerce a.button:hover,
.commerce-page .woocommerce button.button:hover,
.commerce-page .woocommerce input.button:hover,
.commerce-page .wc-block-components-button:not(.is-link):hover { background: var(--orange); color: var(--ink); border-color: var(--orange); }
.commerce-page .woocommerce button.button:disabled,
.commerce-page .woocommerce button.button:disabled[disabled] { opacity: .5; cursor: not-allowed; }
.commerce-page .woocommerce a.button.alt,
.commerce-page .woocommerce button.button.alt { background: var(--orange); color: var(--ink); border-color: var(--orange); }
.commerce-page .woocommerce a.button.alt:hover,
.commerce-page .woocommerce button.button.alt:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.commerce-page .woocommerce form.login,
.commerce-page .woocommerce form.register,
.commerce-page .woocommerce form.checkout_coupon { border: 1px solid var(--line); padding: 28px; border-radius: 3px; }
.commerce-page .woocommerce table.shop_table { border-color: var(--line); border-radius: 3px; }
.commerce-page .woocommerce table.shop_table td,
.commerce-page .woocommerce table.shop_table th { padding: 18px 14px; border-color: var(--line); }
.commerce-page .woocommerce table.shop_table th { font-weight: 600; }
.commerce-page .woocommerce table.cart img { width: 100px; }
.commerce-page .woocommerce table.cart .coupon { display: flex; gap: 10px; flex-wrap: wrap; }
.commerce-page .woocommerce table.cart .coupon .input-text { width: 180px; margin: 0; }
.commerce-page .woocommerce .cart-collaterals { margin-top: 40px; }
.commerce-page .woocommerce .cart_totals h2 { margin-top: 0; }
.commerce-page .woocommerce-checkout #payment { background: var(--stone); border-radius: 3px; }
.commerce-page .woocommerce-checkout #payment ul.payment_methods { border-color: var(--line); }
.commerce-page .woocommerce-checkout #payment div.payment_box { background: var(--paper); color: var(--ink); }
.commerce-page .woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--paper); }
.commerce-page .woocommerce-MyAccount-navigation ul { padding: 0; margin: 0; list-style: none; border-top: 1px solid var(--line); }
.commerce-page .woocommerce-MyAccount-navigation li a { display: block; padding: 16px 12px; border-bottom: 1px solid var(--line); text-decoration: none; }
.commerce-page .woocommerce-MyAccount-navigation li.is-active a { background: var(--stone); box-shadow: inset 3px 0 var(--orange); }
.commerce-page .woocommerce-MyAccount-content { min-width: 0; }
.commerce-page .woocommerce-message,
.commerce-page .woocommerce-info,
.commerce-page .woocommerce-error { background: var(--stone); color: var(--ink); border-top: 3px solid var(--orange); font-size: 14px; line-height: 1.7; }
.commerce-page .woocommerce-message::before,
.commerce-page .woocommerce-info::before { color: var(--ink); }
.commerce-page .woocommerce-error::before { color: #a43225; }
.commerce-page .wc-block-cart,
.commerce-page .wc-block-checkout { font-family: var(--font-sans); }
.commerce-page .wc-block-components-title { font-size: 24px; letter-spacing: -.03em; }
.commerce-page .wc-block-components-totals-wrapper,
.commerce-page .wc-block-cart-items { border-color: var(--line); }
.commerce-page .wc-block-components-text-input input,
.commerce-page .wc-block-components-combobox .wc-block-components-combobox-control input { border-color: var(--line); background: var(--paper); color: var(--ink); border-radius: 3px; }

/* Header additions and the shared menu also appear on viewport product pages. */
.e2go-cart-link { position: relative; flex-shrink: 0; }
.e2go-cart-link .e2go-cart-count { position: absolute; top: 1px; right: -1px; }
.e2go-cart-count { display: inline-grid; place-items: center; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 50%; background: var(--orange); color: var(--ink); font-size: 10px; line-height: 1; }
body.admin-bar { --e2go-admin-bar-height: 32px; }
body.admin-bar #header { top: var(--e2go-admin-bar-height); }
body.admin-bar #wpadminbar { position: fixed; }
body.admin-bar .scene-flow { height: calc(100svh - var(--e2go-admin-bar-height)); }
body.admin-bar .scene { height: calc(100svh - var(--e2go-admin-bar-height)); min-height: calc(100svh - var(--e2go-admin-bar-height)); max-height: calc(100svh - var(--e2go-admin-bar-height)); }
#product-menu { width: min(560px, calc(100vw - 48px)); max-width: none; max-height: calc(100svh - 48px); border-radius: 4px; padding: 36px; }
#product-menu > .dialog-close,
#product-menu > .close-dialog { position: absolute; top: 12px; right: 12px; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; }
#product-menu nav { display: flex; flex-direction: column; gap: 0; padding: 24px 0 0; }
#product-menu nav a { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px 0; border-bottom: 1px solid var(--line); font-size: 22px; letter-spacing: -.04em; }
#product-menu nav a:last-child { border-bottom: 0; }

@media (max-width: 1100px) and (min-width: 761px) {
  .commerce-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .commerce-product-grid .product-meta { display: block; }
  .commerce-product-grid .product-price { text-align: left; padding-top: 8px; }
}
@media (max-width: 782px) {
  body.admin-bar { --e2go-admin-bar-height: 46px; }
}
@media (max-width: 760px) {
  body.commerce-page { --header-height: 68px; --scene-pad: 24px; }
  .commerce-main { padding-top: calc(var(--header-height) + 36px); padding-bottom: 64px; }
  .commerce-title { font-size: clamp(34px, 9vw, 48px); }
  .commerce-content { font-size: 14px; }
  .commerce-shop-toolbar { align-items: flex-start; gap: 16px; }
  .commerce-page .woocommerce-ordering { width: 100%; }
  .commerce-page .woocommerce-ordering select { width: 100%; }
  .commerce-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 30px; }
  .commerce-product-grid .product-meta { display: block; }
  .commerce-product-grid .product-meta h3 { font-size: 14px; }
  .commerce-product-grid .product-price { text-align: left; padding-top: 8px; }
  .commerce-page .woocommerce form.login,
  .commerce-page .woocommerce form.register,
  .commerce-page .woocommerce form.checkout_coupon { padding: 20px; }
  .commerce-page .woocommerce table.shop_table td,
  .commerce-page .woocommerce table.shop_table th { padding: 14px 10px; }
  .commerce-page .woocommerce table.cart .coupon { width: 100%; }
  .commerce-page .woocommerce table.cart .coupon .input-text { flex: 1 1 120px; width: 100%; min-width: 0; }
  .commerce-page .woocommerce table.cart .coupon .button { flex: 1 1 140px; width: auto; }
  .commerce-page .woocommerce .col2-set .col-1,
  .commerce-page .woocommerce .col2-set .col-2 { width: 100%; float: none; }
  .commerce-page .woocommerce .col2-set .col-2 { margin-top: 28px; }
  .commerce-page .woocommerce-MyAccount-navigation { margin-bottom: 30px; }
  .commerce-page .woocommerce form .form-row-first,
  .commerce-page .woocommerce form .form-row-last { float: none; width: 100%; }
  .commerce-page .woocommerce-message,
  .commerce-page .woocommerce-info,
  .commerce-page .woocommerce-error { font-size: 13px; }
  #product-menu { padding: 30px 24px; }
  #product-menu nav a { font-size: 20px; }
}
@media (max-width: 380px) {
  #header > .brand-link { width: 112px; }
  #header .nav-right { gap: 6px; }
  #header .nav-right .icon-btn { flex-shrink: 0; }
}
