.chalet-services-shell,
.chalet-booking-app,
.chalet-booking-page .wc-appointments-appointment-form-wrap,
.chalet-design-preview-shell {
  --chalet-bg:#f6f5f2;
  --chalet-panel:#ffffff;
  --chalet-panel-2:#efede8;
  --chalet-line:#d8d5ce;
  --chalet-line-soft:rgba(5,5,5,.1);
  --chalet-line-mid:rgba(5,5,5,.18);
  --chalet-line-strong:rgba(5,5,5,.48);
  --chalet-text:#0b0b0b;
  --chalet-muted:#64666b;
  --chalet-muted-soft:rgba(5,5,5,.45);
  --chalet-accent:#b99cff;
  --chalet-heading:#050505;
  --chalet-button-bg:#050505;
  --chalet-button-text:#ffffff;
  --chalet-button-border:#050505;
  --chalet-calendar-bg:#ffffff;
  --chalet-calendar-text:#111111;
  --chalet-calendar-muted:#8b8d92;
  --chalet-calendar-available-bg:#f2f0eb;
  --chalet-calendar-available-text:#111111;
  --chalet-calendar-selected-bg:#050505;
  --chalet-calendar-selected-text:#ffffff;
  --chalet-surface-soft:rgba(5,5,5,.025);
  --chalet-surface-strong:rgba(5,5,5,.07);
  --chalet-grid-line:transparent;
  --chalet-shadow:0 24px 70px rgba(23,22,18,.12);
  --chalet-radius:6px;
  --chalet-radius-sm:4px;
  --chalet-radius-lg:8px;
  --chalet-container:1320px;
  --chalet-gap:20px;
  --chalet-body-font:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --chalet-heading-font:"Bebas Neue",Inter,Arial,sans-serif;
  --chalet-body-size:16px;
  --chalet-label-size:14px;
  --chalet-button-size:16px;
  --chalet-service-title-size:96px;
  --chalet-service-price-size:48px;
  color:var(--chalet-text);
  font-family:var(--chalet-body-font);
  font-size:var(--chalet-body-size);
}
.chalet-services-shell *,
.chalet-booking-app *,
.chalet-booking-page .wc-appointments-appointment-form-wrap *,
.chalet-design-preview-shell * { box-sizing:border-box; }
.chalet-services-shell,
.chalet-booking-app,
.chalet-booking-page .wc-appointments-appointment-form-wrap,
.chalet-design-preview-shell {
  position:relative;
  max-width:var(--chalet-container);
  margin:0 auto;
}
.chalet-services-shell,
.chalet-booking-app,
.chalet-booking-page .wc-appointments-appointment-form-wrap,
.chalet-design-preview-shell,
.chalet-calendar-preview {
  background:
    linear-gradient(var(--chalet-grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--chalet-grid-line) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255,255,255,.02), transparent 25%),
    var(--chalet-bg);
  background-size:56px 56px,56px 56px,100% 100%,100% 100%;
}
.chalet-services-shell,
.chalet-booking-app { 
  padding:clamp(18px,3vw,34px);
  border-radius:var(--chalet-radius-lg);
  border:1px solid var(--chalet-line);
  box-shadow:var(--chalet-shadow);
}
.chalet-services-shell a,
.chalet-booking-app a { color:inherit; text-decoration:none; }
.chalet-services-shell h1,
.chalet-services-shell h2,
.chalet-services-shell h3,
.chalet-services-shell h4,
.chalet-services-shell h5,
.chalet-services-shell h6,
.chalet-booking-app h1,
.chalet-booking-app h2,
.chalet-booking-app h3,
.chalet-booking-app h4,
.chalet-booking-app h5,
.chalet-booking-app h6,
.chalet-booking-page .wc-appointments-appointment-form-wrap h1,
.chalet-booking-page .wc-appointments-appointment-form-wrap h2,
.chalet-booking-page .wc-appointments-appointment-form-wrap h3,
.chalet-booking-page .wc-appointments-appointment-form-wrap h4,
.chalet-booking-page .wc-appointments-appointment-form-wrap h5,
.chalet-booking-page .wc-appointments-appointment-form-wrap h6,
.chalet-design-preview-shell h1,
.chalet-design-preview-shell h2,
.chalet-design-preview-shell h3,
.chalet-design-preview-shell h4,
.chalet-design-preview-shell h5,
.chalet-design-preview-shell h6 {
  color:var(--chalet-heading)!important;
  font-family:var(--chalet-heading-font);
  font-weight:700;
  font-size:var(--chalet-button-size);
  letter-spacing:.02em;
  line-height:.95;
  text-transform:uppercase;
  margin:0;
}
.chalet-booking-hero__eyebrow,
.chalet-service-card__eyebrow {
  color:var(--chalet-muted);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.85rem;
}
.chalet-button,
.chalet-services-shell .button,
.chalet-booking-app button,
.chalet-booking-page .wc-appointments-appointment-form-wrap button,
.chalet-booking-page .wc-appointments-appointment-form-wrap .button,
.chalet-booking-page .single_add_to_cart_button {
  appearance:none;
  border:1px solid var(--chalet-button-border)!important;
  background:var(--chalet-button-bg)!important;
  color:var(--chalet-button-text)!important;
  border-radius:0!important;
  padding:14px 22px!important;
  min-height:auto!important;
  font-weight:700;
  font-size:var(--chalet-button-size);
  letter-spacing:.02em;
  line-height:1.1;
  text-decoration:none!important;
  box-shadow:none!important;
  transition:transform .18s ease, opacity .18s ease, background .18s ease, color .18s ease;
}
.chalet-button:hover,
.chalet-services-shell .button:hover,
.chalet-booking-app button:hover,
.chalet-booking-page .wc-appointments-appointment-form-wrap button:hover,
.chalet-booking-page .wc-appointments-appointment-form-wrap .button:hover,
.chalet-booking-page .single_add_to_cart_button:hover { transform:translateY(-1px); opacity:.96; }
.chalet-button--ghost {
  background:transparent!important;
  color:var(--chalet-text)!important;
  border-color:var(--chalet-line-strong)!important;
}
.chalet-services-head,
.chalet-booking-app__head { margin-bottom:22px; }
.chalet-services-head h2,
.chalet-booking-app__title { font-size:clamp(40px, 6vw, 82px); }
.chalet-services-head p,
.chalet-booking-app__text,
.chalet-booking-app__panel-head p,
.chalet-service-card__text,
.chalet-booking-hero__text { color:var(--chalet-muted); font-size:1rem; line-height:1.7; margin:0; }
.chalet-services-grid,
.chalet-staff-grid,
.chalet-shortcode-grid,
.chalet-dashboard-stats,
.chalet-design-preview-wrap .chalet-design-preview-shell {
  display:grid;
  gap:var(--chalet-gap);
}
.chalet-services-grid { grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
.chalet-service-card,
.chalet-staff-card,
.chalet-shortcode-card,
.chalet-dashboard-stat,
.chalet-booking-app__panel,
.chalet-admin-card,
.chalet-calendar-preview,
.chalet-design-preview {
  border:1px solid var(--chalet-line-soft);
  background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.015));
  border-radius:var(--chalet-radius);
  overflow:hidden;
}
.chalet-service-card {
  display:flex;
  flex-direction:column;
  min-height:100%;
  cursor:pointer;
}
.chalet-service-card__media {
  min-height:70px;
  background:
    linear-gradient(var(--chalet-grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--chalet-grid-line) 1px, transparent 1px),
    var(--chalet-service-image, linear-gradient(135deg, rgba(185,156,255,.28), rgba(5,5,5,.04)));
  background-size:24px 24px,24px 24px,cover;
  background-position:center;
}
.chalet-service-card__body { padding:22px; display:flex; flex-direction:column; gap:14px; flex:1; }
.chalet-service-card__title { font-size:clamp(28px,4vw,48px); }
.chalet-service-card__badge,
.chalet-check-pill,
.chalet-service-card__staff-pill,
.chalet-booking-app__panel-meta span,
.chalet-flow-step {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid var(--chalet-line-soft);
  background:rgba(255,255,255,.03);
  color:var(--chalet-text);
  font-size:.9rem;
}
.chalet-service-card__meta,
.chalet-service-card__staff,
.chalet-booking-app__panel-meta { display:flex; flex-wrap:wrap; gap:10px; }
.chalet-service-card__footer { margin-top:auto; }
.chalet-service-card.is-active,
.chalet-service-card:hover,
.chalet-option-card.is-selected,
.chalet-flow-step.is-active {
  border-color:var(--chalet-line-strong);
  box-shadow:0 0 0 1px rgba(255,255,255,.08) inset;
}
.chalet-booking-flow { display:grid; grid-template-columns:minmax(260px, 400px) minmax(0, 1fr); gap:var(--chalet-gap); align-items:start; }
.chalet-booking-flow__steps { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 18px; }
.chalet-booking-app__service-list,
.chalet-booking-flow__panels { display:grid; gap:var(--chalet-gap); }
.chalet-booking-app__panel { display:none; padding:clamp(18px,3vw,28px); background:rgba(255,255,255,.72); }
.chalet-booking-app__panel.is-active { display:block; }
.chalet-booking-app__panel-head { display:grid; gap:14px; margin-bottom:18px; }
.chalet-booking-app__panel-head h3 { font-size:clamp(36px, 5vw, 72px); }
.chalet-booking-step-title {
  margin:24px 0 14px;
  padding-top:10px;
  border-top:1px solid var(--chalet-line-soft);
  color:var(--chalet-heading);
  font-family:var(--chalet-heading-font);
  text-transform:uppercase;
  letter-spacing:.04em;
  font-size:1.1rem;
}
.chalet-duration-switch {
  display:grid;
  gap:12px;
  margin:0 0 18px;
  padding:16px;
  border:1px solid var(--chalet-line);
  background:
    linear-gradient(var(--chalet-grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--chalet-grid-line) 1px, transparent 1px),
    var(--chalet-panel);
  background-size:22px 22px,22px 22px,100% 100%;
}
.chalet-duration-switch__head {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  text-transform:uppercase;
  font-family:var(--chalet-heading-font);
  letter-spacing:.08em;
}
.chalet-duration-switch__head span { font-size:1.05rem; color:var(--chalet-heading); }
.chalet-duration-switch__head em {
  max-width:360px;
  color:var(--chalet-muted);
  font-family:var(--chalet-body-font);
  font-size:.78rem;
  font-style:normal;
  line-height:1.5;
  text-align:right;
}
.chalet-duration-switch__items {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.chalet-duration-pill {
  flex:1 1 118px;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  min-height:56px!important;
  border-color:var(--chalet-line)!important;
  background:var(--chalet-panel-2)!important;
  color:var(--chalet-text)!important;
  text-align:center;
}
.chalet-duration-pill span {
  min-width:0;
  font-weight:800;
  text-transform:uppercase;
  overflow-wrap:anywhere;
}
/* Formule avec bonus (« 3h +1h offerte ») : ligne pleine largeur, durée à gauche, mention à droite. */
.chalet-duration-pill--note {
  flex:1 1 100%;
  flex-direction:row;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  text-align:left;
}
.chalet-duration-pill em {
  min-width:0;
  color:var(--chalet-muted);
  font-size:.82rem;
  font-style:normal;
  white-space:nowrap;
}
.chalet-duration-pill__note {
  flex:0 1 auto;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  white-space:normal!important;
  overflow-wrap:anywhere;
  line-height:1.25;
  text-align:right;
}
.chalet-duration-pill.is-active {
  background:var(--chalet-button-bg)!important;
  border-color:var(--chalet-button-border)!important;
  color:var(--chalet-button-text)!important;
}
.chalet-duration-pill.is-active em { color:rgba(255,255,255,.72); }
.chalet-duration-panel { display:none; }
.chalet-duration-panel.is-active { display:block; }
.chalet-duration-note {
	margin:0 0 16px;
	padding:12px 16px;
	border-left:3px solid var(--chalet-accent);
	background:var(--chalet-panel-2);
	color:var(--chalet-text);
	font-size:.92rem;
	line-height:1.5;
	border-radius:4px;
}
/* Sélecteur de pack (niveau 1) + sous-menus de split (niveau 2). */
.chalet-pack-switch__items { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 14px; }
.chalet-pack-pill {
	flex:1 1 130px; min-width:0; min-height:50px; padding:12px 16px;
	border:1px solid var(--chalet-line); border-radius:0;
	background:#fff; color:var(--chalet-heading);
	font-family:var(--chalet-heading-font); font-size:1.05rem; font-weight:800;
	letter-spacing:.02em; text-transform:uppercase; cursor:pointer;
	transition:background .16s ease, color .16s ease, border-color .16s ease, transform .16s ease, box-shadow .16s ease;
}
.chalet-pack-pill:hover, .chalet-pack-pill:focus-visible { border-color:var(--chalet-heading); transform:translateY(-1px); outline:none; }
.chalet-pack-pill.is-active {
	background:#050505; border-color:#050505; color:#fff;
	box-shadow:0 0 0 3px rgba(185,156,255,.36), inset 0 -4px 0 var(--chalet-accent,#b99cff);
}
.chalet-pack-splits { display:none; margin-top:2px; }
.chalet-pack-splits.is-active { display:block; }
.chalet-booking-options__groups,
.chalet-booking-options__items { display:grid; gap:14px; }
.chalet-option-card {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:16px 18px;
  border:1px solid var(--chalet-line-soft);
  border-radius:var(--chalet-radius-sm);
  background:rgba(255,255,255,.025);
  color:var(--chalet-text);
  cursor:pointer;
}
.chalet-option-card input { accent-color:var(--chalet-accent); }
.chalet-option-card__price { white-space:nowrap; color:var(--chalet-heading); font-weight:700; }
.chalet-booking-page .wc-appointments-appointment-form-wrap,
.chalet-booking-app .wc-appointments-appointment-form-wrap {
  padding:0!important;
  background:transparent!important;
  border:none!important;
  box-shadow:none!important;
  color:var(--chalet-text)!important;
}
.chalet-booking-app form.cart,
.chalet-booking-page form.cart { display:grid; gap:16px; }
.chalet-booking-app table,
.chalet-booking-app .form-row,
.chalet-booking-page table,
.chalet-booking-page .form-row { color:var(--chalet-text)!important; }
.chalet-booking-app label,
.chalet-booking-page label,
.chalet-booking-app legend,
.chalet-booking-page legend,
.chalet-booking-app .wc-bookings-booking-cost,
.chalet-booking-page .wc-bookings-booking-cost,
.chalet-booking-app .price,
.chalet-booking-page .price { color:var(--chalet-text)!important; }
.chalet-booking-app input[type="text"],
.chalet-booking-app input[type="number"],
.chalet-booking-app input[type="email"],
.chalet-booking-app input[type="tel"],
.chalet-booking-app input[type="date"],
.chalet-booking-app select,
.chalet-booking-app textarea,
.chalet-booking-page input[type="text"],
.chalet-booking-page input[type="number"],
.chalet-booking-page input[type="email"],
.chalet-booking-page input[type="tel"],
.chalet-booking-page input[type="date"],
.chalet-booking-page select,
.chalet-booking-page textarea {
  width:100%;
  background:var(--chalet-panel-2)!important;
  border:1px solid var(--chalet-line-mid)!important;
  color:var(--chalet-text)!important;
  border-radius:14px!important;
  padding:14px 16px!important;
}
.chalet-booking-app ::placeholder,
.chalet-booking-page ::placeholder { color:var(--chalet-muted); }
.chalet-booking-app .ui-datepicker,
.chalet-booking-page .ui-datepicker,
.chalet-booking-app .picker,
.chalet-booking-page .picker,
.chalet-booking-app .wc-appointments-date-picker,
.chalet-booking-page .wc-appointments-date-picker,
.chalet-booking-app .wc-appointments-time-picker,
.chalet-booking-page .wc-appointments-time-picker {
  background:var(--chalet-calendar-bg)!important;
  color:var(--chalet-calendar-text)!important;
  border:1px solid var(--chalet-line-soft)!important;
  border-radius:18px!important;
}
.chalet-booking-app .wc-appointments-date-picker .ui-datepicker-header,
.chalet-booking-page .wc-appointments-date-picker .ui-datepicker-header,
.chalet-booking-app .ui-datepicker-header,
.chalet-booking-page .ui-datepicker-header {
  background:transparent!important;
  border:none!important;
  color:var(--chalet-calendar-text)!important;
}
.chalet-booking-app .ui-datepicker-calendar th,
.chalet-booking-app .ui-datepicker-calendar td,
.chalet-booking-app .ui-datepicker-calendar a,
.chalet-booking-app .ui-datepicker-calendar span,
.chalet-booking-page .ui-datepicker-calendar th,
.chalet-booking-page .ui-datepicker-calendar td,
.chalet-booking-page .ui-datepicker-calendar a,
.chalet-booking-page .ui-datepicker-calendar span,
.chalet-booking-app .wc-appointments-date-picker-date-field,
.chalet-booking-app .wc-appointments-date-picker-date-field *,
.chalet-booking-page .wc-appointments-date-picker-date-field,
.chalet-booking-page .wc-appointments-date-picker-date-field *,
.chalet-booking-app .wc-appointments-time-picker,
.chalet-booking-app .wc-appointments-time-picker *,
.chalet-booking-page .wc-appointments-time-picker,
.chalet-booking-page .wc-appointments-time-picker * {
  color:var(--chalet-calendar-text)!important;
}
.chalet-booking-app .ui-datepicker td a,
.chalet-booking-app .ui-datepicker td span,
.chalet-booking-page .ui-datepicker td a,
.chalet-booking-page .ui-datepicker td span {
  position:relative;
  border-radius:12px!important;
  background:transparent!important;
  border:1px solid transparent!important;
}
.chalet-booking-app .ui-datepicker td.appointable:not(.ui-state-disabled):not(.not_appointable) a,
.chalet-booking-page .ui-datepicker td.appointable:not(.ui-state-disabled):not(.not_appointable) a {
  background:#fff!important;
  border-color:rgba(5,5,5,.16)!important;
  color:var(--chalet-calendar-text)!important;
  font-weight:900!important;
}
.chalet-booking-app .ui-datepicker td.appointable:not(.ui-state-disabled):not(.not_appointable) a::after,
.chalet-booking-page .ui-datepicker td.appointable:not(.ui-state-disabled):not(.not_appointable) a::after {
  content:"";
  position:absolute;
  left:50%;
  bottom:6px;
  width:16px;
  height:3px;
  border-radius:999px;
  background:var(--chalet-accent);
  transform:translateX(-50%);
}
.chalet-booking-app .ui-datepicker td.partial_scheduled:not(.ui-state-disabled) a::after,
.chalet-booking-page .ui-datepicker td.partial_scheduled:not(.ui-state-disabled) a::after {
  background:#050505;
  box-shadow:0 0 0 3px rgba(185,156,255,.2);
}
.chalet-booking-app .ui-datepicker td.fully_scheduled span,
.chalet-booking-page .ui-datepicker td.fully_scheduled span,
.chalet-booking-app .ui-datepicker td.not_appointable span,
.chalet-booking-page .ui-datepicker td.not_appointable span {
  opacity:.34!important;
}
.chalet-booking-app .ui-datepicker td a:hover,
.chalet-booking-page .ui-datepicker td a:hover,
.chalet-booking-app .wc-appointments-time-picker ul li a:hover,
.chalet-booking-page .wc-appointments-time-picker ul li a:hover {
  background:var(--chalet-calendar-available-bg)!important;
  color:var(--chalet-calendar-available-text)!important;
  border-color:var(--chalet-line-mid)!important;
}
.chalet-booking-app .ui-datepicker td.ui-datepicker-current-day a,
.chalet-booking-app .ui-datepicker td .ui-state-active,
.chalet-booking-page .ui-datepicker td.ui-datepicker-current-day a,
.chalet-booking-page .ui-datepicker td .ui-state-active,
.chalet-booking-app .wc-appointments-time-picker ul li.selected a,
.chalet-booking-page .wc-appointments-time-picker ul li.selected a,
.chalet-calendar-preview__grid .is-selected,
.chalet-calendar-preview__slots .is-selected {
  background:var(--chalet-calendar-selected-bg)!important;
  color:var(--chalet-calendar-selected-text)!important;
}
.chalet-booking-app .wc-appointments-time-picker ul,
.chalet-booking-page .wc-appointments-time-picker ul {
  list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:10px;
}
.chalet-booking-app .wc-appointments-time-picker ul li,
.chalet-booking-page .wc-appointments-time-picker ul li { margin:0!important; }
.chalet-booking-app .wc-appointments-time-picker ul li a,
.chalet-booking-page .wc-appointments-time-picker ul li a,
.chalet-calendar-preview__slots span,
.chalet-calendar-preview__grid span {
  display:flex; align-items:center; justify-content:center;
  min-height:44px; padding:10px 12px; border-radius:12px;
  background:var(--chalet-calendar-available-bg); color:var(--chalet-calendar-available-text)!important; border:1px solid var(--chalet-line-soft);
}
.chalet-booking-app .wc-appointments-time-picker ul li.slot-empty a,
.chalet-booking-page .wc-appointments-time-picker ul li.slot-empty a,
.chalet-booking-app .ui-datepicker .ui-state-disabled span,
.chalet-booking-page .ui-datepicker .ui-state-disabled span,
.chalet-calendar-preview__grid .is-muted,
.chalet-calendar-preview__slots .is-muted {
  opacity:.45; color:var(--chalet-calendar-muted)!important; background:rgba(255,255,255,.02)!important;
}
.chalet-calendar-preview { padding:20px; display:grid; gap:16px; }
.chalet-calendar-preview__head,
.chalet-calendar-preview__weekdays,
.chalet-calendar-preview__grid,
.chalet-calendar-preview__slots { display:grid; gap:10px; }
.chalet-calendar-preview__head { grid-template-columns:1fr auto; align-items:center; }
.chalet-calendar-preview__weekdays,
.chalet-calendar-preview__grid { grid-template-columns:repeat(7,1fr); }
.chalet-calendar-preview__slots { grid-template-columns:repeat(4,1fr); }
.chalet-staff-grid { grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.chalet-staff-card { padding:22px; display:grid; gap:12px; }
.chalet-staff-card__avatar { width:64px; height:64px; border-radius:50%; background:rgba(255,255,255,.06); }
.chalet-admin-card,
.chalet-shortcode-card,
.chalet-dashboard-stat { padding:22px; }
.chalet-layout--stacked .chalet-booking-flow,
.chalet-layout--editorial .chalet-booking-flow { grid-template-columns:1fr; }
.chalet-layout--editorial .chalet-booking-app__service-list { grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); display:grid; }


.chalet-booking-page .wc-appointments-appointment-form-wrap label,
.chalet-booking-page .wc-appointments-appointment-form-wrap legend,
.chalet-booking-page .wc-appointments-appointment-form-wrap .label,
.chalet-booking-page .wc-appointments-appointment-form-wrap .description,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-pao-addon-description,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-pao-addon-name,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-pao-addon-label,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-pao-addon-price,
.chalet-booking-page .wc-appointments-appointment-form-wrap .product-addon-price,
.chalet-booking-page .wc-appointments-appointment-form-wrap .amount,
.chalet-booking-page .wc-appointments-appointment-form-wrap .price,
.chalet-booking-page .wc-appointments-appointment-form-wrap .product-addon-totals,
.chalet-booking-page .wc-appointments-appointment-form-wrap .product-addon-totals *,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-pao-addon-container,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-pao-addon-field,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-pao-addon-wrap,
.chalet-booking-page .wc-appointments-appointment-form-wrap .form-row,
.chalet-booking-page .wc-appointments-appointment-form-wrap fieldset,
.chalet-booking-page .wc-appointments-appointment-form-wrap fieldset *,
.chalet-booking-app .wc-appointments-appointment-form-wrap label,
.chalet-booking-app .wc-appointments-appointment-form-wrap legend,
.chalet-booking-app .wc-appointments-appointment-form-wrap .label,
.chalet-booking-app .wc-appointments-appointment-form-wrap .description,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-pao-addon-description,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-pao-addon-name,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-pao-addon-label,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-pao-addon-price,
.chalet-booking-app .wc-appointments-appointment-form-wrap .product-addon-price,
.chalet-booking-app .wc-appointments-appointment-form-wrap .amount,
.chalet-booking-app .wc-appointments-appointment-form-wrap .price,
.chalet-booking-app .wc-appointments-appointment-form-wrap .product-addon-totals,
.chalet-booking-app .wc-appointments-appointment-form-wrap .product-addon-totals *,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-pao-addon-container,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-pao-addon-field,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-pao-addon-wrap,
.chalet-booking-app .wc-appointments-appointment-form-wrap .form-row,
.chalet-booking-app .wc-appointments-appointment-form-wrap fieldset,
.chalet-booking-app .wc-appointments-appointment-form-wrap fieldset * {
  color:var(--chalet-text)!important;
  font-size:inherit;
}
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-pao-addon-field,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-pao-addon-wrap,
.chalet-booking-page .wc-appointments-appointment-form-wrap fieldset,
.chalet-booking-page .wc-appointments-appointment-form-wrap .form-row,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-pao-addon-field,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-pao-addon-wrap,
.chalet-booking-app .wc-appointments-appointment-form-wrap fieldset,
.chalet-booking-app .wc-appointments-appointment-form-wrap .form-row {
  background:transparent!important;
}
.chalet-booking-page .wc-appointments-appointment-form-wrap .product-addon label,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-pao-addon-label,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-pao-addon-name,
.chalet-booking-page .wc-appointments-appointment-form-wrap legend,
.chalet-booking-app .wc-appointments-appointment-form-wrap .product-addon label,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-pao-addon-label,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-pao-addon-name,
.chalet-booking-app .wc-appointments-appointment-form-wrap legend {
  color:var(--chalet-heading)!important;
  font-size:var(--chalet-label-size)!important;
  font-weight:700!important;
}
.chalet-booking-page .wc-appointments-appointment-form-wrap .description,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-pao-addon-description,
.chalet-booking-page .wc-appointments-appointment-form-wrap .product-addon small,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-appointments-date-picker-choose-date,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-appointments-appointment-cost small,
.chalet-booking-page .wc-appointments-appointment-form-wrap .product-addon-totals ul li,
.chalet-booking-app .wc-appointments-appointment-form-wrap .description,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-pao-addon-description,
.chalet-booking-app .wc-appointments-appointment-form-wrap .product-addon small,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-appointments-date-picker-choose-date,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-appointments-appointment-cost small,
.chalet-booking-app .wc-appointments-appointment-form-wrap .product-addon-totals ul li {
  color:var(--chalet-muted)!important;
}
.chalet-booking-page .wc-appointments-appointment-form-wrap select,
.chalet-booking-page .wc-appointments-appointment-form-wrap textarea,
.chalet-booking-page .wc-appointments-appointment-form-wrap input[type="text"],
.chalet-booking-page .wc-appointments-appointment-form-wrap input[type="number"],
.chalet-booking-page .wc-appointments-appointment-form-wrap input[type="email"],
.chalet-booking-page .wc-appointments-appointment-form-wrap input[type="tel"],
.chalet-booking-page .wc-appointments-appointment-form-wrap option,
.chalet-booking-app .wc-appointments-appointment-form-wrap select,
.chalet-booking-app .wc-appointments-appointment-form-wrap textarea,
.chalet-booking-app .wc-appointments-appointment-form-wrap input[type="text"],
.chalet-booking-app .wc-appointments-appointment-form-wrap input[type="number"],
.chalet-booking-app .wc-appointments-appointment-form-wrap input[type="email"],
.chalet-booking-app .wc-appointments-appointment-form-wrap input[type="tel"],
.chalet-booking-app .wc-appointments-appointment-form-wrap option {
  background:var(--chalet-panel)!important;
  color:var(--chalet-text)!important;
  border:1px solid var(--chalet-line-soft)!important;
}
.chalet-booking-page .wc-appointments-appointment-form-wrap input::placeholder,
.chalet-booking-page .wc-appointments-appointment-form-wrap textarea::placeholder,
.chalet-booking-app .wc-appointments-appointment-form-wrap input::placeholder,
.chalet-booking-app .wc-appointments-appointment-form-wrap textarea::placeholder {
  color:var(--chalet-muted)!important;
}

@media (max-width: 1100px) {
  .chalet-booking-flow { grid-template-columns:1fr; }
}
@media (max-width: 782px) {
  .chalet-services-shell,
  .chalet-booking-app { padding:18px; border-radius:22px; }
  .chalet-booking-app__panel { padding:18px; }
  .chalet-booking-flow__steps { overflow:auto; white-space:nowrap; flex-wrap:nowrap; padding-bottom:4px; }
  .chalet-booking-app .wc-appointments-time-picker ul,
  .chalet-booking-page .wc-appointments-time-picker ul,
  .chalet-calendar-preview__slots { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 580px) {
  .chalet-services-head h2,
  .chalet-booking-app__title,
  .chalet-booking-app__panel-head h3,
  .chalet-service-card__title { word-break:break-word; }
  .chalet-service-card__body,
  .chalet-staff-card,
  .chalet-shortcode-card,
  .chalet-dashboard-stat { padding:16px; }
  .chalet-calendar-preview__weekdays,
  .chalet-calendar-preview__grid,
  .chalet-calendar-preview__slots { gap:6px; }
  .chalet-booking-app .wc-appointments-time-picker ul,
  .chalet-booking-page .wc-appointments-time-picker ul,
  .chalet-calendar-preview__slots { grid-template-columns:1fr 1fr; }
}


.chalet-booking-hero {
  position:relative;
  margin:0 0 24px;
  padding:clamp(18px,2.8vw,32px);
  border:1px solid var(--chalet-line-soft);
  border-radius:var(--chalet-radius);
  overflow:hidden;
  background: var(--chalet-panel);
  color:var(--chalet-text)!important;
}
.chalet-booking-hero * { color:inherit; }
.chalet-booking-hero__grid {
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);
  gap:clamp(18px,2vw,28px);
  align-items:start;
}
.chalet-booking-hero__copy {
  display:grid;
  gap:18px;
  min-width:0;
}
.chalet-booking-hero__title {
  font-size:clamp(40px,7vw,var(--chalet-service-title-size))!important;
  line-height:.9!important;
  max-width:12ch;
  word-break:break-word;
}
.chalet-booking-hero__text {
  max-width:34rem;
}
.chalet-booking-hero__aside {
  display:flex;
  justify-content:flex-end;
}
.chalet-booking-hero__price {
  width:100%;
  min-height:100%;
  display:grid;
  align-content:start;
  gap:10px;
  padding:24px;
  border-radius:calc(var(--chalet-radius) - 4px);
  border:1px solid var(--chalet-line-soft);
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.025));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.chalet-booking-hero__price,
.chalet-booking-hero__price *,
.chalet-booking-hero__price .price,
.chalet-booking-hero__price .woocommerce-Price-amount,
.chalet-booking-hero__price bdi,
.chalet-booking-hero__price .amount,
.chalet-booking-hero__price .duration {
  color:var(--chalet-heading)!important;
}
.chalet-booking-hero__price {
  font-family:var(--chalet-body-font);
  font-size:clamp(24px,4.2vw,var(--chalet-service-price-size));
  line-height:1.05;
}
.chalet-booking-hero__price .duration {
  display:inline-block;
  margin-left:8px;
  font-size:clamp(18px,2vw,24px);
  opacity:.92;
}

.chalet-booking-page .wc-appointments-appointment-form-wrap,
.chalet-booking-app .wc-appointments-appointment-form-wrap {
  padding:24px!important;
  border:1px solid var(--chalet-line-soft)!important;
  border-radius:var(--chalet-radius)!important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.012)),
    var(--chalet-panel)!important;
}
.chalet-booking-page .wc-appointments-appointment-form-wrap,
.chalet-booking-page .wc-appointments-appointment-form-wrap p,
.chalet-booking-page .wc-appointments-appointment-form-wrap div,
.chalet-booking-page .wc-appointments-appointment-form-wrap small,
.chalet-booking-page .wc-appointments-appointment-form-wrap strong,
.chalet-booking-page .wc-appointments-appointment-form-wrap span,
.chalet-booking-page .wc-appointments-appointment-form-wrap li,
.chalet-booking-page .wc-appointments-appointment-form-wrap td,
.chalet-booking-page .wc-appointments-appointment-form-wrap th,
.chalet-booking-app .wc-appointments-appointment-form-wrap,
.chalet-booking-app .wc-appointments-appointment-form-wrap p,
.chalet-booking-app .wc-appointments-appointment-form-wrap div,
.chalet-booking-app .wc-appointments-appointment-form-wrap small,
.chalet-booking-app .wc-appointments-appointment-form-wrap strong,
.chalet-booking-app .wc-appointments-appointment-form-wrap span,
.chalet-booking-app .wc-appointments-appointment-form-wrap li,
.chalet-booking-app .wc-appointments-appointment-form-wrap td,
.chalet-booking-app .wc-appointments-appointment-form-wrap th {
  color:var(--chalet-text)!important;
}
.chalet-booking-page .wc-appointments-appointment-form-wrap .woocommerce-Price-currencySymbol,
.chalet-booking-app .wc-appointments-appointment-form-wrap .woocommerce-Price-currencySymbol {
  color:inherit!important;
}
.chalet-booking-page .wc-appointments-appointment-form-wrap .product-addon,
.chalet-booking-page .wc-appointments-appointment-form-wrap .product-addon-totals,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-bookings-booking-cost,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-appointments-appointment-cost,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-appointments-date-picker-date-field,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-appointments-time-picker,
.chalet-booking-app .wc-appointments-appointment-form-wrap .product-addon,
.chalet-booking-app .wc-appointments-appointment-form-wrap .product-addon-totals,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-bookings-booking-cost,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-appointments-appointment-cost,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-appointments-date-picker-date-field,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-appointments-time-picker {
  background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015)), var(--chalet-panel-2)!important;
  color:var(--chalet-text)!important;
  border:1px solid var(--chalet-line-soft)!important;
  border-radius:16px!important;
}
.chalet-booking-page .wc-appointments-appointment-form-wrap .product-addon,
.chalet-booking-app .wc-appointments-appointment-form-wrap .product-addon {
  padding:16px!important;
  margin:0 0 16px!important;
}
.chalet-booking-page .wc-appointments-appointment-form-wrap .product-addon .description,
.chalet-booking-page .wc-appointments-appointment-form-wrap .product-addon small,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-appointments-date-picker-choose-date,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-appointments-appointment-cost small,
.chalet-booking-page .wc-appointments-appointment-form-wrap .product-addon-totals ul li,
.chalet-booking-app .wc-appointments-appointment-form-wrap .product-addon .description,
.chalet-booking-app .wc-appointments-appointment-form-wrap .product-addon small,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-appointments-date-picker-choose-date,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-appointments-appointment-cost small,
.chalet-booking-app .wc-appointments-appointment-form-wrap .product-addon-totals ul li {
  color:var(--chalet-muted)!important;
}
.chalet-booking-page .wc-appointments-appointment-form-wrap .product-addon label,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-pao-addon-label,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-pao-addon-name,
.chalet-booking-app .wc-appointments-appointment-form-wrap .product-addon label,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-pao-addon-label,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-pao-addon-name {
  color:var(--chalet-heading)!important;
}
.chalet-booking-page .wc-appointments-appointment-form-wrap select,
.chalet-booking-page .wc-appointments-appointment-form-wrap textarea,
.chalet-booking-page .wc-appointments-appointment-form-wrap input[type="text"],
.chalet-booking-page .wc-appointments-appointment-form-wrap input[type="number"],
.chalet-booking-app .wc-appointments-appointment-form-wrap select,
.chalet-booking-app .wc-appointments-appointment-form-wrap textarea,
.chalet-booking-app .wc-appointments-appointment-form-wrap input[type="text"],
.chalet-booking-app .wc-appointments-appointment-form-wrap input[type="number"] {
  background:var(--chalet-panel)!important;
}
.chalet-booking-page .wc-appointments-appointment-form-wrap .quantity .qty,
.chalet-booking-app .wc-appointments-appointment-form-wrap .quantity .qty {
  min-height:48px;
}
.chalet-booking-page .wc-appointments-appointment-form-wrap .single_add_to_cart_button,
.chalet-booking-app .wc-appointments-appointment-form-wrap .single_add_to_cart_button {
  width:100%;
  justify-content:center;
}



.chalet-booking-page .wc-appointments-appointment-form-wrap label,
.chalet-booking-page .wc-appointments-appointment-form-wrap legend,
.chalet-booking-page .wc-appointments-appointment-form-wrap .label,
.chalet-booking-page .wc-appointments-appointment-form-wrap .description,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-pao-addon-description,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-pao-addon-name,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-pao-addon-label,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-pao-addon-price,
.chalet-booking-page .wc-appointments-appointment-form-wrap .product-addon-price,
.chalet-booking-page .wc-appointments-appointment-form-wrap .amount,
.chalet-booking-page .wc-appointments-appointment-form-wrap .price,
.chalet-booking-page .wc-appointments-appointment-form-wrap .product-addon-totals,
.chalet-booking-page .wc-appointments-appointment-form-wrap .product-addon-totals *,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-pao-addon-container,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-pao-addon-field,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-pao-addon-wrap,
.chalet-booking-page .wc-appointments-appointment-form-wrap .form-row,
.chalet-booking-page .wc-appointments-appointment-form-wrap fieldset,
.chalet-booking-page .wc-appointments-appointment-form-wrap fieldset *,
.chalet-booking-app .wc-appointments-appointment-form-wrap label,
.chalet-booking-app .wc-appointments-appointment-form-wrap legend,
.chalet-booking-app .wc-appointments-appointment-form-wrap .label,
.chalet-booking-app .wc-appointments-appointment-form-wrap .description,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-pao-addon-description,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-pao-addon-name,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-pao-addon-label,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-pao-addon-price,
.chalet-booking-app .wc-appointments-appointment-form-wrap .product-addon-price,
.chalet-booking-app .wc-appointments-appointment-form-wrap .amount,
.chalet-booking-app .wc-appointments-appointment-form-wrap .price,
.chalet-booking-app .wc-appointments-appointment-form-wrap .product-addon-totals,
.chalet-booking-app .wc-appointments-appointment-form-wrap .product-addon-totals *,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-pao-addon-container,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-pao-addon-field,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-pao-addon-wrap,
.chalet-booking-app .wc-appointments-appointment-form-wrap .form-row,
.chalet-booking-app .wc-appointments-appointment-form-wrap fieldset,
.chalet-booking-app .wc-appointments-appointment-form-wrap fieldset * {
  color:var(--chalet-text)!important;
  font-size:inherit;
}
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-pao-addon-field,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-pao-addon-wrap,
.chalet-booking-page .wc-appointments-appointment-form-wrap fieldset,
.chalet-booking-page .wc-appointments-appointment-form-wrap .form-row,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-pao-addon-field,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-pao-addon-wrap,
.chalet-booking-app .wc-appointments-appointment-form-wrap fieldset,
.chalet-booking-app .wc-appointments-appointment-form-wrap .form-row {
  background:transparent!important;
}
.chalet-booking-page .wc-appointments-appointment-form-wrap .product-addon label,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-pao-addon-label,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-pao-addon-name,
.chalet-booking-page .wc-appointments-appointment-form-wrap legend,
.chalet-booking-app .wc-appointments-appointment-form-wrap .product-addon label,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-pao-addon-label,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-pao-addon-name,
.chalet-booking-app .wc-appointments-appointment-form-wrap legend {
  color:var(--chalet-heading)!important;
  font-size:var(--chalet-label-size)!important;
  font-weight:700!important;
}
.chalet-booking-page .wc-appointments-appointment-form-wrap .description,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-pao-addon-description,
.chalet-booking-page .wc-appointments-appointment-form-wrap .product-addon small,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-appointments-date-picker-choose-date,
.chalet-booking-page .wc-appointments-appointment-form-wrap .wc-appointments-appointment-cost small,
.chalet-booking-page .wc-appointments-appointment-form-wrap .product-addon-totals ul li,
.chalet-booking-app .wc-appointments-appointment-form-wrap .description,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-pao-addon-description,
.chalet-booking-app .wc-appointments-appointment-form-wrap .product-addon small,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-appointments-date-picker-choose-date,
.chalet-booking-app .wc-appointments-appointment-form-wrap .wc-appointments-appointment-cost small,
.chalet-booking-app .wc-appointments-appointment-form-wrap .product-addon-totals ul li {
  color:var(--chalet-muted)!important;
}
.chalet-booking-page .wc-appointments-appointment-form-wrap select,
.chalet-booking-page .wc-appointments-appointment-form-wrap textarea,
.chalet-booking-page .wc-appointments-appointment-form-wrap input[type="text"],
.chalet-booking-page .wc-appointments-appointment-form-wrap input[type="number"],
.chalet-booking-page .wc-appointments-appointment-form-wrap input[type="email"],
.chalet-booking-page .wc-appointments-appointment-form-wrap input[type="tel"],
.chalet-booking-page .wc-appointments-appointment-form-wrap option,
.chalet-booking-app .wc-appointments-appointment-form-wrap select,
.chalet-booking-app .wc-appointments-appointment-form-wrap textarea,
.chalet-booking-app .wc-appointments-appointment-form-wrap input[type="text"],
.chalet-booking-app .wc-appointments-appointment-form-wrap input[type="number"],
.chalet-booking-app .wc-appointments-appointment-form-wrap input[type="email"],
.chalet-booking-app .wc-appointments-appointment-form-wrap input[type="tel"],
.chalet-booking-app .wc-appointments-appointment-form-wrap option {
  background:var(--chalet-panel)!important;
  color:var(--chalet-text)!important;
  border:1px solid var(--chalet-line-soft)!important;
}
.chalet-booking-page .wc-appointments-appointment-form-wrap input::placeholder,
.chalet-booking-page .wc-appointments-appointment-form-wrap textarea::placeholder,
.chalet-booking-app .wc-appointments-appointment-form-wrap input::placeholder,
.chalet-booking-app .wc-appointments-appointment-form-wrap textarea::placeholder {
  color:var(--chalet-muted)!important;
}

@media (max-width: 1100px) {
  .chalet-booking-hero__grid { grid-template-columns:1fr; }
  .chalet-booking-hero__title { max-width:100%; }
  .chalet-booking-hero__aside { justify-content:flex-start; }
}
@media (max-width: 640px) {
  .chalet-booking-page .wc-appointments-appointment-form-wrap,
  .chalet-booking-app .wc-appointments-appointment-form-wrap,
  .chalet-booking-hero { padding:18px!important; }
  .chalet-booking-hero__price { padding:18px; }
}

/* Compact reservation flow */
.chalet-booking-app--wizard {
  max-width:min(1120px, calc(100vw - 40px));
  padding:clamp(34px, 3.6vw, 52px) clamp(24px, 3vw, 44px) clamp(26px, 3vw, 44px);
  border-radius:10px;
}
.chalet-booking-app--wizard .chalet-booking-app__head {
  margin-bottom:26px;
}
.chalet-booking-app--wizard .chalet-booking-hero__eyebrow {
  margin-bottom:10px;
}
.chalet-booking-app--wizard .chalet-booking-app__title {
  font-size:clamp(34px, 4.2vw, 58px);
  letter-spacing:0;
  margin-bottom:12px;
}
.chalet-booking-app--wizard .chalet-booking-app__text {
  max-width:620px;
  font-size:.98rem;
  line-height:1.55;
}
.chalet-booking-app--wizard .chalet-booking-flow__steps {
  margin-bottom:22px;
}
.chalet-booking-app--wizard .chalet-flow-step {
  padding:8px 12px;
  border-radius:999px;
  font-size:.78rem;
}
.chalet-booking-app--wizard .chalet-booking-flow {
  grid-template-columns:264px minmax(0, 1fr);
  gap:clamp(20px, 2.4vw, 34px);
}
.chalet-booking-app--wizard .chalet-booking-flow__services-head h3 {
  font-size:16px;
  line-height:1;
  letter-spacing:.16em;
  margin-bottom:14px;
  color:var(--chalet-muted);
}
.chalet-booking-app--wizard .chalet-booking-app__service-list {
  gap:8px;
}
/* Sélecteur de service : lignes typographiques sobres, sans vignette. */
.chalet-booking-app--wizard .chalet-service-card {
  position:relative;
  min-height:0;
  display:block;
  border-color:var(--chalet-line-soft);
  border-radius:var(--chalet-radius-sm);
  background:transparent;
  transition:border-color .16s ease, background .16s ease, color .16s ease;
}
.chalet-booking-app--wizard .chalet-service-card::before {
  content:"";
  position:absolute;
  top:12px;
  bottom:12px;
  left:0;
  width:2px;
  background:transparent;
  transition:background .16s ease;
}
.chalet-booking-app--wizard .chalet-service-card:hover,
.chalet-booking-app--wizard .chalet-service-card:focus-visible {
  border-color:var(--chalet-line-mid);
  background:rgba(255,255,255,.6);
  outline:none;
}
.chalet-booking-app--wizard .chalet-service-card.is-active {
  border-color:var(--chalet-heading);
  background:#fff;
  box-shadow:none;
  transform:none;
}
.chalet-booking-app--wizard .chalet-service-card.is-active::before {
  background:var(--chalet-accent);
}
/* La vignette (photo / dégradé) n'est pas rendue dans le sélecteur. */
.chalet-booking-app--wizard .chalet-service-card__media {
  display:none;
}
.chalet-booking-app--wizard .chalet-service-card__body {
  padding:14px 16px;
  gap:5px;
}
.chalet-booking-app--wizard .chalet-service-card__eyebrow {
  font-size:.6rem;
  letter-spacing:.16em;
  color:var(--chalet-muted-soft);
  overflow-wrap:anywhere;
}
.chalet-booking-app--wizard .chalet-service-card.is-active .chalet-service-card__eyebrow {
  color:var(--chalet-muted);
}
.chalet-booking-app--wizard .chalet-service-card__title {
  font-size:22px;
  line-height:1;
  letter-spacing:0;
  overflow-wrap:anywhere;
}
.chalet-booking-app--wizard .chalet-service-card__footer {
  display:none;
}
.chalet-booking-app--wizard .chalet-booking-app__panel {
  padding:clamp(22px, 2.8vw, 34px);
  background:rgba(255,255,255,.82);
}
.chalet-booking-app--wizard .chalet-booking-app__panel-head {
  gap:10px;
  margin-bottom:22px;
}
.chalet-booking-app--wizard .chalet-booking-app__panel-head h3 {
  font-size:clamp(30px, 3.8vw, 44px);
  line-height:.96;
  letter-spacing:0;
}
.chalet-booking-app--wizard .chalet-booking-app__panel-head p {
  max-width:650px;
  font-size:.96rem;
  line-height:1.55;
}
.chalet-booking-app--wizard .chalet-duration-switch {
  gap:14px;
  margin-bottom:22px;
  padding:18px;
  border-radius:8px;
  background:var(--chalet-panel);
}
.chalet-booking-app--wizard .chalet-duration-switch__head {
  align-items:center;
}
.chalet-booking-app--wizard .chalet-duration-switch__head span {
  display:block;
  font-size:1rem;
}
.chalet-booking-app--wizard .chalet-duration-switch__head em {
  display:block;
  max-width:none;
  margin-top:4px;
  text-align:left;
  letter-spacing:0;
}
.chalet-booking-app--wizard .chalet-duration-price {
  /* Prix masqué sur la durée : il varie selon l'heure, affiché uniquement sur les créneaux. */
  display:none!important;
}
/* Titre de section « Options supplémentaires » masqué : le client choisit d'abord le type de prestation. */
.chalet-booking-options > .chalet-booking-step-title {
  display:none!important;
}
.chalet-booking-app--wizard .chalet-duration-price .woocommerce-Price-amount,
.chalet-booking-app--wizard .chalet-duration-price bdi {
  display:inline-flex!important;
  align-items:baseline;
  white-space:nowrap!important;
}
.chalet-booking-app--wizard .chalet-duration-price .woocommerce-Price-currencySymbol {
  display:inline!important;
  white-space:nowrap!important;
}
.chalet-booking-app--wizard .chalet-duration-switch__items {
  gap:8px;
}
.chalet-booking-app--wizard .chalet-duration-pill {
  position:relative;
  flex:1 1 78px;
  justify-content:center;
  min-height:46px!important;
  padding:10px 12px!important;
  border:1px solid var(--chalet-line)!important;
  background:#fff!important;
  color:var(--chalet-heading)!important;
  box-shadow:inset 0 0 0 0 transparent!important;
  transition:background .16s ease, color .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.chalet-booking-app--wizard .chalet-duration-pill--note {
  flex-basis:100%;
  min-height:52px!important;
  padding:12px 16px!important;
}
.chalet-booking-app--wizard .chalet-duration-pill span {
  font-size:.9rem;
  color:inherit!important;
}
.chalet-booking-app--wizard .chalet-duration-pill--note span {
  font-size:1.05rem;
  letter-spacing:.02em;
}
.chalet-booking-app--wizard .chalet-duration-pill__note {
  font-size:.68rem;
  color:var(--chalet-muted);
}
.chalet-booking-app--wizard .chalet-duration-pill--note.is-active .chalet-duration-pill__note {
  color:rgba(255,255,255,.78);
}
.chalet-booking-app--wizard .chalet-duration-pill::after {
  content:"";
  position:absolute;
  top:8px;
  right:8px;
  width:7px;
  height:7px;
  border-radius:50%;
  background:transparent;
}
.chalet-booking-app--wizard .chalet-duration-pill:hover,
.chalet-booking-app--wizard .chalet-duration-pill:focus-visible {
  border-color:var(--chalet-heading)!important;
  transform:translateY(-1px);
  outline:none!important;
}
.chalet-booking-app--wizard .chalet-duration-pill.is-active {
  background:#050505!important;
  border-color:#050505!important;
  color:#fff!important;
  box-shadow:0 0 0 3px rgba(185,156,255,.36), inset 0 -4px 0 var(--chalet-accent, #b99cff)!important;
  transform:translateY(-1px);
}
.chalet-booking-app--wizard .chalet-duration-pill.is-active::after {
  background:var(--chalet-accent, #b99cff);
  box-shadow:0 0 0 4px rgba(185,156,255,.18);
}
/* Pas de pastille de coin sur les lignes « formule » : elle chevaucherait la mention. */
.chalet-booking-app--wizard .chalet-duration-pill--note::after {
  content:none;
}
.chalet-booking-app--wizard .chalet-booking-step-title {
  margin:18px 0 10px;
  font-size:1rem;
}
.chalet-booking-app--wizard .chalet-option-card {
  padding:12px 14px;
  border-radius:8px;
}
.chalet-booking-app--wizard .wc-appointments-appointment-form-wrap .chalet-booking-hero {
  display:none!important;
}
.chalet-booking-app--wizard .wc-appointments-appointment-form-wrap {
  padding-top:4px!important;
}
.chalet-booking-app--wizard .wc-appointments-date-picker,
.chalet-booking-app--wizard .wc-appointments-time-picker {
  border-radius:12px!important;
  box-shadow:none!important;
}
.chalet-booking-app--wizard .wc-appointments-date-picker {
  margin-bottom:0!important;
}
.chalet-booking-app--wizard .wc-appointments-time-picker {
  margin-top:10px!important;
  padding:14px!important;
  background:#fff!important;
}
.chalet-booking-app--wizard .slot-picker {
  display:grid!important;
  gap:10px!important;
  margin:0!important;
  padding:14px!important;
  border-top:0!important;
  background:#fff!important;
}
.chalet-booking-app--wizard .slot-picker .slot_row {
  display:grid!important;
  grid-template-columns:repeat(3, minmax(0, 1fr))!important;
  gap:10px!important;
}
.chalet-booking-app--wizard .slot-picker ul.slot_column {
  display:grid!important;
  width:auto!important;
  gap:8px!important;
  margin:0!important;
  padding:0!important;
}
.chalet-booking-app--wizard .slot-picker li.slot_heading {
  color:var(--chalet-muted)!important;
  font-family:var(--chalet-body-font)!important;
  font-size:.72rem!important;
  font-weight:800!important;
  letter-spacing:.12em;
  text-align:left!important;
  text-transform:uppercase;
}
.chalet-booking-app--wizard .slot-picker li.slot_empty {
  opacity:.3;
}
.chalet-booking-app--wizard .wc-appointments-time-picker::before {
  content:"Créneaux disponibles";
  display:block;
  margin:0 0 10px;
  color:var(--chalet-muted);
  font-family:var(--chalet-body-font);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.chalet-booking-app--wizard .wc-appointments-time-picker ul {
  grid-template-columns:repeat(auto-fit, minmax(92px, 1fr))!important;
}
.chalet-booking-app--wizard .wc-appointments-time-picker ul li a {
  min-height:38px!important;
  border-radius:8px!important;
  font-weight:800;
}
.chalet-booking-app--wizard .wc-appointments-time-picker ul li.selected a,
.chalet-booking-app--wizard .wc-appointments-time-picker ul li a:focus-visible {
  background:#050505!important;
  color:#fff!important;
  border-color:#050505!important;
  box-shadow:0 0 0 3px rgba(185,156,255,.35);
  outline:none!important;
}
.chalet-booking-app--single-service {
  max-width:min(960px, calc(100vw - 32px));
  padding:clamp(14px, 2.2vw, 24px);
}
.chalet-booking-single-intro {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:clamp(16px, 3vw, 34px);
  margin:0 0 clamp(16px, 2.4vw, 24px);
  padding:0 0 clamp(16px, 2.4vw, 24px);
  border-bottom:1px solid var(--chalet-line);
}
.chalet-booking-single-intro__copy {
  display:grid;
  gap:8px;
  max-width:620px;
  padding-left:14px;
  border-left:4px solid var(--chalet-accent);
}
.chalet-booking-single-intro__title {
  font-size:clamp(44px, 6vw, 76px)!important;
  line-height:.88!important;
  letter-spacing:0!important;
}
.chalet-booking-single-intro p {
  max-width:560px;
  margin:0;
  color:var(--chalet-muted);
  font-size:clamp(.96rem, 1.5vw, 1.08rem);
  line-height:1.55;
}
.chalet-booking-single-intro__actions {
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:10px;
  flex:0 0 auto;
}
.chalet-booking-single-intro__button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:12px 16px;
  border:1px solid var(--chalet-line-strong);
  background:#fff;
  color:var(--chalet-heading)!important;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.14em;
  line-height:1;
  text-transform:uppercase;
  transition:background .16s ease, color .16s ease, border-color .16s ease, transform .16s ease;
}
.chalet-booking-single-intro__button:hover,
.chalet-booking-single-intro__button:focus-visible {
  transform:translateY(-1px);
  outline:none;
}
.chalet-booking-single-intro__button--primary {
  border-color:#050505;
  background:#050505;
  color:#fff!important;
}
.chalet-booking-app--single-service .chalet-booking-app__head,
.chalet-booking-app--single-service .chalet-booking-flow__steps,
.chalet-booking-app--single-service .chalet-booking-flow__services,
.chalet-booking-app--single-service .chalet-booking-app__panel-head {
  display:none!important;
}
.chalet-booking-app--single-service .chalet-booking-flow {
  display:block;
}
.chalet-booking-app--single-service .chalet-booking-flow__panels {
  display:block;
}
.chalet-booking-app--single-service .chalet-booking-app__panel {
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}
.chalet-booking-app--single-service .wc-appointments-appointment-form-wrap {
  padding-top:0!important;
}

@media (max-width: 782px) {
  .chalet-booking-app--wizard {
    max-width:none;
    margin:0 12px;
    padding:30px 20px 24px;
    border-radius:12px;
  }
  .chalet-booking-app--wizard .chalet-booking-app__title {
    font-size:34px;
  }
  .chalet-booking-app--wizard .chalet-booking-app__text {
    font-size:.94rem;
  }
  .chalet-booking-app--wizard .chalet-booking-flow {
    display:block;
  }
  .chalet-booking-app--wizard .chalet-booking-flow__services {
    margin-bottom:14px;
  }
  .chalet-booking-app--wizard .chalet-booking-flow__services-head h3 {
    font-size:18px;
    margin-bottom:8px;
  }
  /* Lignes pleine largeur : plus de carrousel horizontal, plus de titre tronqué. */
  .chalet-booking-app--wizard .chalet-booking-app__service-list {
    display:grid;
    grid-auto-flow:row;
    grid-auto-columns:auto;
    grid-template-columns:1fr;
    gap:8px;
    overflow:visible;
    padding:0;
  }
  .chalet-booking-app--wizard .chalet-service-card {
    display:block;
    min-height:0;
  }
  .chalet-booking-app--wizard .chalet-service-card__body {
    min-height:0;
    padding:12px 14px;
    justify-content:center;
  }
  .chalet-booking-app--wizard .chalet-service-card__title {
    font-size:20px;
    text-align:left;
  }
  .chalet-booking-app--wizard .chalet-booking-app__panel {
    padding:18px 16px;
  }
  .chalet-booking-app--wizard .chalet-booking-app__panel-head h3 {
    font-size:30px;
  }
  .chalet-booking-app--wizard .chalet-duration-switch__head {
    gap:12px;
  }
  .chalet-booking-app--wizard .chalet-duration-switch__head em {
    display:none;
  }
  .chalet-booking-app--wizard .chalet-duration-price {
    font-size:1.15rem;
  }
  .chalet-booking-app--wizard .chalet-duration-switch {
    padding:14px;
  }
  .chalet-booking-app--wizard .chalet-duration-pill {
    flex:1 1 calc(25% - 6px);
    min-height:42px!important;
    padding:8px 6px!important;
  }
  .chalet-booking-app--wizard .chalet-duration-pill--note {
    flex-basis:100%;
    min-height:48px!important;
    padding:11px 14px!important;
  }
  .chalet-booking-app--wizard .chalet-duration-pill--note span {
    font-size:1rem;
  }
  .chalet-booking-app--wizard .slot-picker .slot_row {
    grid-template-columns:1fr!important;
  }
  .chalet-booking-app--wizard .slot-picker ul.slot_column {
    grid-template-columns:repeat(auto-fit, minmax(84px, 1fr));
    align-items:start;
  }
  .chalet-booking-app--wizard .slot-picker li.slot_heading {
    grid-column:1 / -1;
  }
  .chalet-booking-single-intro {
    display:grid;
    gap:14px;
    align-items:start;
  }
  .chalet-booking-single-intro__copy {
    padding-left:12px;
  }
  .chalet-booking-single-intro__title {
    font-size:42px!important;
  }
  .chalet-booking-single-intro__actions {
    display:grid;
    grid-template-columns:1fr 1fr;
    justify-content:stretch;
    width:100%;
  }
  .chalet-booking-single-intro__button {
    min-height:38px;
    padding:11px 10px;
    font-size:.68rem;
    letter-spacing:.1em;
  }
}

/* Reservation rebuild: calm progressive flow */
.chalet-booking-app.is-progressive .chalet-booking-app__panel:not(.is-active) {
  display:none;
}
.chalet-booking-app.is-progressive .chalet-duration-switch {
  margin-bottom:0;
}
.chalet-booking-app.is-progressive .chalet-duration-panels {
  display:none;
  margin-top:18px;
}
.chalet-booking-app.is-progressive .chalet-booking-app__panel.has-duration-selected .chalet-duration-panels {
  display:block;
}
.chalet-booking-app.is-progressive .chalet-booking-app__panel:not(.has-slot-selected) .chalet-booking-options,
.chalet-booking-app.is-progressive .chalet-booking-app__panel:not(.has-project-selected) .single_add_to_cart_button {
  display:none!important;
}
.chalet-booking-app.is-progressive .chalet-booking-options__group.is-hidden-by-flow,
.chalet-booking-app.is-progressive .chalet-option-card.is-hidden-by-flow {
  display:none!important;
}
.chalet-booking-app.is-progressive .chalet-duration-pill {
  border-color:rgba(20,18,15,.2)!important;
  background:#fff!important;
  color:var(--chalet-heading)!important;
}
.chalet-booking-app.is-progressive .chalet-duration-pill.is-active {
  border-color:#050505!important;
  background:#050505!important;
  color:#fff!important;
  box-shadow:inset 0 -4px 0 var(--chalet-accent);
}
.chalet-booking-app.is-progressive .chalet-booking-options__groups {
  gap:18px;
}
.chalet-booking-app.is-progressive .chalet-booking-options__group h4 {
  margin:0 0 8px;
  font-size:clamp(.9rem, 1.5vw, 1.05rem);
  line-height:1;
}
.chalet-booking-app.is-progressive .chalet-booking-options__items {
  gap:10px;
}
.chalet-booking-app.is-progressive .chalet-booking-options__group[data-option-group-type="radio"] .chalet-booking-options__items {
  grid-template-columns:repeat(auto-fit, minmax(min(100%, 180px), 1fr));
}
.chalet-booking-app.is-progressive .chalet-booking-options__group[data-option-group-type="checkbox"] .chalet-booking-options__items {
  grid-template-columns:repeat(auto-fit, minmax(min(100%, 260px), 1fr));
}
.chalet-booking-app.is-progressive .chalet-option-card {
  display:grid;
  grid-template-columns:auto minmax(0, 1fr) auto;
  align-items:center;
  gap:10px;
  min-height:0;
  padding:12px 14px;
  border-radius:8px;
  border-color:rgba(20,18,15,.18);
  background:rgba(255,255,255,.9);
  text-align:left;
  transition:background .18s ease, border-color .18s ease, box-shadow .18s ease, color .18s ease;
}
.chalet-booking-app.is-progressive .chalet-option-card input {
  width:18px;
  height:18px;
  margin:0;
  flex:0 0 auto;
}
.chalet-booking-app.is-progressive .chalet-option-card__label {
  color:var(--chalet-heading);
  font-size:clamp(.92rem, 1.45vw, 1.02rem);
  font-weight:750;
  line-height:1.15;
}
.chalet-booking-app.is-progressive .chalet-option-card__price {
  color:var(--chalet-heading);
  font-size:.98rem;
  line-height:1;
}
.chalet-booking-app.is-progressive .chalet-option-card[data-option-type="radio"] .chalet-option-card__price {
  display:none;
}
.chalet-booking-app.is-progressive .chalet-option-card.is-selected {
  border-color:var(--chalet-accent);
  background:linear-gradient(135deg, rgba(187,153,255,.18), rgba(255,255,255,.96));
  color:var(--chalet-heading);
  box-shadow:inset 4px 0 0 var(--chalet-accent), 0 0 0 1px rgba(187,153,255,.26);
}
.chalet-booking-app.is-progressive .chalet-option-card.is-selected .chalet-option-card__price,
.chalet-booking-app.is-progressive .chalet-option-card.is-selected .chalet-option-card__label {
  color:var(--chalet-heading);
}
@media (max-width:640px) {
  .chalet-booking-app.is-progressive .chalet-booking-options__group[data-option-group-type="radio"] .chalet-booking-options__items,
  .chalet-booking-app.is-progressive .chalet-booking-options__group[data-option-group-type="checkbox"] .chalet-booking-options__items {
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  .chalet-booking-app.is-progressive .chalet-option-card {
    grid-template-columns:auto minmax(0, 1fr);
    padding:11px 10px;
  }
  .chalet-booking-app.is-progressive .chalet-option-card__price {
    grid-column:2;
    justify-self:start;
    font-size:.86rem;
  }
}
.chalet-booking-app.is-progressive .slot-picker li.slot a,
.chalet-booking-app.is-progressive .slot-picker li.slot {
  border-radius:0!important;
}
/* Créneaux : layout compact + centré + prix lisible (tarif dynamique) */
.chalet-booking-app--wizard .slot-picker .slot_row {
  align-items:start!important;            /* colonnes à hauteur de contenu (plus de trous) */
}
.chalet-booking-app--wizard .slot-picker ul.slot_column {
  display:flex!important;
  flex-direction:column!important;
  align-content:start!important;
  justify-content:flex-start!important;
  gap:8px!important;
}
.chalet-booking-app--wizard .slot-picker li.slot a {
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:1px!important;
  min-height:54px!important;
  padding:8px 10px!important;
  line-height:1.15!important;
  text-align:center!important;
  background:#fff!important;
  border:1px solid var(--chalet-line)!important;
  border-radius:12px!important;
}
.chalet-booking-app--wizard .slot-picker li.slot a:hover {
  border-color:var(--chalet-text)!important;
}
/* Créneau sélectionné : bien mis en évidence */
.chalet-booking-app--wizard .slot-picker li.slot.selected a,
.chalet-booking-app--wizard .wc-appointments-time-picker ul li.slot.selected a {
  background:#050505!important;
  border-color:#7c3aed!important;
  color:#fff!important;
  box-shadow:0 0 0 3px rgba(124,58,237,.45)!important;
}
.chalet-slot-price {
  display:block;
  white-space:nowrap;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.01em;
}
/* Montant + symbole € collés sur une seule ligne */
.chalet-slot-price .woocommerce-Price-amount,
.chalet-slot-price bdi,
.chalet-slot-price .woocommerce-Price-currencySymbol {
  display:inline!important;
  white-space:nowrap!important;
}
.chalet-slot-price.is-cheaper { color:#1f9d55!important; }
.chalet-slot-price.is-pricier { color:var(--chalet-muted)!important; }
.chalet-booking-app--wizard .slot-picker li.slot.selected a .chalet-slot-price,
.slot-picker li.slot a:hover .chalet-slot-price { color:inherit!important; }
.chalet-slot-price .spaces-left { display:none; }

/* Cart rebuild: clearer summary and always-visible checkout */
body.woocommerce-cart,
body.woocommerce-checkout:not(.woocommerce-order-received) {
  padding-bottom:calc(116px + env(safe-area-inset-bottom))!important;
}
body.woocommerce-cart .lc-mobile-actions,
body.woocommerce-cart .lc-player,
body.woocommerce-checkout:not(.woocommerce-order-received) .lc-mobile-actions,
body.woocommerce-checkout:not(.woocommerce-order-received) .lc-player {
  display:none!important;
}
.woocommerce-cart .woocommerce-cart-form {
  overflow:hidden;
  padding:0!important;
}
.chalet-cart-summary-head {
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-end;
  padding:clamp(18px, 2.8vw, 30px);
  border-bottom:1px solid var(--chalet-line);
}
.chalet-cart-summary-head p,
.chalet-cart-summary-head aside span {
  margin:0 0 6px;
  color:var(--chalet-muted);
  font-size:.74rem;
  font-weight:850;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.chalet-cart-summary-head h2 {
  margin:0;
  color:var(--chalet-heading);
  font-family:var(--chalet-heading-font);
  font-size:clamp(34px, 4vw, 56px);
  line-height:.9;
  text-transform:uppercase;
}
.chalet-cart-summary-head div > span,
.chalet-cart-summary-head aside em {
  display:block;
  color:var(--chalet-muted);
  font-style:normal;
}
.chalet-cart-summary-head aside {
  min-width:190px;
  text-align:right;
}
.chalet-cart-summary-head aside strong {
  display:block;
  color:var(--chalet-heading);
  font-size:clamp(1.55rem, 3vw, 2.4rem);
  font-weight:900;
  line-height:1;
}
.woocommerce-cart .woocommerce-cart-form table.shop_table.cart {
  display:block;
  padding:clamp(14px, 2.2vw, 26px);
}
.woocommerce-cart .woocommerce-cart-form table.shop_table.cart thead,
.woocommerce-cart .woocommerce-cart-form table.shop_table.cart .product-thumbnail,
.woocommerce-cart .woocommerce-cart-form table.shop_table.cart .product-price,
.woocommerce-cart .woocommerce-cart-form table.shop_table.cart .product-quantity {
  display:none!important;
}
.woocommerce-cart .woocommerce-cart-form table.shop_table.cart tbody {
  display:block;
}
.woocommerce-cart .woocommerce-cart-form table.shop_table.cart tr.cart_item {
  display:grid!important;
  grid-template-columns:38px minmax(0, 1fr) minmax(145px, auto);
  grid-template-areas:"remove name subtotal";
  gap:18px;
  align-items:start;
  margin:0 0 14px!important;
  padding:18px!important;
  border:1px solid var(--chalet-line)!important;
  border-radius:10px!important;
  background:#fff!important;
  box-shadow:0 12px 34px rgba(20,18,15,.06);
}
.woocommerce-cart .woocommerce-cart-form table.shop_table.cart tr.cart_item td {
  display:block;
  width:auto;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}
.woocommerce-cart .woocommerce-cart-form table.shop_table.cart .product-remove {
  grid-area:remove;
}
.woocommerce-cart .woocommerce-cart-form table.shop_table.cart .product-remove a.remove {
  display:grid!important;
  width:32px;
  height:32px;
  place-items:center;
  border:1px solid var(--chalet-line);
  border-radius:999px;
  color:#7a140f!important;
  font-size:0!important;
  text-decoration:none!important;
}
.woocommerce-cart .woocommerce-cart-form table.shop_table.cart .product-remove a.remove::before {
  content:"x";
  font-size:20px;
  font-weight:800;
  line-height:1;
}
.woocommerce-cart .woocommerce-cart-form table.shop_table.cart .product-name {
  grid-area:name;
}
.woocommerce-cart .woocommerce-cart-form table.shop_table.cart .product-name > a {
  display:block;
  margin-bottom:12px;
  color:var(--chalet-heading);
  font-size:clamp(1.25rem, 2vw, 1.6rem);
  font-weight:850;
  text-decoration:none;
}
.woocommerce-cart .woocommerce-cart-form table.shop_table.cart .variation {
  display:grid;
  grid-template-columns:max-content minmax(0, 1fr);
  gap:9px 16px;
  max-width:650px;
  margin:0;
  padding:0;
  color:var(--chalet-text);
  font-size:.92rem;
}
.woocommerce-cart .woocommerce-cart-form table.shop_table.cart .variation dt,
.woocommerce-cart .woocommerce-cart-form table.shop_table.cart .variation dd {
  float:none!important;
  clear:none!important;
  margin:0!important;
  padding:0!important;
}
.woocommerce-cart .woocommerce-cart-form table.shop_table.cart .variation dt {
  color:var(--chalet-muted);
  font-size:.72rem;
  font-weight:850;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.woocommerce-cart .woocommerce-cart-form table.shop_table.cart .variation dd,
.woocommerce-cart .woocommerce-cart-form table.shop_table.cart .variation dd p {
  color:var(--chalet-heading);
  font-weight:650;
  line-height:1.35;
}
.woocommerce-cart .woocommerce-cart-form table.shop_table.cart .product-subtotal {
  grid-area:subtotal;
  display:grid!important;
  gap:6px;
  justify-items:end;
  color:var(--chalet-heading);
  font-size:1.1rem;
  font-weight:900;
  white-space:nowrap;
}
.woocommerce-cart .woocommerce-cart-form table.shop_table.cart .product-subtotal::before {
  content:"Total session";
  color:var(--chalet-muted);
  font-size:.7rem;
  font-weight:850;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.woocommerce-cart .woocommerce-cart-form table.shop_table.cart td.actions {
  display:grid!important;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:12px;
  align-items:center;
  padding:8px 0 0!important;
  background:transparent!important;
}
.woocommerce-cart .woocommerce-cart-form .coupon {
  display:grid!important;
  grid-template-columns:minmax(170px, 240px) auto;
  gap:10px;
  align-items:center;
  float:none!important;
  max-width:580px;
}
.woocommerce-cart .woocommerce-cart-form .coupon .input-text,
.woocommerce-cart .woocommerce-cart-form .coupon .button,
.woocommerce-cart .woocommerce-cart-form td.actions > .button[name="update_cart"] {
  min-height:48px;
}
.woocommerce-cart .woocommerce-cart-form td.actions > .button[name="update_cart"] {
  justify-self:end;
  border-color:var(--chalet-line)!important;
  background:#fff!important;
  color:var(--chalet-heading)!important;
  opacity:.72;
}
.woocommerce-cart .cart_totals {
  position:sticky;
  top:92px;
}
.woocommerce-cart .cart_totals .order-total {
  margin-top:8px;
  padding:14px!important;
  border-radius:8px;
  background:#050505!important;
}
.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td,
.woocommerce-cart .cart_totals .order-total strong {
  color:#fff!important;
}
.woocommerce-cart .wc-proceed-to-checkout {
  padding-bottom:0!important;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  width:100%;
  margin-bottom:0!important;
  text-align:center;
}
.chalet-cart-sticky-pay,
.chalet-checkout-sticky-pay {
  position:fixed;
  right:clamp(14px, 3vw, 34px);
  bottom:calc(14px + env(safe-area-inset-bottom));
  left:clamp(14px, 3vw, 34px);
  z-index:99999;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  width:auto;
  max-width:1120px;
  margin:0 auto;
  padding:10px 12px 10px 16px;
  border:1px solid rgba(10,10,10,.18);
  border-radius:12px;
  background:rgba(255,255,255,.96);
  box-shadow:0 22px 70px rgba(10,10,10,.22);
  backdrop-filter:blur(16px);
}
.chalet-cart-sticky-pay__meta,
.chalet-checkout-sticky-pay__meta {
  display:grid;
  grid-template-columns:auto auto;
  gap:2px 12px;
  align-items:baseline;
  min-width:0;
}
.chalet-cart-sticky-pay__meta span,
.chalet-checkout-sticky-pay__meta span {
  color:var(--chalet-muted);
  font-size:.72rem;
  font-weight:850;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.chalet-cart-sticky-pay__meta strong,
.chalet-checkout-sticky-pay__meta strong {
  color:var(--chalet-heading);
  font-size:clamp(1.25rem, 2.1vw, 1.8rem);
  font-weight:900;
  line-height:1;
  white-space:nowrap;
}
.chalet-cart-sticky-pay__meta em,
.chalet-checkout-sticky-pay__meta em {
  grid-column:1 / -1;
  color:var(--chalet-muted);
  font-size:.88rem;
  font-style:normal;
}
.chalet-cart-sticky-pay__button,
.chalet-checkout-sticky-pay__button {
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  justify-content:center;
  min-height:52px;
  padding:0 30px;
  border:1px solid #050505;
  border-radius:0;
  background:#050505;
  color:#fff!important;
  font-weight:900;
  letter-spacing:.08em;
  text-decoration:none!important;
  text-transform:uppercase;
  cursor:pointer;
}
.chalet-cart-sticky-pay__label-short,
.chalet-checkout-sticky-pay__label-short {
  display:none;
}

@media (max-width: 700px) {
  body.woocommerce-cart,
  body.woocommerce-checkout:not(.woocommerce-order-received) {
    padding-bottom:calc(98px + env(safe-area-inset-bottom))!important;
  }
  .chalet-cart-summary-head {
    display:grid;
    align-items:start;
  }
  .chalet-cart-summary-head aside {
    min-width:0;
    text-align:left;
  }
  .woocommerce-cart .woocommerce-cart-form table.shop_table.cart tr.cart_item {
    grid-template-columns:1fr 40px;
    grid-template-areas:"name remove" "subtotal subtotal";
    gap:14px;
    padding:14px!important;
  }
  .woocommerce-cart .woocommerce-cart-form table.shop_table.cart .product-subtotal {
    justify-items:start;
  }
  .woocommerce-cart .woocommerce-cart-form table.shop_table.cart .variation {
    grid-template-columns:1fr;
    gap:5px;
  }
  .woocommerce-cart .woocommerce-cart-form table.shop_table.cart td.actions,
  .woocommerce-cart .woocommerce-cart-form .coupon {
    grid-template-columns:1fr;
  }
  .woocommerce-cart .woocommerce-cart-form td.actions > .button[name="update_cart"] {
    justify-self:stretch;
  }
  .chalet-cart-sticky-pay,
  .chalet-checkout-sticky-pay {
    right:10px;
    bottom:calc(10px + env(safe-area-inset-bottom));
    left:10px;
    gap:10px;
    padding:9px;
    border-radius:10px;
  }
  .chalet-cart-sticky-pay__meta,
  .chalet-checkout-sticky-pay__meta {
    grid-template-columns:1fr;
    gap:1px;
  }
  .chalet-cart-sticky-pay__meta span,
  .chalet-checkout-sticky-pay__meta span {
    font-size:.62rem;
  }
  .chalet-cart-sticky-pay__meta strong,
  .chalet-checkout-sticky-pay__meta strong {
    font-size:1.2rem;
  }
  .chalet-cart-sticky-pay__meta em,
  .chalet-checkout-sticky-pay__meta em {
    display:none;
  }
  .chalet-cart-sticky-pay__button,
  .chalet-checkout-sticky-pay__button {
    min-height:46px;
    padding:0 16px;
    font-size:.82rem;
    white-space:nowrap;
  }
  .chalet-cart-sticky-pay__label-long,
  .chalet-checkout-sticky-pay__label-long {
    display:none;
  }
  .chalet-cart-sticky-pay__label-short,
  .chalet-checkout-sticky-pay__label-short {
    display:inline;
  }
}

@media (max-width: 420px) {
  .chalet-booking-app--wizard .chalet-booking-app__service-list {
    grid-auto-columns:150px;
  }
  .chalet-booking-app--wizard .chalet-duration-switch__items {
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
}

/* WooCommerce reservation cart / checkout / account */
.lc-commerce-page {
  background:
    linear-gradient(var(--chalet-grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--chalet-grid-line) 1px, transparent 1px),
    var(--chalet-bg);
  background-size:56px 56px,56px 56px,100% 100%;
}
.lc-commerce-page__head {
  margin:0 auto 26px;
}
.lc-commerce-page__head h1 {
  font-family:var(--chalet-heading-font)!important;
  font-size:clamp(42px, 6vw, 72px)!important;
  line-height:.9!important;
  margin:0!important;
  text-transform:uppercase;
}
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce,
.woocommerce-account .woocommerce {
  max-width:1120px;
  margin:0 auto;
  color:var(--chalet-text);
  font-family:var(--chalet-body-font);
}
.woocommerce-cart .woocommerce-notices-wrapper,
.woocommerce-checkout .woocommerce-notices-wrapper,
.woocommerce-account .woocommerce-notices-wrapper {
  margin-bottom:16px;
}
.woocommerce-cart .woocommerce-message,
.woocommerce-cart .woocommerce-info,
.woocommerce-cart .woocommerce-error,
.woocommerce-checkout .woocommerce-message,
.woocommerce-checkout .woocommerce-info,
.woocommerce-checkout .woocommerce-error,
.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-info,
.woocommerce-account .woocommerce-error {
  border:1px solid var(--chalet-line);
  background:#fff;
  color:var(--chalet-text);
  border-radius:10px;
  padding:14px 16px;
}
.woocommerce-cart .woocommerce-cart-form,
.woocommerce-cart .cart_totals,
.woocommerce-checkout form.checkout,
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content,
.chalet-cart-upsells,
.chalet-account-sessions {
  border:1px solid var(--chalet-line);
  border-radius:12px;
  background:
    linear-gradient(var(--chalet-grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--chalet-grid-line) 1px, transparent 1px),
    rgba(255,255,255,.88);
  background-size:42px 42px,42px 42px,100% 100%;
  box-shadow:0 20px 60px rgba(20,18,15,.08);
}
.woocommerce-cart .woocommerce-cart-form,
.woocommerce-checkout form.checkout,
.woocommerce-account .woocommerce-MyAccount-content,
.chalet-account-sessions {
  padding:clamp(16px, 2.3vw, 26px);
}
.woocommerce-cart .shop_table,
.woocommerce-checkout .shop_table,
.woocommerce-account .shop_table {
  border:none!important;
  border-collapse:separate!important;
  border-spacing:0 10px!important;
  margin:0!important;
}
.woocommerce-cart .shop_table th,
.woocommerce-cart .shop_table td,
.woocommerce-checkout .shop_table th,
.woocommerce-checkout .shop_table td,
.woocommerce-account .shop_table th,
.woocommerce-account .shop_table td {
  border:none!important;
  color:var(--chalet-text);
}
.woocommerce-cart .cart_item td,
.woocommerce-checkout .cart_item td,
.woocommerce-account .shop_table tr {
  background:#fff;
  border-top:1px solid var(--chalet-line-soft)!important;
  border-bottom:1px solid var(--chalet-line-soft)!important;
}
.woocommerce-cart .cart_item td:first-child,
.woocommerce-checkout .cart_item td:first-child,
.woocommerce-account .shop_table tr td:first-child {
  border-left:1px solid var(--chalet-line-soft)!important;
  border-radius:10px 0 0 10px;
}
.woocommerce-cart .cart_item td:last-child,
.woocommerce-checkout .cart_item td:last-child,
.woocommerce-account .shop_table tr td:last-child {
  border-right:1px solid var(--chalet-line-soft)!important;
  border-radius:0 10px 10px 0;
}
.woocommerce-cart .product-name a,
.woocommerce-checkout .product-name,
.woocommerce-account .woocommerce-MyAccount-content a,
.chalet-session-card h3 {
  color:var(--chalet-heading);
  font-weight:800;
  text-decoration:none;
}
.woocommerce-cart .variation,
.woocommerce-checkout .variation {
  display:grid;
  gap:4px;
  margin-top:8px;
  color:var(--chalet-muted);
  font-size:.88rem;
}
.woocommerce-cart .cart-collaterals {
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(280px, 390px);
  gap:18px;
  align-items:start;
  margin-top:20px;
}
.woocommerce-cart .cart_totals {
  grid-column:2;
  float:none!important;
  width:auto!important;
  padding:20px;
}
.woocommerce-cart .cart_totals h2 {
  font-family:var(--chalet-heading-font)!important;
  font-size:32px!important;
  line-height:.95;
  text-transform:uppercase;
  margin:0 0 12px!important;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce-cart button.button,
.woocommerce-cart a.button,
.woocommerce-checkout button.button,
.woocommerce-account button.button,
.woocommerce-account a.button,
.chalet-account-sessions__head a,
.chalet-session-empty a,
.chalet-session-card footer a {
  border:1px solid #050505!important;
  border-radius:0!important;
  background:#050505!important;
  color:#fff!important;
  font-weight:800!important;
  letter-spacing:.04em;
  text-transform:uppercase;
  text-decoration:none!important;
  padding:13px 18px!important;
  line-height:1.1!important;
}
.woocommerce-cart .coupon input,
.woocommerce-cart .quantity input,
.woocommerce-checkout input,
.woocommerce-checkout textarea,
.woocommerce-checkout select,
.woocommerce-account input {
  border:1px solid var(--chalet-line)!important;
  border-radius:8px!important;
  background:#fff!important;
  color:var(--chalet-text)!important;
  padding:12px 14px!important;
}
.chalet-checkout-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:18px;
  margin:0 0 18px;
  padding:clamp(16px, 2.4vw, 24px);
  border:1px solid var(--chalet-line);
  border-radius:12px;
  background:
    linear-gradient(var(--chalet-grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--chalet-grid-line) 1px, transparent 1px),
    rgba(255,255,255,.9);
  background-size:42px 42px,42px 42px,100% 100%;
  box-shadow:0 18px 54px rgba(20,18,15,.07);
}
.chalet-checkout-head span,
.chalet-checkout-head em {
  display:block;
  color:var(--chalet-muted);
  font-size:.73rem;
  font-weight:850;
  font-style:normal;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.chalet-checkout-head h2 {
  margin:5px 0 8px;
  color:var(--chalet-heading);
  font-family:var(--chalet-heading-font);
  font-size:clamp(34px, 4.4vw, 56px);
  line-height:.88;
  text-transform:uppercase;
}
.chalet-checkout-head p {
  max-width:680px;
  margin:0;
  color:var(--chalet-text);
  font-size:clamp(1rem, 1.35vw, 1.15rem);
  line-height:1.55;
}
.chalet-checkout-head aside {
  min-width:210px;
  text-align:right;
}
.chalet-checkout-head aside strong {
  display:block;
  margin:4px 0;
  color:var(--chalet-heading);
  font-size:clamp(1.6rem, 3.2vw, 2.35rem);
  font-weight:950;
  line-height:1;
}
.woocommerce-checkout form.checkout {
  overflow:visible;
}
.woocommerce-checkout form.checkout::before,
.woocommerce-checkout form.checkout::after {
  content:none!important;
}
.woocommerce-checkout #customer_details,
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2,
.woocommerce-checkout #order_review,
.woocommerce-checkout #order_review_heading {
  float:none!important;
  width:auto!important;
}
.woocommerce-checkout #customer_details {
  display:grid;
  gap:18px;
}
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2,
.woocommerce-checkout #order_review {
  padding:0!important;
}
.woocommerce-checkout #customer_details h3,
.woocommerce-checkout #order_review_heading {
  margin:0 0 14px!important;
  color:var(--chalet-heading);
  font-family:var(--chalet-heading-font)!important;
  font-size:clamp(26px, 3.1vw, 38px)!important;
  line-height:.95!important;
  text-transform:uppercase;
}
.woocommerce-checkout .form-row label {
  color:var(--chalet-muted);
  font-size:.72rem;
  font-weight:850;
  letter-spacing:.12em;
  line-height:1.3;
  text-transform:uppercase;
}
.woocommerce-checkout .form-row {
  margin:0 0 14px!important;
}
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-additional-fields {
  padding:clamp(14px, 2vw, 18px);
  border:1px solid var(--chalet-line-soft);
  border-radius:10px;
  background:rgba(255,255,255,.76);
}
.woocommerce-checkout #order_review {
  padding:clamp(14px, 2vw, 18px)!important;
  border:1px solid var(--chalet-line);
  border-radius:12px;
  background:rgba(255,255,255,.94);
  box-shadow:0 18px 54px rgba(20,18,15,.08);
}
.woocommerce-checkout #payment {
  margin-top:14px;
  border:1px solid var(--chalet-line-soft);
  border-radius:10px;
  background:#fff!important;
}
/* Payment methods = clean aligned rows (radio + label + wallet icons) */
.woocommerce-checkout #payment ul.payment_methods {
  list-style:none!important;
  margin:0!important;
  padding:6px!important;
  border-bottom:1px solid var(--chalet-line-soft)!important;
}
.woocommerce-checkout #payment ul.payment_methods li {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  margin:0!important;
  padding:13px 12px;
  border-radius:8px;
  list-style:none!important;
  background:none!important;
}
.woocommerce-checkout #payment ul.payment_methods li::before {
  content:none!important;
}
.woocommerce-checkout #payment ul.payment_methods li + li {
  border-top:1px solid var(--chalet-line-soft);
}
.woocommerce-checkout #payment ul.payment_methods li > input[type="radio"] {
  flex:0 0 auto;
  margin:0!important;
  accent-color:var(--chalet-accent, #7c3aed);
}
.woocommerce-checkout #payment ul.payment_methods li > label {
  flex:1 1 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:0!important;
  color:var(--chalet-heading);
  font-weight:700;
  letter-spacing:0;
  text-transform:none;
  cursor:pointer;
}
.woocommerce-checkout #payment ul.payment_methods li label img {
  margin:0!important;
  max-height:26px;
  width:auto;
}
/* Card panel: no grey frame, no triangle pointer, just aligned content */
.woocommerce-checkout #payment div.payment_box {
  flex:1 1 100%;
  margin:0!important;
  padding:4px 4px 2px 32px!important;
  border:none!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:var(--chalet-muted)!important;
  font-size:.9rem;
}
.woocommerce-checkout #payment div.payment_box::before,
.woocommerce-checkout #payment div.payment_box::after {
  display:none!important;
  content:none!important;
}
.woocommerce-checkout #payment div.payment_box p {
  margin:0;
}
.woocommerce-checkout #payment .place-order {
  padding:14px!important;
}
.woocommerce-checkout #place_order {
  width:100%;
  min-height:54px;
  margin-top:10px!important;
}
.woocommerce-checkout .shop_table tfoot th,
.woocommerce-checkout .shop_table tfoot td {
  padding:10px 0!important;
  border-top:1px solid var(--chalet-line-soft)!important;
}
.woocommerce-checkout .shop_table .order-total th,
.woocommerce-checkout .shop_table .order-total td {
  color:var(--chalet-heading);
  font-size:1.1rem;
}

/* WooPayments express checkout (Apple / Google Pay) — classic checkout.
   Best-effort styling: full-width button + clean "OU" separator.
   To verify on the preprod where WooPayments actually runs. */
#wcpay-express-checkout-element,
.wcpay-express-checkout-wrapper,
#wcpay-payment-request-wrapper,
.woocommerce-checkout .wc-block-components-express-payment {
  margin:0 0 14px!important;
}
#wcpay-express-checkout-button-separator,
#wcpay-payment-request-button-separator,
.wcpay-express-checkout__separator {
  display:flex;
  align-items:center;
  gap:12px;
  margin:14px 0!important;
  color:var(--chalet-muted);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}
#wcpay-express-checkout-button-separator::before,
#wcpay-express-checkout-button-separator::after,
#wcpay-payment-request-button-separator::before,
#wcpay-payment-request-button-separator::after {
  content:"";
  flex:1 1 auto;
  height:1px;
  background:var(--chalet-line-soft);
}

/* Checkout = 2 colonnes equilibrees (wrappers .chalet-co-*) :
   gauche = infos + notes + paiement ; droite = recap seul (sticky).
   Colonnes independantes -> plus de grand vide sous la colonne gauche. */
.chalet-co-main { min-width:0; }
.woocommerce-checkout #order_review_heading {
  margin:0 0 14px!important;
}

@media (min-width: 900px) {
  body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce {
    max-width:1080px;
  }
  .chalet-co-grid {
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(320px, 372px);
    gap:clamp(20px, 3vw, 40px);
    align-items:start;
  }
  .chalet-co-aside {
    position:sticky;
    top:100px;
  }
}

/* Mobile : les wrappers s'effacent (display:contents) et on empile
   infos -> recap -> paiement dans le bon ordre via flex/order. */
@media (max-width: 899px) {
  .chalet-co-grid,
  .chalet-co-main,
  .chalet-co-aside {
    display:contents;
  }
  .woocommerce-checkout form.checkout {
    display:flex;
    flex-direction:column;
    gap:16px;
  }
  .woocommerce-checkout #customer_details { order:1; }
  .woocommerce-checkout #order_review_heading { order:2; }
  .woocommerce-checkout #order_review { order:3; }
  .woocommerce-checkout #payment { order:4; margin-top:0!important; }
}

@media (max-width: 899px) {
  .chalet-checkout-head {
    display:grid;
    align-items:start;
  }
  .chalet-checkout-head aside {
    min-width:0;
    text-align:left;
  }
  .woocommerce-checkout #order_review_heading {
    margin-top:18px!important;
  }
}

@media (max-width: 700px) {
  .chalet-checkout-head {
    margin-bottom:14px;
    padding:16px;
  }
  .chalet-checkout-head h2 {
    font-size:34px;
  }
  .chalet-checkout-head p {
    font-size:.98rem;
  }
  .woocommerce-checkout .woocommerce-billing-fields,
  .woocommerce-checkout .woocommerce-additional-fields,
  .woocommerce-checkout #order_review {
    padding:14px!important;
  }
}
.chalet-cart-upsells {
  margin:18px 0 0;
  padding:20px;
}
.chalet-cart-upsells__head {
  display:grid;
  gap:4px;
  margin-bottom:14px;
}
.chalet-cart-upsells__head p,
.chalet-account-sessions__head p,
.chalet-cart-upsell-card span,
.chalet-session-card span {
  margin:0;
  color:var(--chalet-muted);
  font-size:.74rem;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.chalet-cart-upsells__head h2,
.chalet-account-sessions__head h2,
.chalet-session-empty h3 {
  margin:0;
  font-family:var(--chalet-heading-font);
  font-size:clamp(28px, 4vw, 44px);
  line-height:.95;
  text-transform:uppercase;
}
.chalet-cart-upsells__head > span {
  color:var(--chalet-muted);
}
.chalet-cart-upsells__grid {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(210px, 1fr));
  gap:12px;
}
.chalet-cart-upsell-card {
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:12px;
  align-items:center;
  padding:14px;
  border:1px solid var(--chalet-line);
  border-radius:10px;
  background:#fff;
}
.chalet-cart-upsell-card strong {
  display:block;
  margin-top:4px;
  color:var(--chalet-heading);
  line-height:1.2;
}
.chalet-cart-upsell-card em {
  color:var(--chalet-heading);
  font-style:normal;
  font-weight:800;
  white-space:nowrap;
}
.chalet-cart-upsell-card.is-selected {
  border-color:var(--chalet-heading);
  box-shadow:inset 3px 0 0 var(--chalet-accent);
}
.chalet-cart-upsell__form {
  grid-column:1 / -1;
}
.chalet-cart-upsell__btn {
  width:100%;
  border:1px solid var(--chalet-heading)!important;
  border-radius:0!important;
  background:var(--chalet-heading)!important;
  color:#fff!important;
  padding:10px 12px!important;
  font-weight:800!important;
  text-transform:uppercase;
}
.chalet-cart-upsell__btn.is-selected {
  background:#fff!important;
  color:var(--chalet-heading)!important;
}
.chalet-cart-upsell-card__note {
  display:block;
  margin-top:6px;
  font-size:12px;
  line-height:1.35;
  color:var(--chalet-muted);
}
.chalet-cart-upsell-card__unit {
  display:block;
  font-weight:500;
  font-size:12px;
  color:var(--chalet-muted);
}
.chalet-cart-upsell__qty {
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  gap:10px;
}
.chalet-cart-upsell__qty-form { margin:0; }
.chalet-cart-upsell__qty-btn {
  width:34px;
  height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  font-weight:800;
  line-height:1;
  border:1px solid var(--chalet-line)!important;
  border-radius:8px!important;
  background:var(--chalet-panel-2)!important;
  color:var(--chalet-heading)!important;
  cursor:pointer;
}
.chalet-cart-upsell__qty-btn:hover:not([disabled]) {
  border-color:var(--chalet-heading)!important;
}
.chalet-cart-upsell__qty-btn[disabled] {
  opacity:.4;
  cursor:not-allowed;
}
.chalet-cart-upsell__qty-value {
  min-width:26px;
  text-align:center;
  font-weight:800;
  color:var(--chalet-heading);
}
.chalet-deposit-summary {
  display:grid;
  gap:5px;
  padding:14px;
  border:1px solid var(--chalet-line);
  border-radius:10px;
  background:#fff;
  text-align:left;
}
.chalet-deposit-summary span {
  color:var(--chalet-muted);
  font-size:.74rem;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.chalet-deposit-summary strong {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:baseline;
  color:var(--chalet-heading);
  font-size:1.35rem;
}
.chalet-deposit-summary small,
.chalet-deposit-summary p {
  margin:0;
  color:var(--chalet-muted);
  font-size:.9rem;
  font-weight:500;
}
.woocommerce-account .woocommerce {
  display:grid;
  grid-template-columns:260px minmax(0,1fr);
  gap:18px;
}
.woocommerce-account .woocommerce-MyAccount-navigation {
  padding:12px;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
  display:grid;
  gap:8px;
  list-style:none;
  margin:0;
  padding:0;
}
.woocommerce-account .woocommerce-MyAccount-navigation a {
  display:block;
  border:1px solid transparent;
  border-radius:8px;
  color:var(--chalet-text);
  padding:12px;
  text-decoration:none;
}
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation a:hover {
  border-color:var(--chalet-line);
  background:#fff;
}
.chalet-account-sessions__head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px;
}
.chalet-account-sessions__head h2 {
  margin-right:auto;
}
.chalet-session-card,
.chalet-session-empty {
  display:grid;
  gap:14px;
  padding:16px;
  border:1px solid var(--chalet-line);
  border-radius:10px;
  background:#fff;
}
.chalet-session-card + .chalet-session-card {
  margin-top:12px;
}
.chalet-session-card h3 {
  margin:4px 0;
  font-size:1.2rem;
}
.chalet-session-card ul {
  display:grid;
  gap:8px;
  margin:0;
  padding:0;
  list-style:none;
}
.chalet-session-card li {
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:10px 0;
  border-top:1px solid var(--chalet-line-soft);
}
.chalet-session-card footer {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
  justify-content:space-between;
}
.chalet-session-card footer span {
  letter-spacing:0;
  text-transform:none;
  font-size:.9rem;
}

@media (max-width: 900px) {
  .woocommerce-cart .cart-collaterals,
  .woocommerce-account .woocommerce {
    display:block;
  }
  .woocommerce-account .woocommerce-MyAccount-navigation {
    margin-bottom:14px;
  }
  .woocommerce-account .woocommerce-MyAccount-navigation ul {
    grid-auto-flow:column;
    grid-auto-columns:max-content;
    overflow-x:auto;
    padding-bottom:6px;
  }
}

@media (max-width: 640px) {
  .lc-commerce-page__head h1 {
    font-size:40px!important;
  }
  .woocommerce-cart .woocommerce-cart-form,
  .woocommerce-checkout form.checkout,
  .woocommerce-account .woocommerce-MyAccount-content,
  .chalet-account-sessions,
  .chalet-cart-upsells {
    padding:14px;
    border-radius:10px;
  }
  .woocommerce-cart .shop_table,
  .woocommerce-cart .shop_table tbody,
  .woocommerce-cart .shop_table tr,
  .woocommerce-cart .shop_table td {
    display:block;
    width:100%;
  }
  .woocommerce-cart .cart_item td {
    border-left:1px solid var(--chalet-line-soft)!important;
    border-right:1px solid var(--chalet-line-soft)!important;
    border-radius:0!important;
  }
  .woocommerce-cart .cart_item td:first-child {
    border-radius:10px 10px 0 0!important;
  }
  .woocommerce-cart .cart_item td:last-child {
    border-radius:0 0 10px 10px!important;
  }
  .chalet-account-sessions__head,
  .chalet-session-card footer {
    align-items:flex-start;
    flex-direction:column;
  }
}
