/* ==========================================================================
   GeneriK — système graphique
   Titres (h1 à h6) : Birthstone · Tout le reste : Jost
   Rose = signature (accents, action principale) · Fond blanc / bleu très pâle
   ========================================================================== */
:root {
  --gk-accent: var(--wp--preset--color--american-maple, #ef5976);
  --gk-accent-strong: var(--wp--preset--color--strong-rose, #f41950);
  --gk-white: #fff;
  --gk-surface: var(--wp--preset--color--american-diamond, #f1f5f9);
  --gk-surface-alt: var(--wp--preset--color--pale-blue, #dbe5f0);
  --gk-card: var(--gk-surface);
  --gk-ink: var(--wp--preset--color--rich-black, #000c15);
  /* Texte secondaire : Slate Gray n'atteint pas 4,5:1 sur blanc, elle reste réservée au fond sombre */
  --gk-ink-soft: var(--wp--preset--color--tranquil-black, #586578);
  --gk-muted: var(--wp--preset--color--muted, #737f91);
  --gk-line: var(--wp--preset--color--line, #c9d4e0);
  --gk-heading: var(--wp--preset--font-family--heading, Birthstone, Georgia, serif);
  --gk-sans: var(--wp--preset--font-family--sans, Jost, Arial, sans-serif);
  --gk-max: 1320px;
  --gk-gutter: clamp(1.25rem, 4vw, 2.5rem);
  --gk-section: clamp(3.5rem, 7vw, 6rem);
  --gk-edge: max(var(--gk-gutter), calc((100vw - var(--gk-max)) / 2 + var(--gk-gutter)));
  /* Échelle typographique */
  --gk-fs-h1: clamp(2.6rem, 4.4vw, 4.25rem);
  --gk-fs-h2: clamp(2rem, 3vw, 2.8rem);
  --gk-fs-h3: clamp(1.5rem, 2vw, 1.85rem);
  --gk-fs-lead: clamp(1.2rem, 1.6vw, 1.45rem);
  --gk-fs-body: 1rem;
  --gk-fs-small: 0.875rem;
  --gk-fs-label: 0.75rem;
  /* Icônes (masques SVG, couleur = currentColor) */
  --i-truck: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M2 6h11v10H2zM13 9h4.5l3.5 3.5V16h-8z'/%3E%3Ccircle cx='6' cy='17.5' r='1.8' fill='%23fff'/%3E%3Ccircle cx='17' cy='17.5' r='1.8' fill='%23fff'/%3E%3C/svg%3E");
  --i-box: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M12 2.5l8.5 4.5v10L12 21.5 3.5 17V7z'/%3E%3Cpath d='M3.5 7L12 11.5 20.5 7M12 11.5v10M7.8 4.8l8.4 4.5'/%3E%3C/svg%3E");
  --i-chat: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M4 14v-2a8 8 0 0116 0v2'/%3E%3Crect x='3' y='13' width='4' height='6' rx='1.5'/%3E%3Crect x='17' y='13' width='4' height='6' rx='1.5'/%3E%3Cpath d='M19 19c0 1.5-2 2.5-5 2.5'/%3E%3C/svg%3E");
  --i-lock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linejoin='round'%3E%3Crect x='4.5' y='10.5' width='15' height='11' rx='1.5'/%3E%3Cpath d='M8 10.5V7a4 4 0 018 0v3.5M12 14.5v3'/%3E%3C/svg%3E");
  --i-bag: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M3.5 9h17l-1.5 12h-14z'/%3E%3Cpath d='M8 9V7a4 4 0 018 0v2'/%3E%3C/svg%3E");
  --i-return: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 14L4 9l5-5'/%3E%3Cpath d='M4 9h10.5a5.5 5.5 0 010 11H11'/%3E%3C/svg%3E");
  --i-shield: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M12 2.5l8 3v6c0 5-3.5 8.5-8 10-4.5-1.5-8-5-8-10v-6z'/%3E%3Cpath d='M8.5 12l2.5 2.5 4.5-5'/%3E%3C/svg%3E");

  --wp--preset--font-size--small: 0.9rem;
}

/* Base ---------------------------------------------------------------------- */
*,
*::before,
*::after {
  box-sizing: border-box;
}
body {
  -webkit-font-smoothing: antialiased;
  background: var(--gk-white);
  color: var(--gk-ink);
  font-family: var(--gk-sans);
  font-size: var(--gk-fs-body);
  font-weight: 400;
  line-height: 1.65;
}
img {
  max-width: 100%;
  height: auto;
}
a {
  color: inherit;
}
.gk-main,
.gk-main > * {
  margin-block: 0;
}
.wp-site-blocks > * + * {
  margin-block-start: 0;
}
.wp-block-image {
  margin: 0;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 7rem;
}

/* Accessibilité */
.screen-reader-text {
  position: absolute !important;
  width: 1px !important;
  min-width: 0 !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap;
  border: 0 !important;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Typographie ------------------------------------------------------------- */
h1,
h2,
h3,
h4,
h5,
h6,
.gk-h1,
.gk-h2,
.gk-h3 {
  font-family: var(--gk-heading);
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  color: var(--gk-ink);
}
.gk-h1 {
  font-size: var(--gk-fs-h1);
  line-height: 1.04;
  margin: 0 0 1.25rem;
}
.gk-h2 {
  font-size: var(--gk-fs-h2);
  line-height: 1.08;
  margin: 0;
}
.gk-h3 {
  font-size: var(--gk-fs-h3);
  line-height: 1.15;
  margin: 0 0 0.6rem;
}
.gk-eyebrow {
  margin: 0 0 0.8rem;
  font-family: var(--gk-sans);
  font-size: var(--gk-fs-label);
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gk-accent);
}
.gk-lead {
  margin: 0;
  font-family: var(--gk-sans);
  font-size: var(--gk-fs-lead);
  line-height: 1.35;
  color: var(--gk-ink);
}

/* Boutons : un seul système ----------------------------------------------- */
.gk-btn,
.wp-block-button__link,
.wp-element-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce button.button.alt,
.woocommerce input.button,
.woocommerce #respond input#submit,
.wc-block-components-button:not(.is-link) {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 0.6em;
  min-height: 48px;
  padding: 0 1.75rem !important;
  border: 1px solid var(--gk-ink) !important;
  border-radius: 0 !important;
  background: var(--gk-ink) !important;
  color: #fff !important;
  font-family: var(--gk-sans) !important;
  font-size: 0.8125rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.12em !important;
  line-height: 1.2 !important;
  text-transform: uppercase;
  text-decoration: none !important;
  cursor: pointer;
  transition:
    background 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease;
}
.gk-btn:hover,
.wp-block-button__link:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.wc-block-components-button:not(.is-link):hover {
  background: var(--gk-accent) !important;
  border-color: var(--gk-accent) !important;
}
/* Variante secondaire : contour encre */
.gk-btn--line,
.wp-block-button.is-style-outline > .wp-block-button__link,
.woocommerce ul.products li.product .button,
.wc-block-components-button:not(.is-link).is-style-outline, .wc-block-components-button:not(.is-link).outlined {
  background: transparent !important;
  color: var(--gk-ink) !important;
  border-color: var(--gk-ink) !important;
	box-shadow: none;
}
.gk-btn--line:hover,
.wp-block-button.is-style-outline > .wp-block-button__link:hover,
.woocommerce ul.products li.product .button:hover,
.wc-block-components-button:not(.is-link).is-style-outline:hover, .wc-block-components-button:not(.is-link).outlined:hover {
  background: var(--gk-ink) !important;
  color: #fff !important;
  border-color: var(--gk-ink) !important;
		box-shadow: none;
}
/* Lien d'action */
.gk-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  padding: 0.35rem 0;
  font-family: var(--gk-sans);
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gk-ink);
  text-decoration: none;
  background: linear-gradient(var(--gk-accent), var(--gk-accent)) left calc(100% - 0.1rem) / calc(100% - 1.6em) 1px no-repeat;
}
.gk-link::after {
  content: '→';
  display: inline-block;
  letter-spacing: 0;
  transition: transform 0.2s ease;
}
.gk-link:hover::after {
  transform: translateX(3px);
}
.gk-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.75rem;
  margin-top: 2rem;
}

/* Icônes */
[class*='gk-ico-']::before {
  content: '';
  display: inline-block;
  flex: none;
  width: 1.35em;
  height: 1.35em;
  background: currentColor;
  -webkit-mask: var(--gk-icon) center / contain no-repeat;
  mask: var(--gk-icon) center / contain no-repeat;
}
.gk-ico-truck {
  --gk-icon: var(--i-truck);
}
.gk-ico-box {
  --gk-icon: var(--i-box);
}
.gk-ico-chat {
  --gk-icon: var(--i-chat);
}
.gk-ico-lock {
  --gk-icon: var(--i-lock);
}
.gk-ico-bag {
  --gk-icon: var(--i-bag);
}
.gk-ico-shield {
  --gk-icon: var(--i-shield);
}
.gk-ico-return {
  --gk-icon: var(--i-return);
}

/* ==========================================================================
   En-tête
   ========================================================================== */
.gk-topbar {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0;
  margin: 0 !important;
  padding: 0.5rem var(--gk-gutter);
  background: var(--gk-accent);
  color: var(--gk-white);
  font-size: 0.78rem;
  letter-spacing: 0.04em;
}
.gk-topbar > * {
  margin: 0 !important;
}
.gk-topbar__item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0 1.75rem;
}
.gk-topbar__item::before {
  color: var(--gk-white);
  width: 1.2em;
  height: 1.2em;
}
.gk-topbar__item + .gk-topbar__item {
  border-left: 1px solid rgba(255, 255, 255, 0.2);
}

.gk-site-header {
  position: sticky;
  top: 0;
  z-index: 50;
}
.gk-header {
  background: var(--gk-white);
  border-bottom: 1px solid var(--gk-line);
  margin: 0 !important;
}
.gk-header__inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1.5rem;
  max-width: var(--gk-max);
  margin: 0 auto !important;
  padding: 0.85rem var(--gk-gutter);
}
.gk-header__inner > *,
.gk-header__left > *,
.gk-header__right > * {
  margin: 0 !important;
}
.gk-header__left {
  display: flex;
  align-items: center;
  gap: 2rem !important;
}
/* Logo global (bloc core/site-logo) : la largeur se règle ici, jamais dans les attributs du bloc */
.gk-site-logo {
  --gk-logo-width: clamp(140px, 13vw, 180px);
  justify-self: center;
  display: block;
}
.gk-site-logo a {
  display: block;
}
.gk-site-logo img {
  display: block;
  width: var(--gk-logo-width) !important;
  height: auto;
}
.gk-header__right {
  grid-column: 3;
  justify-self: end;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 1.1rem !important;
}
.gk-nav {
  display: flex;
  align-items: center;
  gap: 1.9rem !important;
  font-family: var(--gk-sans);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.gk-nav--right {
  margin-right: 0.6rem !important;
}
.gk-nav a {
  text-decoration: none;
}
.gk-nav .wp-block-navigation-item__content {
  padding-block: 0.4rem;
}
.gk-nav .wp-block-navigation-item__content:hover {
  color: var(--gk-accent);
}
.gk-nav .wp-block-navigation__submenu-container {
  background: var(--gk-white) !important;
  border: 1px solid var(--gk-line) !important;
  padding: 0.6rem 0;
  min-width: 240px !important;
  text-transform: none;
  letter-spacing: 0.02em;
  font-size: 0.95rem;
  font-weight: 400;
}
.gk-nav .wp-block-navigation__submenu-container a {
  padding: 0.55rem 1.25rem !important;
}
.gk-burger .wp-block-navigation__responsive-container-open {
  padding: 0;
  color: var(--gk-ink);
}
.gk-burger .wp-block-navigation__responsive-container-open svg {
  width: 28px;
  height: 28px;
}
.wp-block-navigation__responsive-container.is-menu-open {
  background: var(--gk-white) !important;
  padding: 2rem var(--gk-gutter) !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
  gap: 0.25rem !important;
  font-family: var(--gk-sans);
  font-size: 1.6rem;
  font-weight: 500;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
  padding-block: 0.45rem !important;
}
.wp-block-navigation__responsive-container.is-menu-open a:hover {
  color: var(--gk-accent);
}
.gk-search .wp-block-search__button,
.gk-header__right .wc-block-mini-cart__button,
.gk-account a {
  color: var(--gk-ink);
  background: none;
  border: 0;
  padding: 0;
}
.gk-search .wp-block-search__button svg {
  width: 26px;
  height: 26px;
}
.gk-search .wp-block-search__inside-wrapper {
  border: 0;
  padding: 0;
}
.gk-search .wp-block-search__input {
  border: 1px solid var(--gk-line);
  background: #fff;
  min-height: 44px;
}
.wc-block-mini-cart__badge {
  background: var(--gk-accent) !important;
  color: #fff !important;
  border: 0 !important;
}

/* ==========================================================================
   Sections & en-têtes de section
   ========================================================================== */
.gk-section {
  max-width: var(--gk-max);
  margin: 0 auto !important;
  padding: var(--gk-section) var(--gk-gutter);
}
.gk-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem 2rem;
  flex-wrap: wrap;
  margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}
.gk-head .gk-eyebrow {
  margin-bottom: 0.6rem;
}

/* ==========================================================================
   Hero
   ========================================================================== */
.gk-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) min(50vw, 800px);
  align-items: stretch;
  margin: 0 !important;
  background: var(--gk-surface);
}
.gk-hero__text {
  align-self: center;
}
.gk-hero__text {
  padding: 3rem 3rem 3rem var(--gk-edge);
  max-width: calc(34rem + var(--gk-edge));
}
.gk-hero__text .gk-h1 {
  max-width: 9.5em;
}
.gk-hero__text .gk-lead {
  max-width: 22em;
}
.gk-hero__media {
  margin: 0;
  width: 100%;
  min-height: calc(min(50vw, 800px) * 0.9486);
  background: var(--gk-surface);
}
.gk-hero__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ==========================================================================
   Cartes produits (accueil, boutique, catégories, produits liés)
   ========================================================================== */
.woocommerce ul.products,
.gk-skels {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2.5rem clamp(0.75rem, 1.6vw, 1.5rem);
  margin: 0 !important;
  padding: 0;
  list-style: none;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after {
  display: none !important;
}
.woocommerce ul.products li.product {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: auto !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: left;
}
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link {
  position: relative;
  isolation: isolate;
  display: block;
  width: 100%;
  text-decoration: none;
  color: inherit;
}
/* Fond de carte derrière la photo : les photos sur fond blanc s'y fondent (multiply). */
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link::before {
  content: '';
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  width: 100%;
  aspect-ratio: 4 / 5;
  background: var(--gk-card);
}
.woocommerce ul.products li.product a img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: contain;
  padding: 8%;
  margin: 0 0 1rem !important;
  background: transparent;
  mix-blend-mode: multiply;
  transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.woocommerce ul.products li.product a:hover img {
  transform: scale(1.025);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  margin: 0 0 0.2rem !important;
  padding: 0 !important;
  font-family: var(--gk-sans);
  font-size: 0.98rem !important;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: 0.01em;
  text-transform: none;
  color: var(--gk-ink);
}
.woocommerce ul.products li.product .price {
  order: 3;
  margin: 0 !important;
  color: var(--gk-ink) !important;
  font-size: 0.98rem !important;
  font-weight: 500;
}
.woocommerce ul.products li.product .price del {
  color: var(--gk-ink-soft);
  font-weight: 400;
  opacity: 1;
}
.woocommerce ul.products li.product .price ins {
  color: var(--gk-accent);
  text-decoration: none;
}
.woocommerce ul.products li.product .woocommerce-price-suffix {
  font-size: 0.75em;
  font-weight: 400;
  color: var(--gk-ink-soft);
}
.woocommerce ul.products li.product .button {
  order: 5;
  width: 100%;
  min-height: 44px;
  margin-top: 0.9rem !important;
  font-size: 0.72rem !important;
}
.woocommerce ul.products li.product .added_to_cart {
  order: 6;
  margin-top: 0.4rem;
  font-size: 0.85rem;
  color: var(--gk-accent);
}
.woocommerce span.onsale,
.gk-product__gallery .wc-block-components-product-sale-badge {
  top: 0.75rem !important;
  left: 0.75rem !important;
  right: auto !important;
  min-height: 0;
  min-width: 0;
  margin: 0 !important;
  padding: 0.4rem 0.6rem;
  border-radius: 0;
  background: var(--gk-ink);
  color: #fff;
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  line-height: 1;
  text-transform: uppercase;
}
.gk-product__gallery .wc-block-components-product-sale-badge {
  border: 0;
}
/* Pastilles de coloris */
.gk-swatches {
  order: 4;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0.5rem 0 0;
}
.woocommerce ul.products li.product .gk-swatches {
  order: 4;
}
.gk-swatches ul {
  display: flex;
  gap: 0.3rem;
  list-style: none;
  margin: 0 !important;
  padding: 0;
	align-items: center;
}
.gk-swatches li {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.15);
}
.gk-swatches li.is-unknown {
  background: var(--gk-line);
}
.gk-swatches__more,
.gk-swatches__count {
  font-size: 0.78rem;
  color: var(--gk-ink-soft);
}

/* Emplacements vides (visibles par les administrateurs uniquement) */
.gk-admin-note {
  margin: 0 0 1.5rem !important;
  padding: 0.9rem 1.1rem;
  border: 1px dashed var(--gk-accent);
  background: var(--gk-surface);
  font-size: 0.9rem;
}
.gk-skel__img {
  display: block;
  aspect-ratio: 4 / 5;
  background: var(--gk-card);
  margin-bottom: 1rem;
}
.gk-skel__line {
  display: block;
  height: 0.8rem;
  width: 70%;
  background: var(--gk-surface-alt);
  margin-bottom: 0.5rem;
}
.gk-skel__line.is-short {
  width: 35%;
}

/* ==========================================================================
   Collections
   ========================================================================== */
/* Pas de double espace après la sélection de produits, masquée tant qu'aucun produit n'est publié. */
.gk-products + .gk-collections {
  padding-top: 0;
}
.gk-colls {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(0.75rem, 1.4vw, 1.25rem);
  list-style: none;
  margin: 0;
  padding: 0;
}
.gk-coll a {
  display: block;
  text-decoration: none;
  color: var(--gk-ink);
}
.gk-coll__img {
  display: block;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  background: var(--gk-card);
}
.gk-coll__img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.gk-coll a:hover img {
  transform: scale(1.04);
}
.gk-coll__label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-top: 0.85rem;
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.gk-coll__label::after {
  content: '→';
  display: inline-block;
  color: var(--gk-accent);
  letter-spacing: 0;
  transition: transform 0.2s ease;
}
.gk-coll a:hover .gk-coll__label::after {
  transform: translateX(3px);
}

/* ==========================================================================
   Éditorial (photo + texte)
   ========================================================================== */
.gk-edito {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 5rem);
  margin: 0 !important;
  padding: var(--gk-section) var(--gk-edge);
  background: var(--gk-surface);
}
.gk-edito__text {
  max-width: 30rem;
}
.gk-edito__text .gk-h2 {
  margin-bottom: 1.1rem;
}
.gk-edito__media {
  position: relative;
  padding: 0 0 12% 14%;
}
.gk-edito__main {
  display: block;
  width: 100%;
  aspect-ratio: 860 / 531;
  object-fit: cover;
}
.gk-edito__detail {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 34%;
  aspect-ratio: 600 / 521;
  object-fit: cover;
  border: 8px solid var(--gk-surface);
}

/* ==========================================================================
   Duo Color Pop / Croco
   ========================================================================== */
.gk-duo {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.5rem, 3vw, 2.5rem);
}
.gk-duo__item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.gk-duo__img {
  display: block;
  width: 100%;
  overflow: hidden;
  margin-bottom: 1.4rem;
  background: var(--gk-card);
}
.gk-duo__img img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.gk-duo__img:hover img {
  transform: scale(1.03);
}
.gk-duo__item > p:not(.gk-eyebrow) {
  margin: 0 0 0.9rem;
  max-width: 34em;
  color: var(--gk-ink-soft);
}

/* ==========================================================================
   Charms
   ========================================================================== */
.gk-charms-promo {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 5rem);
  padding-top: 0 !important;
}
.gk-charms-promo__img {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}
.gk-charms-promo__text {
  max-width: 30rem;
}
.gk-charms-promo__text .gk-h2 {
  margin-bottom: 1rem;
}
.gk-charms-promo__text p:not(.gk-eyebrow):not(.gk-lead) {
  margin: 1rem 0 0;
  color: var(--gk-ink-soft);
}

/* ==========================================================================
   Informations & réassurance
   ========================================================================== */
.gk-info {
  margin: 0 !important;
  padding: 2.75rem var(--gk-gutter) 2.25rem;
  background: var(--gk-white);
  border-top: 1px solid var(--gk-line);
}
.gk-info__list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.5rem;
  max-width: var(--gk-max);
  margin: 0 auto;
  padding: 0;
  list-style: none;
}
.gk-info__list li {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 0.85rem;
  align-items: start;
  font-size: var(--gk-fs-small);
  color: var(--gk-ink-soft);
  line-height: 1.45;
}
.gk-info__list li::before {
  grid-row: span 2;
  width: 1.6rem;
  height: 1.6rem;
  color: var(--gk-accent);
}
.gk-info__list strong {
  font-weight: 500;
  color: var(--gk-ink);
  font-size: 0.95rem;
}
.gk-info__list a {
  color: var(--gk-ink);
}
.gk-info__foot {
  max-width: var(--gk-max);
  margin: 1.75rem auto 0 !important;
  padding-top: 1.25rem;
  border-top: 1px solid var(--gk-line);
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.5rem;
  justify-content: center;
  align-items: center;
  font-size: var(--gk-fs-small);
  color: var(--gk-ink-soft);
  text-align: center;
}
.gk-info__foot .gk-ico-lock {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
.gk-info__foot .gk-ico-lock::before {
  color: var(--gk-accent);
}
.gk-info__foot a {
  color: var(--gk-ink);
  font-weight: 500;
}

/* ==========================================================================
   Pied de page
   ========================================================================== */
.gk-footer {
  margin: 0 !important;
  padding: clamp(3rem, 5vw, 4rem) var(--gk-gutter) 1.5rem;
  background: var(--gk-ink);
  color: var(--gk-surface);
  border-top: 3px solid var(--gk-accent);
}
.gk-footer a {
  color: var(--gk-surface);
  text-decoration: none;
}
.gk-footer p {
	font-weight: 300;
}
.gk-footer a:hover {
  color: #fff;
  text-decoration: underline;
  text-decoration-color: var(--gk-accent);
}
.gk-footer__inner {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr;
  gap: 2.5rem;
  max-width: var(--gk-max);
  margin: 0 auto !important;
}
.gk-footer__inner > * {
  margin: 0 !important;
}
.gk-footer__brand .gk-site-logo {
  --gk-logo-width: 170px;
  justify-self: start;
  margin: 0 0 1.1rem;
}
/* Fond sombre : le bloc natif ne connaît qu'un seul logo, il passe en blanc ici. */
.gk-footer__brand .gk-site-logo img {
  filter: brightness(0) invert(1);
}
.gk-footer__brand p {
  max-width: 34ch;
  margin: 0 0 0.6rem !important;
  font-size: var(--gk-fs-small);
  color: var(--gk-white);
}
.gk-footer h2 {
  margin: 0 0 1rem;
  font-family: var(--gk-sans);
  font-size: var(--gk-fs-label);
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #fff;
}
.gk-footer ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.35rem;
  font-size: var(--gk-fs-small);
}
.gk-footer ul a {
  display: inline-block;
  padding: 0.15rem 0;
	font-weight: 300;
}
.gk-footer__legal {
  max-width: var(--gk-max);
  margin: 2.5rem auto 0 !important;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  font-size: 0.78rem;
  color: var(--gk-muted);
}
.gk-footer--checkout {
  padding-block: 1.25rem;
  border-top-width: 0;
}
.gk-footer--checkout .gk-footer__legal {
  margin: 0 auto !important;
  border: 0;
  padding: 0;
  text-align: center;
}

/* ==========================================================================
   Fiche produit
   ========================================================================== */
.gk-product {
  max-width: var(--gk-max);
  margin: 0 auto !important;
  padding: 1.5rem var(--gk-gutter) var(--gk-section);
}
.gk-product .woocommerce-breadcrumb {
  font-size: 0.8rem;
  color: var(--gk-ink-soft);
  margin-bottom: 1.5rem;
}
.gk-product__main {
  gap: clamp(1.5rem, 4vw, 4rem) !important;
  align-items: flex-start !important;
}
.gk-product__gallery .wc-block-product-gallery {
  gap: 0.5rem;
}
/* Hors du flux pour ne pas décaler les flèches ; le conteneur natif est déjà à 5 px du bord */
.gk-product__gallery .wp-block-woocommerce-product-sale-badge {
  position: absolute;
  top: calc(0.75rem - 5px);
  left: calc(0.75rem - 5px);
}
.gk-product__gallery .wc-block-product-gallery-thumbnails__thumbnail__image {
  background: var(--gk-surface);
}
/* Vignettes sous l'image, 5 par ligne, sans bande à faire défiler */
.gk-product__gallery .wc-block-product-gallery-thumbnails {
  aspect-ratio: auto !important;
  height: auto;
}
.gk-product__gallery .wc-block-product-gallery-thumbnails__scrollable {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0.5rem;
  height: auto;
  overflow: visible;
}
.gk-product__gallery .wc-block-product-gallery-thumbnails__thumbnail,
.gk-product__gallery .wc-block-product-gallery-thumbnails__thumbnail__image {
  width: 100%;
  height: auto;
}
.gk-product__summary {
  position: sticky;
  top: 7rem;
}
.gk-product__summary h1 {
  font-size: clamp(2rem, 3.4vw, 2.9rem);
  text-transform: none;
  letter-spacing: 0;
  margin: 0 0 0.5rem;
}
.gk-product__summary .wc-block-components-product-price,
.gk-product__summary .price {
  font-size: 1.6rem !important;
  font-weight: 400;
  color: var(--gk-ink);
  margin: 0.75rem 0 1rem;
}
.gk-product__summary .price ins,
.gk-product__summary .wc-block-components-product-price ins {
  color: var(--gk-accent);
  text-decoration: none;
}
.gk-product__summary .wp-block-post-excerpt {
  color: var(--gk-ink-soft);
}
.gk-product__summary form.cart {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 1.5rem 0 1rem;
}
.gk-product__summary form.cart .quantity input {
  height: 100%;
  min-height: 3.2rem;
  width: 4.5rem;
  border: 1px solid var(--gk-line);
  background: #fff;
  font-size: 1rem;
}
.gk-product__summary form.cart button[type='submit'] {
  flex: 1 1 14rem;
  min-height: 3.2rem;
}
.gk-product__summary form.variations_form {
  display: block;
}
.gk-product__summary table.variations {
  width: 100%;
  margin-bottom: 1rem;
  border: 0;
}
.gk-product__summary table.variations th,
.gk-product__summary table.variations td {
  display: block;
  padding: 0 0 0.4rem;
  text-align: left;
  border: 0;
}
.gk-product__summary table.variations label {
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.gk-product__summary table.variations select {
  width: 100%;
  padding: 0.8rem 1rem;
  border: 1px solid var(--gk-line);
  background: #fff;
  font: inherit;
}
.gk-product__summary .woocommerce-variation-add-to-cart {
  display: flex;
  gap: 0.75rem;
}
.gk-product__trust {
  font-size: 0.85rem;
  color: var(--gk-ink-soft);
  padding: 0.9rem 1rem;
  background: var(--gk-surface-alt);
  text-align: center;
}

.gk-features {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2rem;
  margin: var(--gk-section) 0 0 !important;
  padding: 2.5rem 0;
  border-block: 1px solid var(--gk-line);
  text-align: center;
}
.gk-features > * {
  margin: 0 !important;
}
.gk-feature::before {
  display: block !important;
  margin: 0 auto 1rem;
  width: 2.2rem !important;
  height: 2.2rem !important;
  color: var(--gk-accent);
}
.gk-feature h3 {
  font-family: var(--gk-sans);
  font-size: 0.8rem !important;
  font-weight: 500;
  letter-spacing: 0.2em;
  margin: 0 0 0.5rem;
}
.gk-feature p {
  font-size: 0.92rem;
  color: var(--gk-ink-soft);
  margin: 0;
}

.gk-product .wp-block-woocommerce-product-details {
  margin-top: var(--gk-section);
}
.woocommerce div.product .woocommerce-tabs ul.tabs {
  padding: 0;
  margin: 0 0 1.5rem;
  border-bottom: 1px solid var(--gk-line);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before {
  display: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  margin: 0 1.5rem 0 0 !important;
  padding: 0 !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
  display: none !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  padding: 0.75rem 0 !important;
  font-size: 0.8rem;
  font-weight: 500 !important;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gk-ink-soft) !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: var(--gk-ink) !important;
  box-shadow: inset 0 -2px 0 var(--gk-accent);
}

.gk-faq {
  max-width: 820px;
  margin: var(--gk-section) auto 0 !important;
	margin-left: 0 !important;
}
.gk-faq > h2 {
  margin-bottom: 1.25rem;
}
.gk-faq .wp-block-details {
  border-bottom: 1px solid var(--gk-line);
  padding: 1.1rem 0;
  margin: 0 !important;
}
.gk-faq summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  font-family: var(--gk-sans);
  font-size: 1.1rem;
  font-weight: 500;
}
.gk-faq summary::-webkit-details-marker {
  display: none;
}
.gk-faq summary::after {
  content: '+';
  font-family: var(--gk-sans);
  font-weight: 300;
  color: var(--gk-accent);
  font-size: 1.5rem;
  line-height: 1;
}
.gk-faq details[open] summary::after {
  content: '–';
}
.gk-faq details p {
  color: var(--gk-ink-soft);
  margin: 0.75rem 0 0;
}

.gk-faq2 {
  max-width: 1000px;
  margin: var(--gk-section) auto 0 !important;
	margin-left: 0 !important;
}
.gk-faq2 > h2 {
  margin-bottom: 1.25rem;
}
.gk-faq2 .wp-block-details {
  border-bottom: 1px solid var(--gk-line);
  padding: 1.1rem 0;
  margin: 0 !important;
}
.gk-faq2 summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  font-family: var(--gk-sans);
  font-size: 1.1rem;
  font-weight: 500;
}
.gk-faq2 summary::-webkit-details-marker {
  display: none;
}
.gk-faq2 summary::after {
  content: '+';
  font-family: var(--gk-sans);
  font-weight: 300;
  color: var(--gk-accent);
  font-size: 1.5rem;
  line-height: 1;
}
.gk-faq2 details[open] summary::after {
  content: '–';
}
.gk-faq2 details p {
  color: var(--gk-ink-soft);
  margin: 0.75rem 0 0;
}
.gk-product .related.products {
  margin-top: var(--gk-section);
}
.gk-product .related.products > h2 {
  font-size: var(--gk-fs-h2);
  margin: 0 0 2rem;
}

/* Barre d'achat collante (mobile) */
.gk-sticky-atc {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 60;
  display: none;
  align-items: center;
  gap: 1rem;
  padding: 0.75rem var(--gk-gutter) calc(0.75rem + env(safe-area-inset-bottom));
  background: var(--gk-surface);
  border-top: 1px solid var(--gk-line);
  transform: translateY(110%);
  transition: transform 0.3s ease;
}
.gk-sticky-atc.is-visible {
  transform: none;
}
.gk-sticky-atc__price {
  font-size: 1.05rem;
  white-space: nowrap;
}
.gk-sticky-atc__price ins {
  text-decoration: none;
  color: var(--gk-accent);
}
.gk-sticky-atc__price del {
  font-size: 0.85em;
  color: var(--gk-ink-soft);
}
.gk-sticky-atc__btn {
  flex: 1;
  border: 0;
  background: var(--gk-accent);
  color: #fff;
  font: 500 0.85rem/1 var(--gk-sans);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 1rem;
  cursor: pointer;
}

/* Pages génériques */
.gk-page {
  padding-block: var(--gk-section);
}
.gk-page > h1 {
  margin-bottom: 2rem;
}

/* Fiche produit — compléments */
.gk-product__summary .woocommerce-price-suffix {
  font-size: 0.6em;
  color: var(--gk-ink-soft);
  margin-left: 0.25em;
}
.gk-specs {
  margin: 1.25rem 0;
  padding: 0;
  border-top: 1px solid var(--gk-line);
}
.gk-specs > div {
  display: grid;
  grid-template-columns: 9rem 1fr;
  gap: 1rem;
  padding: 0.6rem 0;
  border-bottom: 1px solid var(--gk-line);
  font-size: 0.95rem;
}
.gk-specs dt {
  font-weight: 500;
  color: var(--gk-ink);
}
.gk-specs dd {
  margin: 0;
  color: var(--gk-ink-soft);
}
.gk-pdelivery {
  list-style: none;
  margin: 1.25rem 0 0;
  padding: 1rem 1.15rem;
  background: var(--gk-surface);
  display: grid;
  gap: 0.6rem;
  font-size: 0.92rem;
}
.gk-pdelivery li {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
}
.gk-pdelivery li::before {
  color: var(--gk-accent);
  margin-top: 0.05em;
}
.gk-pdelivery a {
  color: var(--gk-ink);
}

/* Pastilles de coloris (fiche produit) */
.gk-vswatch {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin: 0.25rem 0 0.75rem;
}
.gk-vswatch button {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 44px;
  padding: 0.35rem 0.85rem 0.35rem 0.4rem;
  border: 1px solid var(--gk-line);
  border-radius: 999px;
  background: #fff;
  color: var(--gk-ink);
  font: 400 0.9rem/1 var(--gk-sans);
  cursor: pointer;
}
.gk-vswatch button span {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--gk-line);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.15);
}
.gk-vswatch button[aria-checked='true'] {
  border-color: var(--gk-ink);
  box-shadow: 0 0 0 1px var(--gk-ink);
}
.gk-vswatch button:disabled {
  opacity: 0.35;
  text-decoration: line-through;
  cursor: not-allowed;
}
.gk-product__summary table.variations .reset_variations {
  font-size: 0.85rem;
  color: var(--gk-ink-soft);
}

/* Charms facultatifs */
.gk-charms {
  flex: 1 1 100%;
  margin: 0.5rem 0 1rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--gk-line);
  background: #fff;
}
.gk-charms legend {
  padding: 0 0.4rem;
  font-family: var(--gk-sans);
  font-size: 1.2rem;
  font-weight: 500;
}
.gk-charms legend span {
  font-family: var(--gk-sans);
  font-size: 0.85rem;
  font-weight: 400;
  color: var(--gk-ink-soft);
}
.gk-charms__help {
  margin: 0 0 0.75rem;
  font-size: 0.85rem;
  color: var(--gk-ink-soft);
}
.gk-charms ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.5rem;
}
.gk-charms label {
  display: grid;
  grid-template-columns: auto 48px 1fr auto;
  align-items: center;
  gap: 0.75rem;
  min-height: 56px;
  cursor: pointer;
  font-size: 0.95rem;
}
.gk-charms input {
  width: 20px;
  height: 20px;
  accent-color: var(--gk-accent);
}
.gk-charms__img img {
  width: 48px;
  height: 48px;
  object-fit: cover;
  background: var(--gk-surface);
  display: block;
}
.gk-charms__price {
  font-weight: 500;
  white-space: nowrap;
}

/* ==========================================================================
   Panier & commande
   ========================================================================== */
h2.wc-block-mini-cart__title {
  font-size: clamp(1.6rem, 2.6vw, 2.4rem);
}
span.wp-block-woocommerce-mini-cart-title-items-counter-block {
  font-family: var(--gk-sans);
  font-size: 13px;
  color: var(--gk-ink-soft);
}
.gk-cart-top {
  max-width: 1100px;
  margin: 0 auto 1.5rem;
  display: grid;
  gap: 0.75rem;
}
.gk-ship {
  padding: 0.9rem 1.1rem;
  background: var(--gk-surface);
}
.gk-ship__msg {
  margin: 0 0 0.55rem;
  font-size: 0.95rem;
}
.gk-ship__bar {
  height: 4px;
  background: #fff;
  border-radius: 3px;
  overflow: hidden;
}
.gk-ship__bar span {
  display: block;
  height: 100%;
  background: var(--gk-accent);
  transition: width 0.4s ease;
}
.gk-delivery-note {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  margin: 0.75rem 0 !important;
  padding: 0.8rem 1.1rem;
  border: 1px solid var(--gk-line);
  background: #fff;
  font-size: 0.95rem;
}
.gk-delivery-note::before {
  color: var(--gk-accent);
  margin-top: 0.1em;
}
.wc-block-mini-cart__drawer .gk-ship {
  margin: 1rem 1rem 0.5rem;
}
.wc-block-mini-cart__drawer .gk-charm-notice {
  margin: 0 1rem 0.5rem;
  width: auto;
}
.wc-block-mini-cart__drawer .gk-charm-notice .wc-block-components-notice-banner__content {
  padding-right: 4.5rem;
}

/* Notices WooCommerce : charte GeneriK. Le rose signale, le rose vif reste réservé aux erreurs. */
body .wc-block-components-notice-banner:is(.is-default, .is-info, .is-success, .is-warning, .is-error) {
  align-items: center;
  border: 1px solid var(--gk-line) !important;
  border-left: 3px solid var(--gk-notice, var(--gk-accent)) !important;
  border-radius: 0;
  background: var(--gk-surface);
  color: var(--gk-ink);
  font-family: var(--gk-sans);
  font-size: var(--gk-fs-small);
}
body .wc-block-components-notice-banner.is-error {
  --gk-notice: var(--gk-accent-strong);
  background: color-mix(in srgb, var(--gk-accent-strong) 8%, #fff);
}
body .wc-block-components-notice-banner:is(.is-default, .is-info, .is-success, .is-warning, .is-error) > svg {
  height: 24px;
  background: var(--gk-notice, var(--gk-accent));
}
/* WooCommerce y place le focus par script : pas de cadre, la notice n'est pas atteignable au clavier. */
body .wc-block-components-notice-banner:focus-visible {
  outline: 0;
}
.wc-block-components-notice-banner a {
  color: var(--gk-ink);
}
/* Lien « Voir le panier » : variante secondaire du système de boutons, à droite du message. */
body .wc-block-components-notice-banner > .wc-block-components-notice-banner__content:has(> .wc-forward) {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem 1rem;
}
body .wc-block-components-notice-banner > .wc-block-components-notice-banner__content .wc-forward {
  order: 1;
  flex: none;
  float: none;
  min-height: 44px;
  margin: 0;
  padding: 0 1rem !important;
  border: 1px solid var(--gk-ink) !important;
  color: var(--gk-ink) !important;
  font-size: 0.72rem !important;
  opacity: 1;
  text-decoration: none !important;
}
body .wc-block-components-notice-banner > .wc-block-components-notice-banner__content .wc-forward:hover {
  background: var(--gk-ink) !important;
  color: #fff !important;
  border-color: var(--gk-ink) !important;
}
/* La fermeture sort du système de boutons : icône seule, zone tactile de 44 px sans agrandir la notice. */
.wc-block-components-notice-banner > .wc-block-components-button:not(.is-link),
.wc-block-components-notice-banner > .wc-block-components-button:not(.is-link):hover {
  flex: 0 0 44px;
  width: 44px !important;
  height: 44px !important;
  min-height: 0 !important;
  margin: -10px -10px -10px auto !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--gk-ink) !important;
  opacity: 1;
}
.wc-block-components-notice-banner > .wc-block-components-button:not(.is-link):hover {
  color: var(--gk-accent-strong) !important;
}
.wc-block-components-notice-banner > .wc-block-components-button > svg {
  width: 20px;
  height: 20px;
  fill: currentColor;
}
/* Fermeture du mini-panier : même écart, le système de boutons remplaçait l'icône par un aplat orange. */
.wc-block-components-button.wc-block-components-drawer__close:not(.is-link),
.wc-block-components-button.wc-block-components-drawer__close:not(.is-link):hover {
  padding: 1em !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--gk-ink) !important;
  opacity: 1;
}
.wc-block-components-button.wc-block-components-drawer__close:not(.is-link):hover {
  color: var(--gk-accent-strong) !important;
}

.gk-header--checkout {
  border-bottom: 1px solid var(--gk-line);
}
.gk-header__inner--checkout {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1rem;
  max-width: 1100px;
  margin: 0 auto;
  padding: 1rem var(--gk-gutter);
}
.gk-header__inner--checkout .gk-site-logo {
  --gk-logo-width: clamp(130px, 14vw, 190px);
}
.gk-checkout-back {
  font-size: 0.9rem;
  color: var(--gk-ink);
  text-decoration: none;
}
.gk-checkout-secure {
  grid-column: 3;
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.85rem;
  color: var(--gk-ink-soft);
}
.gk-checkout-secure::before {
  color: var(--gk-accent);
}
.gk-page--checkout {
  padding-top: 2rem;
}
/* Birthstone reste illisible en petit : titres du checkout agrandis, noms de produits en Jost */
.wp-block-woocommerce-checkout .wc-block-components-title {
  font-size: 1.5rem !important;
}
.wc-block-components-product-name {
  font-family: var(--gk-sans);
}

/* Confirmation de commande : même titre que les autres pages, sur la colonne du tunnel */
.gk-page--order .wc-block-order-confirmation-status {
  margin-bottom: 2rem;
  text-align: center;
}
.gk-page--order .wc-block-order-confirmation-status h1 {
  margin: 0 0 0.75rem;
  font-size: clamp(2rem, 4vw, 3rem);
}
.gk-page--order .wc-block-order-confirmation-status p {
  margin: 0;
  font-family: var(--gk-sans);
  font-size: var(--gk-fs-lead);
  line-height: 1.35;
}
.gk-page--order .wc-block-order-confirmation-totals-wrapper {
  margin-top: 2.5rem;
}
.gk-page--order :is(h2, h3) {
  font-size: var(--gk-fs-h3) !important;
}

/* ==========================================================================
   Boutique / catégories
   ========================================================================== */
.gk-shop {
  max-width: var(--gk-max);
  margin: 0 auto !important;
  padding: 1.5rem var(--gk-gutter) var(--gk-section);
}
.gk-shop .woocommerce-products-header__title {
  font-size: clamp(2rem, 4vw, 3rem);
  text-align: center;
  margin: 1rem 0;
}
.gk-shop .term-description {
  max-width: 60ch;
  margin: 0 auto 2rem;
  text-align: center;
  color: var(--gk-ink-soft);
}
.gk-shop .woocommerce-result-count {
  font-size: 0.9rem;
  color: var(--gk-ink-soft);
}
.gk-shop .woocommerce-ordering select {
  min-height: 44px;
  padding: 0 0.75rem;
  border: 1px solid var(--gk-line);
  background: #fff;
  font: inherit;
}
.gk-shop .woocommerce-pagination ul {
  border: 0 !important;
  display: flex;
  gap: 0.4rem;
  justify-content: center;
}
.gk-shop .woocommerce-pagination ul li {
  border: 0 !important;
}
.gk-shop .woocommerce-pagination a,
.gk-shop .woocommerce-pagination span {
  min-width: 44px;
  min-height: 44px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
}

/* Pages (FAQ, livraison…) */
.gk-page {
  padding: clamp(2rem, 5vw, 4rem) var(--gk-gutter);
}
.gk-page > h1 {
  font-size: clamp(2rem, 4vw, 3rem);
  margin-bottom: 2rem;
}
.gk-page .wp-block-details {
  border-bottom: 1px solid var(--gk-line);
  padding: 1rem 0;
}
.gk-page .wp-block-details summary {
  cursor: pointer;
  font-family: var(--gk-sans);
  font-size: 1.25rem;
  font-weight: 500;
}

.wc-block-components-form .wc-block-components-text-input input[type=date],
.wc-block-components-form .wc-block-components-text-input input[type=email],
.wc-block-components-form .wc-block-components-text-input input[type=number],
.wc-block-components-form .wc-block-components-text-input input[type=password],
.wc-block-components-form .wc-block-components-text-input input[type=tel],
.wc-block-components-form .wc-block-components-text-input input[type=text],
.wc-block-components-form .wc-block-components-text-input input[type=url],
.wc-block-components-text-input input[type=date],
.wc-block-components-text-input input[type=email],
.wc-block-components-text-input input[type=number],
.wc-block-components-text-input input[type=password],
.wc-block-components-text-input input[type=tel],
.wc-block-components-text-input input[type=text],
.wc-block-components-text-input input[type=url],
:where(input, textarea),
.wc-block-components-textarea, .wc-block-components-textarea:focus, .wc-blocks-components-select .wc-blocks-components-select__select {
	border: 1px solid var(--wp--preset--color--line) !important;
}

.wc-block-components-form .wc-block-components-text-input input[type=date]:focus-within,
.wc-block-components-form .wc-block-components-text-input input[type=email]:focus-within,
.wc-block-components-form .wc-block-components-text-input input[type=number]:focus-within,
.wc-block-components-form .wc-block-components-text-input input[type=password]:focus-within,
.wc-block-components-form .wc-block-components-text-input input[type=tel]:focus-within,
.wc-block-components-form .wc-block-components-text-input input[type=text]:focus-within,
.wc-block-components-form .wc-block-components-text-input input[type=url]:focus-within,
.wc-block-components-text-input input[type=date]:focus-within,
.wc-block-components-text-input input[type=email]:focus-within,
.wc-block-components-text-input input[type=number]:focus-within,
.wc-block-components-text-input input[type=password]:focus-within,
.wc-block-components-text-input input[type=tel]:focus-within,
.wc-block-components-text-input input[type=text]:focus-within,
.wc-block-components-text-input input[type=url]:focus-within,
:where(input, textarea):focus-visible, :where(input, textarea):focus-within,
.wc-block-components-textarea:focus-visible,
.wc-block-components-textarea:focus-within,
.wc-block-components-textarea:focus {
  outline: 1px solid color-mix(in srgb, var(--gk-accent) 100%, transparent) !important;
  outline-offset: 0 !important;
  box-shadow: none !important;
}

:where(a, button, select, input[type=checkbox], summary):focus-visible, :where(a, button, select, input[type=checkbox], summary):focus-within {
	outline: 0px !important;
}

.woocommerce-account .addresses .title .edit {
  font-size: var(--wp--preset--font-size--small);
  color: var(--gk-muted);
}
.woocommerce-Address-title.title h2 {
    font-size: clamp(1.3rem, 1.9vw, 1.6rem);
}
/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1100px) {
  .gk-shop ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .gk-info__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .gk-colls {
    grid-template-columns: repeat(5, minmax(150px, 1fr));
    overflow-x: auto;
    scrollbar-width: none;
  }
}
@media (max-width: 999px) {
  .gk-nav--left,
  .gk-nav--right {
    display: none !important;
  }
  .gk-topbar__item:nth-child(3) {
    display: none;
  }
  .gk-hero {
    grid-template-columns: minmax(0, 1fr) 50vw;
  }
  .gk-hero__text {
    padding-right: 2rem;
  }
  .gk-edito {
    grid-template-columns: 1fr;
  }
  .gk-edito__text {
    max-width: 36rem;
  }
  .gk-charms-promo {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 781px) {
  :root {
    --gk-section: 3.25rem;
  }
  html {
    scroll-padding-top: 4.5rem;
  }
  .gk-topbar {
    font-size: 0.75rem;
    padding-block: 0.45rem;
  }
  .gk-topbar__item:not(:first-child) {
    display: none;
  }
  .gk-header__inner {
    padding-block: 0.55rem;
    gap: 0.5rem;
  }
  .gk-header__right {
    gap: 0.15rem !important;
  }
  .gk-search .wp-block-search__button,
  .gk-header__right .wc-block-mini-cart__button,
  .gk-burger .wp-block-navigation__responsive-container-open {
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .gk-account {
    display: none;
  }
  .gk-site-logo {
    --gk-logo-width: 132px;
  }

  /* Hero : photo d'abord (cadrage carré, visage et sac entiers), texte dessous */
  .gk-hero {
    grid-template-columns: 1fr;
  }
  .gk-hero__media {
    order: -1;
    min-height: 0;
    aspect-ratio: 992 / 941;
  }
  .gk-hero__text {
    padding: 1.75rem var(--gk-gutter) 2.25rem;
    max-width: none;
  }
  .gk-hero__text .gk-h1 {
    font-size: clamp(2.2rem, 10vw, 2.8rem);
    margin-bottom: 0.75rem;
  }
  .gk-actions {
    margin-top: 1.5rem;
    gap: 0.75rem 1.5rem;
  }
  .gk-hero .gk-btn {
    flex: 1 1 100%;
  }

  .gk-head {
    margin-bottom: 1.25rem;
  }
  .gk-h2 {
    font-size: 1.9rem;
  }

  /* Produits : grille 2 colonnes, 4 produits maximum sur mobile */
  .woocommerce ul.products,
  .gk-skels {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1.75rem 0.75rem !important;
  }
  .gk-products ul.products li.product:nth-child(n + 5),
  .gk-skels li:nth-child(n + 3) {
    display: none !important;
  }
  .woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: 0.92rem !important;
  }
  .woocommerce ul.products li.product .price {
    font-size: 0.92rem !important;
  }
  .woocommerce ul.products li.product .button {
    font-size: 0.68rem !important;
    letter-spacing: 0.08em !important;
    padding: 0 0.5rem !important;
  }
  .gk-swatches__count {
    display: none;
  }

  /* Collections : défilement au pouce, la carte suivante reste visible */
  .gk-colls {
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: 42%;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    margin-inline: calc(var(--gk-gutter) * -1);
    padding-inline: var(--gk-gutter);
    scroll-padding-inline: var(--gk-gutter);
  }
  .gk-colls::-webkit-scrollbar {
    display: none;
  }
  .gk-coll {
    scroll-snap-align: start;
  }
  .gk-coll__label {
    font-size: 0.72rem;
    letter-spacing: 0.08em;
  }

  .gk-edito {
    gap: 1.75rem;
    padding-inline: var(--gk-gutter);
  }
  .gk-edito__media {
    order: -1;
    padding: 0 0 18% 0;
    margin-inline: calc(var(--gk-gutter) * -1);
  }
  .gk-edito__detail {
    left: var(--gk-gutter);
    width: 42%;
    border-width: 6px;
  }

  .gk-duo {
    grid-template-columns: 1fr;
    gap: 2.75rem;
  }
  .gk-charms-promo {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .gk-info__list {
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem 1rem;
  }
  .gk-info__list li {
    grid-template-columns: 1fr;
    row-gap: 0.4rem;
  }
  .gk-info__list li::before {
    grid-row: auto;
  }
  .gk-info__foot {
    flex-direction: column;
    gap: 0.6rem;
  }

  .gk-footer__inner {
    grid-template-columns: 1fr 1fr;
    gap: 2rem 1.25rem;
  }
  .gk-footer__brand {
    grid-column: 1 / -1;
  }
  .gk-footer ul a {
    padding: 0.3rem 0;
  }

  .gk-product__summary {
    position: static;
  }
  .gk-specs > div {
    grid-template-columns: 7rem 1fr;
  }
  .gk-sticky-atc {
    display: flex;
  }
  .single-product .gk-footer {
    padding-bottom: 6rem;
  }
  .gk-header__inner--checkout {
    grid-template-columns: auto 1fr;
  }
  .gk-header__inner--checkout .gk-site-logo {
    justify-self: end;
  }
  .gk-checkout-secure {
    display: none;
  }
}

/* La galerie (zoom compris) ne doit jamais élargir la page */
.gk-product__gallery {
  min-width: 0;
  overflow: hidden;
}
.gk-product {
  overflow-x: clip;
}

/* Recherche de l'en-tête : simple icône, pas un bouton d'action */
.gk-search .wp-block-search__button.wp-element-button {
  min-height: 44px !important;
  min-width: 44px;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  color: var(--gk-ink) !important;
}
.gk-search .wp-block-search__button.wp-element-button:hover {
  color: var(--gk-accent) !important;
  background: transparent !important;
}

/* Contact */
.gk-contact {
  max-width: 40rem;
}
.gk-contact__mail .gk-btn {
  margin-top: 0.6rem;
  text-transform: none !important;
  letter-spacing: 0.02em !important;
}
.gk-contact__list {
  margin: 2rem 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.6rem;
}
.gk-contact__seller,
.gk-footer__seller {
  color: var(--gk-ink-soft);
  font-size: var(--gk-fs-small);
}
.gk-footer .gk-footer__seller {
  color: var(--gk-line);
}

/* Univers éditorial */
.gk-univers {
  margin: 0 !important;
  background: var(--gk-white);
}
.gk-univers__head {
  padding-bottom: 0 !important;
}
.gk-univers .gk-edito {
  margin-top: clamp(1.5rem, 3vw, 2.5rem) !important;
}
.gk-univers .gk-duo {
  padding-top: clamp(2.5rem, 5vw, 4rem) !important;
}

/* Cartes produits : format carré homogène */
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link::before,
.gk-skel__img {
  aspect-ratio: 1 / 1 !important;
}

/* Navigation : burger uniquement sur mobile/tablette */

/* Liens de la zone d'informations : zone tactile confortable */
.gk-info__foot a,
.gk-info__list a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

/* Cartes produits : contenu du lien en colonne (titre, prix, coloris), bouton aligné en bas */
.woocommerce ul.products li.product {
  height: 100%;
}
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link {
  display: flex !important;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.3rem;
}
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link > img {
  order: 0;
  margin-bottom: 0.6rem !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  order: 1;
  margin: 0 !important;
}
.woocommerce ul.products li.product .price {
  order: 2;
  display: block;
  margin: 0 !important;
}
.woocommerce ul.products li.product .gk-swatches {
  order: 3;
  margin: 0.15rem 0 0 !important;
}
.woocommerce ul.products li.product .button {
  width: 100% !important;
  margin-top: auto !important;
}
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link {
  margin-bottom: 0.9rem;
}

.woocommerce table.shop_attributes tr:nth-child(2n) td, .woocommerce table.shop_attributes tr:nth-child(2n) th {
  background: var(--gk-surface);
}


/* Navigation ordinateur de part et d'autre du logo, sur une ligne ; burger en dessous de 1200 px */
.gk-nav--left,
.gk-nav--right {
  flex-wrap: nowrap !important;
  gap: 1.5rem !important;
  white-space: nowrap;
  letter-spacing: 0.1em;
}
@media (max-width: 1199px) {
  .gk-nav--left,
  .gk-nav--right {
    display: none !important;
  }
  .gk-burger {
    display: block !important;
  }
}
@media (min-width: 1200px) {
  .gk-burger {
    display: none !important;
  }
  /* Colonnes latérales égales quel que soit leur contenu : le logo reste au centre de la page. */
  .gk-header__inner {
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  }
  /* Le champ de recherche ouvert prend la place de ces liens, sans les pousser sur le logo. */
  .gk-header__right:has(.gk-search:not(.wp-block-search__searchfield-hidden)) .gk-nav--right {
    display: none;
  }
}
