/* Guest services showcase v80 (web-guest lane; DESIGN.md): /services/ and /fr/services/.
   Loaded after system-v80.5b526b0dd0.css. Lane classes only (svc-*); tokens and ui-* components come from the
   system. Sections alternate linen and bone, cards take the opposite surface; light everywhere (CONTRACT D21),
   the garage stage is the only dark surface. Rounded-rectangle controls (no pills). */

/* ---------- Hero: the services photo, full bleed under the glass header (dark tone) ---------- */
.svc-hero{margin-top:calc(var(--nav-h) * -1);min-height:min(100svh,54rem)}
.svc-hero::after{background:linear-gradient(180deg,color-mix(in srgb,var(--c-charcoal) 42%,transparent) 0%,color-mix(in srgb,var(--c-charcoal) 0%,transparent) 22%,color-mix(in srgb,var(--c-charcoal) 18%,transparent) 42%,color-mix(in srgb,var(--c-charcoal) 74%,transparent) 72%,color-mix(in srgb,var(--c-charcoal) 90%,transparent) 100%)}
@media (min-width:1068px){.svc-hero::after{background:linear-gradient(90deg,color-mix(in srgb,var(--c-charcoal) 66%,transparent) 0%,color-mix(in srgb,var(--c-charcoal) 30%,transparent) 44%,transparent 66%),linear-gradient(180deg,color-mix(in srgb,var(--c-charcoal) 38%,transparent) 0%,transparent 20%,transparent 56%,color-mix(in srgb,var(--c-charcoal) 64%,transparent) 100%)}}
/* The photo's foreground bougainvillea (left third, out of focus) lies behind the headline: a grey layer in
   saturation blend takes its colour out there only, so the words sit on neutral shade, not a magenta haze.
   On wide screens the photo is also framed tighter toward the table (--svc-hero-zoom). */
.svc-hero{--svc-hero-zoom:1}
.svc-hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,color-mix(in srgb,black,white) 0,color-mix(in srgb,black,white) 22%,transparent 38%);mix-blend-mode:saturation;opacity:.9}
@media (min-width:1068px){.svc-hero{--svc-hero-zoom:1.12}.svc-hero::before{background:linear-gradient(90deg,color-mix(in srgb,black,white) 0,color-mix(in srgb,black,white) 38%,transparent 60%)}}
.svc-hero .ui-hero__media img{object-position:58% 50%;transform:scale(var(--svc-hero-zoom));transform-origin:88% 55%}
@media (min-width:1068px){.svc-hero .ui-hero__media img{object-position:50% 60%}}
.svc-hero .ui-hero__content{position:relative;padding-block:calc(var(--nav-h) + var(--space-12)) clamp(2.5rem,1.5rem + 4vw,5.5rem)}
/* Phones: the photo keeps the top of the screen (the table and the chef stay visible) and fades into
   charcoal under the words, instead of the words covering the people. */
@media (max-width:733.98px){
  .svc-hero{background:var(--c-charcoal)}
  .svc-hero .ui-hero__media{bottom:auto;height:68%}
  .svc-hero .ui-hero__media img{object-position:54% 50%}
  .svc-hero::after{background:linear-gradient(180deg,color-mix(in srgb,var(--c-charcoal) 44%,transparent) 0%,transparent 14%,transparent 30%,color-mix(in srgb,var(--c-charcoal) 55%,transparent) 48%,var(--c-charcoal) 67%,var(--c-charcoal) 100%)}
  .svc-hero .ui-hero__content{padding-top:calc(var(--nav-h) + 40svh)}
}
.svc-hero__title{max-width:15ch;margin:0 0 var(--space-5);color:var(--text-primary);font-family:var(--font-editorial);font-weight:500;font-size:clamp(2.125rem,1.6rem + 2.3vw,3.5rem);line-height:1.1;letter-spacing:-.025em;text-wrap:balance}
.svc-hero__title .accent-serif{font:inherit;color:inherit}
.svc-page :is(.svc-chapter__title,.ui-section-head h2){font-family:var(--font-editorial);font-weight:500;font-style:normal}
.svc-hero__lead{max-width:34rem;margin:0;color:var(--text-body)}
.svc-hero .ui-actions{margin-top:var(--space-7)}
@media (max-width:479.98px){.svc-hero .ui-actions{flex-direction:column;align-items:stretch;gap:var(--space-2)}.svc-hero .ui-actions .ui-link{justify-content:center}}
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .svc-hero .ui-hero__media img{animation:svc-hero-drift linear both;animation-timeline:view();animation-range:exit 0% exit 100%}
  }
}
@keyframes svc-hero-drift{to{transform:scale(calc(var(--svc-hero-zoom) * 1.06)) translateY(3%)}}

/* ---------- Sticky category bar (second glass layer, under the header) ---------- */
.svc-nav{position:sticky;top:var(--nav-h);z-index:var(--z-sticky);isolation:isolate;scroll-margin-top:var(--nav-h)}
.svc-nav::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--glass-bg-strong);-webkit-backdrop-filter:var(--glass-filter);backdrop-filter:var(--glass-filter);box-shadow:inset 0 -1px 0 var(--glass-border),inset 0 1px 0 var(--glass-border)}
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.svc-nav::before{background:var(--glass-bg-fallback)}}
.svc-nav__list{display:flex;gap:var(--space-1);width:min(var(--w-wide),100%);margin:0 auto;padding:var(--space-2) var(--gutter);overflow-x:auto;overscroll-behavior-x:contain;scroll-padding-inline:var(--gutter);scrollbar-width:none;list-style:none}
.svc-nav__list::-webkit-scrollbar{display:none}
.svc-nav__list>li{flex:none;margin:0}
.svc-nav__link{display:inline-flex;align-items:center;min-height:2.25rem;padding:0 .875rem;border-radius:var(--r-control);color:var(--text-body);font-size:var(--fs-footnote);font-weight:var(--fw-semibold);line-height:1.2;letter-spacing:-.003em;white-space:nowrap;text-decoration:none}
.svc-nav__link[aria-current="true"]{background:var(--color-ink);color:var(--color-on-ink)}
.svc-nav__link:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}
@media (hover:hover){.svc-nav__link:not([aria-current="true"]):hover{background:var(--fill-secondary);color:var(--text-primary)}}
@media (pointer:coarse){.svc-nav__link{min-height:var(--tap-min)}}
@media (min-width:1068px){.svc-nav__list{justify-content:center}}
.svc-nav__mobile{display:none}
.svc-nav__mobile[hidden]{display:none}
.svc-nav__label{color:var(--text-secondary);font-size:var(--fs-caption);font-weight:var(--fw-semibold)}
.svc-nav__select{min-height:var(--tap-min);width:100%;min-width:0;font-size:var(--fs-footnote)}
@media (max-width:733.98px){
  .svc-nav__mobile:not([hidden]){display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-1);padding:var(--space-2) var(--gutter)}
  .svc-nav[data-enhanced] .svc-nav__list{display:none}
}
.svc-browse-note{width:min(76ch,calc(100% - 2 * var(--gutter)));margin-block:var(--space-6) 0;margin-inline:max(var(--gutter),calc((100% - var(--w-wide)) / 2)) auto;color:var(--text-body);font-size:var(--fs-body);line-height:var(--lh-body);text-wrap:pretty}

/* ---------- Category sections ---------- */
.svc-category{padding-block:clamp(2.5rem,5vw,4.5rem);scroll-margin-top:calc(var(--nav-h) + 4rem)}
@media (max-width:733.98px){.svc-category{scroll-margin-top:calc(var(--nav-h) + 5.5rem)}}
/* Compact chapter markers keep the service cards in view; the product imagery does the storytelling. */
.svc-chapter{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:var(--space-5);align-items:center;margin:0 0 var(--space-6)}
.svc-chapter__media{margin:0;aspect-ratio:1;overflow:hidden;border-radius:var(--r-lg);background:var(--fill-tertiary)}
.svc-chapter__media picture,.svc-chapter__media img{display:block;width:100%;height:100%;object-fit:cover}
.svc-chapter__title{margin:0;font-size:clamp(1.75rem,1.25rem + 2vw,2.75rem);line-height:1.1;text-wrap:balance}
.svc-chapter__title:focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px;border-radius:var(--r-xs)}
.svc-chapter__lead{max-width:36rem;margin:var(--space-3) 0 0;font-size:var(--fs-callout);line-height:var(--lh-callout);text-wrap:pretty}
.svc-chapter--text{grid-template-columns:minmax(0,1fr);max-width:var(--w-content)}
.svc-chapter--text .svc-chapter__lead{max-width:38rem}
@media (min-width:734px){
  .svc-chapter{grid-template-columns:minmax(0,1fr) 160px;gap:var(--space-8)}
  .svc-chapter__media{aspect-ratio:3 / 2}
  .svc-chapter--text{grid-template-columns:minmax(0,1fr)}
}

.svc-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--grid-gap);margin:0;padding:0;list-style:none}
@media (min-width:734px){.svc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1068px){.svc-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.svc-grid--pair{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Product card: the "Learn more" button's hit area covers the whole card. */
.svc-card{position:relative;display:flex;flex-direction:column;margin:0;overflow:hidden;border-radius:var(--r-tile);background:var(--color-canvas-alt);color:var(--text-primary)}
.ui-section--alt .svc-card{background:var(--color-surface);box-shadow:var(--elevation-1)}
.svc-card__media{margin:0;aspect-ratio:3 / 2;overflow:hidden;background:var(--fill-tertiary)}
@media (min-width:734px){.svc-card__media{aspect-ratio:4 / 3}}
.svc-card__media img{display:block;width:100%;height:100%;object-fit:cover}
.svc-card__media-note{margin:var(--space-2) var(--space-6) 0;font-size:var(--fs-caption)}
.svc-card__body{display:flex;flex:1;flex-direction:column;gap:var(--space-2);padding:var(--space-6)}
.svc-card__kicker{margin:0;color:var(--accent-text);font-size:var(--fs-footnote);font-weight:var(--fw-semibold);line-height:1.3}
.svc-card__count{color:var(--text-secondary);font-weight:var(--fw-medium)}
.svc-card__title{margin:0;font-size:var(--fs-title-2);line-height:var(--lh-title-2);letter-spacing:var(--ls-title-2)}
.svc-card__summary{margin:0;color:var(--text-body);font-size:var(--fs-callout);line-height:var(--lh-callout)}
.svc-card__footer{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4);margin-top:auto;padding-top:var(--space-5)}
/* A complete price block above one clear action: no squeezed French price/button column. */
.svc-card__price{display:grid;gap:var(--space-1);margin:0;font-variant-numeric:tabular-nums lining-nums}
.svc-card__amount{color:var(--text-primary);font-size:var(--fs-body);font-weight:var(--fw-semibold);line-height:1.3}
.svc-card__unit{color:var(--text-secondary);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
.svc-card__note{color:var(--text-secondary);font-size:var(--fs-caption);line-height:var(--lh-caption)}
.svc-card__open.ui-button{position:static;width:100%;min-height:var(--tap-min)}
.svc-card__open::before{content:"";position:absolute;inset:0;border-radius:inherit}
.svc-card:has(.svc-card__open:focus-visible){outline:2px solid var(--focus-ring);outline-offset:4px}
@media (hover:hover){.svc-card:hover .svc-card__open{background:var(--fill-primary)}}
@media (prefers-reduced-motion:no-preference){
  .svc-card{transition:box-shadow var(--dur-3) var(--ease-standard),transform var(--dur-3) var(--ease-standard)}
  .svc-card__media img{transition:transform var(--dur-4) var(--ease-out)}
  @media (hover:hover){
    .svc-card:hover{box-shadow:var(--elevation-3);transform:translateY(-2px)}
    .svc-card:hover .svc-card__media img{transform:scale(1.03)}
  }
}

/* ---------- How it works (a light band, D21) ---------- */
.svc-steps .ui-section-head .t-headline{margin:0 0 var(--space-3)}
.svc-steps__list{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--grid-gap);margin:0;padding:0;list-style:none}
@media (min-width:734px){.svc-steps__list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1068px){.svc-steps__list{grid-template-columns:repeat(4,minmax(0,1fr))}}
.svc-steps__item{margin:0;padding:var(--space-6);border-radius:var(--r-lg);background:var(--color-surface);box-shadow:var(--elevation-1)}
.svc-steps__index{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--color-accent);color:var(--color-on-accent);font-size:var(--fs-footnote);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}
.svc-steps__title{margin:var(--space-4) 0 var(--space-2);font-size:var(--fs-title-3);line-height:var(--lh-title-3)}
.svc-steps__body{margin:0;color:var(--text-body);font-size:var(--fs-callout);line-height:var(--lh-callout)}
.svc-steps__note{max-width:46rem;margin:var(--space-8) auto 0;color:var(--text-secondary);font-size:var(--fs-footnote);line-height:var(--lh-footnote);text-align:center}

/* ---------- Closing calls to action ---------- */
.svc-cta__tile.ui-tile{min-height:0;justify-content:center;padding-bottom:var(--tile-pad)}
.svc-cta__tile .ui-tile__title{max-width:16ch}
.ui-section--alt .svc-cta__tile--accent.ui-tile{background:var(--accent-tint)}

/* ---------- Product sheet ---------- */
/* Sheets with a picker grow wide enough on desktop for photo and details side by side (44rem picker). */
@media (min-width:1068px){.svc-sheet--wide.ui-sheet--center{width:min(60rem,100% - 2 * var(--gutter));max-height:min(90dvh,58rem)}}
.svc-sheet__media{display:grid;gap:var(--space-2);margin:0 0 var(--space-5)}
.svc-sheet__media picture,.svc-sheet__media>img{display:block;aspect-ratio:16 / 9;overflow:hidden;border-radius:var(--r-lg);background:var(--fill-tertiary)}
.svc-sheet__media-note{padding-inline:2px}
/* Vehicles: the garage (browse mode) fills the sheet width; its photo stays until it mounts. */
.svc-garage{margin:0 0 var(--space-5);min-width:0}
.svc-garage__fallback{margin:0}
.svc-garage__fallback[hidden]{display:none}
.svc-gallery{margin:0 0 var(--space-4)}
.svc-gallery .ui-gallery__slide{border-radius:var(--r-lg)}
.svc-gallery .ui-gallery__viewport{border-radius:var(--r-lg)}
.svc-picker{margin:0 0 var(--space-5)}
.svc-picker .ui-model-picker__media{border-radius:var(--r-lg)}
.svc-picker__note{margin:0;color:var(--text-secondary);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
@media (min-width:1068px){.svc-sheet--wide .ui-sheet__footer{grid-template-columns:repeat(2,minmax(0,1fr))}}
.svc-sheet__summary--after{padding-top:var(--space-5);border-top:1px solid var(--separator)}
.svc-facts{margin-top:0}
.svc-sheet__media img{display:block;width:100%;height:100%;object-fit:cover}
.svc-sheet__summary{margin:0;color:var(--text-body);font-size:var(--fs-body);line-height:var(--lh-body)}
.svc-sheet__badges{margin:var(--space-3) 0 0}
.svc-sheet__heading{margin:var(--space-7) 0 var(--space-3);font-size:var(--fs-title-3);line-height:var(--lh-title-3);letter-spacing:var(--ls-title-3)}
.svc-sheet__note{margin:var(--space-5) 0 0;color:var(--text-secondary);font-size:var(--fs-footnote)}
.svc-options{display:grid;gap:var(--space-3);margin:0;padding:0;list-style:none}
.svc-option{margin:0;padding:var(--space-5);border:1px solid var(--separator);border-radius:var(--r-lg);background:var(--color-canvas)}
/* An option with a photo of its own (ATV tandem, river tubing, the barbecue): thumbnail beside the name. */
.svc-option--media{display:grid;grid-template-columns:4.5rem minmax(0,1fr);column-gap:var(--space-4)}
.svc-option--media>:not(.svc-option__media){grid-column:2}
.svc-option__media{grid-row:1 / span 2;width:4.5rem;aspect-ratio:1;overflow:hidden;border-radius:var(--r-sm);background:var(--fill-tertiary)}
.svc-option__media img{display:block;width:100%;height:100%;object-fit:cover}
@media (max-width:479.98px){.svc-option--media{grid-template-columns:3.5rem minmax(0,1fr);column-gap:var(--space-3)}.svc-option__media{width:3.5rem}}
.svc-option__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}
.svc-option__name{margin:0;font-family:var(--font-text);font-size:var(--fs-body);font-weight:var(--fw-semibold);line-height:1.3;letter-spacing:var(--ls-body)}
.svc-option__price{display:grid;justify-items:end;flex:none;gap:1px;margin:0;text-align:right;font-variant-numeric:tabular-nums lining-nums}
.svc-option__amount{font-size:var(--fs-callout);font-weight:var(--fw-semibold)}
.svc-option__unit{max-width:9rem;color:var(--text-secondary);font-size:var(--fs-caption);line-height:var(--lh-caption)}
.svc-option__desc{margin:var(--space-2) 0 0;color:var(--text-body);font-size:var(--fs-callout);line-height:var(--lh-callout)}
.svc-option__facts{display:grid;gap:var(--space-1);margin:var(--space-4) 0 0;font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
.svc-option__facts>div{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:var(--space-3)}
.svc-option__facts dt{color:var(--text-secondary)}
.svc-option__facts dd{margin:0;color:var(--text-body)}
.svc-option__estimate{margin:var(--space-3) 0 0;color:var(--status-info-text);font-size:var(--fs-footnote)}
.svc-includes{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none;color:var(--text-body);font-size:var(--fs-callout);line-height:var(--lh-callout)}
.svc-includes--compact{margin-top:var(--space-4);font-size:var(--fs-footnote)}
.svc-includes>li{display:flex;gap:var(--space-2);margin:0}
.svc-includes>li::before{content:"";flex:none;width:1em;height:1em;margin-top:.2em;background:var(--status-success-text);-webkit-mask:var(--icon-check) center/contain no-repeat;mask:var(--icon-check) center/contain no-repeat}
.svc-menu,.svc-terms{margin-top:var(--space-4);border-top:1px solid var(--separator)}
.svc-terms{margin-top:var(--space-6)}
.svc-menu>summary,.svc-terms>summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:var(--tap-min);padding:var(--space-2) 0;color:var(--text-primary);font-size:var(--fs-callout);font-weight:var(--fw-semibold);list-style:none;cursor:pointer}
.svc-menu>summary::-webkit-details-marker,.svc-terms>summary::-webkit-details-marker{display:none}
.svc-menu>summary::after,.svc-terms>summary::after{content:"";flex:none;width:.8em;height:.8em;background:currentColor;-webkit-mask:var(--icon-chevron) center/contain no-repeat;mask:var(--icon-chevron) center/contain no-repeat;transform:rotate(90deg)}
.svc-menu[open]>summary::after,.svc-terms[open]>summary::after{transform:rotate(-90deg)}
.svc-menu>summary:focus-visible,.svc-terms>summary:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--r-xs)}
.svc-menu__item+.svc-menu__item{margin-top:var(--space-4)}
.svc-menu__name{margin:0;font-size:var(--fs-footnote);font-weight:var(--fw-semibold)}
.svc-menu__desc,.svc-menu__allergens{margin:var(--space-1) 0 0;color:var(--text-body);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
.svc-menu__allergens>span{color:var(--text-secondary)}
.svc-terms>p{margin:0 0 var(--space-3);color:var(--text-body);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
@media (prefers-reduced-motion:no-preference){.svc-menu>summary::after,.svc-terms>summary::after{transition:transform var(--dur-2) var(--ease-standard)}}

@media (forced-colors:active){
  .svc-nav__link[aria-current="true"]{border:1px solid CanvasText}
  .svc-includes>li::before,.svc-menu>summary::after,.svc-terms>summary::after{background:CanvasText}
}
