.cheers-visual-service-guide {
  color: var(--vsg-text, var(--cheers-component-text, #263333));
  background: var(--cheers-component-background, #fff);
  padding: clamp(40px, 6vw, 80px) 24px;
  font-family: inherit;
}
.cheers-visual-service-guide *, .cheers-visual-service-guide *::before, .cheers-visual-service-guide *::after { box-sizing: border-box; }
.cheers-visual-service-guide .vsg-inner { max-width: 1200px; margin-inline: auto; }
.cheers-visual-service-guide .vsg-header { max-width: 780px; margin-bottom: clamp(24px, 3vw, 38px); }
.cheers-visual-service-guide .vsg-eyebrow { margin: 0 0 12px; color: var(--vsg-accent, var(--cheers-component-accent, #245e52)); font-size: 12px; font-weight: 750; line-height: 1.5; letter-spacing: .12em; text-transform: uppercase; }
.cheers-visual-service-guide h2 { margin: 0; color: var(--vsg-heading, var(--cheers-component-heading, #142e29)); font-size: clamp(30px, 3.4vw, 46px); font-weight: 700; line-height: 1.12; letter-spacing: -.035em; text-wrap: balance; }
.cheers-visual-service-guide .vsg-intro { max-width: 66ch; margin: 18px 0 0; color: var(--vsg-muted, var(--cheers-component-muted, #52615d)); font-size: 17px; line-height: 1.6; }
.cheers-visual-service-guide .vsg-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: start; }
.cheers-visual-service-guide .vsg-grid[data-topic-count="2"], .cheers-visual-service-guide .vsg-grid[data-topic-count="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cheers-visual-service-guide .vsg-topic { min-width: 0; border-radius: var(--vsg-radius, 16px); overflow: hidden; background: var(--vsg-surface, var(--cheers-component-surface, #f4f6f3)); }
.cheers-visual-service-guide .vsg-image { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }
.cheers-visual-service-guide .vsg-copy { padding: clamp(22px, 2.2vw, 30px); }
.cheers-visual-service-guide h3 { margin: 0 0 12px; color: var(--vsg-heading, var(--cheers-component-heading, #142e29)); font-size: clamp(23px, 2vw, 28px); font-weight: 700; line-height: 1.18; letter-spacing: -.025em; text-wrap: balance; }
.cheers-visual-service-guide .vsg-summary { margin: 0 0 20px; font-size: 16px; line-height: 1.6; }
.cheers-visual-service-guide .vsg-details { margin: 0; }
.cheers-visual-service-guide .vsg-details > summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 44px; padding-block: 8px; color: var(--vsg-accent, var(--cheers-component-accent, #245e52)); font-size: 15px; font-weight: 700; line-height: 1.4; cursor: pointer; list-style: none; }
.cheers-visual-service-guide .vsg-details > summary::-webkit-details-marker { display: none; }
.cheers-visual-service-guide .vsg-details > summary:hover > span:first-child { text-decoration: underline; text-underline-offset: .2em; }
.cheers-visual-service-guide .vsg-details > summary:focus-visible, .cheers-visual-service-guide a:focus-visible { outline: 3px solid currentColor; outline-offset: 4px; border-radius: 3px; }
.cheers-visual-service-guide .vsg-toggle { flex: 0 0 auto; font-size: 27px; font-weight: 400; line-height: 1; }
.cheers-visual-service-guide .vsg-details[open] .vsg-toggle { transform: rotate(45deg); }
.cheers-visual-service-guide .vsg-detail { padding-top: 12px; font-size: 16px; line-height: 1.65; overflow-wrap: anywhere; }
.cheers-visual-service-guide .vsg-detail > :first-child { margin-top: 0; }
.cheers-visual-service-guide .vsg-detail > :last-child { margin-bottom: 0; }
.cheers-visual-service-guide .vsg-detail p { margin-block: 0 16px; }
.cheers-visual-service-guide .vsg-detail ul, .cheers-visual-service-guide .vsg-detail ol { padding-left: 1.25em; }
.cheers-visual-service-guide .vsg-detail li + li { margin-top: 8px; }
.cheers-visual-service-guide .vsg-detail a { color: var(--vsg-accent, var(--cheers-component-accent, #245e52)); text-decoration: underline; text-underline-offset: .18em; }
@media (max-width: 950px) {
  .cheers-visual-service-guide .vsg-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .cheers-visual-service-guide { padding: 40px 20px; }
  .cheers-visual-service-guide .vsg-grid, .cheers-visual-service-guide .vsg-grid[data-topic-count] { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .cheers-visual-service-guide .vsg-copy { padding: 24px; }
}
@media print {
  .cheers-visual-service-guide .vsg-grid { display: block; }
  .cheers-visual-service-guide .vsg-topic { margin-bottom: 24px; break-inside: avoid; }
  .cheers-visual-service-guide .vsg-details::details-content { content-visibility: visible; display: block; }
  .cheers-visual-service-guide .vsg-detail { display: block; }
}
