:root {
  --floating-button-rail-bg: linear-gradient(to bottom right, var(--color-primary-dark), var(--color-primary));
  --floating-button-rail-width-pc: 56px;
  --floating-button-icon-size: 24px;
}

@media (min-width: 1024px) {
  .c-floating-button {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    width: var(--floating-button-rail-width-pc);
    min-height: 148px;
    padding: var(--space-md) var(--space-sm) var(--space-lg);
    color: var(--color-white);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-nav);
    text-decoration: none;
    background: var(--floating-button-rail-bg);
    border-radius: var(--radius-md) 0 0 var(--radius-md);
    box-shadow: var(--shadow-md);
  }

  .c-floating-button--doc {
    background: var(--floating-button-rail-bg);
  }

  .c-floating-button:hover,
  .c-floating-button:focus-visible {
    color: var(--color-white);
    text-decoration: none;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
  }

  .c-floating-button:focus-visible {
    outline: 2px solid var(--color-primary-light-4);
    outline-offset: 2px;
  }

  .c-floating-button__icon {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: var(--floating-button-icon-size);
    height: var(--floating-button-icon-size);
    margin: 0 0 var(--space-sm);
    color: var(--color-white);
    background: var(--color-accent);
  }

  .c-floating-button__icon--doc {
    border-radius: var(--radius-sm);
  }

  .c-floating-button__icon--guide {
    border-radius: var(--radius-pill);
  }

  .c-floating-button__icon img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
  }

  .c-floating-button__label {
    writing-mode: vertical-rl;
    text-orientation: mixed;
    letter-spacing: 0.12em;
  }
}

@media (max-width: 1023px) {
  .c-floating-button {
    display: flex;
    flex: 1;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: var(--space-sm);
    min-height: 48px;
    padding: var(--space-sm) var(--space-md);
    color: var(--color-white);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-nav);
    text-decoration: none;
    background: var(--floating-button-rail-bg);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
  }

  .c-floating-button--doc {
    background: var(--floating-button-rail-bg);
  }

  .c-floating-button:hover,
  .c-floating-button:focus-visible {
    color: var(--color-white);
    text-decoration: none;
    box-shadow: var(--shadow-md);
  }

  .c-floating-button:focus-visible {
    outline: 2px solid var(--color-primary-light-4);
    outline-offset: 2px;
  }

  .c-floating-button__icon {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: var(--floating-button-icon-size);
    height: var(--floating-button-icon-size);
    color: var(--color-white);
    background: var(--color-accent);
  }

  .c-floating-button__icon--doc {
    border-radius: var(--radius-sm);
  }

  .c-floating-button__icon--guide {
    border-radius: var(--radius-pill);
  }

  .c-floating-button__icon img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
  }

  .c-floating-button__label {
    white-space: nowrap;
  }
}
