/* The approved team banner leads into a quiet ribbon and eight native disclosures. */
.service-ribbon {
  width:100%; max-width:var(--page-max); min-width:0; margin-inline:auto; background:var(--graphite);
  color:var(--gold-on-graphite); border-top:1px solid rgb(255 255 255 / .16);
}
.service-ribbon-window { width:100%; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:thin; scrollbar-color:var(--gold-on-graphite) var(--graphite); }
.service-ribbon-track { display:flex; width:max-content; }
.service-ribbon-words { display:flex; flex:0 0 auto; align-items:center; justify-content:space-around; min-width:min(100vw,var(--page-max)); }
.service-ribbon-words[aria-hidden] { display:none; }
.service-ribbon-item { display:flex; align-items:center; }
.service-ribbon-item::after { content:""; flex:0 0 3px; width:3px; height:3px; margin-inline:1rem; background:var(--gold-on-graphite); border-radius:50%; }
.service-ribbon-item a { display:flex; align-items:center; min-height:3.25rem; padding:.75rem 1rem; color:inherit; font-size:.8125rem; font-weight:400; line-height:1.5; letter-spacing:.1em; text-transform:uppercase; white-space:nowrap; text-decoration:none; text-underline-offset:.35em; text-decoration-thickness:1px; transition:color 180ms ease-out, background-color 180ms ease-out; }
.service-ribbon-item a:hover, .service-ribbon-item a:focus-visible { color:var(--frost-bright); background:var(--graphite-soft); text-decoration:underline; }
.service-ribbon-item a:focus-visible { outline:2px solid var(--gold-on-graphite); outline-offset:-4px; }
.service-ribbon.is-enhanced .service-ribbon-window { overflow:hidden; }
.service-ribbon.is-enhanced .service-ribbon-words[aria-hidden] { display:flex; }
.service-ribbon.is-moving .service-ribbon-track { will-change:transform; }
.service-ribbon:has(a:focus-visible) .service-ribbon-window { overflow-x:auto; }
.service-ribbon:has(a:focus-visible) .service-ribbon-track { transform:none !important; }
.service-ribbon:has(a:focus-visible) .service-ribbon-words[aria-hidden] { display:none; }
@media (forced-colors:active) {
  .service-ribbon { background:Canvas; color:LinkText; border-color:CanvasText; }
  .service-ribbon-item a:hover, .service-ribbon-item a:focus-visible { color:HighlightText; background:Highlight; }
  .service-ribbon-item a:focus-visible { outline-color:Highlight; }
}
.home-story .services.services--ribbon-catalog { container:services / inline-size; padding-top:clamp(1.5rem,3vw,2.5rem); padding-bottom:var(--section-half-gap); }
html:has(.service-choice-anchor:target) { scroll-padding-top:var(--sticky-header-height,0px); }
.service-choice-anchor { display:block; scroll-margin-top:1.5rem; }
.home-story .services--ribbon-catalog .services-heading { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:.5rem 2rem; max-width:none; margin-bottom:1.5rem; }
.services--ribbon-catalog .services-heading h2 { margin:0; overflow-wrap:break-word; }
.services--ribbon-catalog .service-catalog-link { display:inline-flex; gap:.75rem; align-items:center; min-height:44px; font-size:1rem; }
.service-direction { border-top:1px solid var(--line); scroll-margin-top:calc(var(--sticky-header-height,0px) + 1rem); overflow-anchor:none; }
.service-direction:last-child { border-bottom:1px solid var(--line); }
.service-direction > summary { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; min-height:4.75rem; padding:1rem 0; cursor:pointer; list-style:none; }
.service-direction > summary::-webkit-details-marker { display:none; }
.service-direction-label { display:flex; align-items:center; gap:1rem; min-width:0; }
.service-direction-icon { flex:0 0 28px; width:28px; height:28px; fill:none; stroke:currentColor; stroke-width:var(--icon-stroke); stroke-linecap:round; stroke-linejoin:round; }
.service-direction-name { min-width:0; font-size:clamp(1.25rem,2vw,1.625rem); line-height:1.3; font-weight:400; letter-spacing:-.02em; overflow-wrap:break-word; }
.service-direction > summary > .arrow-icon { flex-shrink:0; width:24px; height:24px; }
.service-direction-from { margin-inline-start:auto; color:var(--text-muted); font-size:1rem; font-variant-numeric:tabular-nums; white-space:nowrap; }
.service-direction[open] .service-direction-from, .service-direction > summary:hover .service-direction-from { color:inherit; }
.service-direction[open] > summary { color:var(--gold-text); }
.service-direction[open] > summary > .arrow-icon { transform:rotate(90deg); }
.service-direction > summary:hover { color:var(--gold-text); }
.service-direction > summary:focus-visible { outline:2px solid var(--gold-text); outline-offset:4px; }
.service-direction:not([open]) > .service-direction-body { display:none; }
.service-direction-body { display:grid; grid-template-columns:minmax(0,264px) minmax(0,1fr); align-items:start; gap:clamp(1.5rem,4vw,4rem); padding:0 0 2rem; }
.service-direction-photo { position:relative; width:100%; margin:0; }
.service-direction-photo picture, .service-direction-photo img { display:block; width:100%; height:auto; min-height:0; max-height:none; object-fit:contain; background:transparent; }
.service-direction-photo figcaption { margin-top:.5rem; font-size:0.8125rem; line-height:1.5; color:var(--text-muted); }
.service-direction-content { min-width:0; }
.service-direction-title { margin:0 0 1.25rem; font-size:1.125rem; font-weight:500; line-height:1.45; }
.services--ribbon-catalog .choice-question { margin:0 0 .5rem; font-size:1rem; font-weight:400; line-height:1.5; color:var(--text-muted); }
.services--ribbon-catalog .choice-intent > summary { display:block; position:relative; padding-right:2rem; }
.services--ribbon-catalog .choice-intent > summary::after { position:absolute; right:0; top:calc(50% - .225rem); }
.services--ribbon-catalog .choice-answer { padding:.25rem 0 1rem; }
.services--ribbon-catalog .choice-service h3 { font-size:1rem; }
.services--ribbon-catalog .choice-note { color:var(--text-muted); }
.service-direction-links { display:flex; flex-wrap:wrap; align-items:center; gap:.25rem 1.75rem; margin-top:1rem; }
.services--ribbon-catalog .service-selection-link { display:inline-flex; align-items:center; gap:.75rem; min-height:44px; margin:0; font-size:.9375rem; }
.service-choice-source { margin:1rem 0 0; color:var(--text-muted); font-size:.8125rem; line-height:1.6; }
@container services (max-width:719px) {
  .service-direction-body { grid-template-columns:minmax(0,112px) minmax(0,1fr); gap:1.25rem; padding-bottom:1.5rem; }
  .service-direction-content { display:contents; }
  .service-direction-photo { grid-column:1; grid-row:1; }
  .service-direction-title { grid-column:2; grid-row:1; align-self:center; font-size:1rem; margin:0; }
  .service-direction-content > .choice-rows, .service-direction-links { grid-column:1 / -1; }
  .service-direction-links { margin-top:0; }
}
@media (max-width:767px) {
  .service-ribbon-item a { min-height:3rem; font-size:.8125rem; letter-spacing:.08em; padding-inline:.75rem; }
  .service-ribbon-item::after { margin-inline:.5rem; }
  .service-direction-label { gap:.75rem; }
  .service-direction-icon { flex-basis:24px; width:24px; height:24px; }
  .service-direction > summary { min-height:4rem; padding:.875rem 0; gap:.75rem; }
  /* "Make-up" must not break at its hyphen next to the price. */
  .service-direction-name { hyphens:manual; }
  .home-story .services--ribbon-catalog .services-heading { margin-bottom:1rem; }
}
