.maison-bundles,.maison-workspace,.maison-configuration {
  width: min(100% - 2 * var(--r90-gutter, 24px), 1320px);
  margin: clamp(32px, 5vw, 66px) auto;
  padding: 0;
  color: #061f60;
  scroll-margin-top: 90px;
}
.maison-bundles header,.maison-workspace header { margin-bottom: 23px; }
.maison-bundles header :is(h2,p),.maison-workspace header :is(h2,p) { margin: 0 0 8px; }
.maison-bundles header p,.maison-workspace header p { max-width: 68ch; color: #455672; }
.maison-bundles-grid,.maison-workspace-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,250px),1fr)); gap: 16px; }
.maison-bundle-card,.maison-tool-card { border: 1px solid #d6dce6; border-radius: 20px; background: #fff; padding: 18px; min-width: 0; }
.maison-bundle-card { display: flex; flex-direction: column; gap: 12px; }
.maison-bundle-card img,.maison-tool-card img { display: block; width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; border-radius: 12px; }
.maison-bundle-card :is(h3,p),.maison-tool-card :is(h3,p) { margin: 0; }
.maison-bundle-card p,.maison-tool-card p { color: #455672; }
.maison-bundle-card > a { margin-top: auto; }
.maison-tool-card { display: flex; flex-direction: column; gap: 8px; }
.maison-tool-card > a:last-child { margin-top: auto; }
.maison-tool-card a,.maison-bundle-card a,.maison-configuration a { color: #061f60; font-weight: 650; text-underline-offset: .22em; }
.maison-workspace-grid { margin-top: 18px; }
.maison-workspace summary { cursor: pointer; min-height: 44px; font-weight: 700; }
.maison-config { display: grid; gap: 10px; padding: 16px; border: 1px solid #ded6c8; border-radius: 14px; background: #f8f4ed; }
.maison-config [hidden],.maison-config[hidden] { display: none; }
.maison-config label { display: grid; gap: 4px; font-weight: 650; font-size: .9rem; }
.maison-config select { width: 100%; min-height: 44px; padding: 6px 9px; color: #061f60; background: #fff; border: 1px solid #a3adc1; border-radius: 8px; font: inherit; }
.maison-config [data-bundle-price] { font-weight: 700; color: #061f60; }
.maison-config :is([role=status],[data-bundle-details]) { font-size: .88rem; color: #445575; }
.maison-config [data-bundle-buy] { display: inline-flex; align-items: center; width: fit-content; min-height: 44px; padding: 6px 16px; border-radius: 999px; color: #fff; background: #061f60; text-decoration: none; }
.maison-config [data-bundle-buy][hidden] { display: none; }
:is(.maison-config,.maison-bundles,.maison-workspace) :focus-visible { outline: 2px solid #956c32; outline-offset: 3px; }
.maison-market-feature { max-width: 1320px; width: min(100% - 48px,1320px); margin-inline: auto; }
.maison-market-feature .r90-copy p { color: #435472; }
.maison-market-feature .r90-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.maison-market-feature .maison-market-status { font-size: .9rem; }
@media (max-width: 760px){
  .maison-market-feature .r90-media { grid-row: 1; }
  .maison-market-feature .r90-copy { grid-row: 2; }
}
.maison-config .maison-checkout-upfront { margin: 4px 0 0; font-size: .91rem; font-weight: 700; line-height: 1.45; color: #061f60; }
@media (min-width: 1150px) {
  .maison-bundle-card > p { min-height: 4.65em; }
}

.maison-restaurant { scroll-margin-top: 90px; }
.maison-restaurant :is(h2,h3,p) { text-wrap: pretty; }
.maison-restaurant .maison-bundles-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.maison-restaurant .maison-restaurant-scope { margin: 0; padding-inline-start: 1.15rem; color: #455672; }
.maison-restaurant-scope li + li { margin-top: 5px; }
.maison-restaurant .maison-restaurant-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-top: auto; }
.maison-restaurant .maison-restaurant-actions a { display: inline-flex; align-items: center; min-height: 44px; }
.maison-restaurant .maison-restaurant-primary { color: #fff; background: #061f60; border-radius: 999px; padding: 8px 18px; text-decoration: none; }
.maison-restaurant .maison-restaurant-price { color: #061f60; font-weight: 700; font-variant-numeric: tabular-nums; }
.maison-restaurant .maison-config { margin-top: auto; }
.maison-restaurant .maison-config p { min-height: 0; }
.maison-restaurant .maison-config [data-bundle-price] { display: grid; gap: 3px; line-height: 1.35; }
#restaurant-materiel .maison-config { margin-top: 0; }
@media (max-width: 620px) {
  body:has(.maison-restaurant) .art-chat-launch { inline-size: 46px; min-block-size: 46px; padding: 0; justify-content: center; }
  body:has(.maison-restaurant) .art-chat-launch > span {
    position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap;
  }
}

.maison-restaurant .maison-bundle-card > p { min-height: 0; }
.maison-restaurant-compact { padding: clamp(18px, 3vw, 32px); border: 1px solid #ded6c8; border-radius: 20px; background: #f8f4ed; }
.maison-restaurant-compact header { margin-bottom: 4px; }
.maison-restaurant-compact a { font-weight: 700; color: #061f60; text-underline-offset: .2em; }

.digital-catalogue { padding-block-start: clamp(24px, 4vw, 56px); }
.digital-catalogue, .digital-catalogue #r81-digital { scroll-margin-top: 12px; }
.digital-catalogue .r81-family-nav { margin-bottom: clamp(20px, 4vw, 46px); }
.digital-catalogue .r81-lane { scroll-margin-top: 12px; margin-block: 0 clamp(35px, 5vw, 68px); }
.digital-catalogue .digital-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 246px), 1fr)); gap: clamp(13px, 1.5vw, 22px);
}
.digital-catalogue .r81-card { width: auto; border-color: #d6dce6; }
.digital-catalogue .r81-card-copy { padding: clamp(16px, 1.5vw, 22px); gap: 8px; }
.digital-catalogue .r81-card-copy :is(h4,p) { margin: 0; }
.digital-catalogue .r81-card-copy h4 { font-size: clamp(18px, 1.6vw, 22px); }
.digital-catalogue .digital-price { font-size: .875rem; font-weight: 650; color: #455672; font-variant-numeric: tabular-nums; }
.digital-catalogue .digital-actions { margin-top: auto; display: flex; align-items: center; flex-wrap: wrap; gap: 4px 12px; padding-top: 8px; }
.digital-catalogue .digital-actions a { min-height: 44px; display: inline-flex; align-items: center; font-weight: 650; text-underline-offset: .2em; }
.digital-catalogue .digital-actions [hidden] { display: none; }
.digital-catalogue .digital-actions .digital-buy { padding: 6px 14px; color: white; background: #061f60; border-radius: 999px; text-decoration: none; }
.digital-catalogue .digital-actions .digital-buy:hover { background: #163477; }
.digital-catalogue a:focus-visible { outline: 2px solid #956c32; outline-offset: 3px; }


/* A shared card rhythm, with an aligned product action row across each range. */
.digital-catalogue .digital-grid { align-items: stretch; }
.digital-catalogue .r81-card-photo { aspect-ratio: 3 / 2; }
.digital-catalogue .r81-card-photo img { height: 100%; }
.digital-catalogue .r81-card-copy { align-items: stretch; }
.digital-catalogue .digital-price { min-height: 1.42em; }
@media (max-width: 560px) {
  .digital-catalogue { padding-block: 36px; }
  .digital-catalogue .r81-family-nav { display: flex; flex-wrap: wrap; gap: 8px; }
}

.workspace-product .r90-media { margin: 0; }
.workspace-product-tagline { font-size: clamp(19px, 2.2vw, 29px); font-weight: 650; line-height: 1.25; margin-block: 16px 10px; }
.workspace-product-price { font-weight: 700; font-size: clamp(19px, 2vw, 25px); font-variant-numeric: tabular-nums; }
.workspace-product-price small { display: block; font-size: .62em; font-weight: 500; margin-block-start: 4px; }
.workspace-product-scope { padding-block: clamp(28px, 6vw, 76px); }
.workspace-product-scope h2 { margin: 0 0 18px; }
.workspace-product-scope p { max-width: 66ch; }

/* Legacy catalogue fragments point at the current cards. */
.digital-catalogue :is(article[id],.r81-lane-top[id]) { scroll-margin-top: 12px; }
.digital-catalogue .r81-card-copy h4 a:focus-visible { outline-offset: 2px; }
body main #abonnements .marketing-plan-grid:has(> .r92-plan) { grid-template-columns: repeat(3,minmax(0,1fr)); margin-block: 24px; }
body main #abonnements .marketing-plan-grid .r92-plan > .r91-buy { width: 100%; }
@media (max-width: 920px) {
  body main #abonnements .marketing-plan-grid:has(> .r92-plan) { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 610px) {
  body main #abonnements .marketing-plan-grid:has(> .r92-plan) { grid-template-columns: minmax(0,1fr); }
}

#main:has(.marketing-plan-grid) #abonnements { scroll-margin-top: 95px; }
