


html { scroll-padding-top: calc(var(--space-unit) * 1); }
body { overflow-x: hidden; }
h1, h2, h3 { color: var(--c-ink); text-wrap: balance; }
.wc-lead, .product__text, .panel__note { text-wrap: pretty; }
.wc-hero .wc-lead, .page-head .wc-lead, .cta-band p { text-wrap: balance; }
.nowrap { white-space: nowrap; }
sup { line-height: 0; vertical-align: baseline; position: relative; top: -0.4em; font-size: 0.7em; }
.mail { text-transform: none; overflow-wrap: anywhere; }


.picto { width: 1.25em; height: 1.25em; flex: none; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }


.logotype { display: inline-flex; align-items: baseline; gap: 0.3em; min-height: 48px; line-height: 1; white-space: nowrap;
  font-family: var(--font-head); font-size: clamp(1.15rem, 0.95rem + 1vw, 1.7rem); letter-spacing: -0.01em; text-decoration: none; }
.wc-brand.logotype { align-items: center; font-size: clamp(1.15rem, 0.95rem + 1vw, 1.7rem); font-weight: 400; }
.logotype__top { color: var(--c-brand-ink); font-weight: 400; }
.logotype__name { color: var(--c-ink); font-weight: 600; }
.wc-footer .logotype { min-height: 0; }
.wc-footer .logotype__top { color: var(--c-brand-on-dark); }
.wc-footer .logotype__name { color: var(--c-on-dark); }


.wc-header { border-bottom: 1px solid rgba(var(--c-dark-rgb), 0.1); }
.wc-header__bar { gap: calc(var(--space-unit) * 0.75); }
.header-call { display: inline-flex; align-items: center; gap: 0.45rem; min-height: 48px; padding: 0.4rem 0.6rem; margin-left: auto;
  color: var(--c-ink); font-weight: 600; text-decoration: none; border-radius: var(--radius); }
.header-call .picto { color: var(--c-brand-ink); }
.header-call:hover { background: var(--c-surface-alt); color: var(--c-ink); }
.header-call__short { display: none; }
@media (max-width: 899.98px) {
  .header-call { border: 2px solid var(--c-ink); padding-inline: 0.75rem; }
  .header-call__long { display: none; }
  .header-call__short { display: inline; }
}
@media (max-width: 479.98px) {
  .wc-header__bar { gap: 0.5rem; }
  .header-call { min-width: 48px; justify-content: center; padding-inline: 0.6rem; }
  .header-call__short { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .wc-nav__toggle { padding-inline: 0.65rem; }
}


.wc-hero--type.hero { border-top: 0; padding-block: clamp(1.75rem, 1rem + 4vw, 5.5rem); position: relative; }
.wc-hero--type.hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 6px; background: var(--c-brand); }
.hero__grid { display: grid; gap: calc(var(--space-unit) * 2); align-items: center; }
@media (min-width: 960px) { .hero__grid { grid-template-columns: 1.35fr 1fr; gap: calc(var(--space-unit) * 3); } }
.hero .wc-eyebrow { margin-bottom: calc(var(--space-unit) * 0.6); }
.wc-hero--type.hero h1 { font-size: clamp(2.15rem, 1.3rem + 4.2vw, 4.6rem); max-width: 14ch; line-height: 1.05; margin-bottom: calc(var(--space-unit) * 0.7); }
.hero .wc-lead { color: var(--c-ink); max-width: 36ch; margin-bottom: calc(var(--space-unit) * 1.1); }
.hero__address { display: flex; align-items: flex-start; gap: 0.5rem; font-weight: 600; margin-bottom: calc(var(--space-unit) * 1.1); }
.hero__address .picto { color: var(--c-brand-ink); margin-top: 0.15em; }


.ticket { background: var(--c-surface); border: 2px solid var(--c-brand); border-radius: var(--radius-lg); padding: calc(var(--space-unit) * 1.4);
  box-shadow: 8px 8px 0 rgba(var(--c-dark-rgb), 0.08); }
.ticket__title { font-family: var(--font-head); font-size: clamp(1.3rem, 1.1rem + 0.8vw, 1.7rem); margin: 0 0 calc(var(--space-unit) * 0.8);
  padding-bottom: calc(var(--space-unit) * 0.6); border-bottom: 2px dashed rgba(var(--c-dark-rgb), 0.25); }
.ticket__row { display: grid; grid-template-columns: auto 1fr; gap: 0.75rem; align-items: start; padding-block: calc(var(--space-unit) * 0.5); margin: 0; }
.ticket__row + .ticket__row { border-top: 1px solid rgba(var(--c-dark-rgb), 0.1); }
.ticket__row .picto { color: var(--c-brand-ink); margin-top: 0.2em; }
.ticket__label { display: block; font-size: 0.875rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--c-muted); }
.ticket__value { display: block; font-size: 1.08rem; color: var(--c-ink); }
.ticket a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; }
@media (max-width: 959.98px) { .hero .ticket { max-width: 520px; } }


.wc-section-head h2 { margin-bottom: calc(var(--space-unit) * 0.5); }
.rule { display: block; width: 64px; height: 4px; background: var(--c-brand); border-radius: 2px; margin-bottom: calc(var(--space-unit) * 1); }


.products { list-style: none; padding: 0; margin: 0; border-top: 2px solid var(--c-ink); }
.products > li { max-width: none; margin: 0; }
.product { display: grid; gap: calc(var(--space-unit) * 0.5); align-items: baseline; padding-block: calc(var(--space-unit) * 1.4);
  border-bottom: 1px solid rgba(var(--c-dark-rgb), 0.18); }
@media (min-width: 760px) { .product { grid-template-columns: 4.5rem 1fr minmax(0, 26rem); gap: calc(var(--space-unit) * 1.5); } }
.product__num { font-family: var(--font-head); font-size: 1.1rem; color: var(--c-brand-ink); }
.product__name { font-size: clamp(1.7rem, 1.2rem + 2.4vw, 3rem); margin: 0; line-height: 1.08; }
.product__text { margin: 0; color: var(--c-muted); }
.product__text a { font-weight: 600; }
.products-more { margin-top: calc(var(--space-unit) * 1.5); }


.visit { display: grid; gap: calc(var(--space-unit) * 2); }
@media (min-width: 860px) { .visit { grid-template-columns: 1fr 1fr; gap: calc(var(--space-unit) * 3); align-items: stretch; } }
.visit > * { height: 100%; }
.panel { display: flex; flex-direction: column; background: var(--c-surface); border-radius: var(--radius-lg); padding: calc(var(--space-unit) * 1.5); border: 1px solid rgba(var(--c-dark-rgb), 0.12); }
.panel h3 { display: flex; align-items: center; gap: 0.6rem; margin-bottom: calc(var(--space-unit) * 0.9); }
.panel h3 .picto { color: var(--c-brand-ink); }
.wc-map__address { font-family: var(--font-head); font-size: clamp(1.3rem, 1.1rem + 0.9vw, 1.75rem); line-height: 1.25; margin: 0 0 calc(var(--space-unit) * 0.5); }
.wc-map { grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 0.75rem; align-content: start; }
.wc-map__address { grid-column: 1 / -1; }
.wc-map .wc-btn { width: 100%; }
.wc-hours { max-width: none; margin-bottom: 0; }
.wc-hours td { font-variant-numeric: tabular-nums; }
.panel__note { margin: calc(var(--space-unit) * 0.8) 0 0; font-size: 0.95rem; color: var(--c-muted); }


.cta-band { background: var(--c-surface-alt); border-top: 6px solid var(--c-brand); }
.cta-band__inner { display: grid; gap: calc(var(--space-unit) * 1.2); align-items: center; }
@media (min-width: 860px) { .cta-band__inner { grid-template-columns: 1.4fr auto; gap: calc(var(--space-unit) * 3); } }
.cta-band h2 { margin-bottom: calc(var(--space-unit) * 0.4); }
.cta-band p { margin: 0; color: var(--c-muted); }


.page-head { background: var(--c-surface-alt); padding-block: clamp(1.75rem, 1rem + 3vw, 3.75rem); position: relative; }
.page-head::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 6px; background: var(--c-brand); }
.page-head h1 { font-size: clamp(2rem, 1.3rem + 3.2vw, 3.6rem); max-width: 18ch; margin-bottom: calc(var(--space-unit) * 0.6); }
.page-head .wc-lead { margin-bottom: calc(var(--space-unit) * 1); }


.order { display: grid; gap: calc(var(--space-unit) * 1); list-style: none; padding: 0; margin: 0; }
@media (min-width: 1000px) { .order { grid-template-columns: repeat(3, 1fr); } }
.order > li { max-width: none; margin: 0; background: var(--c-surface); border-radius: var(--radius-lg); padding: calc(var(--space-unit) * 1.3);
  border: 1px solid rgba(var(--c-dark-rgb), 0.12); display: flex; flex-direction: column; gap: calc(var(--space-unit) * 0.5); }
.order h3 { display: flex; align-items: center; gap: 0.6rem; margin: 0; }
.order h3 .picto { color: var(--c-brand-ink); }
.order p { margin: 0 0 calc(var(--space-unit) * 0.5); color: var(--c-muted); }
.order .wc-btn { margin-top: auto; align-self: flex-start; }


.contact-grid { display: grid; gap: calc(var(--space-unit) * 2); }
@media (min-width: 900px) { .contact-grid { grid-template-columns: 1fr 1fr; gap: calc(var(--space-unit) * 3); align-items: start; } }
.wc-contact dd { max-width: none; }
.wc-contact a { min-height: 44px; display: inline-flex; align-items: center; }
.form-wrap { background: var(--c-surface); border-radius: var(--radius-lg); padding: clamp(1.1rem, 0.8rem + 2vw, 2.2rem); border: 1px solid rgba(var(--c-dark-rgb), 0.12); }
.form-status { margin-top: calc(var(--space-unit) * 1); padding: calc(var(--space-unit) * 0.8) calc(var(--space-unit) * 1); border-radius: var(--radius);
  background: var(--c-surface-alt); border-left: 4px solid var(--c-brand); color: var(--c-ink); font-size: 1rem; font-weight: 600; }
.form-wrap h2 { font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem); }


.prose h2 { font-size: clamp(1.3rem, 1.1rem + 0.8vw, 1.7rem); margin-top: calc(var(--space-unit) * 2); }
.prose h2:first-child { margin-top: 0; }


.wc-footer p { color: var(--c-on-dark-muted); }
.wc-footer .wc-footer__legal { max-width: none; }
.wc-footer address { font-style: normal; color: var(--c-on-dark); }
.wc-footer .footer-link { display: inline-flex; align-items: center; min-height: 44px; }
.wc-footer__brand .logotype { margin-bottom: calc(var(--space-unit) * 0.6); }


@media (prefers-reduced-motion: reduce) { .wc-btn, .header-call { transition: none; } }
