
/* ---- signature element: organic grape cluster of 7 service berries (different sizes, overlapping) ---- */
.grape{display:grid;grid-template-columns:minmax(0,470px) minmax(300px,1fr);gap:clamp(32px,5vw,72px);align-items:center;margin:0 0 clamp(36px,5vw,64px)}
.gc{--sw:clamp(86px,28%,132px);justify-self:center;width:100%;max-width:470px;position:relative;padding-top:calc(var(--sw) * .42 - 30px)}
.gc-stem{position:absolute;left:calc(47% - var(--sw) / 2);top:0;width:var(--sw);height:auto;display:block;z-index:0}
.gc-berries{position:relative;z-index:1;width:100%;aspect-ratio:100/96;container-type:inline-size}
.berry{position:absolute;left:calc((var(--x) - var(--s) / 2) * 1%);top:calc((var(--y) - var(--s) / 2) / 96 * 100%);width:calc(var(--s) * 1%);aspect-ratio:1;padding:0;border:0;background:none;cursor:pointer;color:#fff;font:inherit;-webkit-tap-highlight-color:transparent;border-radius:50%}
.bdisc{position:absolute;inset:0;margin:0;max-width:none;font-size:inherit;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.2cqw;box-sizing:border-box;padding:0 6%;
  background:var(--wine);box-shadow:inset 0 -.9cqw 0 rgba(0,0,0,.16),inset .8cqw .8cqw 1.6cqw rgba(255,255,255,.12),0 .6cqw 1.6cqw rgba(60,16,40,.22);transition:transform .18s ease,box-shadow .18s ease}
.berry.t-wine .bdisc{background:#6d1a36}
.berry.t-rose .bdisc{background:#b8325c}
.berry.t-plum .bdisc{background:#3a1650}
.berry.t-orchid .bdisc{background:#8b4fb0}
.berry.t-vine .bdisc{background:#2f6a2d}
.berry.t-lime .bdisc{background:#9ccb6b;color:#1c3a1a}
.berry.t-gold .bdisc{background:#e3ab3c;color:#43132a}
.berry.t-lime,.berry.t-gold{color:inherit}
.gb-ico{display:block;flex:none}
.big .gb-ico{width:8.6cqw;height:8.6cqw}
.mid .gb-ico{width:6.8cqw;height:6.8cqw}
.berry.t-gold .gb-ico [stroke="#f3c76a"],.berry.t-lime .gb-ico [stroke="#f3c76a"]{stroke:#43132a}
.berry.t-lime .gb-ico [fill="#f3c76a"],.berry.t-gold .gb-ico [fill="#f3c76a"]{fill:#43132a}
.bl{display:block;text-align:center;font-family:var(--label);font-weight:700;line-height:1.05;letter-spacing:.01em;pointer-events:none;text-wrap:balance;overflow-wrap:normal}
.big .bl{font-size:5.1cqw}
.mid .bl{font-size:4.4cqw}
.berry:hover .bdisc{transform:scale(1.05)}
.berry:focus-visible{outline:none}
.berry:focus-visible .bdisc{box-shadow:0 0 0 .7cqw #fff,0 0 0 1.4cqw var(--navy)}
.berry[aria-expanded="true"] .bdisc{transform:scale(1.07);box-shadow:inset 0 -.9cqw 0 rgba(0,0,0,.16),0 0 0 .8cqw #fff,0 0 0 1.7cqw var(--gold),0 2.6cqw 5cqw rgba(67,19,42,.3)}
.berry.t-gold[aria-expanded="true"] .bdisc{box-shadow:inset 0 -.9cqw 0 rgba(0,0,0,.16),0 0 0 .8cqw #fff,0 0 0 1.7cqw var(--wine),0 2.6cqw 5cqw rgba(67,19,42,.3)}
.berry[aria-expanded="true"]{z-index:5}
.berry:hover,.berry:focus-visible{z-index:4}
.gp{position:relative;background:#fff;border:1px solid var(--line);border-left:5px solid var(--gold);border-radius:18px;padding:clamp(24px,3vw,38px);box-shadow:0 16px 44px rgba(67,19,42,.09);min-height:240px;display:flex;flex-direction:column;justify-content:center}
.gp-item[hidden]{display:none}
.gp-item h3{font-family:var(--display);font-weight:400;font-size:clamp(1.7rem,3vw,2.3rem);line-height:1.15;margin-bottom:12px;color:var(--wine)}
.gp-item p{color:var(--ink);font-size:1.05rem;line-height:1.6}
.gp-item .sub{margin-top:14px;padding-top:14px;border-top:1px dashed #d6bfca}
.gp-eyebrow{font-family:var(--label);font-size:.95rem!important;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--grape)!important;margin-bottom:12px}
.gp-hint p:not(.gp-eyebrow){color:var(--muted)}
.gp-item:not([hidden]){animation:gpin .28s ease}
@keyframes gpin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.gp-close{position:absolute;right:10px;top:8px;width:44px;height:44px;border:0;background:none;font-size:2rem;line-height:1;color:var(--muted);cursor:pointer;border-radius:50%}
.gp-close:hover{color:var(--wine);background:var(--tint)}
.gp-close[hidden]{display:none}
.svc-all{margin:clamp(8px,2vw,20px) 0 4px;font-family:var(--label);font-size:.98rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--grape)}
@media (max-width:900px){
  .grape{grid-template-columns:1fr;gap:22px}
  .gc{max-width:min(100%,430px)}
  .gp{min-height:0;border-left-width:1px;border-top:5px solid var(--gold)}
}
@media (prefers-reduced-motion:reduce){.gp-item:not([hidden]){animation:none}.bdisc{transition:none}}
