    .primary-actions {
      display: grid;
      gap: 12px;
    }

    .action-card {
      width: 100%;
      min-height: 76px;
      padding: 15px 17px;
      display: grid;
      grid-template-columns: 44px 1fr 24px;
      align-items: center;
      gap: 13px;
      border: 0;
      border-radius: var(--radius-md);
      text-decoration: none;
      text-align: left;
      cursor: pointer;
      transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;
    }

    .action-card:hover {
      transform: translateY(-2px);
    }

    .action-card:focus-visible,
    .info-card:focus-visible,
    .social-link:focus-visible,
    .dialog-close:focus-visible,
    .fallback-links a:focus-visible {
      outline: 3px solid var(--focus);
      outline-offset: 3px;
      box-shadow: inset 0 0 0 1px #fffcf7;
    }

    .action-card.primary {
      border: 1px solid var(--official-border);
      background: var(--official-surface);
      color: #fff;
      box-shadow: 0 14px 30px rgba(36, 51, 70, 0.2);
    }

    .action-card.secondary {
      border: 1px solid var(--consult-border);
      background: var(--consult-surface);
      color: var(--consult-ink);
    }

    .action-card.tertiary {
      border: 1px solid var(--map-border);
      background: var(--map-surface);
      color: var(--map-ink);
    }

    .action-icon {
      width: 44px;
      height: 44px;
      display: grid;
      place-items: center;
      border-radius: 14px;
      background: rgba(255, 255, 255, 0.12);
      font-size: 21px;
    }

    .action-icon svg {
      width: 23px;
      height: 23px;
      fill: none;
      stroke: currentColor;
      stroke-linecap: round;
      stroke-linejoin: round;
      stroke-width: 1.8;
    }

    .secondary .action-icon {
      background: #eacfc7;
      color: #7a433a;
    }

    .tertiary .action-icon {
      background: #cee0d1;
      color: #2f6445;
    }

    .action-copy {
      min-width: 0;
    }

    .action-copy strong {
      display: block;
      font-size: 17px;
      letter-spacing: -0.025em;
    }

    .nowrap {
      white-space: nowrap;
    }

    .action-badge {
      width: fit-content;
      margin-bottom: 3px;
      padding: 2px 7px;
      border: 1px solid rgba(255, 255, 255, 0.2);
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.1);
      color: rgba(255, 255, 255, 0.82);
      font-size: 10px;
      font-weight: 750;
      letter-spacing: 0.06em;
    }

    .secondary .action-badge {
      border-color: #a56c62;
      background: #fff9f7;
      color: #7a433a;
    }

    .tertiary .action-badge {
      border-color: #668570;
      background: #f6fbf7;
      color: #2f6445;
    }

    .action-copy small {
      display: block;
      margin-top: 2px;
      color: rgba(255, 255, 255, 0.62);
      font-size: 13px;
    }

    .secondary .action-copy small,
    .tertiary .action-copy small {
      color: currentColor;
    }

    .secondary .action-copy small {
      color: #6a4f4a;
    }

    .tertiary .action-copy small {
      color: #4d6153;
    }

    .trust-note {
      margin: 12px 3px 0;
      color: var(--ink-soft);
      font-size: 12px;
      line-height: 1.55;
      letter-spacing: -0.01em;
    }

    .trust-note a {
      color: var(--ink);
      font-weight: 750;
      white-space: nowrap;
      text-decoration-thickness: 1px;
      text-underline-offset: 3px;
    }

    .map-action-group {
      border: 1px solid var(--map-border);
      border-radius: var(--radius-md);
      background: var(--map-surface);
      overflow: hidden;
      transition: transform 180ms ease, box-shadow 180ms ease;
    }

    .map-action-group:hover {
      transform: translateY(-2px);
      box-shadow: 0 10px 22px rgba(45, 33, 25, 0.08);
    }

    .map-action-group .action-card.tertiary {
      border: 0;
      border-radius: 0;
      background: transparent;
    }

    .map-action-group .action-card:hover {
      transform: none;
    }

    .route-guide {
      margin: 0;
      border: 0;
      border-top: 1px solid var(--map-border);
      border-radius: 0;
      background: #f6faf7;
      overflow: hidden;
    }

    .route-guide > summary {
      min-height: 54px;
      padding: 9px 17px;
      display: grid;
      grid-template-columns: minmax(0, 1fr) 22px;
      align-items: center;
      gap: 11px;
      cursor: pointer;
      list-style: none;
    }

    .route-guide > summary::-webkit-details-marker {
      display: none;
    }

    .route-guide > summary::before {
      display: none;
    }

    .route-guide > summary::after {
      content: "+";
      color: var(--ink-soft);
      font-size: 22px;
      line-height: 1;
      text-align: center;
    }

    .route-guide[open] > summary::after {
      content: "−";
    }

    .route-guide > summary:focus-visible,
    .route-choice:focus-visible,
    .route-action:focus-visible {
      outline: 3px solid var(--focus);
      outline-offset: -3px;
    }

    .route-summary-copy strong,
    .route-summary-copy small {
      display: block;
    }

    .route-summary-copy strong {
      font-size: 15px;
      letter-spacing: -0.025em;
    }

    .route-summary-copy small {
      margin-top: 2px;
      color: #4d6153;
      font-size: 12px;
    }

    .route-guide-body {
      padding: 0 14px 15px;
      border-top: 1px solid #eee7df;
      background: #fffdf9;
    }

    .route-lead {
      margin: 13px 2px 10px;
      color: var(--ink-soft);
      font-size: 12px;
      line-height: 1.55;
    }

    .route-choices {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px;
    }

    .route-choice {
      min-height: 46px;
      padding: 8px 10px;
      border: 1px solid #d9d0c6;
      border-radius: 13px;
      background: #fffdf9;
      color: var(--ink);
      cursor: pointer;
      font-size: 13px;
      font-weight: 760;
    }

    .route-choice[aria-pressed="true"] {
      border-color: #c68c70;
      background: var(--cta-tint);
      color: var(--accent-dark);
      box-shadow: inset 0 0 0 1px rgba(143, 67, 40, 0.08);
    }

    .route-stage {
      margin-top: 10px;
    }

    .route-stage[hidden] {
      display: none;
    }

    .route-preview-wrap {
      overflow: hidden;
      border: 1px solid #dfd5ca;
      border-radius: 16px;
      background: #eee6dc;
    }

    .route-preview-wrap video {
      width: 100%;
      aspect-ratio: 1;
      display: block;
      background: #f6eddf;
      object-fit: cover;
    }

    .route-copy {
      margin: 10px 2px 0;
    }

    .route-copy strong,
    .route-copy span {
      display: block;
    }

    .route-copy strong {
      font-size: 15px;
      letter-spacing: -0.025em;
    }

    .route-copy span {
      margin-top: 3px;
      color: var(--ink-soft);
      font-size: 12px;
      line-height: 1.5;
    }

    .route-video-status {
      margin: 9px 2px 0;
      padding: 9px 11px;
      border-radius: 10px;
      background: #fff3dc;
      color: #694617;
      font-size: 12px;
    }

    .route-video-status[hidden] {
      display: none;
    }

    .route-actions {
      margin-top: 11px;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px;
    }

    .route-action {
      min-height: 44px;
      padding: 9px 10px;
      display: grid;
      place-items: center;
      border: 1px solid #d9d0c6;
      border-radius: 12px;
      background: #fffdf9;
      color: var(--ink);
      cursor: pointer;
      font-size: 12px;
      font-weight: 780;
      text-align: center;
      text-decoration: none;
    }

    .route-action.primary {
      border-color: #d7b49f;
      background: var(--cta-tint);
      color: var(--accent-dark);
    }

    .arrow {
      font-size: 22px;
      line-height: 1;
      opacity: 0.72;
    }

