/* Shared commerce shell: retain every native WooCommerce template and behaviour. */
body.gsp-commerce-presentation {
  --gsp-shop-ink: #20221f;
  --gsp-shop-muted: #5b6057;
  --gsp-shop-line: #dfe1dc;
  --gsp-shop-paper: #f4f5f2;
  --gsp-shop-orange: #ff8200;
}
/* Catalogue presentation remains isolated from product, cart, checkout and account content. */
body.gsp-shop-presentation {
  color: var(--gsp-shop-ink);
  background: #fff;
  font-family: "Century Gothic", Arial, Helvetica, sans-serif;
  font-size: 18px;
  line-height: 1.65;
}
/* These are direct children in the existing Gestock theme, outside our shell. */
body.gsp-commerce-presentation > header.customHeader__main,
body.gsp-commerce-presentation > footer:not(.gsp-commerce-shell) { display: none !important; }
body.gsp-commerce-presentation > a.btn-aide,
body.gsp-commerce-presentation > .circle-container { display: none !important; }
body.gsp-commerce-presentation .gsp-commerce-shell {
  --font-sans: "Century Gothic", Arial, Helvetica, sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  --spacing: 4px;
  --background: #fff;
  --foreground: #20221f;
  --card: #fff;
  --card-foreground: #20221f;
  --popover: #fff;
  --popover-foreground: #20221f;
  --primary: #ff8200;
  --primary-foreground: #20221f;
  --secondary: #f2f3f0;
  --secondary-foreground: #20221f;
  --muted: #f2f3f0;
  --muted-foreground: #61635f;
  --accent: #ffebd7;
  --accent-foreground: #20221f;
  --destructive: #b52b21;
  --border: #dfe1dc;
  --input: #dfe1dc;
  --ring: #b54c00;
  --radius: 6px;
  --radius-md: 6px;
  --radius-2xl: 16px;
  --radius-4xl: 32px;
  --default-font-family: "Century Gothic", Arial, Helvetica, sans-serif;
  --default-mono-font-family: var(--font-mono);
  --color-popover: var(--popover);
  --color-border: var(--border);
  width: 100%;
  min-width: 0;
  color: var(--gsp-shop-ink);
  font-family: "Century Gothic", Arial, Helvetica, sans-serif;
  font-size: 18px;
  line-height: 1.65;
}
body.gsp-commerce-presentation .gsp-commerce-shell .header { position: relative; top: auto; }
body.gsp-commerce-presentation .gsp-commerce-shell .footer { margin-top: 0; }
body.gsp-commerce-presentation .gsp-commerce-shell .wrap { width: min(100% - 48px, 1320px); max-width: 1320px; margin-inline: auto; }
body.gsp-commerce-presentation .gsp-commerce-shell .gsp-preview-banner { background: #fff4cf; border-bottom: 1px solid #dcc98d; padding: 12px 24px; color: #30291c; font: 14px/1.5 Arial, sans-serif; }
body.gsp-commerce-presentation .gsp-commerce-shell .gsp-preview-banner a { margin-left: 12px; color: #714200; text-decoration: underline; }
body.gsp-commerce-presentation .gsp-commerce-shell .desktop-nav { gap: 19px; }
body.gsp-commerce-presentation .gsp-commerce-shell .gsp-nav-group { position: relative; }
body.gsp-commerce-presentation .gsp-commerce-shell .gsp-nav-group > summary { display: flex; align-items: center; gap: 6px; padding: 12px 0; list-style: none; cursor: pointer; font: inherit; white-space: nowrap; }
body.gsp-commerce-presentation .gsp-commerce-shell .gsp-nav-group > summary::-webkit-details-marker { display: none; }
body.gsp-commerce-presentation .gsp-commerce-shell .gsp-nav-group > summary:hover,
body.gsp-commerce-presentation .gsp-commerce-shell .gsp-nav-group[open] > summary { color: #a94600; }
body.gsp-commerce-presentation .gsp-commerce-shell .gsp-nav-group > summary > span { font-family: Arial, sans-serif; transition: transform .15s; }
body.gsp-commerce-presentation .gsp-commerce-shell .gsp-nav-group[open] > summary > span { transform: rotate(180deg); }
body.gsp-commerce-presentation .gsp-commerce-shell .gsp-nav-group > summary:focus-visible,
body.gsp-commerce-presentation .gsp-commerce-shell .gsp-nav-panel a:focus-visible { outline: 3px solid #b54c00; outline-offset: 3px; }
body.gsp-commerce-presentation .gsp-commerce-shell .gsp-nav-panel { position: absolute; z-index: 35; top: calc(100% + 8px); left: -16px; min-width: 250px; padding: 8px; border: 1px solid #d9dcd5; border-radius: 6px; background: #fff; color: var(--gsp-shop-ink); box-shadow: 0 12px 26px #20221f1f; }
body.gsp-commerce-presentation .gsp-commerce-shell .gsp-shop-nav-panel { min-width: 275px; }
body.gsp-commerce-presentation .gsp-commerce-shell .gsp-nav-panel a { display: block; padding: 11px 12px; border-radius: 3px; font-size: 16px; line-height: 1.4; white-space: nowrap; }
body.gsp-commerce-presentation .gsp-commerce-shell .gsp-nav-panel a:hover,
body.gsp-commerce-presentation .gsp-commerce-shell .gsp-nav-panel a:focus-visible { background: #f2f3f0; }
body.gsp-commerce-presentation .gsp-commerce-shell .gs-menu-dialog { max-height: 100vh; max-height: 100dvh; overflow-y: auto; overscroll-behavior: contain; scroll-padding-block: 24px; }
body.gsp-commerce-presentation .gsp-commerce-shell .gs-menu-dialog nav a { min-height: 48px; padding: 14px 0; font-size: 18px; }
body.gsp-commerce-presentation .gsp-commerce-shell .gs-menu-dialog nav a.gsp-mobile-subnav { padding-left: 20px; color: #535b4c; font-size: 17px; }
body.gsp-commerce-presentation .gsp-commerce-shell .gsp-footer-credits { margin: 0; padding: 0 0 22px; color: #aeb6a6; font-size: 14px; line-height: 1.6; }
body.gsp-commerce-presentation .gsp-commerce-shell .gsp-footer-credits a { text-decoration: underline; text-underline-offset: 3px; }
/* The historical theme uses a 10px root. Keep the shell legible without changing
   the root size used by WooCommerce and third-party product configurators. */
body.gsp-commerce-presentation .gsp-commerce-shell .topbar { font-size: 14px; }
body.gsp-commerce-presentation .gsp-commerce-shell .desktop-nav,
body.gsp-commerce-presentation .gsp-commerce-shell .desktop-nav a,
body.gsp-commerce-presentation .gsp-commerce-shell .nav-shop { font-size: 14px; }
body.gsp-commerce-presentation .gsp-commerce-shell .nav-shop span { font-size: inherit; }
body.gsp-commerce-presentation .gsp-commerce-shell .gs-menu-dialog h2,
body.gsp-commerce-presentation .gsp-commerce-shell .mobile-sheet [data-slot="sheet-title"] { font-size: 24px; }
body.gsp-commerce-presentation .gsp-commerce-shell .mobile-sheet [data-slot="sheet-description"] { font-size: 14px; }
body.gsp-commerce-presentation .gsp-commerce-shell .mobile-sheet nav a { font-size: 18px; }
body.gsp-commerce-presentation .gsp-commerce-shell .mobile-sheet nav a.gsp-mobile-subnav { font-size: 17px; }
body.gsp-commerce-presentation .gsp-commerce-shell .mobile-sheet .button { font-size: 16px; }
body.gsp-commerce-presentation .gsp-commerce-shell .footer-brand p { font-size: 14px; }
body.gsp-commerce-presentation .gsp-commerce-shell .footer h3 { font-size: 16px; }
body.gsp-commerce-presentation .gsp-commerce-shell .footer nav,
body.gsp-commerce-presentation .gsp-commerce-shell .footer-hours dl,
body.gsp-commerce-presentation .gsp-commerce-shell .footer-contact a { font-size: 14px; }
body.gsp-commerce-presentation .gsp-commerce-shell .footer-bottom,
body.gsp-commerce-presentation .gsp-commerce-shell .footer-bottom nav { font-size: 13px; }
body.gsp-shop-presentation > .main { min-width: 0; padding-top: 0; font: inherit; }
body.gsp-shop-presentation > .main > .container { width: min(100% - 48px, 1320px); max-width: 1320px; margin: 0 auto; padding: 0; }
body.gsp-shop-presentation > .main > .container > .row { margin-inline: 0; }
body.gsp-shop-presentation > .main > .container > .row > [class*="col-"] { min-width: 0; padding-inline: 0; }
body.gsp-shop-presentation > .main > .entete-page { min-height: 0; height: auto; padding: 48px 0 42px; margin: 0 0 30px; border-bottom: 1px solid var(--gsp-shop-line); background: var(--gsp-shop-paper); }
body.gsp-shop-presentation > .main > .entete-page .container-fluid { width: min(100% - 48px, 1320px); max-width: 1320px; padding: 0; margin: 0 auto; }
body.gsp-shop-presentation > .main > .entete-page .row { margin: 0; }
body.gsp-shop-presentation > .main > .entete-page .col-12 { padding: 0; }
body.gsp-shop-presentation > .main > .entete-page .content { padding: 0; }
body.gsp-shop-presentation > .main > .entete-page h1 { margin: 0; padding: 0; max-width: 1040px; color: var(--gsp-shop-ink); font-family: inherit; font-size: clamp(36px, 4vw, 58px); line-height: 1.15; font-weight: 700; letter-spacing: -.04em; text-transform: none; overflow-wrap: anywhere; }
body.gsp-shop-presentation > .main > .entete-page h1.line::before { display: none; }
body.gsp-shop-presentation #main { min-width: 0; padding: 0 0 70px; font-family: inherit; font-size: 18px; line-height: 1.65; }
body.gsp-shop-presentation #main .woocommerce-breadcrumb { margin: 0 0 28px; color: var(--gsp-shop-muted); font-family: inherit; font-size: 16px; line-height: 1.6; }
body.gsp-shop-presentation #main .woocommerce-breadcrumb a { color: #944200; text-decoration: underline; text-underline-offset: 4px; }
body.gsp-shop-presentation #main .woocommerce-products-header h1:empty { display: none; }
body.gsp-shop-presentation #main .woocommerce-products-header h1:not(:empty) { margin: 0 0 26px; font-family: inherit; font-size: 30px; line-height: 1.3; text-transform: none; }
body.gsp-shop-presentation #main .term-description { max-width: 850px; margin-bottom: 28px; font-size: 18px; line-height: 1.75; }
body.gsp-shop-presentation #main .woocommerce-notices-wrapper { font-size: 18px; }
body.gsp-shop-presentation .wpFunction-shop-wrapper { display: grid; grid-template-columns: 280px minmax(0, 1fr); align-items: start; gap: 32px; width: 100%; margin: 0; }
body.gsp-shop-presentation .filterWPFunction { width: auto; min-width: 0; margin: 0; padding: 22px 18px; border: 1px solid var(--gsp-shop-line); border-radius: 8px; background: var(--gsp-shop-paper); }
body.gsp-shop-presentation .filterWPFunction .filterHeading { margin: 0 0 23px; color: var(--gsp-shop-ink); font-family: inherit; font-size: 22px; font-weight: 700; line-height: 1.35; text-transform: none; }
body.gsp-shop-presentation .wcpf-filter { max-width: 100%; color: var(--gsp-shop-ink); font-family: inherit; font-size: 18px; line-height: 1.5; }
body.gsp-shop-presentation .wcpf-filter .wcpf-field-title { margin-bottom: 12px; color: var(--gsp-shop-ink); font-family: inherit; font-size: 18px; font-weight: 700; line-height: 1.45; text-transform: none; }
body.gsp-shop-presentation .wcpf-filter .wcpf-field-title .text { font: inherit; text-transform: none; }
body.gsp-shop-presentation .wcpf-filter .wcpf-field-item { margin-bottom: 26px; }
body.gsp-shop-presentation .wcpf-filter .wcpf-field-item:last-child { margin-bottom: 0; }
body.gsp-shop-presentation .wcpf-filter .wcpf-item-label { min-height: 40px; align-items: center; }
body.gsp-shop-presentation .wcpf-filter .wcpf-title-container { min-width: 0; font-size: 17px; line-height: 1.5; overflow-wrap: anywhere; }
body.gsp-shop-presentation .wcpf-filter .wcpf-product-counts { margin-left: 4px; color: var(--gsp-shop-muted); font-size: 15px; }
body.gsp-shop-presentation .wcpf-filter .wcpf-scrollbar .wcpf-content { max-height: 285px !important; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #a8afa0 transparent; }
body.gsp-shop-presentation .wcpf-filter .wcpf-input-container { flex-shrink: 0; }
body.gsp-shop-presentation .wcpf-filter input[type="number"],
body.gsp-shop-presentation .wcpf-filter input[type="text"] { min-width: 0; max-width: 100%; min-height: 44px; padding: 8px; border: 1px solid #adb5a5; border-radius: 4px; background: #fff; color: var(--gsp-shop-ink); font-family: inherit; font-size: 18px; line-height: 1.4; }
body.gsp-shop-presentation .wcpf-filter .wcpf-field-button button { min-height: 46px; padding: 11px 15px; border: 1px solid #aeb5a5; border-radius: 4px; color: var(--gsp-shop-ink); background: #fff; font-family: inherit; font-size: 17px; line-height: 1.4; }
body.gsp-shop-presentation .wpFunction-products-wrapper { width: auto; min-width: 0; margin: 0; }
body.gsp-shop-presentation .wpFunction-products-wrapper .woocommerce-result-count { float: left; max-width: 100%; margin: 5px 16px 24px 0; padding: 0; color: var(--gsp-shop-muted); font-family: inherit; font-size: 18px; line-height: 1.5; }
body.gsp-shop-presentation .wpFunction-products-wrapper .woocommerce-ordering { float: right; max-width: 100%; margin: 0 0 24px; padding: 0; }
body.gsp-shop-presentation .woocommerce-ordering select { width: 100%; max-width: 100%; min-height: 46px; padding: 10px 36px 10px 12px; border: 1px solid #adb5a5; border-radius: 5px; color: var(--gsp-shop-ink); background: #fff; font-family: inherit; font-size: 17px; line-height: 1.4; }
body.gsp-shop-presentation .wpFunction-products-wrapper ul.products { display: grid; clear: both; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 20px; margin: 0; padding: 0; list-style: none; }
body.gsp-shop-presentation .wpFunction-products-wrapper ul.products::before,
body.gsp-shop-presentation .wpFunction-products-wrapper ul.products::after { display: none; content: none; }
body.gsp-shop-presentation .wpFunction-products-wrapper ul.products li.product { display: flex; flex-direction: column; float: none; clear: none; width: auto; min-width: 0; margin: 0; padding: 0 0 20px; border: 1px solid var(--gsp-shop-line); border-radius: 8px; overflow: hidden; background: #fff; text-align: left; transition: border-color .15s, box-shadow .15s; }
body.gsp-shop-presentation .wpFunction-products-wrapper ul.products li.product:hover { border-color: #a6ae9b; box-shadow: 0 6px 22px #20221f0c; }
body.gsp-shop-presentation .wpFunction-products-wrapper ul.products li.product a.woocommerce-LoopProduct-link { display: block; color: var(--gsp-shop-ink); text-decoration: none; }
body.gsp-shop-presentation .wpFunction-products-wrapper ul.products li.product a.woocommerce-LoopProduct-link > img.attachment-woocommerce_thumbnail:not(.secondary-image),
body.gsp-shop-presentation .wpFunction-products-wrapper ul.products li.product a.woocommerce-LoopProduct-link > img.woocommerce-placeholder { display: block; width: 100%; height: auto; aspect-ratio: 1; margin: 0 0 18px; padding: 15px; object-fit: contain; border: 0; border-bottom: 1px solid #edf0e8; background: #fff; }
body.gsp-shop-presentation .wpFunction-products-wrapper ul.products li.product .woocommerce-loop-product__title { margin: 0 18px 12px; padding: 0; color: var(--gsp-shop-ink); font-family: inherit; font-size: 18px; font-weight: 700; line-height: 1.5; letter-spacing: -.02em; text-transform: none; overflow-wrap: anywhere; }
body.gsp-shop-presentation .wpFunction-products-wrapper ul.products li.product .price { display: block; margin: 0 18px 16px; padding: 0; color: #944200; font-family: inherit; font-size: 20px; font-weight: 700; line-height: 1.5; }
body.gsp-shop-presentation .wpFunction-products-wrapper ul.products li.product .price del { color: var(--gsp-shop-muted); font-size: 16px; font-weight: 400; }
body.gsp-shop-presentation .wpFunction-products-wrapper ul.products li.product .price ins { background: transparent; text-decoration: none; }
body.gsp-shop-presentation .wpFunction-products-wrapper ul.products li.product .shop_color-swatches { display: flex !important; align-items: center; flex-wrap: wrap; gap: 8px !important; min-height: 28px; margin: 0 18px 18px; padding: 2px 0; }
body.gsp-shop-presentation .wpFunction-products-wrapper ul.products li.product .shop_color-swatches:empty { display: none !important; min-height: 0; margin: 0; padding: 0; }
body.gsp-shop-presentation .wpFunction-products-wrapper ul.products li.product .shop_color-swatch { display: block; flex: 0 0 24px; box-sizing: border-box; width: 24px !important; height: 24px !important; border: 2px solid #858c80 !important; border-radius: 50%; box-shadow: 0 0 0 2px #fff; }
body.gsp-shop-presentation .wpFunction-products-wrapper ul.products li.product > a.button[class*="product_type_"],
body.gsp-shop-presentation .wpFunction-products-wrapper ul.products li.product > a.button[class*="product_type_"]:visited { display: flex; align-items: center; justify-content: center; align-self: stretch; width: auto; margin: auto 18px 0; padding: 12px 14px; min-height: 48px; border: 1px solid #a94600; border-radius: 4px; background: var(--gsp-shop-orange); color: var(--gsp-shop-ink) !important; box-shadow: 0 1px 0 #20221f1f; font-family: inherit; font-size: 17px; font-weight: 700; line-height: 1.4; text-align: center; text-transform: none; text-decoration: none; }
body.gsp-shop-presentation .wpFunction-products-wrapper ul.products li.product > a.button[class*="product_type_"]:hover,
body.gsp-shop-presentation .wpFunction-products-wrapper ul.products li.product > a.button[class*="product_type_"]:focus-visible { border-color: #944200; background: #ff9729; color: var(--gsp-shop-ink) !important; }
body.gsp-shop-presentation .wpFunction-products-wrapper ul.products li.product .added_to_cart { margin: 10px 18px 0; color: #944200; font-size: 17px; text-decoration: underline; }
body.gsp-shop-presentation .woocommerce-pagination { clear: both; margin: 36px 0 0; padding: 0; }
body.gsp-shop-presentation .woocommerce-pagination ul.page-numbers { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; border: 0; margin: 0; padding: 0; }
body.gsp-shop-presentation .woocommerce-pagination ul.page-numbers li { float: none; margin: 0; padding: 0; border: 0; }
body.gsp-shop-presentation .woocommerce-pagination ul.page-numbers li a,
body.gsp-shop-presentation .woocommerce-pagination ul.page-numbers li span { display: flex; align-items: center; justify-content: center; min-width: 44px; min-height: 46px; padding: 10px; border: 1px solid var(--gsp-shop-line); border-radius: 4px; background: #fff; color: var(--gsp-shop-ink); font-family: inherit; font-size: 18px; line-height: 1.3; }
body.gsp-shop-presentation .woocommerce-pagination ul.page-numbers li .current { border-color: var(--gsp-shop-ink); background: var(--gsp-shop-ink); color: #fff; }
body.gsp-shop-presentation .woocommerce-pagination ul.page-numbers li a:hover { border-color: #a94600; color: #944200; }
body.gsp-shop-presentation #main a:focus-visible,
body.gsp-shop-presentation #main button:focus-visible,
body.gsp-shop-presentation #main input:focus-visible,
body.gsp-shop-presentation #main select:focus-visible { outline: 3px solid #a94600; outline-offset: 3px; }
@media (min-width: 1600px) {
  body.gsp-commerce-presentation .gsp-commerce-shell .wrap,
  body.gsp-shop-presentation > .main > .container,
  body.gsp-shop-presentation > .main > .entete-page .container-fluid { width: min(100% - 64px, 1480px); max-width: 1480px; }
  body.gsp-shop-presentation .wpFunction-products-wrapper ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 1100px) {
  body.gsp-commerce-presentation .gsp-commerce-shell .desktop-nav { display: none; }
  body.gsp-commerce-presentation .gsp-commerce-shell .mobile-menu { display: block; }
  body.gsp-shop-presentation .wpFunction-shop-wrapper { grid-template-columns: 250px minmax(0, 1fr); gap: 24px; }
  body.gsp-shop-presentation .wpFunction-products-wrapper ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.gsp-shop-presentation .wpFunction-products-wrapper .woocommerce-result-count,
  body.gsp-shop-presentation .wpFunction-products-wrapper .woocommerce-ordering { float: none; width: 100%; margin: 0 0 18px; }
}
@media (max-width: 800px) {
  body.gsp-commerce-presentation .gsp-commerce-shell .wrap,
  body.gsp-shop-presentation > .main > .container,
  body.gsp-shop-presentation > .main > .entete-page .container-fluid { width: calc(100% - 36px); }
  body.gsp-shop-presentation > .main > .entete-page { padding: 32px 0; margin-bottom: 24px; }
  body.gsp-shop-presentation #main { padding-bottom: 48px; }
  body.gsp-shop-presentation .wpFunction-shop-wrapper { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  body.gsp-shop-presentation .filterWPFunction { padding: 20px; }
  body.gsp-shop-presentation .wcpf-filter .wcpf-scrollbar .wcpf-content { max-height: 220px !important; }
  body.gsp-shop-presentation .wpFunction-products-wrapper ul.products { gap: 20px 16px; }
}
@media (max-width: 540px) {
  body.gsp-shop-presentation .wpFunction-products-wrapper ul.products { grid-template-columns: minmax(0, 1fr); }
  body.gsp-shop-presentation .wpFunction-products-wrapper ul.products li.product a.woocommerce-LoopProduct-link > img.attachment-woocommerce_thumbnail:not(.secondary-image),
  body.gsp-shop-presentation .wpFunction-products-wrapper ul.products li.product a.woocommerce-LoopProduct-link > img.woocommerce-placeholder { max-height: 360px; }
  body.gsp-shop-presentation .woocommerce-pagination ul.page-numbers { gap: 5px; }
  body.gsp-shop-presentation .woocommerce-pagination ul.page-numbers li a,
  body.gsp-shop-presentation .woocommerce-pagination ul.page-numbers li span { min-width: 40px; min-height: 44px; padding: 8px; }
}
@media (max-width: 360px) {
  body.gsp-commerce-presentation .gsp-commerce-shell-header .nav-shop { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  body.gsp-shop-presentation .wpFunction-products-wrapper ul.products li.product { transition: none; }
}
