/* Public Maison layout. Templates share spacing and type; their own media and controls remain in place. */
body.r107-site {
  --maison-ink: #061f60;
  --maison-night: #0a1128;
  --maison-ivory: #fffdfa;
  --maison-warm: #eee8dc;
  --maison-gold: #ecd2a2;
  --maison-text: #43516b;
  --maison-line: #d9d4c9;
  --maison-gutter: clamp(16px, 4.4vw, 76px);
  --maison-width: min(1500px, calc(100% - 2 * var(--maison-gutter)));
  --maison-reading: min(760px, calc(100% - 2 * var(--maison-gutter)));
  --maison-card: 20px;
  --maison-title: clamp(2.05rem, 4vw, 4rem);
  --maison-subhead: clamp(1.65rem, 2.7vw, 2.75rem);
  --r88-width: var(--maison-width);
  --r89-page-width: var(--maison-width);
  --r89-width: var(--maison-width);
  --r90-max: 1500px;
  --r90-gutter: var(--maison-gutter);
  --r91-width: var(--maison-width);
  --r92-card: var(--maison-card);
  --r92-inner: 12px;
  --catalogue-width: var(--maison-width);
}
html:has(body.r107-site) { scroll-padding-block-start: 72px; }
.r107-site :where(main, section, article, figure, fieldset) { min-inline-size: 0; }
.r107-site main :where(img, video) { max-inline-size: 100%; }
.r107-site main :where(h1,h2,h3,legend) { overflow-wrap: anywhere; }
.r107-site main :where(a,button,input,select,textarea,summary):focus-visible,
.r107-site footer :where(a,button,input):focus-visible {
  outline: 2px solid #98672d;
  outline-offset: 3px;
}
.r107-site main :where([data-r64-tone="dark"],.r90-hero.r107-dark,.r107-dark) :focus-visible {
  outline-color: #fff0c7;
}
.r107-site main :is(.r72-price,.r84-plan-price,.r84-product-price,.r92-payment-summary,.r67-bag-total,.r105-card-price) {
  font-variant-numeric: tabular-nums;
}
body.r107-site:not(.r74-home) main > nav.r77-crumb {
  width: var(--maison-width);
  max-width: none;
  margin: clamp(9px, 1.5vw, 23px) auto 0;
  padding: 0;
  text-align: start;
}
.r107-site .r77-crumb ol {
  display: flex;
  flex-wrap: wrap;
  gap: .2rem .55rem;
  align-items: baseline;
}
.r107-site .r77-crumb li { overflow-wrap: anywhere; }
.r107-site .r77-crumb a { text-underline-offset: .2em; }

body.r107-site:not(.r74-home) main > .r91-lineup {
  margin-block: clamp(8px, 1.05vw, 17px) clamp(7px, .9vw, 14px);
}
.r107-site .r91-lineup ul { padding-block: 3px 6px; }
.r107-site .r91-lineup img {
  inline-size: clamp(59px, 5.3vw, 82px);
  block-size: auto;
  aspect-ratio: 3 / 2;
}
.r107-site .r91-lineup a { padding-block: 5px 7px; }
body.r107-site main .r90-surface {
  width: var(--maison-width);
  margin-block: clamp(11px, 1.55vw, 25px) clamp(18px, 2.2vw, 36px);
}
body.r107-site main .r90-outer:has(> .r90-surface) { padding-inline: 0!important; }
body.r107-site main .r90-hero {
  border-radius: var(--maison-card);
  grid-template-columns: minmax(0,1fr) minmax(0,1.04fr);
  border-color: var(--maison-line);
}
body.r107-site main .r90-hero .r90-copy {
  padding: clamp(19px, 3.2vw, 52px);
  gap: clamp(10px, 1.05vw, 16px);
}
body.r107-site main .r90-hero .r90-copy > h1 {
  font-size: var(--maison-title)!important;
  line-height: 1.08;
  letter-spacing: -.033em;
}
body.r107-site main .r90-hero .r90-copy > :is(.r90-lead,.lead,.lede,.r81-pitch,.qb-lede,.hb-lead,.r72-lead) {
  max-inline-size: 56ch;
  line-height: 1.54;
}
body.r107-site main .r90-hero .r90-media { min-block-size: clamp(280px, 30vw, 462px); }
body.r107-site main .r90-hero.r107-dark {
  background: var(--maison-night);
  color: var(--maison-ivory);
  border-color: #1b2743;
}
body.r107-site main .r90-hero.r107-dark .r90-copy > h1 { color: var(--maison-ivory)!important; }
body.r107-site main .r90-hero.r107-dark .r90-copy > :is(.r90-kicker,.eyebrow,.section-label,.r81-eyebrow) { color: var(--maison-gold)!important; }
body.r107-site main .r90-hero.r107-dark .r90-copy > :is(.r90-lead,.lead,.lede,.r81-pitch,.qb-lede,.hb-lead,.r72-lead,.hero-sub,.pmeta,.qb-note) {
  color: #e0e7f4!important;
}
body.r107-site main .r90-hero.r107-dark .r90-copy a.r90-primary {
  color: var(--maison-night)!important;
  background: var(--maison-gold)!important;
  border-color: transparent;
}
body.r107-site main .r90-hero.r107-dark .r90-copy a.r90-secondary {
  color: var(--maison-ivory)!important;
  text-decoration: underline;
}
body.r107-site main .r90-hero.r107-dark .r90-copy a.r90-primary:hover { background: #fff2d5!important; }
body.r107-site main .r90-hero:is(.r90-hero--article,.r90-hero--catalogue) .r90-media { min-block-size: clamp(230px,25vw,380px); }
.r107-site main .r90-copy :is(.r90-actions,.r81-actions,.hero-cta,.hb-cta,.pg-cta) { gap: 9px 14px; }
.r107-site main .r90-copy :is(.r90-actions,.r81-actions,.hero-cta,.hb-cta,.pg-cta) > a {
  min-block-size: 44px;
  white-space: normal;
  text-align: center;
}
.r107-site main .r90-media figcaption { max-inline-size: calc(100% - 24px); }

body.r107-site:not(.r74-home) main > :is(.r82-section,.r81-lineup,.r84-workbench,.r90-outer,.univers) > :is(.r82-wrap,.r81-wrap,.wrap,.r90-surface) {
  width: var(--maison-width);
  max-width: none;
  padding-inline: 0;
  margin-inline: auto;
}
.r107-site main :is(.r82-head,.r94-inner,.r100-priority) { min-inline-size: 0; }
.r107-site main :is(.r82-head,.r106-selection,.r100-priority,.r91-summary) > h2 {
  font-size: var(--maison-subhead);
  line-height: 1.12;
}
.r107-site main :is(.r82-head,.r94-inner,.r106-intro-grid) > p {
  max-inline-size: 65ch;
  line-height: 1.55;
  text-wrap: pretty;
}
.r107-site main :is(.r82-cards,.r84-plan-grid,.artstria-catalogue-grid,.equipment-grid) { align-items: stretch; }
.r107-site main :is(.r82-store-card,.r81-card,.artstria-catalogue-card,.uni-card,.r84-plan,.r92-panel) {
  min-inline-size: 0;
  border-radius: var(--maison-card);
}
.r107-site main :is(.r82-store-card,.artstria-catalogue-card,.r84-plan,.r92-panel) {
  overflow-wrap: anywhere;
}
.r107-site main :is(.r82-card-copy,.r81-card-copy,.artstria-catalogue-copy,.uni-card-copy) { min-inline-size: 0; }
.r107-site main :is(.r82-card-copy,.r81-card-copy,.artstria-catalogue-copy,.uni-card-copy) :is(h3,h4) { line-height: 1.18; }
.r107-site main .r82-cards .r82-store-card .r86-card-media > img {
  display: block;
  inline-size: 100%;
  aspect-ratio: 3 / 2;
  block-size: auto;
  object-fit: cover;
}
.r107-site main .equipment-grid .r82-store-card .equipment-photo > img { object-fit: contain; }
.r107-site main :is(.r91-buy,.r81-cta,.artstria-catalogue-button) {
  min-block-size: 44px;
  max-inline-size: 100%;
  white-space: normal;
}
.r107-site .r72-search :is(input,select), .r107-site .r85-search input,
.r107-site .artstria-catalogue-controls :is(input,select) { min-block-size: 44px; min-inline-size: 0; }
.r107-site .r85-search a { text-underline-offset: .22em; }

body.r107-site[data-r107-page="product"] main > :is(.r73-product,.r88-feature,.r81-feature),
body.r107-site[data-r107-page="product"] main .pdp > .wrap {
  width: var(--maison-width);
  max-width: none;
  margin-inline: auto;
}
body.r107-site[data-r107-page="product"] main :is(.r73-product,.r88-feature,.r88-visual-buy,.r85-detail.r88-offer,.pdp-grid) {
  min-inline-size: 0;
  border: 1px solid var(--maison-line);
  border-radius: var(--maison-card);
  background: var(--maison-ivory);
}
body.r107-site[data-r107-page="product"] main :is(.r73-buying,.r88-buy,.r81-product-title,.r85-detail-card,.pdp-right) {
  min-inline-size: 0;
  background: var(--maison-ivory);
  padding: clamp(19px, 3.15vw, 50px);
}
body.r107-site[data-r107-page="product"] main :is(.r73-buying,.r88-buy,.r81-product-title,.r85-detail-card,.pdp-right) h1 {
  color: var(--maison-ink);
  font-size: var(--maison-title);
  line-height: 1.09;
  letter-spacing: -.032em;
}
.r107-site[data-r107-page="product"] main :is(.r73-brief,.r73-disclosure > p,.r81-pitch,.r88-buy > p,.pdp-d) {
  max-inline-size: 61ch;
  line-height: 1.55;
}
body.r107-site[data-r107-page="product"] .r73-gallery-grid {
  grid-template-columns: clamp(52px,5.2vw,80px) minmax(0,1fr);
  min-block-size: 0;
}
body.r107-site[data-r107-page="product"] :is(.r73-gallery,.r68-gallery) { background: var(--maison-warm); }
.r107-site[data-r107-page="product"] .r73-caption { color: #514632; background: var(--maison-warm); }
.r107-site[data-r107-page="product"] .r73-buying .r72-actions > a:first-child { flex: 0 1 auto; }
.r107-site[data-r107-page="product"] .r73-buying .r72-actions > a:not(:first-child) { flex: 0 1 auto; }
.r107-site[data-r107-page="product"] .r73-buying .r72-actions { gap: 8px; margin-block: 14px; }
.r107-site[data-r107-page="product"] main :is(.r73-disclosure,.r68-disclosure) summary { min-block-size: 44px; }
.r107-site[data-r107-page="product"] .r84-zoom-trigger { min-block-size: 44px; }
.r107-site .r67-buybar:not([hidden]) { z-index: 94; }
body.r107-site:has(.r67-buybar:not([hidden])) { padding-block-end: 95px; }

body.r107-site[data-r107-page="checkout"] main :is(.r92-payment,.r67-basket-page) { padding-block-start: clamp(17px,3.2vw,45px); }
body.r107-site[data-r107-page="checkout"] main :is(.r92-payment h1,.r67-basket-page > h1) {
  font-size: var(--maison-title);
  line-height: 1.11;
}
body.r107-site[data-r107-page="checkout"] main .r92-payment > .r82-wrap { width: min(1220px, calc(100% - 2 * var(--maison-gutter))); }
.r107-site[data-r107-page="checkout"] main :is(.r92-payment-summary,.r91-summary) { min-inline-size: 0; }
.r107-site[data-r107-page="checkout"] main :is(.r92-payment-summary,.r91-summary) :is(a,button) { min-block-size: 44px; }
.r107-site[data-r107-page="document"] main > section:first-of-type > .wrap {
  width: var(--maison-reading);
  max-width: none;
  padding-inline: 0;
  margin-inline: auto;
}
.r107-site[data-r107-page="document"] main > section:first-of-type h1 { font-size: var(--maison-title)!important; line-height: 1.11; }
.r107-site[data-r107-page="document"] main > section:first-of-type :is(p,li) { line-height: 1.62; }
.r107-site[data-r107-page="support"] main :where(form) :is(input:not([type=checkbox],[type=radio]),textarea,select) {
  max-inline-size: 100%;
  font-size: 1rem;
}
.r107-site main .r73-questions > div { width: min(800px, calc(100% - 2 * var(--maison-gutter))); }
.r107-site footer.r72-footer > :is(.r72-shell,.r82-private) {
  width: var(--maison-width);
  max-width: none;
  margin-inline: auto;
}
.r107-site footer :is(.r72-shell nav,.r82-private) { flex-wrap: wrap; }
.r107-site footer :is(.r72-shell nav,.r82-private) a { text-underline-offset: .22em; }

@media (max-width: 820px) {
  body.r107-site main .r90-hero { grid-template-columns: minmax(0,1fr); }
  body.r107-site main .r90-hero .r90-media {
    min-block-size: 0;
    aspect-ratio: 3 / 2;
  }
  body.r107-site main .r90-hero .r90-copy { gap: 11px; }
  body.r107-site[data-r107-page="product"] .r73-gallery-grid { grid-template-columns: minmax(0,1fr); }
  .r107-site[data-r107-page="product"] .r73-gallery-grid > .r73-rail { display: flex; flex-direction: row; }
  .r107-site[data-r107-page="product"] .r73-gallery-grid > .r73-rail > .r73-thumb { inline-size: 54px; }
  .r107-site[data-r107-page="product"] .r73-stage { aspect-ratio: 3 / 2; }
  .r107-site .r67-buybar:not([hidden]) { padding: 10px var(--maison-gutter); gap: 12px; }
  .r107-site .r67-buybar-info { gap: 3px 12px; }
  .r107-site .r67-buybar-info :is(strong,span) { overflow-wrap: anywhere; }
}
@media (max-width: 620px) {
  .r107-site main :is(input:not([type=checkbox],[type=radio],[type=range]),select,textarea) { font-size: max(1rem, 16px); }
  body.r107-site .art-chat-launch { inline-size: 46px; min-block-size: 46px; padding: 0; justify-content: center; }
  body.r107-site .art-chat-launch > span {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }
  body.r107-site[data-r107-page="product"]:has(.r67-buybar:not([hidden])) .art-chat-launch {
    --ac-bottom: calc(max(16px, env(safe-area-inset-bottom)) + 107px);
  }
  body.r107-site[data-r107-page="product"]:has(.r67-buybar:not([hidden])) .r72-effects { bottom: 96px; }
}
@media (prefers-reduced-motion: no-preference) {
  .r107-site [data-r107-entered] { animation: maison-enter .52s cubic-bezier(.2,.68,.22,1) both; }
  @keyframes maison-enter {
    from { opacity: .78; transform: translateY(8px); }
    to { opacity: 1; transform: none; }
  }
}

/* The 2D trail uses a separate surface when WebGL is unavailable. */
body.r74-site .r72-fluid-2d { position: fixed; inset: 0; z-index: 82; opacity: .56; }
body.r74-site .r72-fluid-2d[data-surface="dark"] { opacity: .78; }
@media (prefers-reduced-motion: reduce), (any-pointer: none) {
  body.r74-site .r72-fluid-2d { display: none !important; }
}
