/* GripNexo presentation layer: no WooCommerce template overrides required. */
:root {
  --gn-ink: #121822;
  --gn-ink-2: #202936;
  --gn-paper: #f5f3ee;
  --gn-paper-2: #ebe9e2;
  --gn-line: rgba(18, 24, 34, .18);
  --gn-control-line: rgba(18, 24, 34, .48);
  --gn-muted: #4f5967;
  --gn-lime: #b8f833;
  --gn-lime-deep: #98d61d;
  --gn-blue: #3e7bfa;
  --gn-blue-deep: #1f56cf;
  --gn-radius: 2px;
  --gn-shadow: 0 18px 50px rgba(18, 24, 34, .10);
  --gn-font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --gn-display: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body.gripnexo-theme {
  background: var(--gn-paper);
  color: var(--gn-ink);
  font-family: var(--gn-font);
  max-width: 100%;
  overflow-x: clip;
}

body.gripnexo-theme a { text-underline-offset: .18em; }
body.gripnexo-theme ::selection { background: var(--gn-lime); color: var(--gn-ink); }
body.gripnexo-theme :focus-visible { outline: 3px solid var(--gn-blue); outline-offset: 3px; }

/* Flatsome shell and WooCommerce screens */
body.gripnexo-theme #header,
body.gripnexo-theme .header-wrapper { background: var(--gn-paper); }

body.gripnexo-theme .header-main,
body.gripnexo-theme .header-bottom { border-color: var(--gn-line); }

body.gripnexo-theme .header-main { min-height: 74px; }
body.gripnexo-commerce-pending .account-item,
body.gripnexo-commerce-pending .cart-item,
body.gripnexo-commerce-pending .header-nav-main > li.divider { display: none !important; }
body.gripnexo-theme .nav > li > a,
body.gripnexo-theme .header-nav-main.nav > li > a,
body.gripnexo-theme .header-nav-main.nav > li.html { color: var(--gn-ink); font-size: .75rem; font-weight: 750; letter-spacing: .075em; text-transform: uppercase; }
body.gripnexo-theme .nav > li > a:hover,
body.gripnexo-theme .nav > li.active > a { color: var(--gn-blue-deep); }
body.gripnexo-theme .nav-dropdown { border: 1px solid var(--gn-line); box-shadow: var(--gn-shadow); }
body.gripnexo-theme .nav-dropdown a:hover { color: var(--gn-blue-deep); }
body.gripnexo-theme .header-button .button,
body.gripnexo-theme .header-button .button:hover { border-radius: var(--gn-radius); }
body.gripnexo-theme .cart-icon strong { background: var(--gn-lime); color: var(--gn-ink); }

body.gripnexo-theme .button,
body.gripnexo-theme button:not(.woot-widget-bubble),
body.gripnexo-theme input[type="submit"],
body.gripnexo-theme .wc-block-components-button { border-radius: var(--gn-radius); font-family: var(--gn-font); font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }
body.gripnexo-theme button.woot-widget-bubble { border-radius: 50% !important; }
body.gripnexo-theme .button.primary,
body.gripnexo-theme .button.alt,
body.gripnexo-theme .single_add_to_cart_button,
body.gripnexo-theme .wc-block-components-button:not(.is-link) { background: var(--gn-lime); border-color: var(--gn-lime); color: var(--gn-ink); }
body.gripnexo-theme .button.primary:hover,
body.gripnexo-theme .button.alt:hover,
body.gripnexo-theme .single_add_to_cart_button:hover,
body.gripnexo-theme .wc-block-components-button:not(.is-link):hover { background: var(--gn-lime-deep); border-color: var(--gn-lime-deep); color: var(--gn-ink); }
body.gripnexo-theme input,
body.gripnexo-theme select,
body.gripnexo-theme textarea { border-radius: var(--gn-radius); border-color: var(--gn-control-line); }
body.gripnexo-theme input:focus,
body.gripnexo-theme select:focus,
body.gripnexo-theme textarea:focus { border-color: var(--gn-blue); box-shadow: 0 0 0 3px rgba(62, 123, 250, .16); }

body.gripnexo-theme .shop-container,
body.gripnexo-theme .product-main,
body.gripnexo-theme .woocommerce-cart-form,
body.gripnexo-theme .checkout-page-title,
body.gripnexo-theme .woocommerce-MyAccount-content { color: var(--gn-ink); }
body.gripnexo-theme .product-small .title,
body.gripnexo-theme .woocommerce-loop-product__title,
body.gripnexo-theme .product-title a,
body.gripnexo-theme .product_title { color: var(--gn-ink); font-family: var(--gn-font); font-weight: 800; letter-spacing: -.025em; }
body.gripnexo-theme .price,
body.gripnexo-theme .woocommerce-Price-amount { color: var(--gn-blue-deep); font-weight: 800; }
body.gripnexo-theme .box-image { background: #fff; }
body.gripnexo-theme .box-text { padding-top: 1rem; }
body.gripnexo-theme .product-small.box { border-bottom: 1px solid var(--gn-line); }
body.gripnexo-theme .woocommerce-message,
body.gripnexo-theme .woocommerce-info { border-top-color: var(--gn-blue); background: rgba(62, 123, 250, .08); }
body.gripnexo-theme .woocommerce-error { border-top-color: #ba2b36; }
body.gripnexo-theme .woocommerce-checkout-review-order,
body.gripnexo-theme .cart-collaterals .cart_totals,
body.gripnexo-theme .woocommerce-MyAccount-navigation { border: 1px solid var(--gn-line); padding: clamp(1rem, 2vw, 1.5rem); }
body.gripnexo-theme .woocommerce-MyAccount-navigation-link.is-active a { color: var(--gn-blue-deep); }

/* WooCommerce customer journey */
body.gripnexo-theme.woocommerce-page #main { background: var(--gn-paper); min-height: 52vh; }
body.gripnexo-theme .shop-page-title,
body.gripnexo-theme .page-title { background: var(--gn-paper-2); border-bottom: 1px solid var(--gn-line); }
body.gripnexo-theme .shop-page-title .page-title-inner { min-height: 76px; }
body.gripnexo-theme .woocommerce-breadcrumb { color: var(--gn-muted); font-size: .7rem; font-weight: 800; letter-spacing: .08em; }
body.gripnexo-theme .woocommerce-breadcrumb a { color: var(--gn-ink); }
body.gripnexo-theme .category-page-row { margin-inline: auto; max-width: 1180px; padding: clamp(2.5rem, 6vw, 5.5rem) 0; width: calc(100% - 48px); }
body.gripnexo-theme .category-page-row > .col { padding-inline: 0; }
body.gripnexo-theme .products.row { margin-inline: -12px; }
body.gripnexo-theme .products.row > .product-small { padding-inline: 12px; }
body.gripnexo-theme .product-small .box-image { border: 1px solid var(--gn-line); }
body.gripnexo-theme .product-small .box-text { padding-bottom: 1.25rem; }

.gn-shop-empty { background: var(--gn-ink); color: #fff; min-height: 380px; overflow: hidden; padding: clamp(2rem, 5vw, 4.25rem); position: relative; }
.gn-shop-empty::after { background: var(--gn-lime); border-radius: 100%; content: ""; height: min(28vw, 360px); opacity: .92; position: absolute; right: -7%; top: -22%; width: min(28vw, 360px); }
.gn-shop-empty > * { position: relative; z-index: 1; }
.gn-shop-empty .gn-eyebrow { color: var(--gn-lime); }
.gn-shop-empty .gn-eyebrow span { background: var(--gn-blue); }
.gn-shop-empty h1 { color: #fff; font-family: var(--gn-display); font-size: clamp(2.25rem, 4.6vw, 4.2rem); font-weight: 850; letter-spacing: -.04em; line-height: .96; margin: 0; max-width: 11ch; text-transform: uppercase; }
.gn-shop-empty > p:not(.gn-eyebrow) { color: rgba(255,255,255,.82); line-height: 1.65; margin: 1.35rem 0 0; max-width: 54ch; }
.gn-shop-empty .gn-text-link { color: #fff; }
.gn-shop-empty .gn-text-link:hover { color: var(--gn-lime); }

body.gripnexo-theme.woocommerce-cart .page-title,
body.gripnexo-theme.woocommerce-account .page-title { padding: 1.2rem 0; }
body.gripnexo-theme.woocommerce-cart .page-title h1,
body.gripnexo-theme.woocommerce-account .page-title h1 { color: var(--gn-ink); font-family: var(--gn-display); font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 850; letter-spacing: -.025em; }
body.gripnexo-theme.woocommerce-cart .woocommerce,
body.gripnexo-theme.woocommerce-account .woocommerce { margin-inline: auto; max-width: 1180px; padding: clamp(2.5rem, 6vw, 5rem) 24px; }
body.gripnexo-theme.woocommerce-cart .woocommerce-message,
body.gripnexo-theme.woocommerce-cart .woocommerce-info { border: 0; border-left: 4px solid var(--gn-blue); padding: 1rem 1.15rem; }
body.gripnexo-theme.woocommerce-cart .return-to-shop .button { margin-top: 1rem; }
body.gripnexo-theme.woocommerce-account:not(.logged-in) .woocommerce { max-width: 680px; }
body.gripnexo-theme.woocommerce-account .woocommerce-form-login { background: #fff; border: 1px solid var(--gn-line); box-shadow: 0 20px 45px rgba(18,24,34,.07); padding: clamp(1.35rem, 4vw, 2.5rem); }
body.gripnexo-theme.woocommerce-account .woocommerce-form-login label { color: var(--gn-ink); font-size: .78rem; font-weight: 800; }
body.gripnexo-theme.woocommerce-account .woocommerce-form-login input[type="text"],
body.gripnexo-theme.woocommerce-account .woocommerce-form-login input[type="password"] { background: var(--gn-paper); min-height: 48px; }
body.gripnexo-theme.woocommerce-account .lost_password a { color: var(--gn-blue-deep); font-weight: 700; }

/* Single-product presentation */
body.gripnexo-theme.single-product { overflow-x: clip; }
body.gripnexo-theme.single-product .product-main { background: var(--gn-paper); padding: clamp(2.5rem, 5vw, 4.75rem) 0; }
body.gripnexo-theme.single-product .product-main > .row { margin-inline: auto; max-width: 1180px; width: calc(100% - 48px); }
body.gripnexo-theme.single-product .product-gallery,
body.gripnexo-theme.single-product .product-info { min-width: 0; }
body.gripnexo-theme.single-product .product-gallery-default { background: #fff; border: 1px solid var(--gn-line); }
body.gripnexo-theme.single-product .woocommerce-product-gallery__image { background: #fff; }
body.gripnexo-theme.single-product .woocommerce-product-gallery__image img { margin-inline: auto; }
body.gripnexo-theme.single-product .product-thumbnails { margin: .75rem 0 0; overflow: hidden; width: 100%; }
body.gripnexo-theme.single-product .product-thumbnails .col { padding: 0 6px; }
body.gripnexo-theme.single-product .product-thumbnails a { background: #fff; border: 1px solid transparent; display: block; }
body.gripnexo-theme.single-product .product-thumbnails .is-nav-selected a { border-color: var(--gn-blue); }
body.gripnexo-theme.single-product .product-info { padding-left: clamp(1.5rem, 3.6vw, 3.25rem); }
body.gripnexo-theme.single-product .product-info .breadcrumbs { color: var(--gn-muted); font-size: .67rem; font-weight: 800; letter-spacing: .08em; }
body.gripnexo-theme.single-product .product-info .product-title { font-family: var(--gn-display); font-size: clamp(2rem, 3vw, 3.1rem); font-weight: 850; letter-spacing: -.035em; line-height: 1; margin-bottom: .9rem; overflow-wrap: anywhere; text-transform: uppercase; }
body.gripnexo-theme.single-product .product-info .price { font-size: clamp(1.45rem, 2.3vw, 2rem); letter-spacing: -.02em; }
body.gripnexo-theme.single-product .product-info .product-short-description { color: var(--gn-muted); font-size: .98rem; line-height: 1.65; max-width: 48ch; }
body.gripnexo-theme.single-product form.variations_form { border-top: 1px solid var(--gn-line); margin-top: 1.5rem; padding-top: 1.25rem; }
body.gripnexo-theme.single-product table.variations { margin-bottom: 1.25rem; }
body.gripnexo-theme.single-product table.variations th,
body.gripnexo-theme.single-product table.variations td { border: 0; padding: .42rem 0; }
body.gripnexo-theme.single-product table.variations th { color: var(--gn-ink); font-size: .75rem; font-weight: 850; letter-spacing: .035em; min-width: 118px; text-transform: uppercase; }
body.gripnexo-theme.single-product table.variations select { background-color: #fff; min-height: 48px; width: 100%; }
.gn-swatch-select {
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  height: 1px !important;
  overflow: hidden !important;
  position: absolute !important;
  white-space: nowrap !important;
  width: 1px !important;
}
.gn-variation-swatches { display: flex; flex-wrap: wrap; gap: .65rem; padding: .15rem 0 .35rem; }
body.gripnexo-theme button.gn-variation-swatch {
  align-items: center;
  background: #fff;
  border: 1px solid var(--gn-control-line);
  color: var(--gn-ink);
  display: inline-flex;
  font-size: .78rem;
  font-weight: 800;
  justify-content: center;
  letter-spacing: .035em;
  min-height: 48px;
  min-width: 60px;
  padding: .72rem 1rem;
  text-transform: uppercase;
  transition: background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
}
body.gripnexo-theme button.gn-variation-swatch:hover { border-color: var(--gn-ink); color: var(--gn-blue-deep); }
body.gripnexo-theme button.gn-variation-swatch.is-selected {
  background: var(--gn-ink);
  border-color: var(--gn-ink);
  box-shadow: inset 0 -4px 0 var(--gn-lime);
  color: #fff;
}
body.gripnexo-theme button.gn-variation-swatch.is-unavailable,
body.gripnexo-theme button.gn-variation-swatch:disabled {
  background: var(--gn-paper-2);
  border-color: var(--gn-line);
  box-shadow: none;
  color: var(--gn-muted);
  cursor: not-allowed;
  opacity: .48;
  text-decoration: line-through;
}
.gn-variation-swatches[data-attribute="attribute_pa_pair-quantity"] .gn-variation-swatch { min-width: 96px; }
body.gripnexo-theme.single-product .quantity .button,
body.gripnexo-theme.single-product .quantity input { min-height: 48px; }
body.gripnexo-theme.single-product .single_add_to_cart_button { min-height: 48px; padding-inline: 1.35rem; }
body.gripnexo-theme.single-product .add-request-quote-button.button { background: var(--gn-blue-deep); border-color: var(--gn-blue-deep); color: #fff; min-height: 48px; }
body.gripnexo-theme.single-product .add-request-quote-button.button:hover { background: var(--gn-blue-deep); border-color: var(--gn-blue-deep); color: #fff; }
body.gripnexo-theme.single-product .product_meta { border-top: 1px solid var(--gn-line); color: var(--gn-muted); font-size: .75rem; line-height: 1.7; margin-top: 1.25rem; padding-top: 1rem; }
body.gripnexo-theme.single-product .social-icons { opacity: .72; }
body.gripnexo-theme.single-product .product-footer { background: #fff; border-top: 1px solid var(--gn-line); }
body.gripnexo-theme.single-product .product-footer > .container { max-width: 1180px; padding-block: clamp(2.25rem, 5vw, 4.5rem); }
body.gripnexo-theme.single-product .product-tabs { border-bottom-color: var(--gn-line); }
body.gripnexo-theme.single-product .product-tabs li a { color: var(--gn-ink); font-size: .7rem; font-weight: 850; letter-spacing: .07em; }
body.gripnexo-theme.single-product .product-tabs li.active a { color: var(--gn-blue-deep); }

/* Request-a-quote journey */
body.gripnexo-theme.yith-request-a-quote-page #main { background: var(--gn-paper); min-height: 60vh; }
body.gripnexo-theme.yith-request-a-quote-page .page-wrapper { padding: 0; }
body.gripnexo-theme.yith-request-a-quote-page .row-main { max-width: none; }
body.gripnexo-theme.yith-request-a-quote-page .row-main > .col { padding: 0; }
.gn-quote { margin-inline: auto; max-width: 1180px; padding: clamp(4rem, 8vw, 7rem) 24px clamp(5rem, 9vw, 8rem); }
.gn-quote__intro { max-width: 780px; }
.gn-quote__intro h1 { color: var(--gn-ink); font-family: var(--gn-display); font-size: clamp(2.7rem, 4.8vw, 4.6rem); font-weight: 850; letter-spacing: -.04em; line-height: .96; margin: 0; max-width: 11ch; text-transform: uppercase; }
.gn-quote__intro > p:last-child { color: var(--gn-muted); font-size: clamp(.98rem, 1.4vw, 1.12rem); line-height: 1.68; margin: 1.5rem 0 0; max-width: 60ch; }
.gn-quote__body { margin-top: clamp(2.5rem, 5vw, 4.5rem); }
.gn-quote-empty { align-items: stretch; background: #fff; border: 1px solid var(--gn-line); display: grid; grid-template-columns: minmax(250px, .74fr) minmax(0, 1.26fr); min-height: 340px; }
.gn-quote-empty__signal { align-items: center; background: var(--gn-lime); display: flex; justify-content: center; min-height: 100%; overflow: hidden; position: relative; }
.gn-quote-empty__signal span { color: var(--gn-ink); font-family: var(--gn-display); font-size: clamp(7rem, 15vw, 12rem); font-weight: 300; line-height: 1; position: relative; z-index: 2; }
.gn-quote-empty__signal i { border: 1px solid rgba(18,24,34,.25); display: block; height: 62%; position: absolute; transform: skewX(-14deg); width: 33%; }
.gn-quote-empty__signal i:nth-of-type(1) { left: -14%; }
.gn-quote-empty__signal i:nth-of-type(2) { left: 34%; }
.gn-quote-empty__signal i:nth-of-type(3) { right: -20%; }
.gn-quote-empty > div:last-child { align-self: center; padding: clamp(2rem, 5vw, 4.25rem); }
.gn-quote-empty h2 { color: var(--gn-ink); font-family: var(--gn-display); font-size: clamp(1.9rem, 3.2vw, 3rem); font-weight: 850; letter-spacing: -.035em; line-height: 1; margin: 0; text-transform: uppercase; }
.gn-quote-empty > div:last-child > p:not(.gn-eyebrow) { color: var(--gn-muted); line-height: 1.65; margin: 1.2rem 0 0; max-width: 50ch; }
.gn-quote .ywraq-form-table-wrapper > form,
.gn-quote .yith-ywraq-mail-form-wrapper { background: #fff; border: 1px solid var(--gn-line); padding: clamp(1.25rem, 3.5vw, 2.5rem); }
.gn-quote .yith-ywraq-mail-form-wrapper { margin-top: 1.5rem; }
.gn-quote .yith-ywraq-mail-form-wrapper h3 { color: var(--gn-ink); font-family: var(--gn-display); font-size: clamp(1.75rem, 3vw, 2.7rem); font-weight: 850; letter-spacing: -.035em; margin: 0 0 1.5rem; text-transform: uppercase; }
.gn-quote table.shop_table { border: 0; margin: 0; }
.gn-quote table.shop_table thead { background: var(--gn-ink); color: #fff; }
.gn-quote table.shop_table th { border-color: rgba(255,255,255,.12); font-size: .68rem; font-weight: 850; letter-spacing: .09em; padding: .85rem; text-transform: uppercase; }
.gn-quote table.shop_table td { border-color: var(--gn-line); padding: .9rem; vertical-align: middle; }
.gn-quote table.shop_table .product-thumbnail img { background: var(--gn-paper); max-width: 88px; }
.gn-quote table.shop_table .product-name a { color: var(--gn-ink); font-weight: 800; }
.gn-quote table.shop_table .product-remove .remove { color: #a62832; }
.gn-quote table.shop_table input.qty { min-height: 44px; }
.gn-quote .yith-ywraq-mail-form-wrapper label { color: var(--gn-ink); font-size: .76rem; font-weight: 800; letter-spacing: .025em; }
.gn-quote .yith-ywraq-mail-form-wrapper input[type="text"],
.gn-quote .yith-ywraq-mail-form-wrapper input[type="email"],
.gn-quote .yith-ywraq-mail-form-wrapper textarea { background: var(--gn-paper); min-height: 48px; }
.gn-quote .yith-ywraq-mail-form-wrapper textarea { min-height: 150px; }
.gn-quote .raq-send-request { background: var(--gn-lime); border-color: var(--gn-lime); color: var(--gn-ink); min-height: 48px; }
.gn-quote .raq-send-request:hover { background: var(--gn-lime-deep); border-color: var(--gn-lime-deep); color: var(--gn-ink); }

.gn-shell { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.gn-section { padding: clamp(4.75rem, 9vw, 8.5rem) 0; }
.gripnexo-main { overflow-x: clip; }
.gn-eyebrow { align-items: center; color: var(--gn-blue-deep); display: flex; font-size: .68rem; font-weight: 850; gap: .58rem; letter-spacing: .13em; margin: 0 0 1rem; text-transform: uppercase; }
.gn-eyebrow span { background: var(--gn-lime); display: inline-block; height: .68rem; transform: skewX(-18deg); width: .68rem; }
.gn-section h2,
.gn-hero h1,
.gn-team-cta h2 { color: var(--gn-ink); font-family: var(--gn-display); font-weight: 800; letter-spacing: -.035em; line-height: .96; margin: 0; text-transform: uppercase; }
.gn-section h2 { font-size: clamp(2.15rem, 4vw, 3.65rem); max-width: 15ch; }
.gn-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 1.2rem; margin-top: 2.25rem; }
.gn-button { align-items: center; display: inline-flex; gap: .85rem; min-height: 48px; padding: .85rem 1.1rem; }
.gn-button span { font-size: 1.15em; line-height: 1; }
.gn-text-link { color: var(--gn-ink); display: inline-flex; font-size: .76rem; font-weight: 850; gap: .65rem; letter-spacing: .09em; text-decoration: none; text-transform: uppercase; }
.gn-text-link:hover { color: var(--gn-blue-deep); }
.gn-text-link span { color: var(--gn-blue-deep); font-size: 1.2em; }
.gn-finder__guide-link { margin-top: 1.4rem; }

/* Search-focused work-glove guide */
.gn-guide { background: var(--gn-paper); overflow-x: clip; }
.gn-guide__hero { background: var(--gn-ink); color: #fff; padding: clamp(4.5rem, 9vw, 8rem) 0; }
.gn-guide__hero-grid { align-items: center; display: grid; gap: clamp(2.5rem, 8vw, 8rem); grid-template-columns: minmax(0, 1.15fr) minmax(260px, .85fr); }
.gn-guide__hero .gn-eyebrow { color: var(--gn-lime); }
.gn-guide__hero h1 { color: #fff; font-family: var(--gn-display); font-size: clamp(2.75rem, 6vw, 5.6rem); font-weight: 850; letter-spacing: -.05em; line-height: .94; margin: 0; max-width: 11ch; text-transform: uppercase; }
.gn-guide__hero p:not(.gn-eyebrow) { color: rgba(255,255,255,.82); font-size: clamp(1rem, 1.5vw, 1.15rem); line-height: 1.7; margin: 1.5rem 0 0; max-width: 56ch; }
.gn-guide__hero .gn-text-link { color: #fff; }
.gn-guide__signal { align-items: center; background: var(--gn-lime); color: var(--gn-ink); display: flex; justify-content: center; min-height: 350px; overflow: hidden; padding: 2rem; position: relative; }
.gn-guide__signal::after { border: 1px solid rgba(18,24,34,.28); content: ""; inset: 8%; position: absolute; transform: skewX(-7deg); }
.gn-guide__signal span { font-family: var(--gn-display); font-size: clamp(7rem, 14vw, 12rem); font-weight: 300; line-height: .8; position: relative; z-index: 1; }
.gn-guide__signal strong { font-size: .72rem; letter-spacing: .12em; line-height: 1.6; margin-left: .7rem; position: relative; text-transform: uppercase; z-index: 1; }
.gn-guide__compare { padding: clamp(4.75rem, 9vw, 8rem) 0; }
.gn-guide__heading { display: grid; gap: 1rem 3rem; grid-template-columns: minmax(0, 1.15fr) minmax(260px, .85fr); margin-bottom: clamp(2.75rem, 6vw, 5rem); }
.gn-guide__heading .gn-eyebrow { grid-column: 1 / -1; margin-bottom: 0; }
.gn-guide__heading h2, .gn-guide__steps h2, .gn-guide__cta h2 { color: var(--gn-ink); font-family: var(--gn-display); font-size: clamp(2.25rem, 4.5vw, 4.25rem); font-weight: 850; letter-spacing: -.045em; line-height: .96; margin: 0; text-transform: uppercase; }
.gn-guide__heading > p:last-child { color: var(--gn-muted); line-height: 1.7; margin: 0; }
.gn-guide__groups { border-top: 1px solid var(--gn-line); }
.gn-guide__group { border-bottom: 1px solid var(--gn-line); display: grid; gap: 2rem; grid-template-columns: minmax(230px, .7fr) minmax(0, 1.3fr); padding: 2rem 0; }
.gn-guide__condition > span { color: var(--gn-blue-deep); font-size: .75rem; font-weight: 850; letter-spacing: .12em; }
.gn-guide__condition h3 { color: var(--gn-ink); font-family: var(--gn-display); font-size: clamp(1.45rem, 2.4vw, 2.1rem); font-weight: 850; letter-spacing: -.03em; margin: .6rem 0 .8rem; text-transform: uppercase; }
.gn-guide__condition p { color: var(--gn-muted); line-height: 1.65; margin: 0; max-width: 42ch; }
.gn-guide__models { display: grid; gap: 1rem; }
.gn-guide__model { align-items: center; background: #fff; border: 1px solid var(--gn-line); display: grid; gap: 1.25rem; grid-template-columns: 150px minmax(0, 1fr); padding: 1rem; }
.gn-guide__model img { height: 135px; object-fit: contain; width: 100%; }
.gn-guide__model p { color: var(--gn-blue-deep); font-size: .68rem; font-weight: 850; letter-spacing: .1em; margin: 0 0 .35rem; text-transform: uppercase; }
.gn-guide__model h4 { color: var(--gn-ink); font-size: 1.05rem; font-weight: 850; letter-spacing: -.02em; margin: 0 0 .4rem; }
.gn-guide__model div > span { color: var(--gn-muted); display: block; font-size: .9rem; line-height: 1.55; }
.gn-guide__model .gn-guide__stock { display: inline-flex; font-size: .68rem; font-weight: 850; letter-spacing: .06em; margin-top: .65rem; padding: .25rem .55rem; text-transform: uppercase; width: auto; }
.gn-guide__stock.is-in-stock { background: rgba(184,248,51,.35); color: #315000; }
.gn-guide__stock.is-out-of-stock { background: rgba(178,0,0,.09); color: #8a2029; }
.gn-guide__model a { color: var(--gn-ink); display: inline-flex; font-size: .72rem; font-weight: 850; gap: .6rem; letter-spacing: .07em; margin-top: .75rem; text-transform: uppercase; }
.gn-guide__model a span { color: var(--gn-blue-deep); }
.gn-guide__price { color: var(--gn-blue-deep); font-size: .92rem; font-weight: 850; margin-top: .55rem; }
.gn-guide__steps { background: var(--gn-paper-2); padding: clamp(4.75rem, 9vw, 8rem) 0; }
.gn-guide__step-grid { display: grid; gap: 1px; grid-template-columns: repeat(4, 1fr); margin-top: 2.5rem; }
.gn-guide__step-grid > div { background: #fff; min-height: 250px; padding: clamp(1.25rem, 3vw, 2.2rem); }
.gn-guide__step-grid strong { color: var(--gn-blue-deep); font-size: .75rem; letter-spacing: .12em; }
.gn-guide__step-grid h3 { color: var(--gn-ink); font-size: 1.05rem; font-weight: 850; margin: 3.25rem 0 .75rem; text-transform: uppercase; }
.gn-guide__step-grid p { color: var(--gn-muted); font-size: .9rem; line-height: 1.65; margin: 0; }
.gn-guide__cta { background: var(--gn-blue-deep); color: #fff; padding: clamp(4rem, 8vw, 7rem) 0; }
.gn-guide__cta-grid { align-items: end; display: grid; gap: clamp(2rem, 7vw, 7rem); grid-template-columns: 1.1fr .9fr; }
.gn-guide__cta .gn-eyebrow { color: var(--gn-lime); }
.gn-guide__cta h2 { color: #fff; }
.gn-guide__cta p:not(.gn-eyebrow) { color: rgba(255,255,255,.9); line-height: 1.65; margin: 0 0 1.25rem; max-width: 42ch; }

@media (max-width: 849px) {
  .gn-guide__hero-grid, .gn-guide__heading, .gn-guide__group, .gn-guide__cta-grid { grid-template-columns: 1fr; }
  .gn-guide__signal { min-height: 260px; }
  .gn-guide__step-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 549px) {
  .gn-guide__hero { padding-top: 3.5rem; }
  .gn-guide__signal { min-height: 220px; }
  .gn-guide__model { grid-template-columns: 104px minmax(0, 1fr); }
  .gn-guide__model img { height: 110px; }
  .gn-guide__step-grid { grid-template-columns: 1fr; }
}

/* Hero */
.gn-hero { background: var(--gn-paper); min-height: min(760px, calc(100vh - 74px)); overflow: hidden; position: relative; }
.gn-hero::before { background-image: linear-gradient(rgba(18, 24, 34, .05) 1px, transparent 1px), linear-gradient(90deg, rgba(18, 24, 34, .05) 1px, transparent 1px); background-size: 32px 32px; content: ""; inset: 0; mask-image: linear-gradient(to right, #000 0%, transparent 72%); pointer-events: none; position: absolute; }
.gn-hero__grid { align-items: center; display: grid; gap: clamp(2rem, 4vw, 4.5rem); grid-template-columns: minmax(0, 1.08fr) minmax(380px, .92fr); min-height: inherit; padding-block: clamp(3.5rem, 6vw, 5rem); position: relative; }
.gn-hero__grid > * { min-width: 0; }
.gn-hero__copy { max-width: 620px; min-width: 0; position: relative; width: 100%; z-index: 2; }
.gn-hero h1 { font-size: clamp(3rem, 5.35vw, 5.25rem); max-width: 10.8ch; }
.gn-hero__lede { color: var(--gn-muted); font-size: clamp(1rem, 1.55vw, 1.2rem); line-height: 1.65; margin: 1.55rem 0 0; max-width: 48ch; }
.gn-hero__proof { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; list-style: none; margin: 3rem 0 0; padding: 0; }
.gn-hero__proof li { align-items: center; color: var(--gn-muted); display: flex; font-size: .72rem; font-weight: 750; gap: .45rem; }
.gn-hero__proof li::before { background: var(--gn-lime); border-radius: 100%; content: ""; height: .45rem; width: .45rem; }
.gn-hero__visual { align-self: stretch; background: var(--gn-paper); min-height: 450px; position: relative; z-index: 1; }
.gn-hero__halo { background: var(--gn-lime); border-radius: 100%; box-shadow: 28px 34px 70px rgba(18, 24, 34, .12); height: min(38vw, 510px); opacity: .88; position: absolute; right: 0; top: 10%; width: min(38vw, 510px); z-index: 0; }
.gn-hero__visual::after { background: var(--gn-blue); bottom: 7%; content: ""; height: 24%; left: 10%; opacity: .94; position: absolute; transform: skewX(-14deg); width: 12%; z-index: 1; }
.gn-hero__product-link { color: inherit; inset: 0; mix-blend-mode: multiply; position: absolute; text-decoration: none; z-index: 2; }
.gn-hero__visual img { bottom: -3%; height: min(100%, 660px); mix-blend-mode: normal; object-fit: contain; object-position: center; position: absolute; right: 1%; width: 100%; z-index: 2; }
.gn-hero__blueprint { color: var(--gn-ink); font-family: var(--gn-display); font-size: clamp(4rem, 9vw, 9rem); font-weight: 900; left: -1rem; letter-spacing: -.08em; line-height: .78; opacity: .09; position: absolute; top: 14%; z-index: 1; }
.gn-hero__tag { align-items: center; background: var(--gn-ink); bottom: 12%; color: #fff; display: flex; font-size: .67rem; font-weight: 800; gap: .55rem; left: 0; letter-spacing: .105em; padding: .8rem .95rem; position: absolute; text-transform: uppercase; z-index: 3; }
.gn-hero__tag span { background: var(--gn-lime); display: block; height: .55rem; width: .55rem; }

/* Shop by job */
.gn-jobs { background: var(--gn-ink); color: #fff; }
.gn-jobs h2 { color: #fff; }
.gn-jobs .gn-eyebrow { color: var(--gn-lime); }
.gn-jobs .gn-eyebrow span { background: var(--gn-blue); }
.gn-job-grid { display: grid; gap: 1px; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: clamp(2.3rem, 5vw, 4.5rem); }
.gn-job-card { background: var(--gn-ink-2); color: #fff; display: flex; flex-direction: column; min-height: 255px; padding: 1.4rem; position: relative; text-decoration: none; transition: background .25s ease, transform .25s ease; }
.gn-job-card:hover { background: var(--gn-blue-deep); color: #fff; transform: translateY(-5px); }
.gn-job-card__number { color: var(--gn-lime); font-family: var(--gn-display); font-size: 1rem; font-weight: 800; letter-spacing: .08em; }
.gn-job-card strong { font-family: var(--gn-display); font-size: clamp(1.55rem, 2.25vw, 2.1rem); letter-spacing: -.02em; line-height: 1; margin-top: auto; text-transform: uppercase; }
.gn-job-card > span:not(.gn-job-card__number) { color: rgba(255,255,255,.82); font-size: .82rem; line-height: 1.45; margin-top: .7rem; max-width: 21ch; }
.gn-job-card:hover > span:not(.gn-job-card__number) { color: rgba(255,255,255,.9); }
.gn-job-card i { bottom: 1.15rem; color: var(--gn-lime); font-size: 1.2rem; font-style: normal; position: absolute; right: 1.15rem; }
.gn-job-card:hover i { color: var(--gn-lime); }

/* Model wall */
.gn-section__split { align-items: end; display: flex; gap: 2rem; justify-content: space-between; }
.gn-section__split > p { color: var(--gn-muted); line-height: 1.65; margin: 0; max-width: 37ch; }
.gn-model-grid { display: grid; gap: 1px; grid-template-columns: repeat(3, 1fr); margin-top: clamp(2.3rem, 5vw, 4.5rem); }
.gn-model-card { background: #fff; border: 1px solid var(--gn-line); min-width: 0; transition: box-shadow .25s ease, transform .25s ease; }
.gn-model-card:hover { box-shadow: var(--gn-shadow); transform: translateY(-5px); z-index: 1; }
.gn-model-card__image { aspect-ratio: 1 / .88; background: linear-gradient(145deg, #fff 0%, var(--gn-paper-2) 100%); color: inherit; display: block; overflow: hidden; position: relative; text-decoration: none; }
.gn-model-card__image::before { background: var(--gn-lime); content: ""; height: .75rem; left: 1.1rem; position: absolute; top: 1.1rem; transform: skewX(-18deg); width: .75rem; }
.gn-model-card__image img { height: 100%; mix-blend-mode: multiply; object-fit: contain; padding: 1.4rem; transition: transform .35s ease; width: 100%; }
.gn-model-card:hover .gn-model-card__image img { transform: scale(1.045) rotate(-1deg); }
.gn-model-card__index { bottom: .85rem; color: var(--gn-ink); font-family: var(--gn-display); font-size: .73rem; font-weight: 800; letter-spacing: .06em; opacity: .4; position: absolute; right: 1rem; }
.gn-model-card__content { display: flex; flex-direction: column; min-height: 216px; padding: 1.25rem; }
.gn-model-card__content > p { color: var(--gn-blue-deep); font-size: .66rem; font-weight: 850; letter-spacing: .105em; margin: 0; text-transform: uppercase; }
.gn-model-card h3 { color: var(--gn-ink); font-family: var(--gn-font); font-size: 1.14rem; font-weight: 850; letter-spacing: -.025em; line-height: 1.15; margin: .55rem 0; }
.gn-model-card__meta { color: var(--gn-muted); display: flex; flex-direction: column; font-size: .81rem; gap: .5rem; line-height: 1.45; }
.gn-model-card__price { color: var(--gn-ink); font-weight: 800; }
.gn-card-link { align-items: center; color: var(--gn-ink); display: flex; font-size: .68rem; font-weight: 850; justify-content: space-between; letter-spacing: .09em; margin-top: auto; padding-top: 1.25rem; text-decoration: none; text-transform: uppercase; }
.gn-card-link span { color: var(--gn-blue-deep); font-size: 1.25rem; }
.gn-card-link:hover { color: var(--gn-blue-deep); }
.gn-catalog-note { background: rgba(62, 123, 250, .08); color: var(--gn-ink); margin: 1.25rem 0 0; padding: 1rem 1.1rem; }

/* Finder */
.gn-finder { background: var(--gn-paper-2); }
.gn-finder__grid { align-items: center; display: grid; gap: clamp(2.5rem, 8vw, 8rem); grid-template-columns: .82fr 1.18fr; }
.gn-finder__intro p:not(.gn-eyebrow) { color: var(--gn-muted); line-height: 1.65; margin: 1.2rem 0 0; max-width: 38ch; }
.gn-finder__form { background: var(--gn-ink); color: #fff; padding: clamp(1.35rem, 4vw, 2.5rem); }
.gn-finder fieldset { border: 0; display: grid; gap: .55rem; margin: 0; padding: 0; }
.gn-finder__legend { align-items: center; color: #fff; display: flex; float: none; font-size: .72rem; font-weight: 850; gap: .55rem; letter-spacing: .09em; margin: 0 0 .75rem; padding: 0; text-transform: uppercase; width: 100%; }
.gn-finder__legend span,
.gn-finder__step span { color: var(--gn-lime); font-family: var(--gn-display); }
.gn-finder__form label { align-items: center; border: 1px solid rgba(255,255,255,.35); color: #f7f9fc; cursor: pointer; display: flex; font-size: .86rem; font-weight: 700; gap: .75rem; min-height: 48px; padding: .85rem .9rem; transition: background .2s ease, border-color .2s ease; }
.gn-finder label:hover,
.gn-finder label:has(input:checked) { background: rgba(184,248,51,.13); border-color: var(--gn-lime); }
.gn-finder input { accent-color: var(--gn-lime); height: 1rem; width: 1rem; }
.gn-finder input:checked + span { color: var(--gn-lime); font-weight: 800; }
.gn-finder__result { border-left: 3px solid var(--gn-lime); margin-top: 1.5rem; padding: .2rem 0 .2rem 1rem; scroll-margin-top: 90px; }
.gn-finder__result:focus { outline: 0; }
.gn-finder__prompt { display: grid; gap: .45rem; }
.gn-finder__prompt > strong { font-family: var(--gn-display); font-size: 1.25rem; letter-spacing: -.01em; line-height: 1.2; text-transform: uppercase; }
.gn-finder__prompt > span { color: rgba(255,255,255,.82); font-size: .82rem; line-height: 1.5; }
.gn-finder__step { align-items: center; color: rgba(255,255,255,.72); display: flex; font-size: .67rem; font-weight: 850; gap: .55rem; letter-spacing: .1em; margin: 0; text-transform: uppercase; }
.gn-finder__answer h3 { color: #fff; font-family: var(--gn-display); font-size: clamp(1.4rem, 2.3vw, 1.85rem); font-weight: 850; letter-spacing: -.025em; line-height: 1.08; margin: .55rem 0 0; text-transform: uppercase; }
.gn-finder__reason { color: rgba(255,255,255,.84); font-size: .86rem; line-height: 1.55; margin: .65rem 0 0; }
.gn-finder__matches { display: grid; gap: .7rem; margin-top: 1rem; }
.gn-finder__match { align-items: center; background: var(--gn-ink-2); border: 1px solid rgba(255,255,255,.28); display: grid; gap: 1rem; grid-template-columns: 108px minmax(0, 1fr); padding: .75rem; }
.gn-finder__match-image { aspect-ratio: 1; background: #fff; color: inherit; display: block; overflow: hidden; text-decoration: none; }
.gn-finder__match-image img { height: 100%; mix-blend-mode: multiply; object-fit: contain; padding: .35rem; width: 100%; }
.gn-finder__match-copy { min-width: 0; }
.gn-finder__match-rank { color: var(--gn-lime); display: block; font-size: .62rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.gn-finder__match h4 { color: #fff; font-family: var(--gn-font); font-size: .98rem; font-weight: 850; letter-spacing: -.015em; line-height: 1.2; margin: .3rem 0 0; }
.gn-finder__match-copy > p { color: rgba(255,255,255,.78); font-size: .76rem; line-height: 1.45; margin: .45rem 0 0; }
.gn-finder__match-price { color: #fff; font-size: .86rem; font-weight: 850; margin-top: .5rem; }
body.gripnexo-theme .gn-finder__match-price .woocommerce-Price-amount { color: var(--gn-lime); }
.gn-finder__match-link.button { align-items: center; background: var(--gn-lime); border-color: var(--gn-lime); color: var(--gn-ink); display: inline-flex; font-size: .65rem; gap: .55rem; margin: .7rem 0 0; min-height: 40px; padding: .65rem .8rem; }
.gn-finder__match-link.button:hover { background: var(--gn-lime-deep); border-color: var(--gn-lime-deep); color: var(--gn-ink); }
.gn-finder__note { border-top: 1px solid rgba(255,255,255,.24); color: rgba(255,255,255,.74); font-size: .7rem; line-height: 1.5; margin: 1rem 0 0; padding-top: .85rem; }
.gn-finder__link { color: #fff; margin-top: 1.4rem; }
.gn-finder__link:hover { color: var(--gn-lime); }
.gn-finder__noscript { border-top: 1px solid rgba(255,255,255,.18); color: rgba(255,255,255,.72); font-size: .8rem; line-height: 1.5; margin: 1.4rem 0 0; padding-top: 1rem; }
.gn-finder__noscript a { color: var(--gn-lime); }

/* About */
.gn-about { background: var(--gn-paper); }
.gn-about__grid { align-items: center; display: grid; gap: clamp(2.5rem, 8vw, 8rem); grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr); }
.gn-about__guide { background: var(--gn-ink); color: #fff; overflow: hidden; padding: clamp(1.5rem, 3.5vw, 2.4rem); position: relative; }
.gn-about__guide::after { background: var(--gn-lime); content: ""; height: 92px; position: absolute; right: -48px; top: -50px; transform: rotate(18deg); width: 130px; }
.gn-about__guide > * { position: relative; z-index: 1; }
.gn-about__guide-label { color: var(--gn-lime); font-size: .72rem; font-weight: 850; letter-spacing: .11em; margin: 0; text-transform: uppercase; }
.gn-about__guide ol { list-style: none; margin: 1.1rem 0 0; padding: 0; }
.gn-about__guide li { align-items: start; border-top: 1px solid rgba(255,255,255,.19); display: grid; gap: 1rem; grid-template-columns: 34px minmax(0,1fr); padding: 1rem 0; }
.gn-about__guide li > span { color: var(--gn-lime); font-size: .7rem; font-weight: 850; letter-spacing: .08em; padding-top: .12rem; }
.gn-about__guide li strong { color: #fff; display: block; font-size: .88rem; font-weight: 850; letter-spacing: .02em; line-height: 1.3; text-transform: uppercase; }
.gn-about__guide li small { color: rgba(255,255,255,.74); display: block; font-size: .76rem; line-height: 1.5; margin-top: .35rem; }
.gn-about__guide-link { align-items: center; color: var(--gn-ink); background: var(--gn-lime); display: inline-flex; font-size: .7rem; font-weight: 850; gap: .75rem; letter-spacing: .06em; margin-top: .6rem; padding: .85rem 1rem; text-decoration: none; text-transform: uppercase; }
.gn-about__guide-link:hover { background: var(--gn-lime-deep); color: var(--gn-ink); }
.gn-about__guide-link span { font-size: 1rem; line-height: 1; }
.gn-about__copy > p:not(.gn-eyebrow) { color: var(--gn-muted); font-size: 1rem; line-height: 1.72; margin: 1.35rem 0 0; max-width: 58ch; }

/* Team CTA and custom footer */
.gn-team-cta { background: var(--gn-blue-deep); color: #fff; padding: clamp(4rem, 7vw, 6.5rem) 0; position: relative; }
.gn-team-cta::after { border: 1px solid rgba(255,255,255,.32); content: ""; height: 70%; position: absolute; right: 7%; top: 15%; transform: skewX(-16deg); width: 16%; }
.gn-team-cta__inner { align-items: end; display: grid; gap: 2rem; grid-template-columns: 1.2fr .8fr; position: relative; z-index: 1; }
.gn-team-cta h2 { color: #fff; font-size: clamp(2.35rem, 4vw, 3.8rem); max-width: 13ch; }
.gn-team-cta .gn-eyebrow { color: var(--gn-lime); }
.gn-team-cta .gn-eyebrow span { background: #fff; }
.gn-team-cta__inner > div > p:not(.gn-eyebrow) { color: rgba(255,255,255,.9); line-height: 1.65; margin: 0 0 1.4rem; max-width: 35ch; }
.gn-team-cta .gn-button { background: var(--gn-lime); border-color: var(--gn-lime); color: var(--gn-ink); }

.gn-footer { background: var(--gn-ink); color: #fff; padding-top: clamp(3.5rem, 6vw, 5.5rem); }
.gn-footer__grid { display: grid; gap: 3rem; grid-template-columns: minmax(220px, .9fr) minmax(430px, 1.1fr); padding-bottom: 3.5rem; }
.gn-footer__logo { display: inline-block; }
.gn-footer__logo img { display: block; height: auto; max-width: 248px; }
.gn-footer__brand p { color: rgba(255,255,255,.78); font-size: .9rem; line-height: 1.55; margin: 1.3rem 0 0; max-width: 30ch; }
.gn-footer__links { display: grid; gap: 2rem; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }

/* Branded not-found page */
.gn-404 { align-items: center; background: var(--gn-paper); display: flex; min-height: min(720px, calc(100vh - 74px)); overflow: hidden; padding: clamp(5rem, 10vw, 9rem) 0; position: relative; }
.gn-404::after { background: var(--gn-lime); border-radius: 100%; content: ""; height: min(48vw, 600px); opacity: .72; position: absolute; right: -12%; top: 8%; width: min(48vw, 600px); }
.gn-404__inner { position: relative; z-index: 1; }
.gn-404 h1 { color: var(--gn-ink); font-family: var(--gn-display); font-size: clamp(2.8rem, 6vw, 5.2rem); font-weight: 850; letter-spacing: -.04em; line-height: .96; margin: 0; max-width: 11ch; text-transform: uppercase; }
.gn-404__copy { color: var(--gn-muted); font-size: 1.05rem; line-height: 1.7; margin: 1.5rem 0 0; max-width: 50ch; }
.gn-footer__links div { display: grid; align-content: start; gap: .65rem; }
.gn-footer__links p { color: var(--gn-lime); font-size: .65rem; font-weight: 850; letter-spacing: .13em; margin: 0 0 .45rem; text-transform: uppercase; }
.gn-footer__links a { color: rgba(255,255,255,.84); font-size: .86rem; text-decoration: none; }
.gn-footer__links a:hover { color: #fff; text-decoration: underline; }
.gn-footer__bottom { border-top: 1px solid rgba(255,255,255,.24); color: rgba(255,255,255,.7); display: flex; font-size: .68rem; font-weight: 700; justify-content: space-between; letter-spacing: .06em; padding: 1.15rem 0; text-transform: uppercase; }

/* Version-controlled About, Contact, FAQ, and team pages */
.gn-info-page { background: var(--gn-paper); }
.gn-info-hero { border-bottom: 1px solid var(--gn-line); min-height: 600px; overflow: hidden; position: relative; }
.gn-info-hero::before { background-image: linear-gradient(rgba(18,24,34,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(18,24,34,.05) 1px, transparent 1px); background-size: 32px 32px; content: ""; inset: 0; pointer-events: none; position: absolute; }
.gn-info-hero__grid { align-items: center; display: grid; gap: clamp(2rem, 7vw, 7rem); grid-template-columns: minmax(0, 1.15fr) minmax(280px, .55fr); min-height: 600px; padding-block: clamp(4rem, 8vw, 7rem); position: relative; }
.gn-info-hero__copy { position: relative; z-index: 2; }
.gn-info-hero h1 { color: var(--gn-ink); font-family: var(--gn-display); font-size: clamp(3rem, 5.4vw, 5.1rem); font-weight: 850; letter-spacing: -.04em; line-height: .95; margin: 0; max-width: 11ch; text-transform: uppercase; }
.gn-info-hero__copy > p:last-child { color: var(--gn-muted); font-size: clamp(1rem, 1.5vw, 1.16rem); line-height: 1.7; margin: 1.55rem 0 0; max-width: 58ch; }
.gn-info-hero__signal { align-items: end; aspect-ratio: 1; background: var(--gn-lime); display: flex; justify-content: space-between; overflow: hidden; padding: clamp(1.2rem, 3vw, 2.2rem); position: relative; transform: rotate(2deg); }
.gn-info-hero__signal::before { border: 1px solid rgba(18,24,34,.3); content: ""; inset: 8%; position: absolute; transform: skewX(-8deg); }
.gn-info-hero__signal span { font-family: var(--gn-display); font-size: clamp(3rem, 7vw, 6.2rem); font-weight: 900; letter-spacing: -.08em; line-height: .8; position: relative; }
.gn-info-hero__signal strong { color: var(--gn-blue-deep); font-family: var(--gn-display); font-size: clamp(1.2rem, 2.5vw, 2rem); position: relative; }
.gn-info-content { padding: clamp(4rem, 8vw, 7rem) 0; }
.gn-info-grid { display: grid; gap: 1px; grid-template-columns: repeat(3, 1fr); }
.gn-info-card { background: #fff; border: 1px solid var(--gn-line); min-height: 290px; padding: clamp(1.4rem, 3vw, 2.3rem); }
.gn-info-card > span { color: var(--gn-blue-deep); font-size: .7rem; font-weight: 850; letter-spacing: .12em; }
.gn-info-card h2 { color: var(--gn-ink); font-family: var(--gn-display); font-size: clamp(1.65rem, 2.4vw, 2.3rem); font-weight: 850; letter-spacing: -.03em; line-height: 1.02; margin: clamp(3rem, 7vw, 6rem) 0 0; text-transform: uppercase; }
.gn-info-card p { color: var(--gn-muted); line-height: 1.65; margin: 1rem 0 0; }
.gn-faq-list { display: grid; gap: 1px; max-width: 920px; }
.gn-faq-item { background: #fff; border: 1px solid var(--gn-line); }
.gn-faq-item summary { align-items: center; color: var(--gn-ink); cursor: pointer; display: flex; font-size: clamp(1rem, 2vw, 1.25rem); font-weight: 800; justify-content: space-between; list-style: none; padding: 1.35rem 1.5rem; }
.gn-faq-item summary::-webkit-details-marker { display: none; }
.gn-faq-item summary span { color: var(--gn-blue-deep); font-size: 1.5rem; transition: transform .2s ease; }
.gn-faq-item[open] summary span { transform: rotate(45deg); }
.gn-faq-item p { border-top: 1px solid var(--gn-line); color: var(--gn-muted); line-height: 1.7; margin: 0; padding: 1.25rem 1.5rem 1.5rem; }
.gn-order-tracking__grid { align-items: start; display: grid; gap: clamp(2rem, 7vw, 7rem); grid-template-columns: minmax(0, .72fr) minmax(320px, 1.28fr); }
.gn-order-tracking__intro h2 { color: var(--gn-ink); font-family: var(--gn-display); font-size: clamp(2.15rem, 3.5vw, 3.5rem); font-weight: 850; letter-spacing: -.04em; line-height: .98; margin: 0; text-transform: uppercase; }
.gn-order-tracking__intro > p:last-child { color: var(--gn-muted); line-height: 1.65; margin: 1.2rem 0 0; max-width: 38ch; }
.gn-order-tracking__form { background: #fff; border: 1px solid var(--gn-line); box-shadow: 0 22px 55px rgba(18,24,34,.07); padding: clamp(1.4rem, 4vw, 2.8rem); }
.gn-order-tracking__form .woocommerce-form-track-order { margin: 0; }
.gn-order-tracking__form .woocommerce-form-track-order > p:first-child { color: var(--gn-muted); line-height: 1.65; margin-top: 0; }
.gn-order-tracking__form .form-row { float: none; margin: 0 0 1rem; padding: 0; width: 100%; }
.gn-order-tracking__form label { color: var(--gn-ink); display: block; font-size: .74rem; font-weight: 850; letter-spacing: .06em; margin-bottom: .4rem; text-transform: uppercase; }
.gn-order-tracking__form input.input-text { background: var(--gn-paper); border: 1px solid var(--gn-control-line); box-shadow: none; min-height: 50px; width: 100%; }
.gn-order-tracking__form button.button { background: var(--gn-lime); border-color: var(--gn-lime); color: var(--gn-ink); min-height: 48px; padding-inline: 1.4rem; }
.gn-order-tracking__form button.button:hover { background: var(--gn-lime-deep); border-color: var(--gn-lime-deep); color: var(--gn-ink); }
.gn-info-cta { background: var(--gn-blue-deep); color: #fff; padding: clamp(4rem, 8vw, 7rem) 0; }
.gn-info-cta__grid { align-items: end; display: grid; gap: clamp(2rem, 7vw, 7rem); grid-template-columns: 1.15fr .85fr; }
.gn-info-cta h2 { color: #fff; font-family: var(--gn-display); font-size: clamp(2.3rem, 4vw, 3.8rem); font-weight: 850; letter-spacing: -.04em; line-height: .96; margin: 0; max-width: 13ch; text-transform: uppercase; }
.gn-info-cta .gn-eyebrow { color: var(--gn-lime); }
.gn-info-cta .gn-eyebrow span { background: #fff; }
.gn-info-cta__grid > div:last-child > p { color: rgba(255,255,255,.9); line-height: 1.65; margin: 0 0 1.4rem; max-width: 40ch; }
.gn-info-cta .gn-button { background: var(--gn-lime); border-color: var(--gn-lime); color: var(--gn-ink); }

/* Policy pages */
.gn-policy-page { background: var(--gn-paper); }
.gn-policy-hero { border-bottom: 1px solid var(--gn-line); overflow: hidden; position: relative; }
.gn-policy-hero::before { background-image: linear-gradient(rgba(18,24,34,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(18,24,34,.05) 1px, transparent 1px); background-size: 32px 32px; content: ""; inset: 0; pointer-events: none; position: absolute; }
.gn-policy-hero__grid { align-items: center; display: grid; gap: clamp(2rem, 7vw, 7rem); grid-template-columns: minmax(0, 1.15fr) minmax(240px, .45fr); min-height: 510px; padding-block: clamp(4rem, 8vw, 6.5rem); position: relative; }
.gn-policy-hero__copy { position: relative; z-index: 1; }
.gn-policy-hero h1 { color: var(--gn-ink); font-family: var(--gn-display); font-size: clamp(3rem, 5.25vw, 5rem); font-weight: 850; letter-spacing: -.04em; line-height: .95; margin: 0; max-width: 11ch; text-transform: uppercase; }
.gn-policy-hero__copy > p:last-child { color: var(--gn-muted); font-size: clamp(1rem, 1.5vw, 1.16rem); line-height: 1.7; margin: 1.5rem 0 0; max-width: 55ch; }
.gn-policy-hero__signal { align-items: end; aspect-ratio: 1; background: var(--gn-blue-deep); color: #fff; display: flex; justify-content: space-between; overflow: hidden; padding: clamp(1.2rem, 3vw, 2rem); position: relative; transform: rotate(-2deg); }
.gn-policy-hero__signal::before { border: 1px solid rgba(255,255,255,.42); content: ""; inset: 8%; position: absolute; transform: skewX(8deg); }
.gn-policy-hero__signal span { font-family: var(--gn-display); font-size: clamp(3rem, 6vw, 5.5rem); font-weight: 900; letter-spacing: -.08em; line-height: .8; position: relative; }
.gn-policy-hero__signal strong { color: var(--gn-lime); font-family: var(--gn-display); font-size: clamp(1rem, 2vw, 1.55rem); position: relative; }
.gn-policy-body { padding: clamp(4rem, 8vw, 7rem) 0; }
.gn-policy-body__grid { align-items: start; display: grid; gap: clamp(2.5rem, 7vw, 6.5rem); grid-template-columns: minmax(190px, .42fr) minmax(0, 1.58fr); }
.gn-policy-aside { border-top: 4px solid var(--gn-lime); position: sticky; top: 100px; padding-top: 1.25rem; }
.gn-policy-aside > p:not(.gn-eyebrow) { color: var(--gn-muted); line-height: 1.65; margin: 0 0 1.3rem; }
.gn-policy-content { background: #fff; border: 1px solid var(--gn-line); box-shadow: 0 22px 55px rgba(18,24,34,.06); color: #343b48; font-size: 1rem; line-height: 1.75; padding: clamp(1.5rem, 5vw, 4rem); }
.gn-policy-content > :first-child { margin-top: 0; }
.gn-policy-content > :last-child { margin-bottom: 0; }
.gn-policy-content h2, .gn-policy-content h3, .gn-policy-content h4 { color: var(--gn-ink); font-family: var(--gn-display); font-weight: 850; letter-spacing: -.025em; line-height: 1.08; }
.gn-policy-content h2 { border-top: 1px solid var(--gn-line); font-size: clamp(1.7rem, 3vw, 2.5rem); margin: 2.8rem 0 1rem; padding-top: 1.8rem; text-transform: uppercase; }
.gn-policy-content h3 { font-size: 1.35rem; margin: 2rem 0 .8rem; }
.gn-policy-content p, .gn-policy-content li { overflow-wrap: anywhere; }
.gn-policy-content ul, .gn-policy-content ol { margin: 1rem 0 1.5rem 1.2rem; }
.gn-policy-content li { margin-bottom: .65rem; padding-left: .3rem; }
.gn-policy-content a { color: var(--gn-blue-deep); font-weight: 750; text-decoration: underline; text-underline-offset: 3px; }

/* Motion is additive and disabled for reduced-motion users. */
.gn-reveal { opacity: 1; transform: none; transition: opacity .6s ease, transform .6s cubic-bezier(.2,.8,.2,1); }
html.gn-js .gn-reveal { opacity: 0; transform: translateY(18px); }
html.gn-js .gn-reveal.is-visible { opacity: 1; transform: translateY(0); }
.gn-model-card:nth-child(2), .gn-job-card:nth-child(2) { transition-delay: .06s; }
.gn-model-card:nth-child(3), .gn-job-card:nth-child(3) { transition-delay: .12s; }
.gn-model-card:nth-child(4), .gn-job-card:nth-child(4) { transition-delay: .18s; }
.gn-model-card:nth-child(5) { transition-delay: .24s; }
.gn-model-card:nth-child(6) { transition-delay: .3s; }

@media (max-width: 849px) {
  .gn-hero { min-height: auto; }
  .gn-hero__grid { grid-template-columns: 1fr; padding-top: 4.4rem; }
  .gn-hero__visual { min-height: 430px; }
  .gn-hero__halo { height: min(84vw, 460px); width: min(84vw, 460px); }
  .gn-job-grid { grid-template-columns: repeat(2, 1fr); }
  .gn-model-grid { grid-template-columns: repeat(2, 1fr); }
  .gn-finder__grid, .gn-team-cta__inner { grid-template-columns: 1fr; }
  .gn-about__grid { grid-template-columns: .7fr 1.3fr; gap: 2.5rem; }
  .gn-footer__grid { grid-template-columns: 1fr; }
  .gn-info-hero__grid { grid-template-columns: minmax(0, 1.25fr) minmax(220px, .55fr); }
  .gn-info-grid { grid-template-columns: 1fr; }
  .gn-info-card { min-height: 230px; }
  .gn-order-tracking__grid { grid-template-columns: 1fr; }
  .gn-info-cta__grid { grid-template-columns: 1fr; }
  .gn-policy-hero__grid { grid-template-columns: minmax(0, 1.2fr) minmax(210px, .45fr); }
  .gn-policy-body__grid { grid-template-columns: 1fr; }
  .gn-policy-aside { position: static; }
}

@media (max-width: 549px) {
  .gn-shell { max-width: calc(100% - 32px); width: 100%; }
  .gn-section { padding: 4.25rem 0; }
  .gn-hero__grid { gap: 1.5rem; padding-block: 2.5rem 2.8rem; }
  .gn-hero h1 {
    font-size: clamp(2rem, 9.6vw, 2.45rem);
    line-height: .97;
    max-width: 100%;
    overflow-wrap: normal;
    white-space: normal;
    word-break: normal;
  }
  .gn-hero__lede { font-size: .95rem; line-height: 1.55; margin-top: 1.15rem; }
  .gn-hero .gn-actions { gap: .85rem; margin-top: 1.55rem; }
  .gn-hero .gn-button { justify-content: center; width: 100%; }
  .gn-hero__proof { display: grid; gap: .55rem 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 1.55rem; }
  .gn-hero__proof li { align-items: flex-start; font-size: .65rem; line-height: 1.35; }
  .gn-hero__visual { min-height: 300px; }
  .gn-hero__halo { height: min(76vw, 330px); right: -2%; width: min(76vw, 330px); }
  .gn-hero__blueprint { font-size: 4rem; left: -.25rem; }
  .gn-hero__tag { bottom: .75rem; font-size: .58rem; left: .5rem; padding: .62rem .72rem; }
  .gn-jobs { padding-block: 3.6rem; }
  .gn-section h2 { font-size: 1.95rem; line-height: 1; }
  .gn-section__split { align-items: start; flex-direction: column; }
  .gn-finder__match { gap: .75rem; grid-template-columns: 82px minmax(0, 1fr); padding: .65rem; }
  .gn-finder__match-link.button { justify-content: center; width: 100%; }
  .gn-job-grid, .gn-model-grid { grid-template-columns: 1fr; }
  .gn-job-card { min-height: 180px; }
  body.gripnexo-theme button.woot-widget-bubble.woot-elements--right {
    bottom: 18px !important;
    height: 56px !important;
    right: 18px !important;
    width: 56px !important;
  }
  .gn-model-card__content { min-height: 194px; }
  .gn-about__grid { grid-template-columns: 1fr; }
  .gn-about__guide { padding: 1.4rem; }
  .gn-about__copy h2 { font-size: clamp(1.9rem, 9vw, 2.35rem); line-height: 1; }
  .gn-about__copy > p:not(.gn-eyebrow) { font-size: .94rem; line-height: 1.62; }
  .gn-footer__links { gap: 1.4rem; grid-template-columns: repeat(2, 1fr); }
  .gn-footer__bottom { align-items: start; flex-direction: column; gap: .55rem; }
  .gn-info-hero, .gn-info-hero__grid { min-height: auto; }
  .gn-info-hero__grid { grid-template-columns: 1fr; padding-block: 4rem; }
  .gn-info-hero h1 { font-size: clamp(2.6rem, 12.5vw, 3.5rem); max-width: 100%; }
  .gn-info-hero__signal { justify-self: end; max-width: 230px; width: 68%; }
  .gn-info-content { padding: 3.5rem 0; }
  .gn-info-card { min-height: 210px; }
  .gn-info-card h2 { margin-top: 3.5rem; }
  .gn-policy-hero__grid { grid-template-columns: 1fr; min-height: auto; padding-block: 4rem; }
  .gn-policy-hero h1 { font-size: clamp(2.6rem, 12.5vw, 3.5rem); max-width: 100%; }
  .gn-policy-hero__signal { justify-self: end; max-width: 210px; width: 62%; }
  .gn-policy-content { padding: 1.5rem 1.2rem; }
  body.gripnexo-theme .category-page-row { padding: 2rem 0 3.5rem; width: calc(100% - 32px); }
  .gn-shop-empty { min-height: 420px; padding: 2rem 1.35rem; }
  .gn-shop-empty::after { height: 210px; right: -25%; top: -7%; width: 210px; }
  body.gripnexo-theme.woocommerce-cart .woocommerce,
  body.gripnexo-theme.woocommerce-account .woocommerce { padding: 2rem 16px 3.5rem; }
  body.gripnexo-theme.single-product .product-main { padding: 1.5rem 0 3.5rem; }
  body.gripnexo-theme.single-product .product-main > .row.content-row { display: block; margin: 0; max-width: 100%; width: 100%; }
  body.gripnexo-theme.single-product .product-gallery,
  body.gripnexo-theme.single-product .product-info { display: block; flex-basis: 100%; max-width: 100%; padding-left: 16px; padding-right: 16px; width: 100%; }
  body.gripnexo-theme.single-product .product-gallery .row,
  body.gripnexo-theme.single-product .product-thumbnails { margin-left: 0; margin-right: 0; max-width: 100%; width: 100%; }
  body.gripnexo-theme.single-product .product-thumbnails .col { flex-basis: 25%; max-width: 25%; min-width: 25%; }
  body.gripnexo-theme.single-product .product-info { padding-top: 2rem; }
  body.gripnexo-theme.single-product .product-info .product-title {
    font-size: clamp(1.65rem, 7.2vw, 2.15rem);
    max-width: 100%;
    overflow-wrap: break-word;
    white-space: normal;
    word-break: normal;
  }
  body.gripnexo-theme.single-product table.variations,
  body.gripnexo-theme.single-product table.variations tbody { display: block; width: 100%; }
  body.gripnexo-theme.single-product table.variations tr { display: grid; grid-template-columns: 1fr; margin-bottom: .85rem; width: 100%; }
  body.gripnexo-theme.single-product table.variations th,
  body.gripnexo-theme.single-product table.variations td { display: block; padding: .2rem 0; width: 100%; }
  body.gripnexo-theme.single-product .single_variation_wrap,
  body.gripnexo-theme.single-product .woocommerce-variation-add-to-cart { max-width: 100%; }
  body.gripnexo-theme.single-product .woocommerce-variation-add-to-cart {
    align-items: stretch;
    display: grid;
    gap: .75rem;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
  }
  body.gripnexo-theme.single-product .quantity.buttons_added {
    align-items: center;
    background: transparent;
    border: 0;
    box-shadow: none;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 44px 48px 44px;
    height: 48px;
    margin: 0;
    min-width: 0;
    overflow: visible;
    width: 100%;
  }
  body.gripnexo-theme.single-product .quantity.buttons_added::before {
    color: var(--gn-ink);
    content: "Quantity";
    font-size: .75rem;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  body.gripnexo-theme.single-product .quantity.buttons_added input.minus,
  body.gripnexo-theme.single-product .quantity.buttons_added input.plus,
  body.gripnexo-theme.single-product .quantity.buttons_added input.qty {
    background: transparent;
    border: 0;
    box-shadow: none;
    color: var(--gn-ink);
    height: 44px;
    line-height: 42px;
    margin: 0;
    min-width: 0;
    padding: 0;
    text-align: center;
  }
  body.gripnexo-theme.single-product .quantity.buttons_added input.minus,
  body.gripnexo-theme.single-product .quantity.buttons_added input.plus {
    background: #fff;
    border: 1px solid var(--gn-control-line);
    border-radius: 50%;
    font-size: 1rem;
    font-weight: 700;
    justify-self: center;
    width: 44px;
  }
  body.gripnexo-theme.single-product .quantity.buttons_added input.qty {
    -moz-appearance: textfield;
    font-size: 1rem;
    width: 48px;
  }
  body.gripnexo-theme.single-product .quantity.buttons_added input.qty::-webkit-outer-spin-button,
  body.gripnexo-theme.single-product .quantity.buttons_added input.qty::-webkit-inner-spin-button {
    margin: 0;
    -webkit-appearance: none;
  }
  html body.gripnexo-theme.single-product .product-main .product-info form.cart button.single_add_to_cart_button.button {
    height: 54px;
    margin: 0;
    max-height: none;
    min-height: 54px;
    width: 100%;
  }
  body.gripnexo-theme.single-product .product-footer > .container { padding-inline: 16px; }
  .gn-quote { padding: 3.5rem 16px 5rem; }
  .gn-quote__intro h1 { font-size: clamp(2.45rem, 12vw, 3.25rem); max-width: 100%; }
  .gn-quote-empty { grid-template-columns: 1fr; }
  .gn-quote-empty__signal { min-height: 185px; }
  .gn-quote-empty > div:last-child { padding: 1.75rem 1.25rem 2rem; }
  .gn-quote-empty .gn-actions { align-items: flex-start; flex-direction: column; gap: 1rem; margin-top: 1.75rem; }
  .gn-quote table.shop_table td { padding: .75rem; }
}

@media (max-width: 359px) {
  .gn-finder__match { grid-template-columns: 1fr; }
  .gn-finder__match-image { width: 88px; }
  .gn-variation-swatches[data-attribute="attribute_pa_pair-quantity"] { gap: .45rem; }
  .gn-variation-swatches[data-attribute="attribute_pa_pair-quantity"] .gn-variation-swatch {
    flex: 1 1 0;
    font-size: .7rem;
    min-width: 0;
    padding-inline: .3rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .gn-reveal { opacity: 1; transform: none; }
}
