/* Palette Blocksy : 1 sarcelle foncé, 2 sarcelle, 3 texte, 4 texte secondaire,
   5 bordures, 6 crème, 7 blanc, 8 pêche, 9 terre cuite, 10 menthe, 11 bleu, 12 violet.
   Références directes à la palette ; seuls les mélanges réutilisés sont nommés. */
:root {
  --wobly-soft-green: color-mix(in srgb, var(--theme-palette-color-10) 30%, var(--theme-palette-color-7));
  --wobly-soft-peach: color-mix(in srgb, var(--theme-palette-color-8) 18%, var(--theme-palette-color-7));
  --wobly-line-accent: color-mix(in srgb, var(--theme-palette-color-10) 75%, var(--theme-palette-color-2));
  --wobly-shadow-color: color-mix(in srgb, var(--theme-palette-color-3) 12%, transparent);
  --wobly-shadow-soft-color: color-mix(in srgb, var(--theme-palette-color-3) 6%, transparent);
  /* Échelle commune, calculée depuis la typographie native du thème. */
  --wobly-font-family: var(--theme-font-family);
  --wobly-text-size: var(--theme-font-size);
  --wobly-text-line-height: var(--theme-line-height);
  --wobly-text-lead: calc(var(--theme-font-size) * 1.0625);
  --wobly-text-small: calc(var(--theme-font-size) * .875);
  --wobly-text-caption: calc(var(--theme-font-size) * .75);
  --wobly-text-label: calc(var(--theme-font-size) * .6875);
  --wobly-radius: 24px;
  --wobly-copy-width: 860px;
  --wobly-panel-width: 1060px;
  --wobly-copy-gap: 20px;
  --wobly-panel-padding: clamp(28px, 4vw, 44px);
  --wobly-hero-gap: clamp(32px, 4vw, 64px);
  --wobly-button-height: 48px;
  --wobly-button-padding: 12px 24px;
  /* Même échelle H1 sur les blocs et les titres natifs de page. */
  --wobly-h1-size: clamp(40px, 5.2vw, 70px);
  --wobly-h1-line-height: 1.15;
  /* Distance commune entre le header et les surtitres des pages. */
  --wobly-overline-page-offset: 64px;
}

.wobly-site,
.editor-styles-wrapper {
  background: var(--theme-palette-color-6);
  color: var(--theme-palette-color-3);
  -webkit-font-smoothing: antialiased;
}

/* Bases des pages éditoriales, sans réinitialiser les articles ni la boutique. */
:is(.wobly-home, .wobly-guidance, .wobly-story, .wobly-professionals, .wobly-resources) {
  color: var(--theme-palette-color-3);
}

:is(.wobly-home, .wobly-guidance) {
  background: var(--theme-palette-color-6);
}

:is(.wobly-home, .wobly-guidance),
:is(.wobly-home, .wobly-guidance) *,
:is(.wobly-home, .wobly-guidance) *::before,
:is(.wobly-home, .wobly-guidance) *::after {
  box-sizing: border-box;
}

.wobly-home.wp-block-group > *,
.wobly-home .wp-block-group > *,
.wobly-home :where(.wp-block-group, .wp-block-image, .wp-block-buttons, .wp-block-button, p, h1, h2, h3),
:is(.wobly-guidance, .wobly-story, .wobly-professionals, .wobly-resources) .wp-block-group {
  margin-block: 0;
}

.wobly-home :where(.wp-block-image) {
  margin-inline: 0;
}

.wobly-guidance :where(h1, h2, h3, p, figure, .wp-block-group, .wp-block-buttons),
.wobly-story :where(h1, p, figure),
.wobly-professionals :where(h1, h2, p, figure),
.wobly-resources :where(h1, h2, h3, p, figure) {
  margin: 0;
}

:is(.wobly-home, .wobly-guidance) :where(h1, h2, h3) {
  color: var(--theme-palette-color-3);
}

/* Les variantes plein/contour utilisent les mêmes variables natives Blocksy. */
:is(.wobly-site, .editor-styles-wrapper) .wp-block-buttons {
  --theme-button-min-height: var(--wobly-button-height);
  --theme-button-padding: var(--wobly-button-padding);
}

/* Socle des introductions à deux colonnes ; les proportions restent locales. */
.wobly-story .story-hero,
.wobly-professionals .pro-hero {
  position: relative;
  isolation: isolate;
  padding-bottom: 48px;
}

.wobly-story .story-hero-inner,
.wobly-professionals .pro-hero-inner {
  display: grid;
  align-items: center;
  gap: var(--wobly-hero-gap);
}

.wobly-story .story-hero-copy,
.wobly-professionals .pro-hero-copy {
  min-width: 0;
}

.wobly-story .story-hero-copy h1,
.wobly-professionals .pro-hero h1 {
  margin: 24px 0;
  text-wrap: balance;
}

.wobly-story .story-hero-image,
.wobly-professionals .pro-hero-image {
  position: relative;
  min-width: 0;
  overflow: hidden;
}

.wobly-story .story-hero-image img,
.wobly-professionals .pro-hero-image img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.wobly-story .story-copy,
.wobly-professionals .pro-copy {
  max-width: var(--wobly-copy-width);
  margin-inline: auto;
}

.wobly-story .story-copy p + p,
.wobly-professionals .pro-copy p + p {
  margin-top: var(--wobly-copy-gap);
}

.wobly-story .story-narrative,
.wobly-professionals .pro-foundation {
  padding-block: 8px 36px;
}

.wobly-home .story,
.wobly-homev2 .homev2-resource-card,
.wobly-resources .resources-card {
  border: 1px solid var(--theme-palette-color-5);
  border-radius: var(--wobly-radius);
  background: var(--theme-palette-color-7);
  overflow: hidden;
}

.wobly-story :is(.story-intention, .story-design-copy, .story-closing-panel),
.wobly-professionals .pro-bridge-panel {
  max-width: var(--wobly-panel-width);
}

.wobly-story :is(.story-design-copy, .story-closing-panel),
.wobly-professionals .pro-bridge-panel {
  padding: var(--wobly-panel-padding);
}

/* Les décors partagent leur mécanique ; couleurs, formes et coordonnées locales. */
.wobly-homev2 .homev2-hero::before,
.wobly-story .story-hero::before,
.wobly-professionals .pro-hero::before,
.wobly-guidance .wobly-guide-hero::before,
.wobly-guidance .wobly-guide-hero::after,
.wobly-resources::before,
.wobly-resources::after {
  content: "";
  position: absolute;
  z-index: -1;
  pointer-events: none;
}

/* Encadré de surtitre réutilisable sur toutes les pages. */
:is(.wobly-site, .editor-styles-wrapper) .wobly-overline {
  display: inline-block;
  margin: 0;
  border: 1px solid var(--theme-palette-color-5);
  background: var(--wobly-soft-green);
  padding: 10px 18px;
  border-radius: 100px;
  font-size: var(--wobly-text-label);
  line-height: var(--wobly-text-line-height);
  font-weight: 700;
  letter-spacing: .18em;
  color: var(--theme-palette-color-1);
  text-transform: uppercase;
}

/* Position verticale des surtitres de page. Home V2 conserve son propre
   placement pour l'image au bord du header et sa grille responsive 40/60. */
:is(.wobly-site, .editor-styles-wrapper) :is(.wobly-guide-hero, .story-hero, .pro-hero, .resources-hero) {
  padding-block-start: var(--wobly-overline-page-offset);
}

/* Une photo plus haute ne doit pas décaler le surtitre de sa colonne. */
:is(.wobly-site, .editor-styles-wrapper) :is(.story-hero-copy, .pro-hero-copy) {
  align-self: start;
}

/* Source unique des H1, y compris Resources et les en-têtes natifs Blocksy. */
:is(.wobly-site, .editor-styles-wrapper) h1 {
  font-family: var(--wobly-font-family);
  font-size: var(--wobly-h1-size);
  font-weight: 700;
  font-style: normal;
  line-height: var(--wobly-h1-line-height);
  letter-spacing: normal;
  color: var(--theme-palette-color-3);
}

/* Calcul historique du titre long Our Story, proportionnel au H1 du thème. */
.wobly-story .story-hero-copy h1 {
  --wobly-h1-size: clamp(calc(var(--theme-font-size) * .8333), 3.8vw, calc(var(--theme-font-size) * 1.1667));
  --wobly-h1-line-height: 1.15;
}

:is(.wobly-site, .editor-styles-wrapper) h1 em {
  font-style: normal;
  color: var(--theme-palette-color-2);
}

.wobly-site :is(a, button, input, select, textarea):focus-visible {
  outline: 3px solid var(--theme-palette-color-1);
  outline-offset: 4px;
}

/* Même bulle pour les étapes et le retour en haut natif de Blocksy. */
.wobly-guidance .wobly-step-point,
.wobly-site .ct-back-to-top {
  border-radius: 48% 52% 49% 51% / 50% 47% 53% 50%;
}

.wobly-site .ct-back-to-top {
  box-shadow: 0 0 0 4px var(--theme-palette-color-6), 0 8px 22px var(--theme-palette-color-6);
}

/* Décalage commun des ancres Home/Guidance ; le régler uniquement ici. */
.wobly-site :is(.wobly-home, .wobly-guidance) [id] {
  scroll-margin-top: 28px;
}

/* Keep the main header light in both normal and sticky states. Blocksy's
   default sticky background uses palette color 8, which is peach in Wobly.
   Also cover the inner container used by boxed headers. */
.wobly-site #header [data-row^="middle"],
.wobly-site #header [data-row^="middle"]>div {
  background-color: var(--theme-palette-color-6);
  background-image: none;
}

.wobly-site #header [data-row="middle"] {
  border-bottom: 1px solid var(--theme-palette-color-5);
}

.wobly-site #header .ct-button {
  border-radius: 100px;
  min-height: 48px;
  padding: 13px 23px;
  box-shadow: 0 8px 22px var(--wobly-shadow-color);
}

/* Lien HTML indépendant du menu, avec sa typographie et sa couleur actuelles. */
:is(.wobly-site, .editor-styles-wrapper) .wobly-header-menu-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: var(--menu-item-padding, 0 12.5px);
  font-family: var(--wobly-font-family);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.3;
  color: var(--theme-palette-color-3);
  text-decoration: none;
  white-space: nowrap;
}

/* Le bloc HTML ne doit pas ajouter de marge à l'espacement du lien de menu. */
.wobly-site #header .ct-header-text:has(.wobly-header-menu-link) {
  margin-inline: 0;
}

.wobly-site #header .ct-header-text:has(.wobly-header-menu-link) + .menu-container {
  margin-inline-start: 0;
}

/* Menu et lien HTML partagent le même espacement, sans réduire leur texte. */
.wobly-site #header {
  --wobly-header-menu-gap: 25px;
}

.wobly-site #header [data-device="desktop"] .menu > li > .ct-menu-link,
.wobly-site #header .wobly-header-menu-link {
  --menu-item-padding: 0 calc(var(--wobly-header-menu-gap) / 2);
}

@media (max-width: 1399px) {
  .wobly-site #header {
    --wobly-header-menu-gap: clamp(12px, calc(4vw - 28px), 25px);
    --wobly-header-edge-space: clamp(16px, calc(10vw - 84px), 56px);
    --wobly-header-control-gap: clamp(4px, calc(2vw - 16px), 10px);
  }

  .wobly-site #header [data-row="middle"] > .ct-container {
    width: min(var(--theme-normal-container-max-width), calc(100% - 2 * var(--wobly-header-edge-space)));
  }

  .wobly-site #header .menu-container {
    margin-inline-end: var(--wobly-header-control-gap);
  }

  .wobly-site #header :is([data-id="logo"], .ct-header-trigger) {
    margin-inline-end: var(--wobly-header-control-gap);
  }

  .wobly-site #header :is(.ct-header-cart, .ct-header-trigger) {
    margin-inline-start: var(--wobly-header-control-gap);
  }
}

/* Le logo mobile cède la place nécessaire au lien permanent, au burger et au panier. */
@media (max-width: 999.98px) {
  .wobly-site #header [data-device="mobile"] [data-row="middle"][data-column-set="2"] > .ct-container {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .wobly-site #header [data-device="mobile"] [data-id="logo"] {
    min-width: 0;
  }

  .wobly-site #header [data-device="mobile"] .site-logo-container {
    max-width: 100%;
    height: auto;
  }

  .wobly-site #header [data-device="mobile"] .site-logo-container img {
    max-width: 100%;
    height: auto;
    max-height: var(--logo-shrink-height, var(--logo-max-height, 50px));
  }
}

.wobly-site #footer {
  background: var(--theme-palette-color-6);
  border-top: 1px solid var(--theme-palette-color-5);
}

.wobly-site #footer :is(.ct-footer-copyright, .menu a) {
  font-size: var(--wobly-text-caption);
  color: var(--theme-palette-color-4);
}

.wobly-site #footer .widget_block figure {
  margin: 0;
}

.wobly-site #footer .widget_block img {
  max-width: 140px;
  height: auto;
}

.wobly-site #footer .widget_block p {
  font-size: var(--wobly-text-caption);
  margin: 12px 0 0;
}

/* Blog: Blocksy renders real post titles, featured images, author/date and pagination. */
.wobly-site :is(.entries .entry-card, .woocommerce ul.products li.product) {
  border: 1px solid var(--theme-palette-color-5);
  border-radius: var(--wobly-radius);
  overflow: hidden;
  box-shadow: 0 12px 30px var(--wobly-shadow-soft-color);
}

.wobly-site .entries .entry-card .ct-media-container {
  border-radius: 20px 20px 0 0;
}

.wobly-site .entry-content> :is(p, ul, ol, blockquote) {
  line-height: var(--wobly-text-line-height);
}

/* Citation en ligne : même format sur tout le site et dans l'éditeur. */
:is(.wobly-site, .editor-styles-wrapper) q.wobly-inline-quote {
  color: inherit;
  font-style: italic;
  quotes: "“" "”" "‘" "’";
}

:is(.wobly-site, .editor-styles-wrapper) q.wobly-inline-quote::before {
  content: open-quote;
}

:is(.wobly-site, .editor-styles-wrapper) q.wobly-inline-quote::after {
  content: close-quote;
}

/* Variante globale du paragraphe : grands guillemets, texte de couleur inchangée. */
:is(.wobly-site, .editor-styles-wrapper) .is-style-wobly-large-quote q.wobly-inline-quote {
  position: relative;
  display: block;
  margin-top: 18px;
  padding: 10px 34px 18px;
}

:is(.wobly-site, .editor-styles-wrapper) :is(.is-style-wobly-large-quote, .is-style-wobly-flow-quote) q.wobly-inline-quote::before,
:is(.wobly-site, .editor-styles-wrapper) :is(.is-style-wobly-large-quote, .is-style-wobly-flow-quote) q.wobly-inline-quote::after {
  position: absolute;
  color: var(--theme-palette-color-2);
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 76px;
  font-weight: 700;
  font-style: normal;
  line-height: 1;
  pointer-events: none;
}

:is(.wobly-site, .editor-styles-wrapper) .is-style-wobly-large-quote q.wobly-inline-quote::before {
  top: -12px;
  left: -3px;
}

:is(.wobly-site, .editor-styles-wrapper) .is-style-wobly-large-quote q.wobly-inline-quote::after {
  right: -3px;
  bottom: -30px;
}

/* Variante dont les grands guillemets suivent le texte, même sur plusieurs lignes. */
:is(.wobly-site, .editor-styles-wrapper) .is-style-wobly-flow-quote {
  padding-block: 10px 18px;
}

:is(.wobly-site, .editor-styles-wrapper) .is-style-wobly-flow-quote q.wobly-inline-quote {
  position: relative;
  display: inline;
  margin: 0;
  padding: 0;
}

:is(.wobly-site, .editor-styles-wrapper) .is-style-wobly-flow-quote q.wobly-inline-quote::before,
:is(.wobly-site, .editor-styles-wrapper) .is-style-wobly-flow-quote q.wobly-inline-quote::after {
  position: relative;
  inset: auto;
  line-height: 0;
  vertical-align: -.3em;
}

:is(.wobly-site, .editor-styles-wrapper) .is-style-wobly-flow-quote q.wobly-inline-quote::before {
  top: 8px;
  margin-right: 8px;
}

:is(.wobly-site, .editor-styles-wrapper) .is-style-wobly-flow-quote q.wobly-inline-quote::after {
  top: 28px;
  margin-left: 8px;
}

.wobly-article-body,
.wobly-product-description {
  max-width: 760px;
  margin-inline: auto;
}

.wobly-article-body :is(img, blockquote),
.wobly-product-description img {
  border-radius: 20px;
}

.wobly-article-body blockquote {
  border-left: 4px solid var(--theme-palette-color-2);
  background: var(--wobly-soft-green);
  padding: 24px;
}

/* Native WooCommerce templates; no copied PHP templates and no checkout-field hacks. */
.wobly-site.woocommerce .product .woocommerce-product-gallery {
  overflow: hidden;
}

.wobly-site.woocommerce .product .woocommerce-product-gallery img,
.wobly-site.woocommerce .product .woocommerce-product-gallery .flexy-pills .ct-media-container {
  border-radius: 20px;
}

/* Titre de fiche produit plus compact que les titres des pages éditoriales. */
.wobly-site.single-product h1.product_title {
  --wobly-h1-size: clamp(28px, 3.4vw, 48px);
  --wobly-h1-line-height: 1.15;
}

.wobly-site.woocommerce .product .price {
  color: var(--theme-palette-color-1);
  font-weight: 700;
}

.wobly-site.woocommerce .product .summary {
  line-height: var(--wobly-text-line-height);
}

/* Une section pleine largeur après les deux colonnes, avant les onglets natifs. */
.wobly-site.single-product .wobly-product-details-section {
  clear: both;
  padding-top: clamp(32px, 4vw, 56px);
}

.wobly-product-details-section > .wobly-product-overview {
  max-width: var(--wobly-panel-width);
  margin-inline: auto;
}

/* Présentation produit réutilisable dans la description courte ou détaillée. */
.wobly-product-overview {
  --wobly-product-card-padding: 18px;
  container-type: inline-size;
  padding-top: 12px;
  color: var(--theme-palette-color-4);
}

.wobly-product-overview :where(h2, h3, h4, p, ul) {
  margin: 0;
}

.wobly-product-overview .wobly-product-overview-title {
  width: fit-content;
  max-width: 100%;
  margin-inline: auto;
  color: var(--theme-palette-color-3);
  font-size: clamp(24px, 6cqi, 34px);
  font-weight: 700;
  line-height: 1.16;
  text-align: center;
  text-wrap: balance;
}

.wobly-product-overview .wobly-product-overview-lead {
  margin-top: 12px;
  font-size: var(--wobly-text-size);
  line-height: 1.55;
  text-align: center;
  text-wrap: pretty;
}

.wobly-product-benefits {
  display: grid;
  gap: 18px;
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
}

.wobly-product-benefits > li {
  min-width: 0;
  font-size: 14px;
  line-height: 1.45;
}

.wobly-product-benefits strong {
  display: block;
  margin-bottom: 4px;
  color: var(--theme-palette-color-3);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3;
}

.wobly-product-benefits span {
  display: block;
  font-size: 14px;
  line-height: 1.45;
}

.wobly-product-details {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
  margin-top: 32px;
}

.wobly-product-detail {
  position: relative;
  min-width: 0;
  min-height: calc(44px + 2 * var(--wobly-product-card-padding));
  padding: var(--wobly-product-card-padding);
  padding-inline-start: calc(var(--wobly-product-card-padding) + 60px);
  border: 1px solid var(--theme-palette-color-5);
  border-radius: 22px;
}

.wobly-product-detail::before {
  content: "";
  position: absolute;
  top: var(--wobly-product-card-padding);
  left: var(--wobly-product-card-padding);
  width: 44px;
  height: 44px;
  border-radius: 16px;
  background: var(--wobly-product-icon-background, var(--theme-palette-color-10));
}

.wobly-product-detail::after {
  content: "";
  position: absolute;
  top: calc(var(--wobly-product-card-padding) + 10px);
  left: calc(var(--wobly-product-card-padding) + 10px);
  width: 24px;
  height: 24px;
  background: var(--wobly-product-icon-color, var(--theme-palette-color-2));
  mask: var(--wobly-product-icon) center / contain no-repeat;
}

.wobly-product-overview .wobly-product-detail h4 {
  margin-bottom: 8px;
  color: var(--theme-palette-color-3);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;
}

.wobly-product-detail p {
  font-size: 14px;
  line-height: 1.5;
}

.wobly-product-detail--inclusive {
  --wobly-product-icon: url('../assets/product-person.svg');
}

.wobly-product-detail--type {
  --wobly-product-icon: url('../assets/product-type.svg');
}

.wobly-product-detail--finish {
  --wobly-product-icon: url('../assets/product-layers.svg');
}

.wobly-product-detail--clutter {
  --wobly-product-icon: url('../assets/product-leaf.svg');
}

:is(.wobly-product-detail--type, .wobly-product-detail--finish) {
  --wobly-product-icon-background: var(--wobly-soft-peach);
  --wobly-product-icon-color: var(--theme-palette-color-9);
}

/* Les colonnes suivent la largeur réelle de la description, pas celle de l'écran. */
@container (min-width: 640px) {
  .wobly-product-details {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@container (min-width: 560px) {
  .wobly-product-benefits {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
  }

  .wobly-product-benefits > li + li {
    border-inline-start: 1px solid var(--theme-palette-color-5);
    padding-inline-start: 20px;
  }
}

/* Masquer la catégorie sur la fiche sans modifier son association au produit. */
.wobly-site.single-product .product_meta .posted_in {
  display: none;
}

/* Alerte de retour en stock : formulaire natif, présentation minimale Wobly. */
.wobly-site .cwginstock-subscribe-form {
  container-type: inline-size;
  margin-block: 20px;
  color: var(--theme-palette-color-3);
  font-family: var(--wobly-font-family);
}

.wobly-site .cwginstock-subscribe-form .cwginstock-panel-primary {
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.wobly-site .cwginstock-subscribe-form .cwginstock-panel-primary > .cwginstock-panel-heading {
  padding: 0 0 12px;
  border: 0;
  background: transparent;
}

.wobly-site .cwginstock-subscribe-form .cwginstock-panel-heading h4 {
  margin: 0;
  color: var(--theme-palette-color-3);
  font-family: inherit;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  /* Le plugin centre le titre et les champs dans leur attribut style. */
  text-align: left !important;
}

.wobly-site .cwginstock-subscribe-form :is(.cwginstock-panel-body, .row, .col-md-12, .form-group) {
  min-width: 0;
  margin: 0;
  padding: 0;
}

.wobly-site .cwginstock-subscribe-form__form {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}

.wobly-site .cwginstock-subscribe-form__form > * {
  min-width: 0;
  grid-column: 1 / -1;
}

.wobly-site .cwginstock-subscribe-form input:is([type="text"], [type="email"], [type="tel"]) {
  min-height: 48px;
  margin: 0;
  padding: 12px 16px;
  border: 1px solid var(--wobly-line-accent);
  border-radius: 12px;
  background: var(--theme-palette-color-7);
  color: var(--theme-palette-color-3);
  font: inherit;
  font-size: 16px;
  text-align: left !important;
  box-shadow: none;
}

.wobly-site .cwginstock-subscribe-form .cwgstock_button {
  width: 100%;
  min-height: 48px;
  padding: 12px 22px;
  border: 0;
  border-radius: 100px;
  background: var(--theme-palette-color-1);
  color: var(--theme-palette-color-7);
  font-family: inherit;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: normal;
  text-transform: none;
  box-shadow: none;
}

.wobly-site .cwginstock-subscribe-form .cwgstock_button:hover {
  background: var(--theme-palette-color-3);
}

.wobly-site .cwginstock-subscribe-form :is(input, .cwgstock_button):focus-visible {
  outline: 2px solid var(--theme-palette-color-1);
  outline-offset: 3px;
}

.wobly-site .cwginstock-subscribe-form .cwgstock_output {
  font-size: var(--wobly-text-small);
  line-height: 1.5;
}

.wobly-site .cwginstock-subscribe-form .cwgstock_output:empty {
  display: none;
}

@container (min-width: 440px) {
  .wobly-site .cwginstock-subscribe-form__form {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .wobly-site .cwginstock-subscribe-form__form > .form-group:first-child {
    grid-column: 1;
    grid-row: 1;
  }

  .wobly-site .cwginstock-subscribe-form__form > .form-group:has(> .cwgstock_button) {
    grid-column: 2;
    grid-row: 1;
  }
}

.wobly-site :is(.woocommerce-tabs, .wc-block-cart, .wc-block-checkout) {
  --wc-form-color-text: var(--theme-palette-color-3);
  --wc-form-color-background: var(--theme-palette-color-7);
  --wc-form-border-color: var(--wobly-line-accent);
  --wc-form-border-radius: 12px;
}

.wobly-site :is(.wc-block-components-button, .single_add_to_cart_button, .woocommerce .button) {
  border-radius: 100px;
  min-height: 48px;
}

.wobly-site :is(.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button) {
  background: var(--theme-palette-color-1);
  color: var(--theme-palette-color-7);
  font-weight: 700;
}

.wobly-site :is(.wc-block-components-sidebar, .wc-block-components-order-summary) {
  border-radius: 20px;
}

.wobly-site :is(.wc-block-components-text-input input, .wc-blocks-components-select__select) {
  border-radius: 12px;
}

@media(max-width:760px) {
  .wobly-site #header .ct-button {
    min-height: 44px;
    padding: 11px 16px;
  }

  .wobly-site.woocommerce .product .woocommerce-product-gallery {
    border-radius: 20px;
  }

  .wobly-site .wc-block-components-sidebar {
    margin-top: 24px;
  }
}

@media (max-width: 900px) {
  :root {
    --wobly-overline-page-offset: 48px;
  }

  .wobly-story .story-hero-copy h1 {
    --wobly-h1-size: clamp(calc(var(--theme-font-size) * .8333), 5.2vw, calc(var(--theme-font-size) * 1.1667));
  }
}

/* Échelle tablette commune ; elle préserve aussi la grille 40/60 de Home V2. */
@media (min-width: 761px) and (max-width: 1279px) {
  :root {
    --wobly-h1-size: clamp(30px, 4vw, 56px);
    --wobly-h1-line-height: 1.08;
  }

  /* Le placement du surtitre Home V2 reste dans la feuille de page. */
  .wobly-homev2 .homev2-hero-copy > .wobly-overline {
    padding: 7px 10px;
    font-size: clamp(8px, .85vw, 11px);
    line-height: 1.4;
    letter-spacing: .09em;
  }
}

@media (max-width: 690px) {
  :root {
    --wobly-overline-page-offset: 40px;
    --wobly-h1-size: clamp(36px, 9vw, 47px);
  }

  :is(.wobly-site, .editor-styles-wrapper) .wobly-overline {
    padding: 9px 13px;
    letter-spacing: .14em;
  }
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .wobly-site .ct-back-to-top.ct-show:hover {
    --transform: var(--theme-button-transform, translate3d(0, -3px, 0));
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior: auto !important;
  }

  .wobly-site *,
  .wobly-site *::before,
  .wobly-site *::after {
    transition: none !important;
    animation: none !important;
  }
}
