/* One product-card system. Every item keeps the standard width and follows the left edge. */
.service-bar-hire{--hire-display-surface:#e8e4da;--hire-card-copy:20px;--hire-finish-size:18px;--hire-media-ratio:3/2}
.service-bar-hire .hire-range-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px var(--gutter);align-items:stretch}
.hire-range-card{position:relative;min-width:0;grid-column:auto}
/* Share content rows so wrapped names or descriptions cannot lift prices and actions. */
.hire-range-card:not([hidden]){display:grid;grid-template-rows:subgrid;grid-row:span 7;row-gap:0}
.hire-range-card>[data-finish-status]{grid-row:6}
.hire-range-card>[data-plan-format]{grid-row:7}
.service-page .hire-range-photo{position:relative;aspect-ratio:var(--hire-media-ratio);overflow:hidden;background:var(--hire-display-surface)}
.service-page .hire-range-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.hire-photo-link{position:absolute;inset:0}
html body .hire-name-link{display:inline-block}
html body .hire-name-link[href]:hover{color:var(--bb-action)}
.hire-range-title{margin-top:var(--hire-card-copy)}
html body .service-bar-hire .hire-range-title h3{font-size:28px;font-weight:310;line-height:1.15}
.service-page .hire-range-title>div>p{font-size:14px;line-height:22px;color:var(--muted);margin-top:8px}
.service-page .hire-range-rate{display:flex;align-items:baseline;justify-content:flex-start;gap:8px;min-height:32px;margin-top:14px;line-height:1;font-size:14px;color:var(--muted)}
.hire-range-rate strong{font:500 24px/1 var(--font);letter-spacing:-.02em;color:var(--ink);white-space:nowrap}
.hire-range-rate span:last-child{font-size:16px}
.service-page .hire-range-rate:has(.hire-package-picker){display:block;align-self:start}

html body .hire-package-select{display:grid;gap:5px;width:100%;font:500 13px/1.4 Inter,sans-serif}
.hire-package-select select{
 width:100%;min-width:0;min-height:44px;padding:7px 9px;color:inherit;background:transparent;
 border:1px solid var(--line);border-radius:2px;font:400 14px/1.4 Inter,sans-serif;
}
.hire-package-select select:focus-visible{outline:2px solid var(--olive);outline-offset:2px}

/* Quiet finish previews: small visual swatches inside full-size touch targets. */
.hire-finishes{min-width:0;min-height:44px;border:0;padding:0;margin:14px 0 0}
.hire-finish-legend{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.hire-finish-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px}
.service-page .hire-selected-finish{flex:1;min-width:0;margin:0;font:400 13px/20px var(--font);color:var(--muted)}
.hire-finish-options{display:flex;flex:none;gap:0;margin:0}
.hire-finish{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer}
.hire-finish input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.hire-finish>span:last-child{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.hire-finish:has(input:checked) .hire-finish-dot{outline:1px solid #766b5c;outline-offset:3px}
/* Native Safari radio focus does not always expose :focus-visible. */
.hire-finish:has(input:focus){outline:2px solid #766b5c;outline-offset:-4px}
.hire-finish-dot{display:inline-block;width:var(--hire-finish-size);height:var(--hire-finish-size);flex:none;border:1px solid #b7b0a3;border-radius:50%}
.hire-finish-white{background:var(--white)}.hire-finish-black{background:var(--ink)}.hire-finish-timber{background:#ac7b43}.hire-finish-honey-oil{background:#b87949}
.hire-range-specs{list-style:none;padding:0;margin:24px 0 0;border-top:1px solid var(--line)}
.hire-range-specs li{font-size:14px;line-height:1.5;padding:10px 0;border-bottom:1px solid var(--line)}
.service-page .hire-finish-status{position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.service-page .hire-finish-status[data-state=error]{position:static;width:auto;height:auto;margin-top:12px;overflow:visible;clip-path:none;white-space:normal;font-size:12px;color:var(--muted)}
.service-bar-hire .occasion-section .eyebrow,.service-bar-hire .hire-pieces .eyebrow,.service-bar-hire .page-faq .eyebrow{display:none}
.service-bar-hire .page-faq .section-label h2{margin-top:0}
/* Native disclosures keep the catalogue short while retaining every specification. */
.catalogue-details{margin-top:20px;border-block:1px solid var(--line)}
.catalogue-details summary{display:flex;align-items:center;justify-content:space-between;min-height:44px;cursor:pointer;font:400 14px/20px var(--font);list-style:none}
.catalogue-details summary::-webkit-details-marker{display:none}
.catalogue-details summary:focus-visible{outline:2px solid var(--olive);outline-offset:4px}
.catalogue-details[open] summary span{transform:rotate(45deg)}
.catalogue-details .hire-range-specs{margin:0;border:0}
.catalogue-details .hire-range-specs li:last-child{border:0}
@media(max-width:1023px){.service-bar-hire .hire-range-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:649px){
 .service-bar-hire{--hire-card-copy:14px;--hire-finish-size:18px}
 .service-bar-hire .hire-range-grid{gap:36px 14px}
 html body .service-bar-hire .hire-range-title h3{font-size:24px}
 .service-page .hire-range-title>div>p{font-size:12px;line-height:18px;min-height:36px;margin-top:6px}
 .service-page .hire-range-rate{flex-wrap:wrap;gap:4px;min-height:44px;align-content:center;margin-top:8px;font-size:11px}
 .hire-range-rate strong{font-size:20px}
 .hire-range-quote strong{font-size:18px;line-height:22px;white-space:normal}
 .hire-range-rate span:last-child{font-size:12px}
 .hire-finishes{margin-top:12px}.service-page .hire-selected-finish{font-size:12px}
 .hire-finish-prefix{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .catalogue-details{margin-top:16px}.hire-range-specs li{font-size:12px}
}
@media(max-width:479px){
 .service-bar-hire .hire-range-grid{grid-template-columns:minmax(0,1fr)}
 .service-page .hire-range-title>div>p{min-height:0}
 .service-page .hire-range-rate{min-height:32px}
}
html body .service-bar-hire .hire-plan-link{display:flex;align-items:center;justify-content:center;width:100%;min-height:52px;margin-top:16px;padding:14px 18px;border:1px solid var(--olive);border-radius:2px;background:var(--olive);color:#fff;font:500 14px/1.4 Inter,sans-serif;text-align:center;text-decoration:none}
html body .service-bar-hire .hire-plan-link:hover{background:var(--ink);border-color:var(--ink)}
html body .service-bar-hire .hire-plan-link:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
html body .service-bar-hire .hire-plan-link[aria-disabled=true]{opacity:.45;cursor:wait}

/* Bar hire page rhythm and catalogue fit. */
.service-bar-hire {
  --hire-section-gap: clamp(60px, 6.5vw, 112px);
  --hire-heading-gap: clamp(22px, 3vw, 36px);
}
.service-bar-hire .page-intro { row-gap: 24px; }
.service-bar-hire .intro-copy { grid-column: 1 / -1; }
.service-bar-hire .pieces-heading {
  max-width: 50ch;
  gap: 16px;
  margin-bottom: var(--hire-heading-gap);
}
.service-bar-hire .page-faq { row-gap: clamp(24px, 3vw, 40px); }
.service-bar-hire .page-faq summary { gap: 16px; }
.service-bar-hire .page-faq summary > span:last-child { flex-shrink: 0; }
.service-bar-hire .hire-range-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 36px max(16px, var(--gutter));
}
.service-bar-hire .hire-range-rate { line-height: 1.4; }
html body .service-bar-hire .hire-plan-link { margin-top: 12px; }
.service-bar-hire .hire-range-grid:not(:has([data-finish-status][data-state="error"])) > .hire-range-card:not([hidden]) {
  grid-row: span 6;
}
.service-bar-hire .hire-range-grid:not(:has([data-finish-status][data-state="error"])) > .hire-range-card > [data-plan-format] {
  grid-row: 6;
}
.service-bar-hire .page-outro { padding-block: clamp(48px, 6vw, 96px); }

@media (min-width: 1100px) {
  .service-bar-hire .page-intro { align-items: end; }
  .service-bar-hire .intro-title { grid-column: 1 / span 7; }
  .service-bar-hire .intro-copy { grid-column: 8 / -1; grid-row: 1; }
}
@media (min-width: 1240px) {
  .service-bar-hire .hire-range-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  html body .service-bar-hire .hire-range-title h3 { font-size: clamp(23px, 2vw, 28px); }
}
@media (min-width: 650px) and (max-width: 1023px) {
  .service-bar-hire .occasion-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 20px 16px;
  }
  .service-bar-hire .occasion-grid > a { grid-column: span 2; }
  .service-bar-hire .occasion-grid > a:nth-child(4) { grid-column: 2 / span 2; }
  .service-bar-hire .occasion-grid img { aspect-ratio: 1; }
}
@media (max-width: 649px) {
  .service-bar-hire { --hire-section-gap: 52px; }
  html body .service-bar-hire .page-intro h1 {
    font-size: clamp(37px, 11.4vw, 48px);
    margin-top: 14px;
  }
  .service-bar-hire .occasion-grid a {
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 16px;
    padding-block: 12px;
  }
  html body .service-bar-hire .occasion-grid h3 { font-size: 16px; }
  .service-bar-hire .page-outro { row-gap: 18px; }
}
@media (max-width: 519px) {
  .service-bar-hire .hire-range-grid { grid-template-columns: minmax(0, 1fr); }
}

/* Keep every swatch reachable when a bar has more than the launch finishes. */
.service-bar-hire .hire-finish-row { flex-wrap: wrap; }
.service-bar-hire .hire-finish-options { flex-wrap: wrap; max-width: 100%; }
.service-bar-hire .hire-finish-row:has(.hire-finish:nth-child(5)) .hire-selected-finish { flex-basis: 100%; }

.service-bar-hire .hire-finish-row{display:block}
.service-bar-hire .hire-finish-options{flex-wrap:wrap}
.service-bar-hire .hire-selected-finish{font-weight:500;color:var(--ink)}
.service-bar-hire .hire-finish-prefix{position:static;width:auto;height:auto;margin:0;overflow:visible;clip-path:none}
.service-bar-hire .hire-range-rate:has(.hire-package-select){min-height:0;margin-top:10px}
